不同的default tablespace資料遷移

zhanglei_itput發表於2009-03-13

    今天一個同事很肯定的告訴我,當imp物件時,如果匯出的原始表空間不存在的話會報錯,我奇怪,我覺得會匯入使用者的default tablespace,如果default tablespace沒有指定的話,那麼9i會匯入system tablespace, 10g會匯入users tablespace.

    親手做了一個試驗,證明我的理解沒有錯:

    匯出資料庫sid:testdb
    create user leiz
    identified by leiz
    default tablespace leiz
    grant connect, resource to leiz
   
    CREATE TABLESPACE "leiz"
    LOGGING
    DATAFILE 'D:\ORACLE\ORADATA\NCPCDB\leiz.ora' SIZE 5M EXTENT
    MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO 
    
    匯入資料庫sid:ncpcdb
    create user coolyl
    identified by coolyl
    default tablespace coolyl
    grant connect, resource to coolyl
   
    CREATE TABLESPACE "coolyl"
    LOGGING
    DATAFILE 'D:\ORACLE\ORADATA\NCPCDB\coolyl.ora' SIZE 5M EXTENT
    MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO

1. 匯出匯入使用者的預設表空間不一致   
C:\Documents and Settings\zhanglei>exp file=c:\leiz.dmp tables=test1
Export: Release 9.2.0.1.0 - Production on 星期五 3月 13 16:43:45 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
連線到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將匯出指定的表透過常規路徑 ...
. . 正在匯出表                           TEST1      23145 行被匯出
在沒有警告的情況下成功終止匯出。
C:\Documents and Settings\zhanglei>imp
fromuser=leiz touser=coolyl file=c:\leiz.dmp
Import: Release 9.2.0.1.0 - Production on 星期五 3月 13 16:44:30 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
連線到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
經由常規路徑匯出由EXPORT:V09.02.00建立的檔案
警告: 此物件由 LEIZ 匯出, 而不是當前使用者
已經完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的匯入
. . 正在匯入表                         "TEST1"      23145行被匯入
成功終止匯入,但出現警告。
select b.table_name, b.tablespace_name from user_tables b
TEST1 LEIZ
select b.table_name, b.tablespace_name from user_tables b
TEST1 COOLYL
結果:成功匯入,匯入到使用者的預設表空間下了,與有無原始表空間無關。

2. 匯入使用者未指定表空間  
9i -> 9i
C:\Documents and Settings\zhanglei>imp
fromuser=leiz touser=coolyl file=c:\leiz.dmp
Import: Release 9.2.0.1.0 - Production on 星期五 3月 13 16:44:30 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
連線到: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
經由常規路徑匯出由EXPORT:V09.02.00建立的檔案
警告: 此物件由 LEIZ 匯出, 而不是當前使用者
已經完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的匯入
. . 正在匯入表                         "TEST1"      23145行被匯入
成功終止匯入,但出現警告。
select b.table_name, b.tablespace_name from user_tables b
TEST1 SYSTEM

9i -> 10g
C:\Documents and Settings\zhanglei>imp
fromuser=leiz touser=coolyl file=c:\leiz.dmp
Import: Release 9.2.0.1.0 - Production on 星期五 3月 13 16:53:09 2009
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Produc
tionWith the Partitioning, OLAP and Data Mining options
經由常規路徑匯出由EXPORT:V09.02.00建立的檔案
警告: 此物件由 LEIZ 匯出, 而不是當前使用者
已經完成ZHS16GBK字符集和AL16UTF16 NCHAR 字符集中的匯入
. . 正在匯入表                         "TEST1"      23145行被匯入
成功終止匯入,但出現警告。
select b.table_name, b.tablespace_name from user_tables b
TEST1 USERS
結果:如果未指定使用者的預設表空間,9i自動匯入到system表空間,10g自動匯入到users表空間

總結論:實踐是檢驗真理的唯一標準

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-567223/,如需轉載,請註明出處,否則將追究法律責任。

相關文章