Oracle使用SQL传输表空间

源环境:RHEL 6.4 + Oracle 11.2.0.4
目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机
要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的环境。

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_.dbf
Job "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 [email protected];
--复制数据库文件
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_jingyu
  DEFAULT TABLESPACE dbs_d_jingyu
  QUOTA UNLIMITED ON dbs_d_jingyu;

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

--分别检查表空间状态
select TABLESPACE_NAME, STATUS from dba_tablespaces;
--设置表空间为读写状态
alter tablespace DBS_D_JINGYU read write;
时间: 2024-08-23 04:26:16

Oracle使用SQL传输表空间的相关文章

Oracle Study之案例--异构平台传输表空间(Linux至AIX)

Oracle Study之案例--异构平台传输表空间(Linux至AIX) 系统架构: 可                   源    库               目标库 操作系统 Linux RH6    AIX 5.3-09 主机名 rh6(192.168.8.245) aix211(192.168.8.211) 数据版本 Oracle 11gR2 Oracle 11gR2 数据库名 prod orcl 表空间 test1 test1    可传输表空间概述 Oracle 的可传输表空

可传输表空间

oracle2271 对于可传输表空间有一个重要概念:自包含(Self-Contained). 在表空间传输的中,要求表空间集为自包含的,自包含表示用于传输的内部表空间集没有引用指向外部表空间集.自包含分为两种:一般自包含表空间集和完全(严格)自包含表空间集. 常见的以下情况是违反自包含原则的:  索引在内部表空间集,而表在外部表空间集(相反地,如果表在内部表空间集,而索引在外部表空间集,则不违反自包含原则).  分区表一部分区在内部表空间集,一部分在外部表空间集(对于分区表,要么全部包含在

Oracle传输表空间迁移数据库

本文是通过exp/imp方式实现,需要将数据库表空间处于只读模式,对于实时应用的生产数据库,可以采用rman方式进行传输表空间.   执行表空间传输有以下限制条件:    (1)源数据库和目标数据库必须处于相同的平台,10g以后可以用RMAN命令修改数据文件实现跨平台移动表空间.    (2)对于源数据库和目标数据库版本不同时,源数据库的版本必须低于目标数据库.    (3)两边数据库字符集和国家字符集必须一致.    (4)目标数据库不能存在同名的表空间. 1. 查询oracle支持的平台转换

Oracle网络公开课《请搭载我们的雷霆战机进行跨平台的数据迁移-可传输表空间》

雷霆战机是最近火热的空战射击游戏,刘老师说:请搭载我们的雷霆战机进行跨平台的数据迁移-可传输表空间,还犹豫什么,请立即登机,开启无尽挑战模式! 可以使用可传输表空间功能将表空间的集合从一个数据库拷贝到另一个数据库. 可传输表示空间在很多场景下都很有用: ■导出和导入数据仓库表的分区 ■在CD上发布结构化的数据 ■在多个数据库上拷贝表空间的多个只读 ■归档历史数据 ■执行表空间时间点恢复(TSPITR)Table Space point in time recovery 传输表空间有2种方法: ■

【TTS】传输表空间AIX asm -> linux asm

[TTS]传输表空间AIX asm -> linux asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用搜狗或3

【TTS】传输表空间Linux asm -> AIX asm

[TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用QQ或3

使用传输表空间迁移数据

一.检查是否满足传输表空间的条件1.检查源库与目标库的平台支持 源库: SQL> select d.name,i.version,d.platform_name,endian_format from v$transportable_platform tp,v$database d,v$instance i 2 where tp.PLATFORM_NAME=d.platform_name; NAME VERSION PLATFORM_NAME ENDIAN_FORMAT --------- ---

使用expdp/impdp传输表空间

----源库 prod SQL> select name from v$tablespace; NAME ------------------------------ SYSTEM SYSAUX UNDOTBS1 USERS TEMP TEMP1 TEST TEST1 EXPTEST 9 rows selected. SQL> select userenv('LANGUAGE') FROM DUAL; USERENV('LANGUAGE') --------------------------

[20170623]利用传输表空间恢复部分数据.txt

--//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.--//这样的操作模式仅仅减少expdp生成原数据的过程. --//我想一下,rman也支持建立传输表空间的命令.我仔细看了以前的笔记,发现这样最大的有点不用设置只读,实际上它是通过建立辅组实--//例来建立传输文件,理论讲可以恢复到特定的scn,这样可以利用它解决一些误操作的问题,还是通过例子来说明问题. 1.环境:--//前面的测试有点乱,我使用冷备份恢复数据库. [e