备份数据:
1、创建DIRECTORY
create directory emrbak as 'D:\app\Administrator\oradata\orcl'; --创建导出空间,emrbak 指向 'D:\app\Administrator\oradata\orcl' 需要在d盘先创建此目录
2、授权
Grant read,write on directory emrbak to swdzbl;--授权
3、执行导出
expdp swdzbl/sunway2011@hiszd schemas=swdzbl directory=databak_emr dumpfile =swdzbl10.24.dmp logfile=swdzbl10.24.log,job_name=pqxyy_job; --job_name工作名可以随意取
注意:
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/lttfm@fgisdb 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表
4、创建的目录一定要在数据库所在的机器上。否则也是提示:
ORA-39002: 操作无效
ORA-39070: 无法打开日志文件。
ORA-39087: 目录名 DATA_PUMP_DIR; 无效
数据泵导出的各种模式:
1、按表模式导出:
expdp lttfm/lttfm@fgisdb 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/lttfm@fgisdb 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/lttfm@fgisdb 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/lttfm@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
导入:
1、创建DIRECTORY
create directory emrbak as 'D:\bak'; --创建导入空间,备份数据放在里面
2、授权
Grant read,write on directory emrbak to swdzbl;--授权
3、导入//select * from dba_directories;
impdp swdzbl/sunway2011@orcl schemas=swdzbl directory=emrbak dumpfile =EMR01.dmp logfile=emr01.log;