教你如何使用expdp和impdp备份和恢复数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教你如何使用expdp和impdp命令备份和恢复Oracle数据库
create directory aa as 'D:\aa';
grant read,write on directory aa to king2;
expdp king2/king2test02 schemas=king2 directory=aa dumpfile=expuser.dmp
第一步:创建一个目录(也就是文件路径)来装导出的dmp文件
方法:操作系统—开始—运行输入“cmd”进入dos界面输入“sqlplus/nolog”按回车如下图:
连接数据库,输入:conn sys/king2test02 as sysdba(注意sys用户一定要用sysdba角色登录哦) 回车如下图:
接着,创建DIRECTORY
create directory dir_dp as 'D:\oracle\dir_dp';
这里要注意,路径D:\oracle\dir_dp一定要是系统已经存在的了,如果该路径不存在,下边的导出将会提示
正确创建了路径的显示如下:
第二步:授权(授予要导入数据的用户对该目录(路径)进行读和写的权限),还是在连接数据库的状态下输入:
Grant read,write on directory dir_dp to lttfm;
如下图:
就完成了,关闭窗口,重新进入dos界面就可以进行备份了;
第三步:执行导出
expdp lttfm/lttfmfgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1
With the Partitioning, OLAP and Data Mining options
启动"LTTFM"."SYS_EXPORT_SCHEMA_01": lttfm/********fgisdb sch
ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */
备注:
1、directory=dir_dp必须放在前面,如果将其放置最后,会提示ORA-39002: 操作无效
ORA-39070: 无法打开日志文件。
ORA-39087: 目录名DATA_PUMP_DIR; 无效2、在导出过程中,DATA DUMP 创建并使用了一个名为SYS_EXPORT_SCHEMA_01的对象,此对象就是DATA DUMP导出过程中所用的JOB名字,如果在执行这个命令时如果没有指定导出的JOB名字那么就会产生一个默认的JOB名字,如果在导出过程中指定JOB 名字就为以指定名字出现
如下改成:
expdp lttfm/lttfmfgisdb schemas=lttfm directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
3、导出语句后面不要有分号,否则如上的导出语句中的job表名为‘my_job1;’,而不是my_job1。因此导致expdp lttfm/lttfm attach=lttfm.my_job1执行该命令时一直提示找不到job表
说明:
数据泵导出的各种模式:
1、按表模式导出:
expdp lttfm/lttfmfgisdb tables=lttfm.b$i_exch_info,lttfm.b$i_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job
2、按查询条件导出:
expdp lttfm/lttfmfgisdb tables=lttfm.b$i_exch_info dumpfile =expdp_test3.dmp
logfile=expdp_test3.log directory=dir_dp job_name=my_job query='"where rownum<11"'
3、按表空间导出:
Expdp lttfm/lttfmfgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job
4、导出方案
Expdp lttfm/lttfm DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=lttfm,gwm
5、导出整个数据库:
expdp lttfm/lttfmfgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
成功案例:
原来电脑中已经存在目录(这里的king222dmp是手动的电脑中右键新建的,在Oracle 数据库命令中将不会创建新的目录):
. .. .
impdp
手工导入用户的时候要特别注意,数据库中不能够有与导出用户同名的用户,否则会报错数据已经存在,不能够成功导入。因为impdp导用户入数据库的时候,如果数据库中没有该用户存在的时候会自动创建该用户。导入语法如下:
Impdp king2/king2test02 schemas=king2 directory=aa dumpfile=king.dmp
..w..