您的位置:首页 > 数据库 > Oracle

Oracle数据库泵的备份与恢复

2014-12-09 15:53 417 查看
Oracle数据库泵的备份与恢复
目录

一、数据库备份和恢复前的准备...
1


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

二、数据泵的备份和恢复...
1


1、
数据库备份...
1

2、
数据库恢复...
2

三、进入交互模式...
4


一、数据库备份和恢复前的准备

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

在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、 数据库备份

(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;

2、 数据库恢复

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交互模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: