註意點:1、redo要是能sesize的話就完美了2、drop時候如果active就得checkpoint才能drop3、物理刪除舊redo文件redo大小影響切換,進而影響性能,至於什麼樣的業務設置多大暫時還不是很確定,正常情況下設置1g-2g就差不多了。另外可能還跟IO有關,因為在切換時候如果I ...
註意點:
1、redo要是能sesize的話就完美了
2、drop時候如果active就得checkpoint才能drop
3、物理刪除舊redo文件
redo大小影響切換,進而影響性能,至於什麼樣的業務設置多大暫時還不是很確定,正常情況下設置1g-2g就差不多了。另外可能還跟IO有關,因為在切換時候如果IO差,那麼切換就會很慢,這樣的話就會影響到性能。
--查詢日誌組及狀態
SQL> select thread#,group#,members,bytes/1024/1024 ,STATUS from v$log;
THREAD# GROUP# MEMBERS BYTES/1024/1024 STATUS
---------- ---------- ---------- --------------- ----------------
1 1 1 1000 INACTIVE
1 2 1 1000 ACTIVE
--查詢路徑,將新增的redo放在同一目錄中
SQL> SELECT MEMBER FROM v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/test/actlog/redo02.log
/u01/app/oracle/oradata/test/actlog/redo01.log
--比如原來redo大小為1000m,現在想調為100m,畢竟是測試環境,沒必要搞那麼大
SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/test/actlog/redo03.log') size 100m;
資料庫已更改。
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/test/actlog/redo04.log') size 100m;
資料庫已更改。
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/test/actlog/redo05.log') size 100m;
資料庫已更改。
SQL> select group#,members,bytes/1024/1024,status from v$log;
GROUP# MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
1 1 1000 CURRENT
2 1 1000 UNUSED
3 1 100 UNUSED
4 1 100 UNUSED
5 1 100 UNUSED
日誌切換,準備刪除原來的日誌,將被刪除的日誌切換到INACTIVE就可以drop了
SQL> alter system switch logfile;
系統已更改。
--但是發現,切換了好幾次,想drop的redo還是ACTIVE,就來個狠的,強制進行檢查點
SQL> alter system checkpoint;
系統已更改。
SQL> select group#,members,bytes/1024/1024,status from v$log;
GROUP# MEMBERS BYTES/1024/1024 STATUS
---------- ---------- --------------- ----------------
1 1 1000 INACTIVE
2 1 1000 INACTIVE
3 1 100 CURRENT
4 1 100 INACTIVE
5 1 100 UNUSED
SQL> alter database drop logfile group 1;
資料庫已更改。
SQL> alter database drop logfile group 2;
資料庫已更改。
為了保持好看,1、2還想再用,就再走一遍,但報錯了。。。
SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;
alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m
*
第 1 行出現錯誤:
ORA-00301: 添加日誌文件 '/u01/app/oracle/oradata/test/actlog/redo03.log'
時出錯 - 無法創建文件
ORA-27038: 所創建的文件已存在
Additional information: 1
物理刪除redo文件,找到對應redo目錄rm redo01.log redo02.log
[oracle@test ~]$ cd /u01/app/oracle/oradata/test/actlog/
[oracle@test ~]$ rm redo01.log redo02.log
SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/test/actlog/redo01.log') size 100m;
資料庫已更改。
SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/test/actlog/redo02.log') size 100m;
資料庫已更改。
添加刪除完之後,switch幾下看正常不
SQL> alter system switch logfile;
系統已更改。