Amadeus 旅遊系統:99.99% 可用性、30萬 QPS、日 2.8 億交易。傳統升級路徑雙重困境:
ALTER SYSTEM ARCHIVE LOG CURRENT,確保 Standby 完全同步-- 1. 主庫設表空間 READ ONLY
ALTER TABLESPACE users READ ONLY;
-- 2. 導出元資料
EXP 'sys/pass AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=(USERS) FILE=users.dmp
-- 3. 複製資料檔 + dmp 至 Standby (同機器可跳過複製)
-- 4. 目標庫導入元資料
IMP 'sys/pass AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=(USERS)
FILE=users.dmp DATAFILES=('/path/users.dbf') TTS_OWNERS=APP_USER-- 建立測試表空間與表
CREATE TABLESPACE test DATAFILE '/opt/oracle/test.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL AUTOALLOCATE;
CREATE TABLE test1(a NUMBER) TABLESPACE test;
INSERT INTO test1 VALUES(1); COMMIT;
-- TTS 流程
ALTER TABLESPACE test READ ONLY;
EXP 'sys/sys AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=(TEST) FILE=test.dmp
SCP test.dmp test.dbf → 10g主機
IMP 'sys/sys AS SYSDBA' TRANSPORT_TABLESPACE=Y TABLESPACES=(TEST) FILE=test.dmp DATAFILES=('/opt/oracle/test.dbf')
ALTER TABLESPACE test READ WRITE;
INSERT INTO test1 VALUES(2); -- 成功,數據一致
| 因子 | 說明 |
|---|---|
| 同機器部署 | 省去資料檔跨網路複製時間,為分鐘級切換關鍵 |
| Read-Only 凍結窗口 | 業務需接受 5-10 分鐘唯讀,非強一致性寫入場景適用 |
| 預處理非 TTS 物件 | Sequence/Privilege 等不可傳輸物件必須腳本化、冪等、預先驗證 |
| 自動化腳本化 | 全流程 Shell/Python 封裝,人工僅確認核心檢查點 |