傳輸表空間TABLESPACES、TRANSPORT_TABLESPACE、TTS_FULL_CHECK
使用exp/imp將表空間data_tbs從a庫傳輸?shù)絙庫?下面是準(zhǔn)備工作。
create tablespace data_tbs;
create tablespace idx_tbs;
create table t(x varchar2(10))tablespace data_tbs;
create index idx_t on t(x) tablespaceidx_tbs;
insert into t ;
(1)在sys用戶下創(chuàng)建的(注:導(dǎo)出是錯(cuò)誤的)
C:\Documents and Settings\Administrator>set oracle_sid=orcl
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 10:36:38 2011
Copyright (c) 1982, 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
SQL> CREATE TABLESPACE data_tbs
2 DATAFILE 'data_tbs' SIZE 100M AUTOEXTEND ONNEXT 100M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空間已創(chuàng)建。
SQL> CREATE TABLESPACE idx_tbs
2 DATAFILE 'idx_tbs' SIZE 10M AUTOEXTEND ONNEXT 10M MAXSIZE UNLIMITED LOGGING
3 EXTENT MANAGEMENT LOCAL SEGMENT SPACEMANAGEMENT AUTO ;
表空間已創(chuàng)建。
SQL> create table t(x varchar2(10)) tablespace data_tbs;
表已創(chuàng)建。
SQL> create index idx_t on t(x) tablespace idx_tbs;
索引已創(chuàng)建。
SQL> insert into t select object_id from dba_objects;
已創(chuàng)建50407行。
SQL> insert into t select * from t;
已創(chuàng)建50407行。
SQL> commit;
SQL> alter tablespace data_tbs read only;
表空間已更改。
SQL> alter tablespace idx_tbs read only;
表空間已更改。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
PL/SQL 過程已成功完成。
SQL> SELECT * FROMsys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SYS.IDX_T in tablespace IDX_TBS points to table SYS.T intablespace DATA_T
BS
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> delete from sys.transport_set_violations;
已刪除2行。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
PL/SQL 過程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
-------------------------------------------------------------------------------
Sys owned object IDX_Tin tablespace IDX_TBS not allowed in pluggable set
Sys owned object T intablespace DATA_TBS not allowed in pluggable set
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 斷開
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs) transport_Tab
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 11:16:40 2011
Copyright (c) 1982, 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
已導(dǎo)出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不導(dǎo)出表數(shù)據(jù) (行)
即將導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù)...
EXP-00008: 遇到 ORACLE 錯(cuò)誤 29341
ORA-29341: 可傳送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 導(dǎo)出終止失敗
C:\Documents and Settings\Administrator>
注:sys用戶下有問題,具體看后面的總結(jié)
(2)使用scott 用戶操作
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:24:34 2011
Copyright (c) 1982, 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
SQL> drop table t;
表已刪除。
SQL> alter tablespace data_tbs read write;
表空間已更改。
SQL> alter tablespace idx_tbs read write;
表空間已更改。
SQL> conn scott/tiger
已連接。
SQL> create table t2(x varchar2(10)) tablespace data_tbs;
表已創(chuàng)建。
SQL> create index idx_t on t2(x) tablespace idx_tbs;
索引已創(chuàng)建。
SQL> insert into t2 select object_id from all_objects;
已創(chuàng)建46677行。
SQL> insert into t2 select object_id from all_objects;
已創(chuàng)建46677行。
SQL> commit;
提交完成。
SQL> conn sys/ymh as sysdba;
已連接。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE); ===========>單個(gè)表空間自包含檢查
PL/SQL 過程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>有一個(gè)關(guān)聯(lián),自包含檢查不通過
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> delete from sys.transport_set_violations;
已刪除 1 行。
SQL> commit;
提交完成。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE); ===========>兩個(gè)有關(guān)聯(lián)的表空間自包含檢查
PL/SQL 過程已成功完成。
SQL> SELECT * FROM sys.transport_set_violations;===========>兩個(gè)一起檢查通過
未選定行
SQL> alter tablespace data_tbs read only;
表空間已更改。
SQL> alter tablespace idx_tbs read only;
表空間已更改。
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -Production
With the Partitioning, OLAP and Data Mining options 斷開
C:\Documents and Settings\Administrator>exp \"sys/ymhas sysdba\" file=d:/tbs.dmp tablespaces=(data_tbs,idx_tbs)transport_tablespace=y
tts_full_check=y
=======================>將兩個(gè)表空間一起導(dǎo)出,不要數(shù)據(jù)(tablespaces=(data_tbs,idx_tbs):要導(dǎo)出的表空間;transport_tablespace=y:只導(dǎo)出元數(shù)據(jù);tts_full_check=y進(jìn)行完全自包含檢查)
Export: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:21:22 2011
Copyright (c) 1982, 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
已導(dǎo)出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不導(dǎo)出表數(shù)據(jù) (行)
即將導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù)...
對(duì)于表空間 DATA_TBS...
. 正在導(dǎo)出簇定義
. 正在導(dǎo)出表定義
. . 正在導(dǎo)出表 T2 ===========è沒有數(shù)據(jù)導(dǎo)出
對(duì)于表空間 IDX_TBS...
. 正在導(dǎo)出簇定義
. 正在導(dǎo)出表定義
. 正在導(dǎo)出引用完整性約束條件
. 正在導(dǎo)出觸發(fā)器
. 結(jié)束導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù)
成功終止導(dǎo)出, 沒有出現(xiàn)警告。
(3)復(fù)制文件
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:44:37 2011
Copyright (c) 1982, 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
SQL> select name from v$datafile where name like '%_TBS';
NAME
--------------------------------------------------------------------------------
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBS
D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBS
SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 斷開
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\IDX_TBSD:\oracle\product\10.2.0\oradata\test
已復(fù)制 1 個(gè)文件。
C:\Documents and Settings\Administrator>copyD:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_TBSD:\oracle\product\10.2.0\oradata\test
已復(fù)制 1 個(gè)文件。
C:\Documents and Settings\Administrator>cd ../..
C:\>d:
D:\>cd D:\oracle\product\10.2.0\oradata\test
D:\oracle\product\10.2.0\oradata\test>dir *_tbs
驅(qū)動(dòng)器 D 中的卷是安裝
卷的序列號(hào)是3451-8864
D:\oracle\product\10.2.0\oradata\test 的目錄
2011-06-24 13:28 104,865,792 DATA_TBS
2011-06-24 13:28 10,493,952 IDX_TBS
2 個(gè)文件 115,359,744 字節(jié)
0 個(gè)目錄40,376,631,296 可用字節(jié)
D:\oracle\product\10.2.0\oradata\test>
(4)導(dǎo)入另一個(gè)庫
C:\Documents and Settings\Administrator>set oracle_sid=test
C:\Documents and Settings\Administrator>echo %oracle_sid%
test
C:\Documents and Settings\Administrator>sqlplus sys/ymh assysdba;
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 13:54:59 2011
Copyright (c) 1982, 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
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -------------------------------------
service_names string test
C:\Documents and Settings\Administrator>imp sys/ymh@test assysdba' file='d:/tbs.dmp' tablespaces=(data_tbs,idx_tbs) transport_tablespace=y
datafiles='D:\oracle\product\10.2.0\oradata\test\DATA_TBS,D:\oracle\product\10.2.0\oradata\test\IDX_TBS
Import: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:45:00 2011
Copyright (c) 1982, 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
經(jīng)由常規(guī)路徑由 EXPORT:V10.02.01 創(chuàng)建的導(dǎo)出文件
即將導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù)...
已經(jīng)完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導(dǎo)入
. 正在將 SYS 的對(duì)象導(dǎo)入到 SYS
. 正在將 SYS 的對(duì)象導(dǎo)入到 SYS
. 正在將 SCOTT 的對(duì)象導(dǎo)入到 SCOTT
. . 正在導(dǎo)入表 "T2"
. 正在將 SYS 的對(duì)象導(dǎo)入到 SYS
成功終止導(dǎo)入, 沒有出現(xiàn)警告。
(5)檢查數(shù)據(jù)
C:\Documents and Settings\Administrator>sqlplusscott/tiger@test
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 6月 24 14:46:07 2011
Copyright (c) 1982, 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
SQL> conn sys/ymh@test as sysdba;
已連接。
SQL> show parameter service
NAME TYPE VALUE
------------------------------------ -----------------------------------------
service_names string test
SQL> conn scott/tiger
已連接。
SQL> select count(1) from t2;
COUNT(1)
----------
93354
SQL>
總結(jié)錯(cuò)誤:(1) ORA-29335: 表空間 'DATA_TBS' 不為只讀
導(dǎo)出的表空間必須為只讀狀態(tài),否則出現(xiàn)如下錯(cuò)誤
EXP-00008: 遇到 ORACLE 錯(cuò)誤 29335
ORA-29335: 表空間 'DATA_TBS' 不為只讀
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 507
ORA-06512: 在 line 1
EXP-00000: 導(dǎo)出終止失敗
(2) ORA-29341: 可傳送集不是自包含的
“可傳送集不是自包含的”的兩種處理方法:
1、將所有的依賴表空間一起傳,比如該題中,一個(gè)表空間會(huì)出現(xiàn)自檢錯(cuò)誤,兩個(gè)表空間同時(shí)自檢則不會(huì)。
SQL> Executesys.dbms_tts.transport_set_check('data_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------
Index SCOTT.IDX_T in tablespace IDX_TBS points to tableSCOTT.T2 in tablespace DATA_TBS
SQL> Executesys.dbms_tts.transport_set_check('data_tbs,idx_tbs',TRUE,TRUE);
SQL> SELECT * FROM sys.transport_set_violations;
未選定行
SQL>
2、講表空間處理為自包含:比如將索引刪除,導(dǎo)到其他數(shù)據(jù)庫后重建索引,或者將索引重建到數(shù)據(jù)文件的表空間,然后導(dǎo)出一個(gè)表空間
注意:當(dāng)再sys或system用戶下創(chuàng)建表時(shí),使用表空間傳輸也會(huì)出現(xiàn)“可傳送集不是自包含的”,并且無法兩個(gè)表空間同時(shí)傳輸,所以最好必要導(dǎo)出sys和system建表使用的表空間,不管是不是自帶的system還是新建的表空間。
EXP-00008: 遇到 ORACLE 錯(cuò)誤 29341
ORA-29341: 可傳送集不是自包含的
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1387
ORA-06512: 在 line 1
EXP-00000: 導(dǎo)出終止失敗
(3) IMP-00053: 導(dǎo)入模式與導(dǎo)出轉(zhuǎn)儲(chǔ)文件不兼容
1、可能是跨平臺(tái)時(shí)存儲(chǔ)格式不同導(dǎo)致(未測(cè)試)
2、同一平臺(tái)下,注意導(dǎo)出的參數(shù)和導(dǎo)入的參數(shù),因?yàn)閷?dǎo)出時(shí)忘了加transport_tablespace=y ,把數(shù)據(jù)也改導(dǎo)出,導(dǎo)入時(shí)又加入該參數(shù),導(dǎo)致錯(cuò)誤:
IMP-00053: 導(dǎo)入模式與導(dǎo)出轉(zhuǎn)儲(chǔ)文件不兼容
IMP-00000: 未成功終止導(dǎo)入
(4) ORA-27041: 無法打開文件 O/S-Error: (OS2) 系統(tǒng)找不到指定的文件。
一個(gè)普通的導(dǎo)入錯(cuò)誤
IMP-00003: 遇到 ORACLE 錯(cuò)誤 1565
ORA-01565: 標(biāo)識(shí)文件'D:\oracle\product\10.2.0\oradata\test\DATA_TBS' 時(shí)出錯(cuò)
ORA-27041: 無法打開文件
OSD-04002: 無法打開文件
O/S-Error: (OS 2) 系統(tǒng)找不到指定的文件。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功終止導(dǎo)入
(5) ORA-19722: 數(shù)據(jù)文件D:\oracle\oradata\DATA_TBS版本錯(cuò)誤
表空間設(shè)置為只讀就是為了保證數(shù)據(jù)的一致性,因此只有講表空間的數(shù)據(jù)文件拷貝完成之后才能在源數(shù)據(jù)庫恢復(fù)表空間的可讀寫狀態(tài)。
否則,在目標(biāo)數(shù)據(jù)庫導(dǎo)入的時(shí)候就會(huì)出現(xiàn)下列錯(cuò)誤:
IMP-00003: 遇到 ORACLE 錯(cuò)誤 19722
ORA-19722: 數(shù)據(jù)文件D:\oracle\oradata\DATA_TBS版本錯(cuò)誤
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 2065
ORA-06512: 在 line 1
IMP-00000: 未成功終止導(dǎo)入
(6) PLS-00201: 必須聲明標(biāo)識(shí)符'DBMS_PLUGTS.NEWTABLESPACE'
使用普通用戶或system用戶導(dǎo)入時(shí)如果出現(xiàn)如下錯(cuò)誤,可以使用 'sys/ymh as sysdba'來導(dǎo)入,可以加入?yún)?shù)TTS_OWNERS=scott(TTS_OWNERS未詳細(xì)測(cè)試)
已經(jīng)完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導(dǎo)入
IMP-00003: 遇到 ORACLE 錯(cuò)誤 6550
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必須聲明標(biāo)識(shí)符 'DBMS_PLUGTS.NEWTABLESPACE'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
IMP-00000: 未成功終止導(dǎo)入
(7) OSD-04002: 無法打開文件 O/S-Error: (OS123) 文件名、目錄名或卷標(biāo)語法不正確。
如果有多個(gè)數(shù)據(jù)文件,datafile=XXX,XXX,中間用逗號(hào)隔開即可,不要用""號(hào)將多個(gè)概括,否則出現(xiàn)如下錯(cuò)誤
IMP-00003: 遇到 ORACLE 錯(cuò)誤 1565
ORA-01565: 標(biāo)識(shí)文件'D:\oracle\oradata\DATA_TBS,D:\oracle\oradata\IDX_TBS' 時(shí)出錯(cuò)
ORA-27041: 無法打開文件
OSD-04002: 無法打開文件
O/S-Error: (OS 123) 文件名、目錄名或卷標(biāo)語法不正確。
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1801
ORA-06512: 在 line 1
IMP-00000: 未成功終止導(dǎo)入
當(dāng)前題目:利用exp/imp傳輸表空間
標(biāo)題來源:http://www.rwnh.cn/article8/gshdip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、全網(wǎng)營銷推廣、做網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、面包屑導(dǎo)航、
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)