【Oracle】如何修改資料檔案和日誌檔案的路徑
在許多場景下,我們必須透過Oracle 內部命令來 rename 資料檔案或日誌檔案,來為資料檔案和日誌檔案重新定義一個新的物理名稱或新的位置,例如:
- 由於某種原因,我們想移動資料庫檔案到一個新的磁碟
- 我們想從備份還原一個資料檔案,但是它原本的磁碟已經滿了,只能將資料檔案恢復到新的磁碟上。
- 我們在作業系統層面移動或重新命名該資料檔案,導致 Oracle 找不到它。在啟動時候,會報錯 ORA-01157 和 ORA-01110 。如果資料庫已經啟動,我們嘗試正常關閉資料庫,則會得到 ORA-01116 和 ORA-01110
- 在同一臺機器上有多個資料庫,需要重新命名這些資料檔案,防止衝突和混淆
本文將會幫助你解決以下三個問題
1. 在資料庫開啟時,重新命名或移動資料檔案
2. 在資料庫關閉時,重新命名或移動資料檔案
3. 重新命名或移動日誌檔案(redolog )
注意,如果要重新命名或移動system 表空間資料檔案,必須關庫執行。因為不能將 system 表空間 offline 。
一、 在資料庫開啟時,重新命名或移動資料檔案
在資料庫開啟時,可以重新命名或移動資料檔案,但是,該表空間必須是隻讀的。這樣是為了防止使用者從表空間中進行insert 、 update 、 delete 操作。修改只讀表空間資料檔案的時間取決於資料檔案的大小以及將資料檔案複製到其他位置所需的時間。將表空間設定為只讀會凍結檔案頭,防止對檔案頭進行更新。由於該資料檔案處於只讀狀態,所以可以在資料庫 open 狀態時複製該資料檔案。
操作步驟如下:
1) 確定表空間有多少資料檔案
SQL> SELECT FILE_NAME, STATUS FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'TEST_TBS';
FILE_NAME STATUS
-------------------------------------------------- ---------
/u01/app/oracle/oradata/orcl/test01.dbf AVAILABLE
/u01/app/oracle/oradata/orcl/test02.dbf AVAILABLE
2) 確保所有資料檔案的狀態都是AVAILABLE
3) 確保表空間只讀
SQL> alter tablespace test_tbs read only;
4) 查詢表空間是否只讀
SQL> SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES WHERE TABLESPACE_NAME = 'TEST_TBS';
TABLESPACE_NAME STATUS
------------------------------ ---------
TEST_TBS READ ONLY
5) 使用copy 命令將資料檔案複製到新位置
$ cd /u01/app/oracle/oradata/orcl/
$ cp test01.dbf test02.dbf /u01/app/oracle/oradata/new/
6) 將資料檔案複製到新位置後,將表空間offline
SQL> alter tablespace test_tbs offline;
7) 重新命名資料檔案到新位置,會更新控制檔案裡面的資訊
SQL> alter database rename file
'/u01/app/oracle/oradata/ orcl /test01.dbf' to
'/u01/app/oracle/oradata/ new /test01.dbf';
SQL> alter database rename file '/u01/app/oracle/oradata/ orcl /test02.dbf' to '/u01/app/oracle/oradata/ new /test02.dbf';
同樣可以使用alter tablespace .... rename datafile 語法操作。
8) 將表空間online
SQL> alter tablespace test_tbs online;
9) 將表空間read write
SQL> alter tablespace test_tbs read write;
10) 驗證控制檔案是否更新
SQL> SELECT FILE_NAME, STATUS FROM DBA_DATA_FILES WHERE TABLESPACE_NAME = 'TEST_TBS';
FILE_NAME STATUS
-------------------------------------------------- ---------
/u01/app/oracle/oradata/new/test01.dbf AVAILABLE
/u01/app/oracle/oradata/new/test02.dbf AVAILABLE
11) 刪除舊路徑下的檔案即可
二、 在資料庫關閉時,移動或重新命名資料檔案
1) 如果資料庫時open, 需要關閉
SQL> shutdown immediate;
2) 複製資料檔案到新路徑
$ cd /u01/app/oracle/oradata/orcl/
$ cp test01.dbf test02.dbf /u01/app/oracle/oradata/new/
3) 開啟資料庫至mount
SQL> startup mount;
4) rename 資料檔案
SQL> alter database rename file
'/u01/app/oracle/oradata/ orcl /test01.dbf' to
'/u01/app/oracle/oradata/ new /test01.dbf';
SQL> alter database rename file
'/u01/app/oracle/oradata/ orcl /test02.dbf' to
'/u01/app/oracle/oradata/ new /test02.dbf';
5) 開始資料庫至open
SQL> alter database open;
6) 查詢資料檔案是否改變
SQL> SELECT * FROM V$DBFILE;
7) 刪除舊路徑下的資料檔案即可
三、 重新命名或移動日誌檔案
1) 查詢當前日誌檔案路徑
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ----------------------------------------
3 /u01/app/oracle/oradata/orcl/redo03.log
2 /u01/app/oracle/oradata/orcl/redo02.log
1 /u01/app/oracle/oradata/orcl/redo01.log
2) 關閉資料庫
SQL> shutdown immediate;
3) 複製日誌檔案到新路徑
$ cp /u01/app/oracle/oradata/orcl/redo03.log /u01/app/oracle/oradata/new/
4) 開啟資料庫至mount
SQL> startup mount;
5) rename 該日誌檔案
SQL> alter database rename file
'/u01/app/oracle/oradata/orcl/redo03.log' to
'/u01/app/oracle/oradata/new/redo03.log';
6) 開啟資料庫
SQL> alter database open;
7) 再次檢視日誌檔案資訊
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- -----------------------------------------
3 /u01/app/oracle/oradata/new/redo03.log
2 /u01/app/oracle/oradata/orcl/redo02.log
1 /u01/app/oracle/oradata/orcl/redo01.log
8) 刪除舊路徑下的日誌檔案即可
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2755803/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 資料庫lsnrctl監聽的日誌路徑和trace檔案Oracle資料庫
- 修改資料檔案路徑
- 用重建控制檔案的方法修改oracle資料檔案路徑Oracle
- 修改Oracle資料檔名及資料檔案存放路徑Oracle
- oracle資料庫移動資料檔案、日誌檔案和控制檔案Oracle資料庫
- oracle11g修改資料檔案路徑Oracle
- oracle 修改資料檔案路徑(四種方式)Oracle
- oracle 修改資料檔案位置(路徑)(移動)Oracle
- 修改歸檔日誌路徑
- 在Oracle中移動資料檔案、控制檔案和日誌檔案Oracle
- MySQL資料庫中的日誌檔案---(4)配置日誌檔案輸出路徑MySql資料庫
- 修改Oracle重做日誌檔案的大小Oracle
- oracle中移動控制檔案、資料檔案、日誌檔案Oracle
- 非歸檔模式下的資料檔案路徑修改模式
- 12c日誌檔案路徑
- 日誌檔案和歸檔日誌檔案的關係以及如何切換日誌
- 增加日誌檔案,修改當前日誌檔案大小
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- oracle11g修改控制檔案路徑Oracle
- 分析Oracle資料庫日誌檔案(1)Oracle資料庫
- 分析Oracle資料庫日誌檔案(2)Oracle資料庫
- 分析Oracle資料庫日誌檔案(3)Oracle資料庫
- 【Oracle日誌】- 日誌檔案重建Oracle
- kingsql 如何修改Oralce日誌檔案大小SQL
- win10 onenote如何修改檔案路徑_win10 onenote怎麼修改檔案路徑Win10
- 保護資料和日誌檔案的安全
- postgresql資料庫安裝以及修改資料檔案路徑SQL資料庫
- 修改資料庫檔名字和路徑資料庫
- 官方文件nodemanager 配置檔案和日誌檔案的路線圖
- 資料庫引數檔案控制檔案日誌檔案資料檔案跟蹤檔案等8大檔案的字典資料庫
- oracle 日誌檔案管理Oracle
- RMAN備份資料檔案+控制檔案+歸檔日誌
- vue專案可修改引入檔案的路徑Vue
- 線上修改重做日誌檔案的大小
- 分析Oracle資料庫日誌檔案(三)EPOracle資料庫
- 分析Oracle資料庫日誌檔案(二)DOOracle資料庫
- 分析Oracle資料庫日誌檔案(一)HBOracle資料庫
- 分析Oracle資料庫日誌檔案(1)(轉)Oracle資料庫