首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 資料庫檔案移動完整指南:資料檔、控制檔與線上重做日誌檔

     編輯:Oracle 資料庫相關知識

前言

Oracle 資料庫由資料檔、控制檔和線上重做日誌檔三大類檔案構成。隨著磁碟空間變動或為了優化 I/O 效能,DBA 常需移動這些檔案。本文以 UNIX 平台為例,詳細說明三類檔案的移動步驟與指令。

一、移動資料檔

資料檔移動可使用 ALTER DATABASE 或 ALTER TABLESPACE 兩種方式。

1. ALTER DATABASE 方法(適用於任何表空間)

  1. 關閉資料庫:
    $ svrmgrl
    SVRMGR > CONNECT INTERNAL;
    SVRMGR > SHUTDOWN;
    SVRMGR > EXIT;
  2. 作業系統層面移動檔案:
    $ mv /ora/oracle7/data1/app1_data.ora /ora/oracle7/data2
  3. 啟動至 MOUNT 狀態並重新命名檔案:
    $ 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';
  4. 開啟資料庫並驗證:
    SVRMGR > ALTER DATABASE OPEN;
    SVRMGR > SELECT NAME, STATUS FROM V$DATAFILE;

2. ALTER TABLESPACE 方法(不適用 SYSTEM、含作用中回滾段或暫存段的表空間)

  1. 將表空間離線:
    SVRMGR > ALTER TABLESPACE app1_data OFFLINE;
  2. 移動檔案(同前)。
  3. 重新命名資料檔:
    SVRMGR > ALTER TABLESPACE app1_data RENAME DATAFILE
    '/ora/oracle7/data1/app1_data.ora' TO
    '/ora/oracle7/data2/app1_data.ora';
  4. 將表空間上線並驗證:
    SVRMGR > ALTER TABLESPACE app1_data ONLINE;
    SVRMGR > SELECT NAME, STATUS FROM V$DATAFILE;

二、移動控制檔

控制檔路徑定義於 INIT.ORA 的 control_files 參數。移動步驟相對簡單:

  1. 正常關閉資料庫(SHUTDOWN)。
  2. 用 OS 指令移動控制檔(如 mv)。
  3. 編輯 $ORACLE_HOME/dbs/init.ora,修改 control_files 參數為新路徑。
  4. 啟動資料庫(STARTUP),並查詢 V$CONTROLFILE 確認。

三、移動線上重做日誌檔

  1. 關閉資料庫。
  2. 用 OS 指令移動日誌檔。
  3. 啟動至 MOUNT 狀態,執行 ALTER DATABASE RENAME FILE 更新路徑。
  4. 開啟資料庫,查詢 V$LOGFILE 驗證。

小結

移動資料庫檔案需謹慎規劃,建議先在測試環境演練。ALTER DATABASE 適用範圍最廣,ALTER TABLESPACE 則可在線操作非關鍵表空間,減少停機時間。控制檔與重做日誌檔移動皆需修改參數檔或執行 RENAME 命令,務必確保路徑正確無誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved