可傳送的tablespace特性——直接在Oracle實例之間復制數據文件,而不卸載和加載數據——是在Oracle 8i中引入的,並從那時開始成為一種功能性。一開始,要轉移的tablespace和目的數據庫必須要具有相同大小的模塊。Oracle 9i中增加的多種模塊大小的支持克服了這種局限性。現在,在Oracle 10g中,平台的限制也在很大程度上被解決了。 恢復管理器(Recovery Manager,RMAN)程序中包括了一個新的CONVERT(轉換)命令,你可以將其用來進行平台間的移動。小到一個數據文件,大到整個數據庫,都可以在這個命令的幫助下完成傳送。
在平台間移動,經常需要進行轉換的原因就在於計算機以不同的方式儲存多字節數字。Endianness(字節順序)這個術語所描述的就是這個,主要的兩種組合是big-endian(隨著內存地址的遞增,值從高到低排列)和small-endian(隨著內存地址的遞增,值從低到高排列)。要正確地解釋tablespace中的數據,字節要根據所用的操作系統平台正確有序排列。
視圖V$TRANSPORTABLE_PLATFORM列出了RMAN可以轉換的平台。每一個都有一個平台名稱和字節順序格式。通過從這個視圖中選擇,你可以看到源實例和目的實例是否使用相同的字節順序。
CONVERT命令復制文件,而不是就地對它們進行操作,這樣就更加安全,但是需要有足夠的額外硬盤空間來保存這兩種形式。
CONVERT命令主要有三種形式:
CONVERT TABLESPACE只用在源系統中,將所請求的tablespace中所有的數據文件轉換成目標平台的格式。
CONVERT DATAFILE只用在目的系統中,如果CONVERT TABLESPACE沒有用在源系統中的話(或者需要轉換文件名),因為被傳送的數據文件還沒有和tablespace相關聯,所以它們必須作為數據文件被轉換。
CONVERT DATABASE轉換其它結構,如未完成片段、參數文件以及所有的參數tablespace。控制文件和重做日志文件被重建。僅對於這一選擇來說,源系統和目標系統必須具有相同的字節順序。
即使兩個系統使用相同的字節順序,你仍然可以從CONVERT命令獲益。FORMAT(格式化)子句使你能夠轉換路徑名,還有一個用處就是從ASM硬盤組復制數據文件和將數據文件拷入其中。
列表A顯示的是一個在Windows平台源系統(little-endian)中RMAN會話的例子,將USERS tablespace轉化為IBM z系列目的系統(big-endian)。最初tablespace被設為只讀,使用RMAN SQL命令。然後,CONVERT語句把文件復制到閃電恢復區並將其轉換。最後,源tablespace被返回為讀/寫狀態。此時,被復制的文件就可以被復制到目的服務器了。
Z:>rman
Recovery Manager: Release 10.2.0.1.0 - Production on Wed Jan 3 21:00:46 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
RMAN> connect target sys/password@orcl
connected to target database: ORCL (DBID=1106543623)
RMAN> SQL 'ALTER TABLESPACE users READ ONLY';
using target database control file instead of recovery catalogsql statement: ALTER TABLESPACE users READ ONLY
RMAN> CONVERT TABLESPACE users
2> TO PLATFORM 'IBM zSeries Based Linux';
Starting backup at 03-JAN-07
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=145 devtype=DISK
channel ORA_DISK_1: starting datafile conversion
input datafilefno=00004 name=C:ORACLEPRODUCT.2.0ORADATAORCLUSERS01.DBF
converted datafile=C:ORACLEPRODUCT.2.0DB_1DATABASEDATA_D-ORCL_I-11065436
23_TS-USERS_FNO-4_01I6JT63
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:03
Finished backup at 03-JAN-07
RMAN> SQL 'ALTER TABLESPACE users READ WRITE';
sql statement: ALTER TABLESPACE users READ WRITE
RMAN> exit
Recovery Manager complete.
Z:>
Bob Watkins(OCP、MCDBA、MCSE、MCT)具有從事技術培訓師、咨詢師和數據庫管理員的25年計算機職業經驗。