国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle可傳輸表空間實(shí)現(xiàn)跨平臺(tái)移植

2024-08-29 13:50:51
字體:
供稿:網(wǎng)友
可傳輸表空間現(xiàn)在可以跨平臺(tái)移植,從而使得數(shù)據(jù)發(fā)布更快更輕易。此外,外部表下載使得通過轉(zhuǎn)換進(jìn)行數(shù)據(jù)轉(zhuǎn)移的任務(wù)更簡(jiǎn)單更快。 如何將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫轉(zhuǎn)移到另一個(gè)數(shù)據(jù)庫?在現(xiàn)有的幾種方法中,有一種方法尤為出色:可傳輸表空間。在這種方法中,使用一組自包含、只讀的表空間,只導(dǎo)出元數(shù)據(jù),在操作系統(tǒng)層將這些表空間的數(shù)據(jù)文件拷貝至目標(biāo)平臺(tái),并將元數(shù)據(jù)導(dǎo)入數(shù)據(jù)字典 — 這個(gè)過程稱為插入。 操作系統(tǒng)文件拷貝一般比其它傳統(tǒng)的數(shù)據(jù)轉(zhuǎn)移方法(如導(dǎo)出/導(dǎo)入或 SQL*Loader)要快得多。然而,在 Oracle9i 數(shù)據(jù)庫和更低版本中,可傳輸表空間僅限于在目標(biāo)數(shù)據(jù)庫和源數(shù)據(jù)庫都運(yùn)行在同一操作系統(tǒng)平臺(tái)上的少數(shù)情況下才有用 — 例如,不能在 Solaris 和 HP-UX 平臺(tái)之間傳輸表空間。 在 Oracle 數(shù)據(jù)庫 10g 中,這個(gè)局限消失了:只要操作系統(tǒng)字節(jié)順序相同,就可以在平臺(tái)之間傳輸表空間。本文將不就字節(jié)順序展開長(zhǎng)篇的討論,但這里只要提幾句話就足夠了:一些操作系統(tǒng)(包括 Windows)在低位內(nèi)存地址中用最低有效字節(jié)存儲(chǔ)多字節(jié)二進(jìn)制數(shù)據(jù);因此這種系統(tǒng)被稱為低地址低字節(jié)序。相反,其它的操作系統(tǒng)(包括 Solaris)將最高有效字節(jié)存儲(chǔ)在低位內(nèi)存地址中,因此這種系統(tǒng)被稱為低地址高字節(jié)序。當(dāng)一個(gè)低地址高字節(jié)序的系統(tǒng)試圖從一個(gè)低地址低字節(jié)序的系統(tǒng)中讀取數(shù)據(jù)時(shí),需要一個(gè)轉(zhuǎn)換過程 — 否則,字節(jié)順序?qū)?dǎo)致不能正確解釋讀取的數(shù)據(jù)。(有關(guān)字節(jié)順序的具體說明,請(qǐng)閱讀嵌入式系統(tǒng)編程的 2002 年 1 月刊中的一篇極好的文章“字節(jié)順序介紹”。)不過,當(dāng)在相同字節(jié)順序的平臺(tái)之間傳輸表空間時(shí),不需要任何轉(zhuǎn)換。 怎么知道哪一種操作系統(tǒng)采用哪一種字節(jié)順序?不需猜測(cè)或搜索互聯(lián)網(wǎng),相反只需簡(jiǎn)單地執(zhí)行以下查詢:
  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
假設(shè)想從一臺(tái)在 Intel 體系結(jié)構(gòu)上運(yùn)行 Linux 操作系統(tǒng)的主機(jī) SRC1 中將一個(gè)表空間 USERS 傳輸?shù)竭\(yùn)行 Microsoft Windows 操作系統(tǒng)的計(jì)算機(jī) TGT1 上。源平臺(tái)和目標(biāo)平臺(tái)都是低地址低字節(jié)序的。表空間 USERS 的數(shù)據(jù)文件是 users_01.dbf。將按照類似以下的方法來進(jìn)行操作。 使表空間為只讀:
  alter tablespace users read only; 
導(dǎo)出表空間。在操作系統(tǒng)提示符下執(zhí)行:
  eXP tablespaces=users transport_tablespace=y file=exp_ts_users.dmp
exp_ts_users.dmp 文件只包含元數(shù)據(jù)(不是表空間 USERS 的內(nèi)容)因此它將非常小。將文件 exp_ts_users.dmp 和 users_01.dbf 拷貝至主機(jī) TGT1。假如使用 FTP,那么將需要指定二進(jìn)制選項(xiàng)。 將表空間插入到數(shù)據(jù)庫中。在操作系統(tǒng)命令提示符下執(zhí)行下面的語句:
  imp tablespaces=users transport_tablespace=y file=exp_ts_users.dmp datafiles='users_01.dbf'
在第 4 步之后,目標(biāo)數(shù)據(jù)庫將有一個(gè)名稱為 USERS 的表空間,并將提供該表空間的內(nèi)容。請(qǐng)記住,系統(tǒng) SRC1 和 TGT1 分別是 Linux 和 Windows。到 Oracle9i 為止,運(yùn)行在 TGT1 上的數(shù)據(jù)庫不能識(shí)別第 4 步中的數(shù)據(jù)文件 users_01.dbf,從而使得整個(gè)過程無用。您將必須求助其它一些方法(如常規(guī)的導(dǎo)出和導(dǎo)入、創(chuàng)建純文本文件并通過 SQL*Loader 加載,或直接在不同的數(shù)據(jù)庫間連接加載插入)。 在 10g 中,不再需要這些替代方法,因?yàn)槟繕?biāo)數(shù)據(jù)庫能夠識(shí)別來自另一個(gè)平臺(tái)的數(shù)據(jù)文件。在我們的示例中,源主機(jī)和目標(biāo)主機(jī)運(yùn)行的操作系統(tǒng)的字節(jié)順序是相同的(低地址低字節(jié)序),因此不需要任何轉(zhuǎn)換。 這個(gè)功能在數(shù)據(jù)倉庫中非凡有用,其中更小的面向?qū)ο蟮臄?shù)據(jù)集市經(jīng)常在刷新之后從倉庫中進(jìn)行填充。利用 10g,這些數(shù)據(jù)集市現(xiàn)在能夠放在更小、更廉價(jià)的計(jì)算機(jī)(如運(yùn)行 Linux 的 Intel boxes)中,而將數(shù)據(jù)倉庫服務(wù)器放在更大的企業(yè)級(jí)計(jì)算機(jī)中。從本質(zhì)上講,利用可傳輸表空間,現(xiàn)在可以更好地利用各種硬件和操作系統(tǒng)的組合。 跨不同字節(jié)順序的平臺(tái) 假如平臺(tái)是不同字節(jié)順序的,那么將如何實(shí)現(xiàn)可傳輸性?正如我之前說明的,目標(biāo)計(jì)算機(jī)的字節(jié)順序假如與源計(jì)算機(jī)的字節(jié)順序不同,那么將不能正確地讀取數(shù)據(jù)文件,因而不可能簡(jiǎn)單地拷貝數(shù)據(jù)文件。但別灰心,在 Oracle 10g RMAN 實(shí)用程序中提供了幫助,它支持將數(shù)據(jù)文件從一種字節(jié)順序向另一種字節(jié)順序轉(zhuǎn)換。 在上面的例子中,假如主機(jī) SRC1 運(yùn)行在 Linux 上(低地址低字節(jié)序),而目標(biāo)主機(jī) TGT1 運(yùn)行在 HP-UX 上(低地址高字節(jié)序),那么需要在第 3 步和第 4 步之間引入另一個(gè)步驟,以進(jìn)行轉(zhuǎn)換。利用 RMAN,您將在源計(jì)算機(jī) SRC1 上把數(shù)據(jù)文件從 Linux 轉(zhuǎn)換成 HP-UX 格式(假定已經(jīng)使表空間變?yōu)橹蛔x):
  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
這個(gè)步驟在目錄 /home/oracle/rman_bkups 中創(chuàng)建了一個(gè)標(biāo)準(zhǔn) RMAN 文件格式_ 的文件。注重我們沒有觸及表空間 USERS 的數(shù)據(jù)文件;而是為 HP-UX 創(chuàng)建了一個(gè)新文件?,F(xiàn)在可以將這個(gè)文件拷貝至目標(biāo)系統(tǒng),剩下的步驟很簡(jiǎn)單。 這個(gè) RMAN 轉(zhuǎn)換命令非常強(qiáng)大。按照上面給定的形式,它可以按順序創(chuàng)建數(shù)據(jù)文件。對(duì)于包含多個(gè)數(shù)據(jù)文件的表空間,可以命令同時(shí)轉(zhuǎn)換并運(yùn)行多個(gè)數(shù)據(jù)文件。要實(shí)現(xiàn)這一目的,將需要在上述命令中添加一個(gè)子句:
  parallelism = 4 
該子句創(chuàng)建四個(gè) RMAN 通道,每一個(gè)通道處理一個(gè)數(shù)據(jù)文件。不過,一種更有用的方法是用一個(gè)步驟轉(zhuǎn)換大量的表空間,在這種情況下并行轉(zhuǎn)換將真正帶來很大的幫助。下面我們將兩個(gè)表空間 USERS 和 MAINTS 轉(zhuǎn)換至 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
在上述例子中,轉(zhuǎn)換后的文件名難于辨認(rèn)并很難與原始文件關(guān)聯(lián)(例如,文件 users01.dbf 變?yōu)?USERS_4)。相反,還可以使用其它格式來為數(shù)據(jù)文件命名。


上一篇:Oracle 10G數(shù)據(jù)庫自動(dòng)內(nèi)存管理分析

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 胶南市| 搜索| 沙雅县| 永善县| 拉孜县| 搜索| 江川县| 隆尧县| 喀喇沁旗| 北辰区| 镇坪县| 榆社县| 龙海市| 江达县| 富平县| 万源市| 柘荣县| 于都县| 和顺县| 济南市| 巍山| 潜江市| 鄂托克旗| 安顺市| 滦平县| 义乌市| 钟山县| 连州市| 喜德县| 石河子市| 普兰店市| 邹城市| 潼南县| 巴塘县| 南丰县| 突泉县| 呼玛县| 合作市| 肥乡县| 公主岭市| 越西县|