重建redo文件


需求背景

  由於前期安裝oracle時redo文件大小或者路徑規划不合理需要進行修改,以便滿足性能測試要求。redo文件規划大小建議與生產環境一致。

重做日志相關數據字典

  1、v$log  記錄數據庫中有多少個重做日志組,每個組中有多少個成員、日志大小及狀態

  2、v$logfile 記錄着每個日志組成員的屬性、文件路徑、文件名、狀態等

操作步驟

  1、查看現有日志組及重做文件大小

SQL> select group#,sequence#,bytes/1024/1024 sizeMB,members,status from v$log;

    GROUP# SEQUENCE# SIZEMB MEMBERS STATUS ---------- ---------- ---------- ---------- --------- 1 27 50 1 INACTIVE 2 28 50 1 CURRENT 3 29 50 1 INACTIVE

  STAUS狀態值說明:

inactive:表示實例恢復已不再需要這組聯機重做日志組了。
active:表示該組是活動的但不是當前組,實例恢復時需要這組日志。
current:表示該組日志是當前組,該聯機重做日志組是活動的,當前正在使用。 unused:表示該日志組從未寫過,是重做日志剛剛添加到狀態。

  2、查看當前重做日志文件的狀態和路徑

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

    GROUP# STATUS TYPE MEMBER ---------- ------- ------- --------------------------------------------- 3 ONLINE /home/oracle/oradata/ora11g/redo03.log 2 ONLINE /home/oracle/oradata/ora11g/redo02.log 1 ONLINE /home/oracle/oradata/ora11g/redo01.log

  STATUS狀態說明:

空白:表示該文件正在使用。
stale:表示該文件中的內容是不完全的。
invalid:表示該文件是不可以被訪問的。
deleted:表示該文件已不再有用了。

  3、新增創建重做日志文件組group 4、group 5、group 6,文件大小設置為1000M。

SQL> alter database add logfile group 4('/dev/vgoracle/lvredo4.log') size 1000M;

Database altered.

SQL> alter database add logfile group 5('/dev/vgoracle/lvredo5.log') size 1000M;

Database altered.

SQL> alter database add logfile group 6('/dev/vgoracle/lvredo6.log') size 1000M;

Database altered.

  4、執行alert system switch logfile命令進行多次切換,直至group 4或者group 5日志組的狀態為current。

SQL> alter system switch logfile;

System altered.

SQL> select group#,sequence#,bytes/1024/1024 sizeMB,members,status from v$log;

    GROUP#  SEQUENCE#     SIZEMB    MEMBERS     STATUS
---------- ---------- ---------- ----------   ---------  
         1    27             50          1     INACTIVE
         2    28             50          1     ACTIVE
         3    29             50          1     INACTIVE
         4    30             50          1     CURRENT
         5    31             50          1     NOUSE
         6    32             50          1     NOUSE

5、執行alter system checkpoint手工執行同步數據,將redo文件記錄寫入數據文件。確保group 1、group 2、group 3文件組狀態為INACTIVE。

SQL> select group#,sequence#,bytes/1024/1024 sizeMB,members,status from v$log;

    GROUP#  SEQUENCE#     SIZEMB    MEMBERS     STATUS
---------- ---------- ---------- ----------   ---------  
         1    27             50          1     INACTIVE
         2    28             50          1     INACTIVE
         3    29             50          1     INACTIVE
         4    30             50          1     CURRENT
         5    31             50          1     NOUSE
         6    32             50          1     NOUSE

  6、當日志組處於INACTIVE狀態是,可以執行drop操作刪除。對應的OS文件需手工刪除。

SQL> alter database drop logfile group 1;

Database altered.

SQL> alter database drop logfile group 2;

Database altered.

SQL> alter database drop logfile group 3;

Database altered.

 7、操作完成。重新查看重做日志文件組狀態

SQL> select group#,sequence#,bytes/1024/1024 sizeMB,members,status from v$log;

    GROUP#  SEQUENCE#     SIZEMB    MEMBERS     STATUS
---------- ---------- ---------- ----------   ---------  
         4    30             1000          1     ACTIVE
         5    31             1000          1     NOUSE
         6    32             1000          1     NOUSE

說明:如果習慣使用日志組1/2/3,可以按照上述過程重新操作一遍即可。

8、清理被替換的redo文件

rm /home/oracle/oradata/ora11g/redo01.log
rm /home/oracle/oradata/ora11g/redo02.log
rm /home/oracle/oradata/ora11g/redo03.log


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM