教你如何使用expdp和impdp备份和恢复数据库.docx
《教你如何使用expdp和impdp备份和恢复数据库.docx》由会员分享,可在线阅读,更多相关《教你如何使用expdp和impdp备份和恢复数据库.docx(10页珍藏版)》请在冰豆网上搜索。
教你如何使用expdp和impdp备份和恢复数据库
教你如何使用expdp和impdp命令备份和恢复Oracle数据库
createdirectoryaaas'D:
\aa';
grantread,writeondirectoryaatoking2;
expdpking2/king2@test02schemas=king2directory=aadumpfile=expuser.dmp
第一步:
创建一个目录(也就是文件路径)来装导出的dmp文件
方法:
操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus/nolog”按回车如下图:
连接数据库,输入:
connsys/king2@test02assysdba(注意sys用户一定要用sysdba角色登录哦)回车如下图:
接着,创建DIRECTORY
createdirectorydir_dpas'D:
\oracle\dir_dp';
这里要注意,路径D:
\oracle\dir_dp一定要是系统已经存在的了,如果该路径不存在,下边的导出将会提示
正确创建了路径的显示如下:
第二步:
授权(授予要导入数据的用户对该目录(路径)进行读和写的权限),还是在连接数据库的状态下输入:
Grantread,writeondirectorydir_dptolttfm;
如下图:
就完成了,关闭窗口,重新进入dos界面就可以进行备份了;
第三步:
执行导出
expdplttfm/lttfm@fgisdbschemas=lttfmdirectory=dir_dpdumpfile=expdp_test1.dmplogfile=expdp_test1.log;
连接到:
OracleDatabase10gEnterpriseEditionRelease10.2.0.1
WiththePartitioning,OLAPandDataMiningoptions
启动"LTTFM"."SYS_EXPORT_SCHEMA_01":
lttfm/********@fgisdbsch
ory=dir_dpdumpfile=expdp_test1.dmplogfile=expdp_test1.log; */
备注:
1、directory=dir_dp必须放在前面,如果将其放置最后,会提示ORA-39002:
操作无效
ORA-39070:
无法打开日志文件。
ORA-39087:
目录名DATA_PUMP_DIR;无效
2、在导出过程中,DATADUMP创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATADUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB名字就为以指定名字出现
如下改成:
expdplttfm/lttfm@fgisdbschemas=lttfmdirectory=dir_dpdumpfile=expdp_test1.dmplogfile=expdp_test1.log,job_name=my_job1;
3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。
因此导致expdplttfm/lttfmattach=lttfm.my_job1执行该命令时一直提示找不到job表
说明:
数据泵导出的各种模式:
1、按表模式导出:
expdplttfm/lttfm@fgisdb tables=lttfm.b$i_exch_info,lttfm.b$i_manhole_infodumpfile=expdp_test2.dmplogfile=expdp_test2.logdirectory=dir_dpjob_name=my_job
2、按查询条件导出:
expdplttfm/lttfm@fgisdb tables=lttfm.b$i_exch_infodumpfile=expdp_test3.dmplogfile=expdp_test3.logdirectory=dir_dpjob_name=my_jobquery='"whererownum<11"'
3、按表空间导出:
Expdplttfm/lttfm@fgisdbdumpfile=expdp_tablespace.dmptablespaces=GCOMM.DBFlogfile=expdp_tablespace.logdirectory=dir_dpjob_name=my_job
4、导出方案
Expdplttfm/lttfmDIRECTORY=dir_dpDUMPFILE=schema.dmpSCHEMAS=lttfm,gwm
5、导出整个数据库:
expdplttfm/lttfm@fgisdbdumpfile=full.dmpfull=ylogfile=full.logdirectory=dir_dpjob_name=my_job
成功案例:
原来电脑中已经存在目录(这里的king222dmp是手动的电脑中右键新建的,在Oracle数据库命令中将不会创建新的目录):
impdp
手工导入用户的时候要特别注意,数据库中不能够有与导出用户同名的用户,否则会报错数据已经存在,不能够成功导入。
因为impdp导用户入数据库的时候,如果数据库中没有该用户存在的时候会自动创建该用户。
导入语法如下:
Impdpking2/king2@test02schemas=king2directory=aadumpfile=king.dmp