轉移Oracle日誌檔案位置

pxbibm發表於2014-04-24
為了保證資料庫日誌檔案採用多路複用,防止由於磁碟損壞,丟失所有的日誌檔案,要把日誌轉移到不同的磁碟位置上。
轉移Oracle日誌檔案位置

SQL> select group#,member from v$logfile;

    GROUP# MEMBER
---------- -------------------------------------
         3 D:\ORACLE\ORADATA\DEVDB\REDO03.LOG
         2 D:\ORACLE\ORADATA\DEVDB\REDO02.LOG
         1 D:\ORACLE\ORADATA\DEVDB\REDO01.LOG
目前我的環境下有3組日誌,每組中只有一個成員,我下面給每一個組新增一個成員,來模擬把組內
的另一成員遷移到其他磁碟上。

SQL> alter database add logfile member 'D:\ORACLE\ORADATA\DEVDB\REDO01A.LOG' to group 1;

資料庫已更改。

SQL> alter database add logfile member 'D:\ORACLE\ORADATA\DEVDB\REDO02A.LOG' to group 2;

資料庫已更改。

SQL> alter database add logfile member 'D:\ORACLE\ORADATA\DEVDB\REDO03A.LOG' to group 3;

資料庫已更改。

SQL> select group#,member from v$logfile order by 1 ;

    GROUP# MEMBER
---------- -------------------------------------
         1 D:\ORACLE\ORADATA\DEVDB\REDO01.LOG
         1 D:\ORACLE\ORADATA\DEVDB\REDO01A.LOG
         2 D:\ORACLE\ORADATA\DEVDB\REDO02A.LOG
         2 D:\ORACLE\ORADATA\DEVDB\REDO02.LOG
         3 D:\ORACLE\ORADATA\DEVDB\REDO03A.LOG
         3 D:\ORACLE\ORADATA\DEVDB\REDO03.LOG

已選擇6行。

環境準備好了,我們開始遷移日誌檔案到其他磁碟上。實現多路複用。
先一致性關閉資料。
SQL> shutdown immediate
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
我們使用OS命令把日誌檔案複製到其他路徑下。

C:\Users\Administrator>copy D:\ORACLE\ORADATA\DEVDB\REDO01A.LOG  e:\ORACLE\ORADATA\DEVDB\REDO01A.LOG
已複製         1 個檔案。

C:\Users\Administrator>copy D:\ORACLE\ORADATA\DEVDB\REDO02A.LOG  e:\ORACLE\ORADATA\DEVDB\REDO02A.LOG
已複製         1 個檔案。

C:\Users\Administrator>copy D:\ORACLE\ORADATA\DEVDB\REDO03A.LOG  e:\ORACLE\ORADATA\DEVDB\REDO03A.LOG
已複製         1 個檔案。

SQL> startup mount;
ORACLE 例程已經啟動。

Total System Global Area  939495424 bytes
Fixed Size                  2181344 bytes
Variable Size             583010080 bytes
Database Buffers          348127232 bytes
Redo Buffers                6176768 bytes
資料庫裝載完畢。

--修改資料路徑名

SQL> alter database rename file 'D:\ORACLE\ORADATA\DEVDB\REDO03A.LOG'  to 'e:\ORACLE\ORADATA\DEVDB\REDO03A.LOG';

資料庫已更改。

SQL> alter database rename file 'D:\ORACLE\ORADATA\DEVDB\REDO02A.LOG'  to 'e:\ORACLE\ORADATA\DEVDB\REDO02A.LOG';

資料庫已更改。

SQL> alter database rename file 'D:\ORACLE\ORADATA\DEVDB\REDO01A.LOG'  to 'e:\ORACLE\ORADATA\DEVDB\REDO01A.LOG';

資料庫已更改。
--開啟資料庫

SQL> alter database open;

資料庫已更改。


SQL> select group#,member from v$logfile order by 1 ;

    GROUP# MEMBER
---------- --------------------------------------
         1 D:\ORACLE\ORADATA\DEVDB\REDO01.LOG
         1 E:\ORACLE\ORADATA\DEVDB\REDO01A.LOG
         2 E:\ORACLE\ORADATA\DEVDB\REDO02A.LOG
         2 D:\ORACLE\ORADATA\DEVDB\REDO02.LOG
         3 E:\ORACLE\ORADATA\DEVDB\REDO03A.LOG
         3 D:\ORACLE\ORADATA\DEVDB\REDO03.LOG

已選擇6行。

對應的日誌路徑已經修改了。日誌中另一個成員放到了E盤上。

本節實驗完成了,下節實驗實現刪除日誌成員。
pxboracle@live.com
2014.04.24. 21:30

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1148936/,如需轉載,請註明出處,否則將追究法律責任。

相關文章