利用TRANSPORT_TABLESPACE特性把9i的表空間遷移到10g測試!

warehouse發表於2007-01-13

一種非常好資料庫升級的思路,測試的起源來自於下面的帖子:

http://www.itpub.net/705187.html

在結合下面的例子相信在異構os上也沒有問題,遺憾的是手頭沒有環境,懶的搭建測試了!

把9i 下的表空間遷移到10g上,建立表空間trans_tbs時datafile拉了副檔名了,看起來不是很舒服,對付著看吧!:)
C:>sqlplus system/manager

SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:29:19 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

SQL> show parameter db_name

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string DB9i
SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------

C:ORACLEORA92DB9ISYSTEM01.DBF
C:ORACLEORA92DB9IUNDOTBS01.DBF
C:ORACLEORA92DB9IUSERS01.DBF
--建立一個自包含的表空間
SQL> create tablespace trans_tbs datafile 'C:ORACLEORA92DB9Itrans_tbs' size
5m ;

表空間已建立。

SQL> create user xys identified by manager default tablespace trans_tbs;

使用者已建立

SQL> grant connect , resource , dba to xys;

授權成功。

SQL> connect xys/manager
已連線。
--建立測試資料
SQL> create table t as select *from dba_objects;

表已建立。
--將要transport tablespace改為read only是必須的!
SQL> alter tablespace trans_tbs read only;

表空間已更改。

SQL> host exp 'sys/manager as sysdba' file='E:trans_tbstrans_tbs.dmp' transpor
t_tablespace=y tablespaces=TRANS_TBS

Export: Release 9.2.0.1.0 - Production on 星期六 1月 13 21:35:43 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


連線到: Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 將不會匯出表資料(行)
關於匯出可傳輸的表空間後設資料...
用於表空間 TRANS_TBS...
. 正在匯出群集定義
. 正在匯出表定義
. . 正在匯出表 T
. 正在匯出引用完整性約束條件
. 正在匯出觸發器
. 結束匯出可傳輸的表空間後設資料
在沒有警告的情況下成功終止匯出。

SQL> EXIT
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開

C:>SET ORACLE_SID=ORCL

C:>sqlplus system/system

SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:45:42 2007

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 file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF

SQL> host copy C:oracleora92DB9itrans_tbs E:ORACLEPRODUCT10.2.0ORADATAO
RCLtrans_tbs
已複製 1 個檔案。

SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys

Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:48 2007

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

經由常規路徑由 EXPORT:V09.02.00 建立的匯出檔案
即將匯入可傳輸的表空間後設資料...
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
IMP-00017: 由於 ORACLE 錯誤 29343, 以下語句失敗:
"BEGIN sys.dbms_plugts.checkUser('XYS'); END;"
IMP-00003: 遇到 ORACLE 錯誤 29343
ORA-29343: 資料庫中不存在使用者 XYS (從使用者 XYS 對映)
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1895
ORA-06512: 在 line 1
IMP-00000: 未成功終止匯入
--建立使用者是必須的,否則會出現上面的錯誤!
SQL> create user xys identified by manager default tablespace users;

使用者已建立。

SQL> grant dba , connect, resource to xys;

授權成功。

SQL> host imp 'sys/system as sysdba' transport_tablespace=y tablespaces=TRANS_TB
s file='E:trans_tbstrans_tbs.dmp' datafiles='E:ORACLEPRODUCT10.2.0ORADATA
ORCLtrans_tbs' tts_owners=xys fromuser=xys touser=xys

Import: Release 10.2.0.1.0 - Production on 星期六 1月 13 22:46:07 2007

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

經由常規路徑由 EXPORT:V09.02.00 建立的匯出檔案
即將匯入可傳輸的表空間後設資料...
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 XYS 的物件匯入到 XYS
. . 正在匯入表 "T"
成功終止匯入, 沒有出現警告。

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------

E:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUNDOTBS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLSYSAUX01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF
E:ORACLEPRODUCT10.2.0ORADATAORCLTRANS_TBS

SQL> CONNECT XYS/MANAGER
已連線。
SQL> SELECT count (*) FROM T;

COUNT(*)
----------
6166


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

相關文章