修改Redo LogFile大小
?
?
??? 最近在把DATABASE切換到ARCHIVELOG模式之后,發(fā)現(xiàn)Oracle默認的是非自動歸檔,即LOG_ARCHIVE_START = FALSE,
可能是
因為當前測試的數(shù)據(jù)庫是手工創(chuàng)建的,所以有些啟動參數(shù)和用DBCA創(chuàng)建的不太一致。
?
??? 另外自己創(chuàng)建的重做日志文件也都比較小,只有3個2M的文件,直接執(zhí)行一個腳本就把所有重做日志寫滿了,又沒有設(shè)置自動歸檔,所以整個系統(tǒng)都hang住了,都在等待日志歸檔,clear了也不行,就只能增加logfile了。
?
??? alter.log日志信息:
?
??? Mon Dec 15 14:38:08 2008
??? Thread 1 advanced to log sequence 155
????? Current log# 2 seq# 155 mem# 0: D:\ORACLE\ORADATA\KAKA\REDO02.LOG
??? Thread 1 advanced to log sequence 156
????? Current log# 3 seq# 156 mem# 0: D:\ORACLE\ORADATA\KAKA\REDO03.LOG
??? Thread 1 cannot allocate new log, sequence 157
??? All online logs needed archiving
????? Current log# 3 seq# 156 mem# 0: D:\ORACLE\ORADATA\KAKA\REDO03.LOG
?
?
??? LogFile不能像DataFile那樣直接通過alter database datafile ... resize 來重置大小,所以比較麻煩。
?
??? 在網(wǎng)上查了一下,找到N多年前biti老大給的方法,步驟應(yīng)該很清楚了,前提是要用ARCHIVELOG模式,否則刪除舊日志后無備份信息。
?
?
?
方法:加入新的大的日志文件,然后刪掉舊的小的日志文件
假設(shè)現(xiàn)有3個日志組,每個組內(nèi)有1個成員,每個成員的大小為1MB,現(xiàn)在想把此3個日志組的成員大小都改為10MB
1、創(chuàng)建2個新的日志組
alter database add logfile group 4 ('D:\ORACLE\ORADATA\ORADB\REDO04_1.LOG') size 1024k;
alter database add logfile group 5 ('D:\ORACLE\ORADATA\ORADB\REDO05_1.LOG') size 1024k;
2、切換當前日志到新的日志組
alter system switch logfile;
alter system switch logfile;
3、刪除舊的日志組
alter database drop logfile group 1;
alter database drop logfile group 2;
alter database drop logfile group 3;
4、操作系統(tǒng)下刪除原日志組1、2、3中的文件
5、重建日志組1、2、3
alter database add logfile group 1 ('D:\ORACLE\ORADATA\ORADB\REDO01_1.LOG') size 10M;
alter database add logfile group 2 ('D:\ORACLE\ORADATA\ORADB\REDO02_1.LOG') size 10M;
alter database add logfile group 3 ('D:\ORACLE\ORADATA\ORADB\REDO03_1.LOG') size 10M;
6、切換日志組
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
7、刪除中間過渡用的日志組4、5
alter database drop logfile group 4;
alter database drop logfile group 5;
8、到操作系統(tǒng)下刪除原日志組4、5中的文件
9、備份當前的最新的控制文件
SQL> alter database backup controlfile to trace resetlogs;
?
?