Oracle exp/imp:源和目标表空间不同时的处理方法

原创 2016年08月31日 15:50:24

场景描述:

1、做一个从UAT到PRD的Schema迁移,UAT环境有sys用户,PRD环境没有sys用户,由于权限限制,没办法使用expdp/impdp,只好选择exp/imp命令;

2、UAT和PRD环境的TNS已明确,假设UAT环境的TNS配置为:TNS_UAT,PRD环境的配置为:TNS_PRD;

3、PRD环境的DB USER已建好(其他人建好提供的),和UAT环境的是一样的,假设都为user/pwd;

4、UAT和PRD环境,user用户的表空间名不同,假设UAT环境表空间为:TBSP_UAT,PRD环境为TBSP_PRD;

当两个user的表空间不同时无法直接exp/imp(不妨尝试一下),所以找了以下两种解决办法:

方法一:

1、使用exp命令从UAT库导出user用户数据文件Schema_USER_BAK.dmp,命令格式为:

EXP  user/pwd@TNS_UAT  BUFFER=64000  FILE=D:\SCHEMA_USER_BAK.dmp  OWNER=USER(参数按需添加)

2、使用Notepad++等文本工具打开文件,查找出其中的表空间信息,将SCHEMA_USER_BAK.dmp文件中的UAT环境表空间名TBSP_UAT全部替换PRD对应的表空间名TBSP_PRD,修改后的文件另存为SCHEMA_USER.dmp;

3、然后使用imp命令将SCHEMA_USER.dmp文件导入给PRD环境的user用户,命令格式为:

IMP  user/pwd@TNS_PRD   BUFFER=64000   FILE=D:\SCHEMA_USER.dmp FROMUSER=USER  TOUSER=USER

4、OK,方法一完成。

但是,假设UAT环境的user用户的数据量很大,导出的dmp文件通常有3GB、4GB甚至更大,此时就无法通过Notepad++或者UE等编辑器直接去编辑替换表空间信息了,方法一就行不通了,所以这时有了方法二。

方法二:

1、修改UAT环境user用户的表空间名为PRD环境对应的表空间名:(修改之前记得备份)

ALTER TABLESPACE TBSP_UAT  RENAME TO  TBSP_PRD

2、导出UAT环境user用户:

EXP  user/pwd@TNS_UAT  BUFFER=64000  FILE=D:\SCHEMA_USER.dmp  OWNER=USER

3、将导出的dmp文件导入给PRD环境的user用户:

IMP  user/pwd@TNS_PRD   BUFFER=64000   FILE=D:\SCHEMA_USER.dmp FROMUSER=USER  TOUSER=USER

4、还原UAT环境user用户的表空间名:

ALTER TABLESPACE TBSP_PRD  RENAME TO  TBSP_UAT

5、OK,方法二完成。

上述两种方法亲测有效,但是可能会有特殊情况,至于特殊情况是什么,那就不好说了。所谓特殊情况特殊处理,所以还得各位小伙伴多多研究了。


版权声明:本文为博主原创文章,转载请注明出处,多谢。

相关文章推荐

如何将EXP出来的数据IMP进不同的表空间

Author:KamusMail:kamus@itpub.netDate:2004-1 经常有人会问:原来的数据在USERS表空间里面,我想把它IMP进APP表空间,我已经修改了目的用户的默认表空间,...
  • Kamus
  • Kamus
  • 2004-06-10 10:37
  • 8567

将DMP导入到不同的表空间中

1,用imp导出数据    cmd进入orcle安装目录bin下,输入以下命令:       exp username/password@ORACLEEPP file=c:\hysjb.dmp ...

oracle通过impdp导入不同表用户、不同表空间的数据

impdp smtj2012/密码@localhost/devdb DIRECTORY=dump_dir DUMPFILE=bkmmtdb_smtj20130417120001.dmp remap_s...
  • tegwy
  • tegwy
  • 2013-04-21 17:34
  • 31767

Oracle导入dmp备份文件到不同的表空间中

原文链接:http://www.2cto.com/database/201211/171081.html 将DMP导入到不同的表空间中   1,用imp导出数据    cmd进入orcle安装目录...

oracle通过impdp导入不同表用户、不同表空间的数据

Oracle [sql] view plaincopy impdp smtj2012/密码@localhost/devdb DIRECTORY=dump...

Oracle中exp,imp的TableSpace表空间问题

当用EXP导出表,其表的表空间和需要导入的表空间不一致时,有两种处理方法。 1.修改该表的表空间语句。  如有表T1,所在表空间为USER。直接修改其表空间必须先删除此表数据,而且当有几百张表时,...

oracle用exp\imp导出导入,及创建表空间与用户

oracle exp导出表结构: exp username/pwd@sid file=D:\db1.dmp owner=(username) rows=n; 上面命令,将rows=n参数去掉,会将...

Oracle用imp导入用户表时选择表空间的问题

自己觉得对Oracle还掌握得不错,不过昨天隔壁实验室的同学问了我一个问题让我郁闷了一把。她在一个数据库里把一个用户A的在表空间AA上的表用exp导出到exp.dmp文件中,再把它导入到另一台机器上的...

oracle imp导入库到指定表空间

1.创建表空间 create tablespace example_tablespace datafile 'e:\****.dbf' size 100m reuse autoextend on...

oracle 数据库imp操作导入dmp文件时表空间问题

一: 假设数据用户USER1使用默认表空间TS1,用户USER2使用默认表空间TS2,现在将USER1的数据导入到USER2,要求使用表空间TS2。通过IMP命令参数tablespaces指定表空间...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)