您的位置:首页 > 博客中心 > 数据库 >

Oracle数据库泵的备份与恢复

时间:2022-03-14 03:37

Oracle数据库泵的备份与恢复

目录

 

、给数据库用户授权并创建DIRECTORY对象

在SQL命令行下执行如下命令(执行sql的用户要有目录创建和授权的权限):

grant create any directory to username;(username---执行备份/恢复的用户)

create directory  res_dir  as  ‘D:\dbres‘;(res_dir—恢复命令中使用的目录名---把导出的文件放到这个目录中)

(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 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交互模式

热门排行

今日推荐

热门手游