exp备份和rman备份的区别有:
1、rman是物理备份,expdp是逻辑备份,我觉得做了rman就没必要做expdp备份了。优缺点见下图:
2、exp类似冷备份, 你只能够恢复到某一点。而rman的话,需要开启归档,那样就可以进行无数据丢失的恢复。
详细点说就是:
在不开归档日志的情况下,Oracle数据库的备份只能依赖exp命令(逻辑备份)导出数据文件(注意:不包括日志文件以及控制文件等),导出的所有数据仅仅以一个大文件的方式来存放,但是这种备份容易导致丢失数据。举个例子:如果5号晚上进行了exp数据导出,但是在6号的运行过程中发生宕机,数据丢失,这个时候从5号备份后一直到6号宕机前的数据将全部丢失。所以采用exp方式备份数据还是存在很大风险的。
另一种方式就是使用Oracle自带的备份工具rman。一次rman备份(物理备份)的全过程如下:
因为使用rman备份不会产生数据丢失的情况,所以必须有一个全备份的文件,使用rman需要先进行一次全备份,相当于将当前数据库里面的所有文件以及日志都全盘拷贝一份到备份介质中,然后通过归档日志(实时更新的)的记录看每个进程都对数据库做了哪些修改,只要保留了一份物理备份以及物理备份之后的所有归档日志,就能够将数据库恢复到宕机前一刻的状态,将数据丢失降到最低。
expdp导出的时候,会从数据库读数据,对数据库肯定是有一定影响的,但不会造成锁之类的这种影响,由于磁盘的IO很高,导致数据库正常的很多处理 *** 作变的很慢,所以建议在业务量少的时候备份数据库。
oracle导出数据库用exp语句。
步骤:
一、win键+R键,输入cmd,打开命令提示符。
二、然后根据实际情况选择不同的exp语句。
exp语句详解:
1 获取帮助
exp help=y
2 导出一个完整数据库
exp system/manager file=bible_db log=dible_db full=y
3 导出数据库定义而不导出数据
exp system/manager file=bible_db log=dible_db full=y rows=n
4 导出一个或一组指定用户所属的全部表、索引和其他对象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在导出用户时,尽管已经得到了这个用户的所有对象,但是还是不能得到这些对象引用的任何同义词。解决方法是用以下的SQLPlus命令创建一个脚本文件,运行这个脚本文件可以获得一个重建seapark所属对象的全部公共同义词的可执行脚本,然后在目标数据库上运行该脚本就可重建同义词了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seaparksyn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||''||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5 导出一个或多个指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seaparktank
exp system/manager file=tank log=tank tables=(seaparktank,amyartist)
6 估计导出文件的大小
全部表总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';
seapark用户所属表的总字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';
seapark用户下的aquatic_animal表的字节数:
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';
7 导出表数据的子集(oracle8i以上)
NT系统:
exp system/manager query='Where salad_type='FRUIT'' tables=amysalad_type
file=fruit log=fruit
UNIX系统:
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amysalad_type
file=fruit log=fruit
8 用多个文件分割一个导出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hrpaycheck
9 使用参数文件
exp system/manager parfile=bible_tablespar
bible_tablespar参数文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible
file=bible_tables
log=bible_tables
tables=(
amyartist
amybooks
seaparkcheckup
seaparkitems
)
10 增量导出
“完全”增量导出(complete),即备份整个数据库
exp system/manager inctype=complete file=990702dmp
“增量型”增量导出(incremental),即备份上一次备份后改变的数据
exp system/manager inctype=incremental file=990702dmp
“累计型”增量导出(cumulative),即备份上一次“完全”导出之后改变的数据
exp system/manager inctype=cumulative file=990702dmp
以上就是关于exp备份和rman备份的区别是什么全部的内容,包括:exp备份和rman备份的区别是什么、oracle用expdp导出过程中对数据库使用有没有影响、oracle导出数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)