日誌檔案使用小結(轉)

zhouwf0726發表於2019-03-15

日誌檔案使用小結

http://xsb.itpub.net/post/419/60494


1:給日誌組1增加重做日誌檔案.
SQL> alter database add logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG' to group 1;

資料庫已更改。


2:刪除重做日誌.

SQL>alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';
備註:如果要刪除點日誌是當前重做日誌,就無法刪除.
如:
檢視當前重做日誌的資訊.
SQL> select a.member,b.status
2 from v$logfile a ,v$log b
3 where a.group#=b.group#;


MEMBER STATUS
----------------
G:ORACLEORADATALIJIEREDO01.LOG CURRENT

G:ORACLEORADATALIJIEREDO1B.LOG CURRENT

G:ORACLEORADATALIJIEREDO02.LOG INACTIVE

G:ORACLEORADATALIJIEREDO03.LOG INACTIVE

G:ORACLEORADATALIJIEREDO4A.LOG UNUSED


--試著刪除Status列為current的的日誌.
SQL> alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';
alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG'
*
ERROR 位於第 1 行:
ORA-01609: 日誌1是執行緒1的當前日誌 - 無法刪除成員
ORA-00312: 聯機日誌 1 執行緒 1: 'G:ORACLEORADATALIJIEREDO01.LOG'
ORA-00312: 聯機日誌 1 執行緒 1: 'G:ORACLEORADATALIJIEREDO1B.LOG'
--

切換日誌,就可以正常刪除了.
SQL> alter system switch logfile;

系統已更改。
SQL> alter database drop logfile member 'G:ORACLEORADATALIJIEREDO1b.LOG';

資料庫已更改。




2:增加重做日誌組.
ALTER DATABASE ADD LOGFILE GROUP 4
('G:ORACLEORADATALIJIEREDO4a.log') SIZE 10M



1:檢查資料庫當前狀態.
SQL> archive log list;
資料庫日誌模式 非存檔模式
自動存檔 禁用
存檔終點 g:oracleora92RDBMS
最早的概要日誌序列 29
當前日誌序列 31
SQL>


--把資料shutdown,並重啟到mount狀態後.
--並更改initSID.ora檔案,把log_archive_start改為true;
--如果沒有log_archive_start引數,就增加一行.如下.
*.log_archive_start=TRUE
--再增加一行,表示歸檔目錄.
*.log_archive_dest_1 = "location=g:oracleoradatalijiearchive"

裝載資料庫.
SQL> alter database archivelog;

資料庫已更改。

SQL> alter system switch logfile;

系統已更改。

SQL> alter system switch logfile;

系統已更改。


--檢視作業系統g:oracleoradatalijiearchive有無歸檔日值產生.
--如果自動歸檔是disabled,執行了alter system switch logfile,雖然進行了日誌組的切換,
--但是歸檔程式並不把之前的online redo log歸檔,需要進行手工歸檔:
--alter system archive log all; 把所有沒有歸檔的日誌歸檔


--檢視日值切換的時間間隔.
select b.recid,b.first_time,a.first_time,round((a.first_time-b.first_time)*24*60,2) minates
from v$log_history a,v$log_history b
where a.recid=b.recid +1
order by a.first_time desc

1 32 2005-3-23 11:12:25 2005-3-23 11:14:46 2.35
2 31 2005-3-23 11:12:19 2005-3-23 11:12:25 0.1

3---------------------------------------------------

--如果日值切換的時間間隔小於30分鐘,就應該增加日值檔案大小.
--當然如果增大了日誌檔案,就應該增大相應的log_checkpoint_interval的值.
--log_checkpoint_interval 表示如果有多少個資料塊寫入的重做日值後就觸發檢查點.(8i)


conclusion:
1:同一個重做日值組下的所有重做日值大小必須一致.
2:修改log_archive_start=true,並讓資料庫工作在archivelog模式,就能產生歸檔日誌.
3:增大重做日誌的大小,可以加快一些大型的insert,update,delete操作.
4:把重做日誌放在速度最快的硬碟上.
5:聯機重做日誌可以迴圈使用,而歸檔日誌的是自動建立的,大小取決於你的重做日誌.

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

相關文章