SGTMS

做事情
我们是认真的
您的位置:SGTMS>速记>Oracle数据库导入导出

Oracle数据库导入导出

正文

一、导出模式(三种模式)及命令格式

1、 全库模式

exp 用户名/密码@网络服务名 full=y file=路径\文件名.dmp log=路径\文件名.log

或者 exp 用户名/密码@数据库ip:端口/实例名 full=y file=路径\文件名.dmp log=路径\文件名.log

2、 用户模式(一般情况下采用此模式)

exp 用户名/密码@网络服务名 owner=(用户1,用户2,用户3,…) file=路径\文件名.dmp log=路径\文件名.log

3、 表模式

exp 用户名/密码@网络服务名 tables=(表名1,表名2,表名3,…) file=路径\文件名.dmp log=路径\文件名.log

4、 另外,还可以只导出某个表空间

exp 用户名/密码@网络服务名 tablespaces=(表空间1,表空间2,表空间3,…) file=路径\文件名.dmp log=路径\文件名.log

二、导入模式(三种模式)及命令格式

1、 全库模式

imp 用户名/密码@网络服务名 full=y file=路径\文件名.dmp log=路径\ds110.log

2、 用户模式(一般情况下采用此模式)

imp 用户名/密码@网络服务名 file=路径\文件名.dmp fromuser=导出的用户名 touser=导入的用户名 log=路径\ds110.log

3、 表模式

imp 用户名/密码@网络服务名 tables=(表名1,表名2,表名3,…) file=路径\文件名.dmp fromuser=导出的用户名 touser=导入的用户名 log=路径\ds110.log

4、 另外,还可以只导入某个表空间

imp 用户名/密码@网络服务名 tablespaces=(表空间1,表空间2,表空间3,…) file=路径\文件名.dmp fromuser=导出的用户名 touser=导入的用户名 log=路径\ds110.log

Oracle

数据泵工具导出的步骤

系统目录注意oracle权限!!!

1、创建DIRECTORY(dba_directories表)

create directory dir_dp as 'D:/oracle/dir_dp';

2、授权

grant read,write on directory dir_dp to zftang;

---查看目录及权限

SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;

3、执行导出

expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log

跳过历史流水表的导出:

expdp user/user@fgisdb dumpfile=bak.dmp logfile=bak.log schemas=zytk35 directory=dir_dp EXCLUDE=TABLE:\”IN\(\’AC_PAYMENTBOOKS_HIS\’\)\”

导入步骤:

impdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log

(从linux oracle导入到windows oracle索引index时报错可能需要添加参数transform=segment_attributes:n)

重要!!

默认的目录对象DATA_PUMP_DIR测试

create or replace directory expdp_dir as '/opt/OracleBack/';

ls /opt/OracleBack/验证,

drop directory dir_dp ---删除用

select * from dba_directories;

grant read,write on directory expdp_dir to user;

select * from v$option where parameter = 'Partitioning';

expdp user/passwd@192.168.2.51/zytk40 schemas=ZYTK40 directory=expdp_dir dumpfile =expdp_test1.dmp logfile=expdp_test1.log

impdp user/passwd@192.168.2.51/zytk40 schemas=ZYTK40 directory=expdp_dir dumpfile = 1.dmp logfile=test.log

mkdir -p /opt/OracleBack

chown -R oracle:oinstall /opt/OracleBack/

chmod -R 775 /opt/OracleBack/ ---可忽略

大数据可分多个文件并行导出,如下:

expdp system/system@TMIS directory=FILE_TMIS dumpfile= tmis_expdp_%U.dmp parallel=24 schemas=sdtmis,SDRESDB logfile=exp_tmis_expdp.log cluster=n

Parallel=24并行导出,cluster=n 配合使用。

本文最后更新于2021-2-11,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Oracle数据库导入导出》
文章链接: https://www.sgtms.com/shorthand/26.html
本站资源仅供个人学习交流,转载或者引用本文内容请注明来源及作者,不允许用于商业用途。
分享到:

相关推荐

网友评论7

路人甲 表情
Ctrl+Enter快速提交
  1. #1

    限制启动startup restrict

    双少 12个月前 (04-28) 回复
  2. #2

    查询JOB_NAME:select job_name from dba_datapump_jobs;

    SGTMS 2年前 (2023-09-11) 回复
  3. #3

    rows=n在exp中就是表示只导出表结构,而不导出数据,其中rows为行的意思,n为no的意思。

    SGTMS 3年前 (2022-07-26) 回复
  4. #4

    括号等可能需要加反斜杠\转义哦。

    SGTMS 3年前 (2022-05-24) 回复
  5. #5

    select   'drop   table   '||tname|| '; '   from   tab; 生成删除所有表的脚本,执行之即可删掉所有的表,清空就把drop 改为truncate。

    SGTMS 3年前 (2022-05-24) 回复
  6. #6

    问:expdp在终止任务时,需要连上原来的任务,但是我已经退出了,如果连接上之前的任务呢?

    答:使用命令expdp 数据库用户名/密码@orcl attach=job名称。

    SGTMS 3年前 (2022-05-24) 回复
  7. #7

    问:如果在expdp命令中指定job名称?

    答:expdp命令后面跟上参数,job_name=job名称即可。

    SGTMS 3年前 (2022-05-24) 回复