不同的default tablespace資料遷移(二)
前段時間做過不同default tablespace的測試,在imp時,首先imp到使用者的default tablespace(無論與exp資料庫伺服器中的tablespace是否一致),當沒有指定使用者表空間的時候,10g會自動imp到user表空間。
測試詳細過程見連結:http://space.itpub.net/9252210/viewspace-567223
但是最近發現有時候imp會報錯,報錯:ORA-00959: tablespace 'xx' does not exist,詳細資訊如下:
導致錯誤資訊的原因為:
1. 分割槽表
2. 表中含有blob,clob欄位
測試結果如下:
1. 第一個資料庫建立表空間及使用者
SQL>CREATE TABLESPACE "TEST1" DATAFILE '/oracle/oradata/test/test02.bdf' SIZE 5M
SQL> create user ecc_test1 identified by edd default tablespace test1;
User created.
SQL> grant connect,resource to ecc_test1;
Grant succeeded.
2. 第二個資料庫建立表空間及使用者
SQL>CREATE TABLESPACE "TEST2" DATAFILE '/oracle/oradata/dupt/test02.bdf' SIZE 5M ;
SQL> create user ecc_test2 identified by edd default tablespace test2;
User created.
SQL> grant connect,resource to ecc_test2;
Grant succeeded.
3. 使用者ecc_test1建立4個table(不指定表空間,指定表空間,含有lob欄位,分割槽表)
SQL> conn
Connected.
a. 不顯式指定物件表空間
SQL> create table t1_notb (id varchar(1));
Table created.
b.顯式指定物件表空間
SQL> create table t2_tb (id varchar(1)) tablespace test1;
Table created.
c. 含有lob欄位
SQL> create table t3_lob (id varchar(1), id_lob blob);
Table created.
d. 分割槽表
create table t4_par
(
id number,
id2 number
)
partition by range (id)
(
partition id11 values less than (2),
partition id22 values less than (4)
)
e. 查詢物件表空間
SQL> select table_name, tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T1_NOTB TEST1
T2_TB TEST1
T3_LOB TEST1
T4_PAR
4. exp 使用者 ecc_test1
C:\Users\Atao>exp file=c:\ecc_test.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 7月 17 18:53:42 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在匯出 pre-schema 過程物件和操作
. 正在匯出使用者 ECC_TEST1 的外部函式庫名
. 匯出 PUBLIC 型別同義詞
. 正在匯出專用型別同義詞
. 正在匯出使用者 ECC_TEST1 的物件型別定義
即將匯出 ECC_TEST1 的物件...
. 正在匯出資料庫連結
. 正在匯出序號
. 正在匯出簇定義
. 即將匯出 ECC_TEST1 的表透過常規路徑...
. . 正在匯出表 T1_NOTB匯出了 3 行
. . 正在匯出表 T2_TB匯出了 4 行
. . 正在匯出表 T3_LOB匯出了 1 行
. . 正在匯出表 T4_PAR
. . 正在匯出分割槽 ID11匯出了 0 行
. . 正在匯出分割槽 ID22匯出了 0 行
. 正在匯出同義詞
. 正在匯出檢視
. 正在匯出儲存過程
. 正在匯出運算子
. 正在匯出引用完整性約束條件
. 正在匯出觸發器
. 正在匯出索引型別
. 正在匯出點陣圖, 功能性索引和可擴充套件索引
. 正在匯出後期表活動
. 正在匯出實體化檢視
. 正在匯出快照日誌
. 正在匯出作業佇列
. 正在匯出重新整理組和子組
. 正在匯出維
. 正在匯出 post-schema 過程物件和操作
. 正在匯出統計資訊
成功終止匯出, 沒有出現警告。
5.imp使用者ecc_test2
C:\Users\Atao>imp file=c:\ecc_test.dmp full=y
Import: Release 10.2.0.1.0 - Production on 星期五 7月 17 18:57:39 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
警告: 這些物件由 ECC_TEST1 匯出, 而不是當前使用者
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 ECC_TEST1 的物件匯入到 ECC_TEST2
. . 正在匯入表 "T1_NOTB"匯入了 3 行
. . 正在匯入表 "T2_TB"匯入了 4 行
IMP-00017: 由於 ORACLE 錯誤 959, 以下語句失敗:
"CREATE TABLE "T3_LOB" ("ID" VARCHAR2(1), "ID_LOB" BLOB) PCTFREE 10 PCTUSED"
" 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROU"
"PS 1 BUFFER_POOL DEFAULT) TABLESPACE "TEST1" LOGGING NOCOMPRESS LOB ("ID_LO"
"B") STORE AS (TABLESPACE "TEST1" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSI"
"ON 10 NOCACHE LOGGING STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 "
"BUFFER_POOL DEFAULT))"
IMP-00003: 遇到 ORACLE 錯誤 959
ORA-00959: tablespace 'TEST1' does not exist
IMP-00017: 由於 ORACLE 錯誤 959, 以下語句失敗:
"CREATE TABLE "T4_PAR" ("ID" NUMBER, "ID2" NUMBER) PCTFREE 10 PCTUSED 40 IN"
"ITRANS 1 MAXTRANS 255 TABLESPACE "TEST1" LOGGING PARTITION BY RANGE ("ID" )"
" (PARTITION "ID11" VALUES LESS THAN (2) PCTFREE 10 PCTUSED 40 INITRANS 1 "
"MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POO"
"L DEFAULT) TABLESPACE "TEST1" LOGGING NOCOMPRESS, PARTITION "ID22" VALUES L"
"ESS THAN (4) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL"
" 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "TEST1"
"" LOGGING NOCOMPRESS )"
IMP-00003: 遇到 ORACLE 錯誤 959
ORA-00959: tablespace 'TEST1' does not exist
成功終止匯入, 但出現警告。
SQL> select table_name, tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
T2_TB TEST2
T1_NOTB TEST2
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-609529/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 不同的default tablespace資料遷移
- 伺服器資料遷移的方法-硬體不同如何遷移資料伺服器
- 利用TRANSPORT_TABLESPACE特性在同一db下不同使用者之間遷移資料!
- 遷移資料庫的檔案到不同路徑(轉)資料庫
- 【資料遷移】RMAN遷移資料庫到ASM(二)切換資料檔案到ASM資料庫ASM
- OGG資料庫遷移方案(二)資料庫
- 資料的遷移
- sqlplus copy在不同庫db遷移資料SQL
- Datapump資料遷移前的準備工作(二)
- 遷移資料.
- 【遷移】使用rman遷移資料庫資料庫
- GoldenGate資料遷移的問題總結(二)Go
- 使用資料庫冷備份方式進行資料庫遷移,資料庫檔案遷移到不同的目錄資料庫
- Specifying the Default Tablespace Type (78)
- 【資料遷移】使用傳輸表空間遷移資料
- Kafka資料遷移Kafka
- 資料庫遷移資料庫
- redis資料遷移Redis
- 轉資料遷移
- ORACLE 資料遷移Oracle
- DXWB 資料遷移
- Harbor資料遷移
- 資料檔案的遷移
- 【資料遷移】RMAN遷移資料庫到ASM(三)遷移onlinelog等到ASM資料庫ASM
- Overriding the Default Tablespace Type (79)
- Redo Log之二:遷移redo log到不同的儲存路徑
- 資料庫移動路徑一例。相同平臺不同路徑遷移資料庫
- 不同使用者,不同表空間遷移
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- 不同場景下 MySQL 的遷移方案MySql
- 資料遷移(1)——通過資料泵表結構批量遷移
- 資料庫檔案的遷移資料庫
- ABP8.1的資料遷移
- gitlab資料遷移Gitlab
- 資料庫遷移 :理解資料庫
- Mysql資料遷移方法MySql
- Fastdfs資料遷移方案AST
- 【Redis】 redis資料遷移Redis