博文说明【前言】:
本文将通过个人口吻介绍有关Oracle数据库导入导出相关知识,在目前时间点【2017年5月16号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容。
本文所写的导入导出是指在不使用工具的情况下,在命令行下进行的oracle数据库的导入和导出
正文:
一:常规exp/imp,导入导出方法
1、导出:
命令格式:exp user/pwd@IP/SID file=path/sth.dmpfull=y ignore=y;
实际案例:
expmcptest/mcptest@192.168.137.138/cklpfile=/home/oracle/cklptest.DMPfull=yignore=y;
2、导入
命令格式:imp user/passwd@IP/SID fileName=fielPath full=y(full 不能少) ignore=y;
实际案例:
impmcptest/mcptest@192.168.137.138/cklpfile=/home/oracle/cklptest.DMPfull=yignore=y;
二:数据泵导入导出方法
一、导出:
1. 创建默认导出目录
注意:操作系统级别需要该目录存在,本例中目录为dmp_dir,对应操作系统级别的/orasoft目录
sql>createdirectorydmp_diras'/orasoft';
2. 赋予指定用户在此目录的读写权限
sql>GRANTREAD,WRITEONDIRECTORYdmp_dirtosystem;
3. 使用expdp导出数据库
expdp[dba_user/passwd]@SIDfull=yparallel=2directory=dmp_dir dumpfile=<ORACLE_SID>_%U.dmplogfile=log_name.log
二、导入:
1.创建默认导出目录
sql>createdirectorydmp_diras'/app/oracle';
3. 使用impdp工具进行全库导入
impdp[dba_user/passwd]@SIDfull=yparallel=2directory=dmp_dir dumpfile=<ORACLE_SID>_%U.dmplogfile=log_name.log
三:实际案例分析-数据泵导出
1. 创建默认导出目录
sql>createdirectorydump_diras'/orasoft/dumpfile';
3. 导出整个数据库【操作系统层面执行该命令】:
#cd/orasoft #expdpsystem/managerfull=ycluster=noparallel=2directory=dump_dirdumpfile=fccklpfull_%U.dmplogfile=log_name.log
注意:第三步操作需要在路径/orasoft 目录下执行,这里的server_name是fccklp,dmp名称为fccklpfull是表示整库数据,而且这里必须要写成fccklpfull_%U.dmp 的形式,因为开启了2路并行 就指定了一个文件是不行的,因此需要%U参数。
强烈注意:RAC集群环境无需加@SID,也即只需要输入[dba_user/passwd],后面无需加上@SID
expdp[dba_user/passwd]@SIDschemas=[用户名]full=yparallel=2 directory=dmp_dirdumpfile=<ORACLE_SID>_%U.dmplogfile=log_name.log
四:RAC集群数据泵导出问题记录:
曾经在RAC集群下执行数据泵导出的时候,出现过问题,后经DBA折腾2小时才弄好,顺便记录下解决过程
1、查询导出任务找到job_name
select*fromdba_datapump_jobs
2、进入sqlplus界面,将该工作杀死
stop_job ---->yes
3、其他相关sql
删除数据泵默认目录:
delete*fromdba_directorieswhereDIRECTORY_NAME="DMP_DIR";
查询数据泵默认目录:
select*fromdba_directories;
结尾:
感谢阅读,祝有收获的一天!
原文链接:https://www.f2er.com/oracle/209194.html