a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle可傳輸表空間實現跨平臺移植

2024-08-29 13:50:51
字體:
來源:轉載
供稿:網友
可傳輸表空間現在可以跨平臺移植,從而使得數據發布更快更輕易。此外,外部表下載使得通過轉換進行數據轉移的任務更簡單更快。 如何將數據從一個數據庫轉移到另一個數據庫?在現有的幾種方法中,有一種方法尤為出色:可傳輸表空間。在這種方法中,使用一組自包含、只讀的表空間,只導出元數據,在操作系統層將這些表空間的數據文件拷貝至目標平臺,并將元數據導入數據字典 — 這個過程稱為插入。 操作系統文件拷貝一般比其它傳統的數據轉移方法(如導出/導入或 SQL*Loader)要快得多。然而,在 Oracle9i 數據庫和更低版本中,可傳輸表空間僅限于在目標數據庫和源數據庫都運行在同一操作系統平臺上的少數情況下才有用 — 例如,不能在 Solaris 和 HP-UX 平臺之間傳輸表空間。 在 Oracle 數據庫 10g 中,這個局限消失了:只要操作系統字節順序相同,就可以在平臺之間傳輸表空間。本文將不就字節順序展開長篇的討論,但這里只要提幾句話就足夠了:一些操作系統(包括 Windows)在低位內存地址中用最低有效字節存儲多字節二進制數據;因此這種系統被稱為低地址低字節序。相反,其它的操作系統(包括 Solaris)將最高有效字節存儲在低位內存地址中,因此這種系統被稱為低地址高字節序。當一個低地址高字節序的系統試圖從一個低地址低字節序的系統中讀取數據時,需要一個轉換過程 — 否則,字節順序將導致不能正確解釋讀取的數據。(有關字節順序的具體說明,請閱讀嵌入式系統編程的 2002 年 1 月刊中的一篇極好的文章“字節順序介紹”。)不過,當在相同字節順序的平臺之間傳輸表空間時,不需要任何轉換。 怎么知道哪一種操作系統采用哪一種字節順序?不需猜測或搜索互聯網,相反只需簡單地執行以下查詢:
  SQL> select * from v$transportable_platform order by platform_id;    PLATFORM_ID PLATFORM_NAME            ENDIAN_FORMAT  ----------- ----------------------------------- --------------  1 Solaris[tm] OE (32-bit)       Big  2 Solaris[tm] OE (64-bit)       Big  3 HP-UX (64-bit)           Big  4 HP-UX IA (64-bit)          Big  5 HP Tru64 UNIX            Little  6 AIX-Based Systems (64-bit)     Big  7 Microsoft Windows IA (32-bit)    Little  8 Microsoft Windows IA (64-bit)    Little  9 IBM zSeries Based linux       Big  10 Linux IA (32-bit)          Little  11 Linux IA (64-bit)          Little  12 Microsoft Windows 64-bit for AMD  Little  13 Linux 64-bit for AMD        Little  15 HP Open VMS             Little  16 Apple Mac OS            Big
假設想從一臺在 Intel 體系結構上運行 Linux 操作系統的主機 SRC1 中將一個表空間 USERS 傳輸到運行 Microsoft Windows 操作系統的計算機 TGT1 上。源平臺和目標平臺都是低地址低字節序的。表空間 USERS 的數據文件是 users_01.dbf。將按照類似以下的方法來進行操作。 使表空間為只讀:
  alter tablespace users read only; 
導出表空間。在操作系統提示符下執行:
  eXP tablespaces=users transport_tablespace=y file=exp_ts_users.dmp
exp_ts_users.dmp 文件只包含元數據(不是表空間 USERS 的內容)因此它將非常小。將文件 exp_ts_users.dmp 和 users_01.dbf 拷貝至主機 TGT1。假如使用 FTP,那么將需要指定二進制選項。 將表空間插入到數據庫中。在操作系統命令提示符下執行下面的語句:
  imp tablespaces=users transport_tablespace=y file=exp_ts_users.dmp datafiles='users_01.dbf'
在第 4 步之后,目標數據庫將有一個名稱為 USERS 的表空間,并將提供該表空間的內容。請記住,系統 SRC1 和 TGT1 分別是 Linux 和 Windows。到 Oracle9i 為止,運行在 TGT1 上的數據庫不能識別第 4 步中的數據文件 users_01.dbf,從而使得整個過程無用。您將必須求助其它一些方法(如常規的導出和導入、創建純文本文件并通過 SQL*Loader 加載,或直接在不同的數據庫間連接加載插入)。 在 10g 中,不再需要這些替代方法,因為目標數據庫能夠識別來自另一個平臺的數據文件。在我們的示例中,源主機和目標主機運行的操作系統的字節順序是相同的(低地址低字節序),因此不需要任何轉換。 這個功能在數據倉庫中非凡有用,其中更小的面向對象的數據集市經常在刷新之后從倉庫中進行填充。利用 10g,這些數據集市現在能夠放在更小、更廉價的計算機(如運行 Linux 的 Intel boxes)中,而將數據倉庫服務器放在更大的企業級計算機中。從本質上講,利用可傳輸表空間,現在可以更好地利用各種硬件和操作系統的組合。 跨不同字節順序的平臺 假如平臺是不同字節順序的,那么將如何實現可傳輸性?正如我之前說明的,目標計算機的字節順序假如與源計算機的字節順序不同,那么將不能正確地讀取數據文件,因而不可能簡單地拷貝數據文件。但別灰心,在 Oracle 10g RMAN 實用程序中提供了幫助,它支持將數據文件從一種字節順序向另一種字節順序轉換。 在上面的例子中,假如主機 SRC1 運行在 Linux 上(低地址低字節序),而目標主機 TGT1 運行在 HP-UX 上(低地址高字節序),那么需要在第 3 步和第 4 步之間引入另一個步驟,以進行轉換。利用 RMAN,您將在源計算機 SRC1 上把數據文件從 Linux 轉換成 HP-UX 格式(假定已經使表空間變為只讀):
  RMAN> convert tablespace users  2> to platform 'HP-UX (64-bit)'  3> format='/home/oracle/rman_bkups/%N_%f';    Starting backup at 14-MAR-04  using channel ORA_DISK_1  channel ORA_DISK_1:starting datafile conversion  input datafile fno=00004 name=/usr/oradata/dw/starz10/users01.dbf  converted datafile=/home/oracle/rman_bkups/USERS_4  channel ORA_DISK_1:datafile conversion complete, elapsed time: 00:00:07  Finished backup at 14-MAR-04
這個步驟在目錄 /home/oracle/rman_bkups 中創建了一個標準 RMAN 文件格式_ 的文件。注重我們沒有觸及表空間 USERS 的數據文件;而是為 HP-UX 創建了一個新文件。現在可以將這個文件拷貝至目標系統,剩下的步驟很簡單。 這個 RMAN 轉換命令非常強大。按照上面給定的形式,它可以按順序創建數據文件。對于包含多個數據文件的表空間,可以命令同時轉換并運行多個數據文件。要實現這一目的,將需要在上述命令中添加一個子句:
  parallelism = 4 
該子句創建四個 RMAN 通道,每一個通道處理一個數據文件。不過,一種更有用的方法是用一個步驟轉換大量的表空間,在這種情況下并行轉換將真正帶來很大的幫助。下面我們將兩個表空間 USERS 和 MAINTS 轉換至 HP-UX:
  RMAN> convert tablespace users, maints  2> to platform 'HP-UX (64-bit)'  3> format='/home/oracle/rman_bkups/%N_%f'  4> parallelism = 5;    Starting backup at 14-MAR-04  using target database controlfile instead of recovery catalog  allocated channel:ORA_DISK_1  channel ORA_DISK_1:sid=244 devtype=DISK  allocated channel:ORA_DISK_2  channel ORA_DISK_2:sid=243 devtype=DISK  allocated channel:ORA_DISK_3  channel ORA_DISK_3:sid=245 devtype=DISK  allocated channel:ORA_DISK_4  channel ORA_DISK_4:sid=272 devtype=DISK  allocated channel:ORA_DISK_5  channel ORA_DISK_5:sid=253 devtype=DISK  channel ORA_DISK_1:starting datafile conversion  input datafile fno=00004 name=/usr/oradata/dw10/dw10/users01.dbf  channel ORA_DISK_2:starting datafile conversion  input datafile fno=00005 name=/usr/oradata/dw10/dw10/users02.dbf  channel ORA_DISK_3:starting datafile conversion  input datafile fno=00006 name=/usr/oradata/dw10/dw10/maints01.dbf  channel ORA_DISK_4:starting datafile conversion  input datafile fno=00007 name=/usr/oradata/dw10/dw10/maints02.dbf  converted datafile=/home/oracle/rman_bkups/USERS_4  channel ORA_DISK_1:datafile conversion complete, elapsed time: 00:00:03  converted datafile=/home/oracle/rman_bkups/USERS_5  channel ORA_DISK_2:datafile conversion complete, elapsed time: 00:00:00  converted datafile=/home/oracle/rman_bkups/MAINTS_6  channel ORA_DISK_3:datafile conversion complete, elapsed time: 00:00:01  converted datafile=/home/oracle/rman_bkups/MAINTS_7  channel ORA_DISK_4:datafile conversion complete, elapsed time: 00:00:01  Finished backup at 14-MAR-04
在上述例子中,轉換后的文件名難于辨認并很難與原始文件關聯(例如,文件 users01.dbf 變為 USERS_4)。相反,還可以使用其它格式來為數據文件命名。


上一篇:Oracle 10G數據庫自動內存管理分析

下一篇:Oracle中管理物化視圖變得更加容易

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 欧洲精品久久久 | 欧美日韩在线一区 | 欧美一级视频 | 国产精品1区| 国产精品三级久久久久久电影 | 午夜精品久久久久 | 亚洲精品国产高清 | 中文字幕免费在线观看视频 | 天堂一区二区三区 | 久久久国产精品一区 | 久久国产精品免费视频 | 四虎国产成人永久精品免费 | 国产精品一区二区不卡视频 | 国产欧美精品一区二区 | 欧美综合国产精品久久丁香 | 天天爽夜夜春 | 岛国av一区 | 男女啪啪高清无遮挡 | 国产精品一区久久久久 | 精品日韩欧美一区二区三区在线播放 | 成人黄色一区 | 中文在线播放 | 一级视频在线免费观看 | 97久久精品午夜一区二区 | 中文字幕第80页 | 日本综合久久 | 姐姐在线观看动漫第二集免费 | 日本亚洲精品一区二区三区 | 欧美日韩无 | 97成人在线视频 | 美女中文字幕视频 | 亚洲精品一区二区网址 | 国内精品久久久久久久97牛牛 | 日韩亚洲视频在线观看 | 日韩在线中文 | 午夜精品久久久久久久99黑人 | 国产无区一区二区三麻豆 | 午夜免费看片 | av黄色在线 | 久久高清一区 | 国产伦理一区二区 |