共計(jì) 1730 個字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
丸趣 TV 小編給大家分享一下 Oracle 如何在線調(diào)整 redo 日志組數(shù)及組成員,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
一、調(diào)整 redo 日志組大小
操作原因:
redo 日志一般設(shè)置讓日志轉(zhuǎn)換時間為 10-20 分鐘, 轉(zhuǎn)換太頻繁會影響性能。通常情況下每小時不要超過 6 次! 如果 AWR(Automated Workload Repository 自動負(fù)載信息庫)report 中 log file switch (checkpoint incomplete) 比較大, 說明 redo log 之間的切換過于頻繁。可以通過增加 redo log size 來降低切換的頻率。但如果 redo log size 過大, 可能帶來數(shù)據(jù)庫恢復(fù)時丟失數(shù)據(jù)的風(fēng)險(xiǎn)。所以要折中選擇 redo log size, 默認(rèn)是 50M。
Oracle 沒有提供直接修改配置文件大小的途徑, 但可以采取新增日志組來代替舊有日志組的方式。
例子: 現(xiàn)在有三個日志成員, 大小為 50M, 欲更改為 100M。
1. 查看當(dāng)前日志組成員
SQL select member from v$logfile;
2. 查看當(dāng)前日志組狀態(tài)
SQL select group#,members,bytes/1024/1024,status from v$log;
3. 增加日志組
SQL alter database add logfile group 4 (/u01/oracle/oradata/orcl/redo04.log) size 100M;
SQL alter database add logfile group 5 (/u01/oracle/oradata/orcl/redo05.log) size 100M;
SQL alter database add logfile group 6 (/u01/oracle/oradata/orcl/redo06.log) size 100M;
4. 切換到新增的日志組上
SQL alter system switch logfile;
(可多次執(zhí)行, 直到 CURRENT 指向新建的日志組)
5. 查看當(dāng)前日志組狀態(tài)
SQL select group#,members,bytes/1024/1024,status from v$log;
各種狀態(tài)含義:
a.CURRENT 指當(dāng)前的日志文件, 在進(jìn)行實(shí)例恢復(fù)時是必須的;
b.ACTIVE 是指活動的非當(dāng)前日志, 在進(jìn)行實(shí)例恢復(fù)時會被用到。Active 狀態(tài)意味著,Checkpoint 尚未完成, 因此該日志文件不能被覆蓋。這時也不能 drop 掉, 應(yīng)該執(zhí)行 alter system checkpoint; – 強(qiáng)制執(zhí)行檢查點(diǎn); 然后在操作。
c.INACTIVE 是非活動日志, 在實(shí)例恢復(fù)時不再需要, 但在介質(zhì)恢復(fù)時可能需要。
d.UNUSED 表示該日志從未被寫入, 可能是剛添加的, 或 RESETLOGS 后被重置。
6. 刪除舊的日志組
SQL alter database drop logfile group 1;
SQL alter database drop logfile group 2;
SQL alter database drop logfile group 3;
7. 在操作系統(tǒng)下刪除掉 redolog 日志文件
mv /u01/oracle/oradata/orcl/redo0[1-3] /tmp
或直接刪除已經(jīng)廢棄的日志文件。
備注: 可以先新建日志組作為過渡日志組, 然后刪除原有日志組并修改大小后進(jìn)行重建。
二、向現(xiàn)有日志組新增成員
操作原因: 重做日志冗余, 提高數(shù)據(jù)可恢復(fù)性及完整性。
注意: 若在生產(chǎn)庫中, 則將新創(chuàng)建的成員放到不同的磁盤上。所有日志成員大小要一致。
1. 向指定日志組新增組成員
SQL alter database add logfile member /u01/app/oracle/oradata/ORCL/onlinelog/redo04_b.log to group 4;
2. 查看當(dāng)前日志組成員
SQL select member from v$logfile;
3. 查看當(dāng)前日志組狀態(tài)
SQL select group#,members,bytes/1024/1024,status from v$log;
看完了這篇文章,相信你對“Oracle 如何在線調(diào)整 redo 日志組數(shù)及組成員”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝各位的閱讀!