传输表空间实验

简介:
windows xp操作系统,从数据库study把表空间test传输到数据库test。
study用户连接到study库,在test表空间建表test_test
SQL> create table test_test(id number,name varchar2(10)) tablespace test
  2  /
Table created
 
SQL> insert into test_test values(1,'guojje')
  2  /
 
1 row inserted
 
SQL> commit
  2  /
把索引建到表空间user上
SQL> create index idx_test_test on test_test(id) tablespace users
  2  /
Index created
在USERS表空间上建users_test表
SQL> create table users_test(id number,name varchar2(10)) tablespace users
  2  /
 
Table created
 
SQL> insert into users_test values(1,'guojje_u')
  2  /
 
1 row inserted
 
SQL> commit
  2  /
把索引建到表空间test上
SQL> create index idx_users_test on users_test(id) tablespace test
  2  /
Index created
执行自包含检查,分两种,一般自包含与严格自包含。
执行一般自含检查:
SQL> exec sys.dbms_tts.TRANSPORT_SET_CHECK('test',true)
PL/SQL procedure successfully completed
 
SQL>  select * from sys.transport_set_violations
  2  /
 
VIOLATIONS
--------------------------------------------------------------------------------
Index STUDY.IDX_USERS_TEST in tablespace TEST points to table STUDY.USERS_TEST in tablespace USERS
显示说含有别人的索引。
执行严格检查:
SQL> exec sys.dbms_tts.TRANSPORT_SET_CHECK('test',true,true)
PL/SQL procedure successfully completed
SQL>  select * from sys.transport_set_violations
  2  /
VIOLATIONS
-----------------------------------------------------------------------------------------------------
Index STUDY.IDX_TEST_TEST in tablespace USERS points to table STUDY.TEST_TEST in tablespace TEST
Index STUDY.IDX_USERS_TEST in tablespace TEST points to table STUDY.USERS_TEST in tablespace USERS
显示说含有别人的索引,自已的索引在别人那儿。
只要满足一般自包含就可以,只是索引没有被传输到目的数据库。即自已的可以丢掉,但不能把别人的拿走.
C:\Documents and Settings\Administrator>expdp  study/study@mystudy dumpfile=test.
dmp directory=test transport_tablespaces=test
Export: Release 10.2.0.1.0 - Production on 星期六, 19 6月, 2010 22:19:29
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "STUDY"."SYS_EXPORT_TRANSPORTABLE_01":   study/********@mystudy dumpfile=tes
t.dmp directory=test transport_tablespaces=test
ORA-39123: 数据泵可传输的表空间作业中止
ORA-29335: 表空间 'TEST' 不为只读
作业 "STUDY"."SYS_EXPORT_TRANSPORTABLE_01" 因致命错误于 22:19:32 停止
表空间必须只读状态:
SQL> alter tablespace test read only
  2  /
Tablespace altered
C:\Documents and Settings\Administrator>expdp  study/study@mystudy dumpfile=test.
dmp directory=test transport_tablespaces=test
Export: Release 10.2.0.1.0 - Production on 星期六, 19 6月, 2010 22:20:59
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "STUDY"."SYS_EXPORT_TRANSPORTABLE_01":   study/********@mystudy dumpfile=tes
t.dmp directory=test transport_tablespaces=test
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功加载/卸载了主表 "STUDY"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
STUDY.SYS_EXPORT_TRANSPORTABLE_01 的转储文件集为:
  D:\TEST\TEST.DMP
作业 "STUDY"."SYS_EXPORT_TRANSPORTABLE_01" 已于 22:21:12 成功完成
手工把数据文件拷过去,文件名可以更改。
C:\Documents and Settings\Administrator>impdp  'sys/system@test as sysdba' dumpfi
le=test.dmp directory=test transport_datafiles='D:\oracle\product\10.2.0\oradata
\TEST\DATAFILE\O1_MF_TEST_61SJGJ98_1.DBF'
Import: Release 10.2.0.1.0 - Production on 星期六, 19 6月, 2010 22:35:10
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "SYS"."SYS_IMPORT_TRANSPORTABLE_01"
启动 "SYS"."SYS_IMPORT_TRANSPORTABLE_01":   'sys/********@test AS SYSDBA' dumpfil
e=test.dmp directory=test transport_datafiles='D:\oracle\product\10.2.0\oradata\
TEST\DATAFILE\O1_MF_TEST_61SJGJ98_1.DBF'
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业 "SYS"."SYS_IMPORT_TRANSPORTABLE_01" 已于 22:35:13 成功完成
在数据库test上执行:
SQL> select * from study.test_test 
  2  /
 
        ID NAME
---------- ----------
         1 guojje
成功完成传输。
最后记得把两个库的test表空间都置入read write
SQL>alter tablespace test read, write.
备:
我的EM上执行空间传输时总报错,发现是在Convert datafile时出错,手工执行转换:
RMAN> convert tablespace TEST to platform 'Microsoft Windows IA (32-bit)'  format='D:\test\test.dbf' 报rman-20202:在恢复目录中未找到表空间。换其他表空间均正常。后来把表空间名改成TEST2,运行成功,可能RMAN把TEST当关键字了。

本文转自 anranran 51CTO博客,原文链接:http://blog.51cto.com/guojuanjun/335832

相关文章
|
存储 块存储
逻辑备份和物理备份简单理解
数据备份是为了尽可能快地全盘恢复运行计算机系统所需的数据和系统信息,它不仅在网络系统硬件故障或人为失误时起到保护作用,同时能在集群环境下失效切换之后备机能够正常接管关键业务的基础。当然,数据备份也是系统灾难恢复的前提之一。
8481 0
|
SQL Oracle 关系型数据库
[20170623]利用传输表空间恢复部分数据.txt
[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.
917 0
|
Oracle 关系型数据库 测试技术
[20170623]传输表空间补充测试.txt
[20170623]传输表空间补充测试.txt --//昨天测试了使用dblink+传输表空间,链接如下:http://blog.itpub.net/267265/viewspace-2141115/ --//今天补充测试看看加参数SQLFILE生成的脚本是什么内容.
998 0
|
SQL Oracle 关系型数据库
[20170623]利用传输表空间恢复数据库2.txt
[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.
768 0
|
关系型数据库 Unix Linux
【MOS】如何利用RMAN可传输表空间迁移数据库到不同字节序的平台(文档 ID 1983639.1)
如何利用 RMAN 可传输表空间迁移数据库到不同字节序的平台 (文档 ID 1983639.1) 适用于: Oracle Database - Enterprise Edition - 版本 10.
1395 0