重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3559|回复: 0
打印 上一主题 下一主题

oracle 11g 传输表空间(数据迁移)

[复制链接]
跳转到指定楼层
楼主
发表于 2015-9-30 23:36:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
oracle 11g 传输表空间(数据迁移)




在同一台机器上实验,存储是ASM的。




Source 端:

库:OMS

用户:move01

表空间:ts01

Target 端:

库:DOMS

用户:move02




一、准备工作(建测试表空间、测试用户,赋权给用户):

Source 端:

SQL>create tablespace ts01 datafile '+DATAFILEDG' size 20M;

SQL>create user move01 identified by move01 default tablespace ts01;

SQL>grant connect,resource to move01;

SQL>grant read, write ON DIRECTORY backup TO move01;

在move01用户下建ts1表,插入测试数据,此步骤略过。

Target 端:

SQL>create user move02 identified by move02 ;

SQL>grant connect,resource to move02;

SQL>grant read, write ON DIRECTORY backup TO move02;




二、检查表空间自包含(就是改表空间里的数据没有和其他表空间数据有关联,如果

有关联会报错)

SQL> execute dbms_tts.transport_set_check('TS01', TRUE); --检测

SQL> select * from transport_set_violations; --查询结果(没有

记录说明没有错)




三、将表空间TS01设置成只读:

SQL> alter tablespace TS01 read only;




四、生成表空间集(包括expdp 导出的表空间的metadata和表空间对应的数据文件两

部分):

$ expdp dumpfile=ts01.dmp directory=backup

transport_tablespaces=ts01 transport_full_check=y logfile=TSET.log




Username: / as sysdba

。。。。。。




五、将Transportable Tablespace set 传送到Target端:

由于是同一台机器,所以expdp导出的表空间元数据就放在导出的文件所在的目录对

象(步骤一创建的backup)里;而表空间对应的数据文件则在asmcmd里用cp拷贝至目

标端的目录下。




六、在Target 系统上Import 表空间的metadata(使用move02用户,需要用到

remap_schema) :

$ impdp directory=backup dumpfile=ts01.dmp

transport_datafiles=+DATAFILEDG/ASM/DATAFILE/MOVE01.307.891772223

remap_schema=move01:move02 logfile=test.log




Username: / as sysdba

。。。。。。




七、结束验证,将表空间更改回读写。




Target 端:

SQL>select count(*) from move02.ts1;

Source 端:

alter tablespace ts01 read write;



总结:

1、在asmcmd里用cp拷贝数据文件时,asm到asm之间不能直接用数据文件原名,比如

:ASMCMD> cp +DATAFILEDG/OMS/DATAFILE/MOVE01.307.891772223

+DATAFILEDG/DOMS/DATAFILE/MOVE01.307.891772223 否则将报错!

而应该这样:

ASMCMD> cp +DATAFILEDG/OMS/DATAFILE/MOVE01.307.891772223

+DATAFILEDG/DOMS/DATAFILE/MOVE01

move01实际上是一个别名,实际对应的生成文件ASMCMD> ls -l可查询,如本例中的

查询结果显示:

move01 => +DATAFILEDG/ASM/DATAFILE/MOVE01.307.891772223



2、在导出导入时要用系统用户(sys或system都可)。但我在导出导入中以

expdp system/111111 ...impdp system/111111...这种方式却报错“ORA-39061: import mode TRANSPORTABLE conflicts with export mode SCHEMA”

最后在语句中去掉system/111111而在执行的提示中输入系统用户密码或直接输入"/ as sysdba"就通过了;郑老师的建议是expdp \'/ as sysdba\' ...impdp \'/ as sysdba\'也可以。而之前看的三思文档就是expdp system/111111 ...impdp system/111111...,后来又试了一次,结果还是报错------有点不明白。




3、本例是同一机器上同一存储结构上实验,如果是不同主机的异构平台还要转换字节顺序(参见三思笔记的convert)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-25 19:44 , Processed in 0.112152 second(s), 22 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表