Oracle数据库泵的备份与恢复
目录
1、给数据库用户授权并创建DIRECTORY对象... 1_Toc388455817
在SQL命令行下执行如下命令(执行sql的用户要有目录创建和授权的权限):
grant create any directory to username;(username---执行备份/恢复的用户)
create directory res_dir as ‘D:\dbres‘;(res_dir—恢复命令中使用的目录名---把导出的文件放到这个目录中)
create directory bak_dir as ‘C:\dbback‘;(bak_dir—备份命令中使用的目录名,删除目录的命令drop directory bak_dir;)
数据泵包括备份/恢复表、备份/恢复用户、备份/恢复表空间、备份/恢复数据库4种方式,在操作系统命令行中执行以下的备份/恢复命令完成相关操作
(1)备份表
expdp数据库用户名/密码【@数据库实例名】 DIRECTORY=目录名 TABLES=表1,表2 DUMPFILE=导出的dmp文件logfile=导dmp文件时生成的log文件;
例:expdp username/password@expdb tables=tablename1,tablename2 DIRECTORY=bak_dir DUMPFILE=bakFile.dmp LOGFILE=bakLog.log;
(2)备份用户(schema,与用户对应)
expdp数据库用户名/密码【@实例名】SCHEMAS=用户1,用户2 DIRECTORY=目录名 DUMPFILE=导出的dmp文件 logfile=导出dmp文件时生成的log文件;
例:expdp username/password@expdb SCHEMAS=user01,user02 DIRECTORY=bak_dir DUMPFILE=bakFile.dmp LOGFILE=bakLog.log;
(3)备份表空间
expdp数据库用户名/密码【@实例名】 DIRECTORY=目录名 TABLESPACES=表空间1,表空间2 DUMPFILE=导出的dmp文件 logfile=导出dmp文件时生成的log文件;
例:expdp username/password@expdb DIRECTORY=dump_dir
TABLESPACES=tablespace01,tablespace02 DUMPFILE=bakFile.dmp logfile=bakLog.log;
(4)备份数据库
expdp数据库用户名/密码【@实例名】DIRECTORY=目录名FULL=Y DUMPFILE=导出的dmp文件 logfile=导出dmp文件时生成的log文件;
例:expdp username/password DIRECTORY=dump_dir FULL=Y DUMPFILE=bakFile.dmp logfile=bakLog.log;
(5)数据库备份的文件过大,会把dmp文件分成多个小文件,以备份用户为例
expdp数据库用户名/密码【@实例名】 SCHEMAS=用户1,用户2 DIRECTORY=目录名 DUMPFILE=bak _%U.dmp filesize=文件大小 LOGFILE=导出dmp文件时生成的log文件;
例:expdp username/passwd@expdb SCHEMAS=user01,user02,user03 DIRECTORY=bak_dir DUMPFILE=bak _%U.dmp filesize=5G LOGFILE= bakLog.log;
a、CONTENT包括:ALL, DATA_ONLY 和 METADATA_ONLY。ALL为默认
当设置该选项为ALL时,表明导出的是数据和表结构的所有内容;
当设置该选项为DATA_ONLY时,表明导出的是数据;
当设置该选项为METADATA_ONLY时,表明导出的是元数据(表结构);
b、该选项用于将源方案的所有对象装载到目标方案中,原对象和目标对象的映射. SCHEMAS=原对象REMAP_SCHEMA=原对象:目标对象
c、该选项用于指定当表已经存在时导入作业要执行的操作,默认为SKIP ,TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | REPLACE}
当设置该选项为SKIP时,导入作业会跳过已存在表处理下一个对象;当设置为APPEND时,会追加数据,为TRUNCATE时,导入作业会截断表,然后为其追加新数据;当设置为REPLACE时,导入作业会删除已存在表,重建表病追加数据,注意,TRUNCATE选项不适用与簇表和NETWORK_LINK选项
(1)恢复表
impdp数据库用户名/密码【@实例名】 TABLES=表1,表2【REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | REPLACE】 DIRECTORY=目录名 DUMPFILE=导入的dmp文件 LOGFILE=导入dmp文件时生成的log文件;
例:impdp username/passwd TABLES= tablename1,tablename2 DIRECTORY=res_dir DUMPFILE= resFile.dmp LGFILE=resLog.log;
(2)恢复用户
impdp数据库用户名/密码【@实例名】 SCHEMAS=用户1,用户2【REMAP_SCHEMA= ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION=SKIP | APPEND | TRUNCATE | REPLACE】 DIRECTORY=目录名 DUMPFILE=导入的dmp文件 LOGFILE=导入dmp文件时生成的log文件
例:impdp username/password@impdb SCHEMAS=user1,user2 DIRECTORY= res_dir DUMPFILE= resFile.dmp LOGFILE= resLog.log;
(3)恢复表空间
impdp数据库用户名/密码【@实例名】【 REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | FRPLACE】 DIRECTORY=目录名TABLESPACES=表空间1, 表空间2 DUMPFILE=导入的dmp文件 LOGFILE=导入dmp文件时生成的log文件;
例:impdp username/password DIRECTORY=res_dir TABLESPACES=tablespace1, tablespace2 DUMPFILE=resFile.dmp logfile=resLog.log; ;
(4)恢复数据库
impdp数据库用户名/密码【@实例名】【REMAP_SCHEMA=ori:tar CONTENT=DATA_ONLY | ALL | METADATA_ONLY TABLE_EXISTS_ACTION= SKIP | APPEND | TRUNCATE | FRPLACE】 DIRECTORY=目录名 DUMPFILE=导入的dmp文件FULL=y LOGFILE=导入dmp文件时生成的log文件;
例:Impdp username/password DIRECTORY=res_dir FULL=y DUMPFILE=resFile.dmp logfile=resLog.log;
(5)数据库恢复多个dmp小文件,以恢复用户为例
impdp数据库用户名/密码【@实例名】SCHEMAS=用户1,用户2【 CONTENT=DATA_ONLY | ALL | METADATA_ONLYTABLE_EXISTS_ACTION=SKIP | APPEND | TRUNCATE | FRPLACE】DIRECTORY=目录名 DUMPFILE=res _%U.dmp filesize=文件大小 LOGFILE=导入dmp文件时生成的log文件;
例:impdp username/passwd@impdb SCHEMAS=user1,user2,user3,user4 DIRECTORY=res_dir DUMPFILE=res _%U.dmp filesize=5G LOGFILE= resLog.log;
在Linux操作系统命令行中执行以下命令:
ctrl+c退出当前的状态输出模式
expdp username/password@insdb attach=expfull(备份或恢复任务的名称) 进入交互模式
Import>stop_job停止当前的任务
Import>start_job启动停止的任务
Import> status 查看任务的状态信息。
Import>exit_client退出export交互模式
原文地址:http://blog.csdn.net/chenhao0568/article/details/41824949