程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 數據庫知識:Oracle中傳輸表空間

數據庫知識:Oracle中傳輸表空間

編輯:Oracle數據庫基礎

Oracle中的傳輸表空間功能,用來將一個實例中的表空間和數據文件移到另一個實例中。 執行起來方便,快捷。但是要使用該功能有一些限制:需要兩個平台一致,必須有相同的字符集和多語言字符集。

要求兩個實例的db block size 大小相等,如不相等則需要兼容9.0以上等。

具體步驟如下:

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 個文件。

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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved