一、exp 数据备份
Oracle逻辑备份不需要数据库运行在归档模式下,不但备份简单,而且可以不需要外部存储设备。
逻辑备份又分为三种模式。
表模式(T):
这种模式可以卸出当前用户数据库模式下的表,甚至是所有的表。具有特权的用户可根据所指定的数据库模式来(限制表)卸出他们所包含的表。缺省情况是卸出属于当前正在进行卸出的用户的所有表。
用户模式(U):这种模式可以卸出当前用户数据库模式下的所有实体(表、数据和索引)。
全数据库模式(F):只有具有EXP_FULL_DATABASE角色的用户才可能以这种模式卸出。以这种模式进行卸出的用户,除SYS模式下的内容之外,数据库中所有实体都可以卸出。 下面列出给用户赋予EXP_FULL_DATABASE角色的方法。
要选择表、用户或全数据库方式,可相应指定TABLES=tablelist、OWNER=userlist或FULL=y。
1、表模式
EXP imuse01/ imuse01 BUFFER=8192(或64000)FILE=imuse01.dmp 或(磁带设备/dev/rmt0) TABLES=imuse01.basetab
(或imuse01.basetab,imuse01.serviceinfo .....) ROWS=Y COMPRESS=N LOG= EXP_IMUSE01 _SERVICEINFO.LOG
参数说明:
BUFFER |
缓冲区大小 |
FILE |
由Export创建的输出文件的名字 |
TABLES |
将要卸出的表名列表 |
ROWS |
指明是否卸出表中数据的行数,缺省为“Y”。 |
COMPRESS |
指明在装入期间是否将表中数据压缩到一个区域中。如果在卸出数据时,指定参数COMPRESS=Y,那么装入时,就会将数据压缩到一个初始区域中。这种选择可以保持初始化区域的原始大小。缺省为“Y”。 |
LOG |
指定一个接收有用信息和错误信息的文件 |
2、用户模式:
EXP imuse01/ imuse01 OWNER= imuse01 BUFFER=8192(或64000)FILE= imuse01.dmp 或(磁带设备/dev/rmt0)
ROWS=Y COMPRESS=N LOG= EXP_IMUSE01 .LOG
参数说明:
OWNER |
将要卸出的用户名列表 |
BUFFER、FILE、ROWS、COMPRESS、LOG |
同上 |
3、全数据库模式
EXP imuse01/ imuse01 BUFFER=8192(或64000) FILE=EXP_IMUSE01.dmp (或磁带设备/dev/rmt0)
FULL=Y ROWS=Y COMPRESS=N LOG= EXP_IMUSE01_DB.LOG
对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。
增量备份命令:
EXP ICDMAIN/ICD BUFFER=8192(或64000)FILE=EXP_ICDMAIN_DB.DMP (或磁带设备/dev/rmt0)
FULL=Y INCTYPE= incremental ROWS=Y COMPRESS=N LOG=EXP_ICDMAIN_DB.LOG
参数说明:
BUFFER、FILE、ROWS、COMPRESS、LOG |
同上 |
FULL |
指明是否卸出完整的数据库。如果FULL=Y,将以全数据库模式进行卸出。 |
INCTYPE |
增加卸出的类型,有效值有complete(完全)、comulative(固定)和incremental(增量)。 |
complete |
输出所有表 |
comulative |
将输入第一次完全输出后修改过的表 |
incremental |
将输出前一次输出后修改过的表 |
说明:
关于增量备份必须满足下列条件:
只对数据库备份有效,且第一次需要FULL=Y参数,以后需要INCTYPE=INCREMENTAL参数。
用户必须有EXP_FULL_DATABASE权限。
二、imp 数据恢复
Import和Export是两个相配套的实用程序,Export把数据库中的数据卸出到操作系统文件中,而Import实用程序则把Export卸出的数据恢复到数据库中。按备份方案确定恢复方案,例如:采用表逻辑备份方案,则恢复方案也采用恢复到表的方式(不应恢复到用户)。
要使用Import,必须具有CREATE SESSION特权,以便能注册到ORACLE RDBMS中去。这一特权属于在数据库创建时所建立的CONNECT角色。
如果卸出文件是由某用户利用EXP_FULL_DATABASE角色创建的全数据库卸出,那么只有具有IMP_FULL_DATABASE角色的用户才能装入这样的文件。
数据库的逻辑恢复分为表、用户、数据库三种模式。
1、表模式
恢复方法为:
IMP imuse01/imuse01 FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=Y BUFFER=Y IGNORE=Y TABLES=(表名1,表名2,表名3,表名4,.......)
参数说明:
BUFFER |
缓冲区大小 |
FILE |
用于装入的卸出文件名字 |
TABLES |
将要装入的表名列表 |
ROWS |
指明是否装入表数据的行,缺省为“Y”。 |
IGNORE |
指明如何处理实体创建错误。指定IGNORE=Y,当试图创建数据库实体时,忽略实体存在错误。对除了表之外的其他实体,指定IGNORE=Y,Import不报告错误,继续执行。而指定IGNORE=N时,Import在继续执行前报告实体创建错误。 |
COMMIT |
指明在每个矩阵插入之后是否提交。缺省时,Import在装入每个实体之后提交。指定COMMIT=N时,如有错误产生,Import在记录装入下一个实体之前,完成一个回退。指定COMMIT=Y时,可以抑制回滚字段无限制增大,并改善大量装入时的性能,表具有唯一约束时,这种选择比较好。如果再次开始装入,将拒绝装入已经装入的任何行,原因是非致命性错误。表具有非唯一约束时,指定COMMIT=N可能是比较好的选择。因为重新装入可能会产生重复行。 |
LOG |
指定一个接收有用信息和错误信息的文件 |
2、用户模式
如果备份方式为用户模式,采用下列恢复方法:
IMP system/manager FROMUSER=imuse01 TOUSER= imuse01 FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=Y
BUFFER=Y IGNORE=Y
参数说明同上。
3、数据库模式
如果备份方式为数据库模式,采用下列恢复方法:
IMP system/manager FULL=Y FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=Y BUFFER=Y IGNORE=Y
4、字符集转换
对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLA_LANG参数);对于多字节字符集(例如ZHS168CGB),恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。
|