Oracle 資料庫由資料檔、控制檔和線上重做日誌檔三大類檔案構成。隨著磁碟空間變動或為了優化 I/O 效能,DBA 常需移動這些檔案。本文以 UNIX 平台為例,詳細說明三類檔案的移動步驟與指令。
資料檔移動可使用 ALTER DATABASE 或 ALTER TABLESPACE 兩種方式。
$ svrmgrl
SVRMGR > CONNECT INTERNAL;
SVRMGR > SHUTDOWN;
SVRMGR > EXIT;$ mv /ora/oracle7/data1/app1_data.ora /ora/oracle7/data2$ svrmgrl
SVRMGR > CONNECT INTERNAL;
SVRMGR > STARTUP MOUNT;
SVRMGR > ALTER DATABASE RENAME FILE
'/ora/oracle7/data1/app1_data.ora' TO
'/ora/oracle7/data2/app1_data.ora';SVRMGR > ALTER DATABASE OPEN;
SVRMGR > SELECT NAME, STATUS FROM V$DATAFILE;SVRMGR > ALTER TABLESPACE app1_data OFFLINE;SVRMGR > ALTER TABLESPACE app1_data RENAME DATAFILE
'/ora/oracle7/data1/app1_data.ora' TO
'/ora/oracle7/data2/app1_data.ora';SVRMGR > ALTER TABLESPACE app1_data ONLINE;
SVRMGR > SELECT NAME, STATUS FROM V$DATAFILE;控制檔路徑定義於 INIT.ORA 的 control_files 參數。移動步驟相對簡單:
SHUTDOWN)。mv)。$ORACLE_HOME/dbs/init.ora ,修改 control_files 參數為新路徑。STARTUP),並查詢 V$CONTROLFILE 確認。ALTER DATABASE RENAME FILE 更新路徑。V$LOGFILE 驗證。移動資料庫檔案需謹慎規劃,建議先在測試環境演練。ALTER DATABASE 適用範圍最廣,ALTER TABLESPACE 則可在線操作非關鍵表空間,減少停機時間。控制檔與重做日誌檔移動皆需修改參數檔或執行 RENAME 命令,務必確保路徑正確無誤。