传输表空间实验

简介:
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

相关文章
|
关系型数据库 MySQL 数据库
mysql使用传输表空间对大表或分区表进行快速复制
mysql使用传输表空间对大表或分区表进行快速复制
2089 0
|
SQL Oracle 关系型数据库
ORA-08104: 该索引对象68100正在被联机建立或重建
ORA-08104: 该索引对象68100正在被联机建立或重建 测试人员报告某个sql查询操作比较慢,希望协助查找一下原因。 检查发现IDX_LOG_BUSINON 碎片较为严重,决定重建索引。
1607 0
|
SQL Oracle 关系型数据库
[20170623]利用传输表空间恢复部分数据.txt
[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.
935 0
|
Oracle 关系型数据库 测试技术
[20170623]传输表空间补充测试.txt
[20170623]传输表空间补充测试.txt --//昨天测试了使用dblink+传输表空间,链接如下:http://blog.itpub.net/267265/viewspace-2141115/ --//今天补充测试看看加参数SQLFILE生成的脚本是什么内容.
1013 0
|
SQL Oracle 关系型数据库
[20170623]利用传输表空间恢复数据库2.txt
[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.
780 0