Oracle中跨平台傳輸資料表空間

來源:互聯網
上載者:User

 

Oracle中的傳輸資料表空間功能, 用來將一個執行個體中的資料表空間和資料檔案移到另一個執行個體中. 執行起來方便, 快捷.
但是要使用該功能有一些限制:
需要兩個平台一致.
必須有相同的字元集和多語言字元集.
要求兩個執行個體的db block size 大小相等, 如不相等則需要相容9.0以上等.

具體步驟如下:

SQL> alter tablespace example read only;

Tablespace altered

SQL> --example資料表空間實驗
SQL> connect sys/system as sysdba
Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0
Connected as SYS

SQL> execute dbms_tts.transport_set_check('EXAMPLE',TRUE);

PL/SQL procedure successfully completed

SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;

VIOLATIONS
--------------------------------------------------------------------------------

SQL> --如果上面的查詢可以查到記錄,則說明不適合資料表空間傳輸條件, 需要根據實際
SQL> --情況將對象移到別的資料表空間;
SQL>

C:/Documents and Settings/hawk>exp userid='sys/system as sysdba' transport_table
space=y tablespaces=EXAMPLE file ='d:/a.dmp';

Export: Release 10.1.0.2.0 - Production on 星期三 7月 12 14:46:27 2006

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

串連到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集
注: 將不匯出表資料 (行)
即將匯出可傳輸的資料表空間中繼資料...
對於資料表空間 EXAMPLE...
. 正在匯出簇定義
. 正在匯出表定義
. . 正在匯出表                         REGIONS
. . 正在匯出表                       COUNTRIES
. . 正在匯出表                       LOCATIONS
. . 正在匯出表                     DEPARTMENTS
. . 正在匯出表                            JOBS
. . 正在匯出表                       EMPLOYEES
. . 正在匯出表                     JOB_HISTORY
. . 正在匯出表                       CUSTOMERS
. . 正在匯出表                      WAREHOUSES
. . 正在匯出表                     ORDER_ITEMS
. . 正在匯出表                          ORDERS
. . 正在匯出表                     INVENTORIES
. . 正在匯出表             PRODUCT_INFORMATION
. . 正在匯出表            PRODUCT_DESCRIPTIONS
. . 正在匯出表                      PROMOTIONS
. . 正在匯出表               ORDERS_QUEUETABLE
. . 正在匯出表         AQ$_ORDERS_QUEUETABLE_S
. . 正在匯出表         AQ$_ORDERS_QUEUETABLE_T
. . 正在匯出表         AQ$_ORDERS_QUEUETABLE_H
. . 正在匯出表         AQ$_ORDERS_QUEUETABLE_G
. . 正在匯出表         AQ$_ORDERS_QUEUETABLE_I
. . 正在匯出表             STREAMS_QUEUE_TABLE
. . 正在匯出表       AQ$_STREAMS_QUEUE_TABLE_S
. . 正在匯出表       AQ$_STREAMS_QUEUE_TABLE_T
. . 正在匯出表       AQ$_STREAMS_QUEUE_TABLE_H
. . 正在匯出表       AQ$_STREAMS_QUEUE_TABLE_G
. . 正在匯出表       AQ$_STREAMS_QUEUE_TABLE_I
. . 正在匯出表                           TIMES
. . 正在匯出表                        PRODUCTS
. . 正在匯出表                        CHANNELS
. . 正在匯出表                      PROMOTIONS
. . 正在匯出表                       CUSTOMERS
. . 正在匯出表                       COUNTRIES
. . 正在匯出表      SUPPLEMENTARY_DEMOGRAPHICS
. . 正在匯出表              CAL_MONTH_SALES_MV
. . 正在匯出表            FWEEK_PSCAT_SALES_MV
. . 正在匯出表                           SALES
. . 正在匯出表                           COSTS
. . 正在匯出表               MVIEW$_EXCEPTIONS
. . 正在匯出表                    ONLINE_MEDIA
. . 正在匯出表                     PRINT_MEDIA
. 正在匯出參考完整性約束條件
. 正在匯出觸發器
. 結束匯出可傳輸的資料表空間中繼資料
成功終止匯出, 沒有出現警告。

C:/Documents and Settings/hawk>
C:/Documents and Settings/hawk>
C:/Documents and Settings/hawk>copy D:/system/ora10g/oradata/ora10g/EXAMPLE01.DB
F d:/EXAMPLE01.DBF
已複製         1 個檔案。

 --平台轉換

當需要在不同的平台上傳輸資料表空間時, 需要執行平台轉換.

RMAN> convert tablespace example
2> to platform 'Microsoft Windows IA (32-bit)'
3> format 'd:/d1';

啟動 backup 於 12-7月 -06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00005 name=D:/SYSTEM/ORA10G/ORADATA/ORA10G/EXAMPLE01.DBF
已轉換的資料檔案 = D:/D1
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:25
完成 backup 於 12-7月 -06

RMAN> convert datafile 'd:/d1' db_file_name_convert 'd:/d1' 'e:/d.dbf'
2> ;

啟動 backup 於 12-7月 -06
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案轉換
輸出檔案名=D:/D1
已轉換的資料檔案 = E:/D.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:37
完成 backup 於 12-7月 -06

RMAN>

--在不同的平台上進行傳輸資料表空間, 則使用上面的e:/d.dbf 檔案.

C:/Documents and Settings/hawk>imp userid='sys/system as sysdba' file='d:/a.dmp'
 transport_tablespace=y datafiles='d:/EXAMPLE01.DBF'

Import: Release 10.1.0.2.0 - Production on 星期三 7月 12 15:00:31 2006

Copyright (c) 1982, 2004, Oracle.  All rights reserved.

串連到: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

經由常規路徑由 EXPORT:V10.01.00 建立的匯出檔案
即將匯入可傳輸的資料表空間中繼資料...
已經完成 ZHS16GBK 字元集和 AL16UTF16 NCHAR 字元集中的匯入
. 正在將 SYS 的對象匯入到 SYS
IMP-00017: 由於 ORACLE 錯誤 29349, 以下語句失敗:
 "BEGIN   sys.dbms_plugts.beginImpTablespace('EXAMPLE',6,'SYS',1,0,8192,1,438"
 "998,1,2147483645,8,128,8,0,1,0,8,3914340468,1,33,320552,NULL,0,334814,NULL,"
 "NULL); END;"
IMP-00003: 遇到 ORACLE 錯誤 29349
ORA-29349: 資料表空間 'EXAMPLE' 已存在
ORA-06512: 在 "SYS.DBMS_PLUGTS", line 1728
ORA-06512: 在 line 1
IMP-00000: 未成功終止匯入

--因為測試是在同一個執行個體中進行,所以出現上面的資料表空間已存在錯誤.

SQL> alter tablespace example read write;

Tablespace altered

C:/Documents and Settings/hawk>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.