Welcome 微信登录

首页 / 数据库 / MySQL / Oracle使用SQL传输表空间

源环境:RHEL 6.4 + Oracle 11.2.0.4
目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机
要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的环境。
  • 1.创建目录
  • 2.检查表空间自身的一致性
  • 3.expdp导出表空间的元数据
  • 4.转储文件和数据文件复制到目的数据库服务器
  • 5.在目的数据库上,impdp导入表空间
  • 6.表空间设为读写(源数据库和目的数据库)

1.创建目录

--源数据库create directory src_dpump_dir as "/tmp";create directory src_dbf_dir as "/oradata/data/SHITAN/datafile";--目的数据库create directory dest_dpump_dir as "/tmp";create directory dest_dbf_dir as "/u01/oradata01/CHICAGO/datafile";

2.检查表空间自身的一致性

exec dbms_tts.transport_set_check("DBS_D_JINGYU",TRUE);select * from transport_set_violations;--确定表空间设为只读alter tablespace DBS_D_JINGYU read only;

3.expdp导出表空间的元数据

expdp system/oracle dumpfile=EXPDP_META_SRC.DMP directory=src_dpump_dir transport_tablespaces=DBS_D_JINGYU--成功导出,部分日志信息如下:******************************************************************************Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:/tmp/EXPDP_META_SRC.DMP******************************************************************************Datafiles required for transportable tablespace DBS_D_JINGYU:/oradata/data/SHITAN/datafile/o1_mf_dbs_d_ji_cb0dbxt0_.dbfJob "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Thu Jan 21 16:22:50 2016 elapsed 0 00:01:15

4.转储文件和数据文件复制到目的数据库服务器

--创建源到目的数据库的数据链create public database link dest34 connect to system identified by oracle using "destDB";select * from dual@dest34;--复制数据库文件begin dbms_file_transfer.put_file("src_dbf_dir","o1_mf_dbs_d_ji_cb0dbxt0_.dbf","dest_dbf_dir","o1_mf_dbs_d_ji_cb0dbxt0_.dbf","dest34");end;/--复制转储文件begin dbms_file_transfer.put_file("src_dpump_dir","EXPDP_META_SRC.DMP","dest_dpump_dir","EXPDP_META_SRC.DMP","dest34");end;/

5.在目的数据库上,impdp导入表空间

--需要先创建用户jingyu并赋权create user jingyu identified by jingyu ;grant dba to jingyu;--导入表空间impdp system/oracle dumpfile=EXPDP_META_SRC.DMP directory=dest_dpump_dir transport_datafiles=/u01/oradata01/CHICAGO/datafile/o1_mf_dbs_d_ji_cb0dbxt0_.dbf--更改用户jingyu的默认表空间和临时表空间(可选,建议操作)create temporary tablespace temp_jingyu tempfile size 30M autoextend off;alter user jingyu TEMPORARY TABLESPACE temp_jingyuDEFAULT TABLESPACE dbs_d_jingyuQUOTA UNLIMITED ON dbs_d_jingyu;

6.表空间设为读写(源数据库和目的数据库)

--分别检查表空间状态select TABLESPACE_NAME, STATUS from dba_tablespaces;--设置表空间为读写状态alter tablespace DBS_D_JINGYU read write;更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址