需將來源庫ltdb中tsts表空間(用戶ts,含2個數據文件)遷移至目標庫epras。採用Oracle可傳輸表空間(TTS)技術,僅導出元數據,配合文件級復制,實現分鐘級遷移,遠快于傳統exp/imp。
SYSDBA身份執行exp transport_tablespace=y tablespaces=tsts生成.dmp文件。ALTER TABLESPACE tsts READ ONLY; 確保數據一致性。scp/rsync)同步數據文件與.dmp至目標主機。同機器可省略.dmp復制。完成後ALTER TABLESPACE tsts READ WRITE;恢復來源庫寫入。CREATE USER ts IDENTIFIED BY ...; 暫不授權。imp transport_tablespace=y datafiles=... tablespaces=tsts(需SYSDBA)。ALTER TABLESPACE tsts READ WRITE; 並授予ts用戶相應權限。.dmp僅含元數據(通常KB-MB級),無數據行移動開銷。CONVERT TABLESPACE自動處理字節序轉換。-- 1. 校驗表空間自包含性
EXEC DBMS_TTS.TRANSPORT_SET_CHECK('tswin1,tswin2', TRUE);
SELECT * FROM TRANSPORT_SET_VIOLATIONS; -- 無記錄即通過
-- 2. RMAN 轉換文件格式
RMAN TARGET /
CONVERT TABLESPACE tswin1, tswin2
TO PLATFORM 'Microsoft Windows IA (32-bit)'
FORMAT '/tmp/rman/%U';
-- 3. 保留原文件名(推薦)
CONVERT TABLESPACE tswin1, tswin2
TO PLATFORM 'Microsoft Windows IA (32-bit)'
DB_FILE_NAME_CONVERT '/source/path', '/target/path';
| 條件 | 說明 |
|---|---|
| 字符集一致 | 源/目標NLS_CHARACTERSET與NLS_NCHAR_CHARACTERSET完全相同 |
| 塊大小一致 | DB_BLOCK_SIZE參數值相等 |
| 自包含對象集 | 表空間內對象無外部依賴(如索引在別表空間) |
| 平台兼容性 | 查詢V$TRANSPORTABLE_PLATFORM確認雙向支援 |
COMPATIBLE設正確。可傳輸表空間是Oracle大數據量跨實例、跨平台遷移的「核武器」。掌握READ ONLY → EXP METADATA → FILE COPY → IMP METADATA → READ WRITE六步曲,配合RMAN字節序轉換,即可應對絕大多數異構遷移場景。