oracle小知識點11--傳輸表空間通過impdp/expdp
傳輸表空間可通過rman,imp/exp或impdp/expdp去實現,以下通過impdp/expdp實現.
os: centos 6.6
db version:11.2.0.4.0
以下測試:
##方便測試,源庫和目標庫為同一個庫
##源庫
[oracle@ct6605 ct66]$ sqlplus / as sysdba
##建立要傳輸的test表空間
SQL> create tablespace test datafile '/u02/oradata/ct66/test01.dbf' size 10m ;
##在test表空間下建表scott.test01
SQL> create table scott.test01 tablespace test as select 1 i from dual;
##在users表空間下建表scott.test01的索引scott.idx_testtts_01
SQL> create index scott.idx_testtts_01 on scott.test01(i) tablespace users;
##查詢表
SQL> select * from scott.test01;
I
----------
1
##確認平臺的版本和endian format是否支援
##這裡因為測試在同一個庫,肯定是支援.如果兩個庫的endian format不同,是需要有轉換的步驟
SQL> select b.name,i.version,b.platform_name, a.ENDIAN_FORMAT
from v$transportable_platform a,v$database b,v$instance i
where a.PLATFORM_ID=b.PLATFORM_ID;
/*
NAME VERSION PLATFORM_NAME ENDIAN_FORMAT
CT66 11.2.0.4.0 Linux x86 64-bit Little
*/
##確認表空間test是否是自包含
SQL> begin
dbms_tts.transport_set_check('test', true,true);
end;
/
##因為前面把表scott.test01的索引建在了users表空間下,這裡查詢出來不是自包含
SQL> select * from transport_set_violations;
VIOLATIONS
ORA-39907: Index SCOTT.IDX_TESTTTS_01 in tablespace USERS points to table SCOTT.TEST01 in tablespace TEST.
##重建索引到test表空間
SQL> alter index scott.idx_testtts_01 rebuild tablespace test;
##再次查檢表空間的自包含
SQL> begin
dbms_tts.transport_set_check('test', true,true);
end;
##已經滿足
SQL> select * from transport_set_violations;
VIOLATIONS
##查詢test表空間的block_size
SQL> select block_size from dba_tablespaces where tablespace_name='TEST';
BLOCK_SIZE
----------
8192
##建立用於匯出test表空間後設資料的目錄
SQL> create directory home_dump as '/home/oracle';
##把要傳輸的test表空間設為只讀
SQL> alter tablespace test read only;
##匯出test表空間的後設資料
[oracle@ct6605 ct66]$ expdp system dumpfile=tbs_test.dmp directory=home_dump transport_tablespaces=test nologfile=y
Export: Release 11.2.0.4.0 - Production on Wed Jan 6 15:09:31 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01": system/******** dumpfile=tbs_test.dmp directory=home_dump transport_tablespaces=test nologfile=y
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Master table "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
/home/oracle/tbs_test.dmp
******************************************************************************
Datafiles required for transportable tablespace TEST:
/u02/oradata/ct66/test01.dbf
Job "SYSTEM"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Wed Jan 6 15:10:00 2016 elapsed 0 00:00:24
##複製test表空間的資料檔案到目標資料庫.這裡因為是同一個庫的測試,所以先臨時複製到/home/oracle下
[oracle@ct6605 ct66]$ cp /u02/oradata/ct66/test01.dbf ~/test01.dbf
[oracle@ct6605 ~]$ sqlplus / as sysdba
##將要傳輸的test表空間設為讀寫,正常工作
SQL> alter tablespace test read write;
##目標庫:
##因為這裡測試,源庫和目標庫為同一個庫,所以要先刪除test表空間
SQL> drop tablespace test including contents and datafiles;
##此時表scott.test01也不存在了
SQL> select * from scott.test01;
/*
ORA-00942:table or view does not exist
*/
##檢查目標庫的db_block_size和傳輸的表空間的block_size是否一樣
SQL> select name,value from v$parameter where name ='db_block_size';
/*
NAME VALUE
db_block_size 8192
*/
##如果不一樣,需要增加傳輸的表空間所對應的block_size的cache.
alter system set db_xk_cachae_size=100m;
##複製test表空間的資料檔案到資料目錄
[oracle@ct6605 ct66]$ cp ~/test01.dbf /u02/oradata/ct66/
##匯入test表空間的後設資料
[oracle@ct6605 ct66]$ impdp system dumpfile=tbs_test.dmp directory=home_dump transport_datafiles=/u02/oradata/ct66/test01.dbf nologfile=y
Import: Release 11.2.0.4.0 - Production on Wed Jan 6 15:17:48 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01": system/******** dumpfile=tbs_test.dmp directory=home_dump transport_datafiles=/u02/oradata/ct66/test01.dbf nologfile=y
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SYSTEM"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Wed Jan 6 15:17:55 2016 elapsed 0 00:00:03
[oracle@ct6605 ~]$ sqlplus / as sysdba
##將目標庫的test表空間設為讀寫
SQL> alter tablespace test read write;
##此時可以看到scott.test01已經匯入
SQL> select * from scott.test01;
I
----------
1
備註:
1.源庫和目標庫的字符集必須相同.
2.傳輸表空間中含有XMLTypes時,須使用imp/exp,並確保imp/exp的constraints和triggers引數設定為y.
3.不能傳輸system表空間或sys使用者擁有的物件.
4.表空間可以傳輸到相同或更高版本的目標庫.
5.通過impdp/expdp的方式,需要在建立傳輸集之前,將表空間設為read only.如果生產庫無法read only,可考慮通過dataguard的快照資料庫方法或者通過rman.
6.以傳輸表空間匯入之後,最好對這個表空間做一次rman備份.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1972670/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- oracle小知識點12--傳輸表空間通過rmanOracle
- oracle小知識點14--xtts傳輸表空間OracleTTS
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- Oracle表空間小知識Oracle
- 使用EXPDP IMPDP傳輸不同資料庫的不同表空間(新增網路傳輸)資料庫
- expdp/impdp 遷移表空間
- oracle可傳輸表空間TTS小結OracleTTS
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- oracle小知識點10--表空間時間點恢復(TSPITR)Oracle
- 傳輸表空間操作-OracleOracle
- Oracle傳輸表空間(TTS)OracleTTS
- Oracle 傳輸表空間-RmanOracle
- 10g跨小版本的expdp/impdp表空間遷移(一)
- Oracle傳輸表空間學習Oracle
- Oracle 傳輸表空間-EXP/IMPOracle
- Oracle表空間傳輸詳解Oracle
- oracle expdp、impdp匯入從原表空間更換到其他表空間 ----匯入到另個表空間測試Oracle
- 通過RMAN-transport獲取傳輸表空間檔案
- oracle 傳輸表空間一例Oracle
- Oracle可傳輸表空間測試Oracle
- MySQL 傳輸表空間MySql
- MySQL表空間傳輸MySql
- 【XTTS】Oracle傳輸表空間xtts增量方式TTSOracle
- oracle表空間傳輸的限制條件Oracle
- oracle小知識點13--rman convert轉換表空間位元組順序Oracle
- mysql之 表空間傳輸MySql
- 總結-表空間傳輸
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(上)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(中)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(下)Oracle
- Oracle TTS ORA-39322: 表空間傳輸OracleTTS
- 跨平臺表空間遷移(傳輸表空間)
- oracle expdp and impdpOracle
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle