Redo log 的分享與記憶
1. 檢視redo log file的相關情況,
a) select * from v$logfile;
b) select * from v$log;
2. 向redo log group 裡面新增redo 檔案是操作
ALTER DATABASE [database]
ADD LOGFILE MEMBER
[ ’filename’ [REUSE]
[, ’filename’ [REUSE]]...
TO {GROUP integer
|(’filename’[, ’filename’]...)
}
3. 新增一組新的redo log file.
alter database add logfile group 1 '/opt/oracle/product/9i/oradata/oracle9i/redo01.log' size 200M;
4. 刪除
alter database drop logfile group 1;
5. 修改redo log 的大小
轉載網友部落格中例項供參考:
要將日誌檔案組1,2,3從100M修改到200M方法如下
$ ls
control01.ctl drsys01.dbf redo01.log temp01.dbf xdb01.dbf
control02.ctl example01.dbf redo02.log tools01.dbf
control03.ctl indx01.dbf redo03.log undotbs01.dbf
cwmlite01.dbf odm01.dbf system01.dbf users01.dbf
$ ls -l redo01.log
-rw-r----- 1 oracle dba 104858112 Jan 04 16:34 redo01.log
$ du -m redo01.log
100.00 redo01.log
登陸SQLPLUS
--------------------
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.7.0 - Production on Fri Jan 4 16:48:40 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn / as sysdba;
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 1377274120 bytes
Fixed Size 743688 bytes
Variable Size 738197504 bytes
Database Buffers 637534208 bytes
Redo Buffers 798720 bytes
Database mounted.
Database opened.
SQL> select group# from v$log;
GROUP#
----------
1
2
3
ITPUB個人空間j‑?d0{,z Wer
建立日誌檔案組4,5
---------------------------
SQL> alter database add logfile group 4 '/opt/oracle/product/9i/oradata/oracle9i/redo04.log' size 200M;
Database altered.
SQL> alter database add logfile group 5 '/opt/oracle/product/9i/oradata/oracle9i/redo05.log' size 200M;
Database altered.
3l3?O-hX+] [3_.e/w26464953
將日誌檔案組切換到新建立的4,5日誌檔案組上
--------------------------------------------------------------
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 INACTIVE
3 INACTIVE
4 INACTIVE
5 CURRENT
KA L+a%Y z!ve26464953
刪除已有的1,2,3日誌檔案組
---------------------------------------
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.
*w$U.S:w3p c A
W26464953
增加新的日誌檔案1,2,3,並設定容量為200M
------------------------------------------------------------
SQL> alter database add logfile group 1 '/opt/oracle/product/9i/oradata/oracle9i/redo01.log' size 200M;
Database altered.
SQL> alter database add logfile group 2 '/opt/oracle/product/9i/oradata/oracle9i/redo02.log' size 200M;
Database altered.
SQL> alter database add logfile group 3 '/opt/oracle/product/9i/oradata/oracle9i/redo03.log' size 200M;
Database altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 CURRENT
3 UNUSED
4 INACTIVE
5 INACTIVE
刪除剛剛增加的日誌檔案組4,5
-----------------------------------------
SQL> alter database drop logfile group 4;
Database altered.
SQL> alter database drop logfile group 5;
Database altered.
注意:每一步刪除drop操作,都需要手工刪除os中的實體檔案。
另外注意備份控制檔案。
6. 與redo log 相關的知識:
刪除redo log 檔案
如果redo log 檔案是invalid狀態,可以刪除之
ALTER DATABASE [database] DROP LOGFILE MEMBER ’filename’[, ’filename’]...
相關資料字典
察看
v$log
v$logfile
v$log_histor
修改redo log的位置
- 看看當前的redo log檔案是不是正在使用,如果在使用如下命令
ALTER SYSTEM SWITCH LOGFILE;
- 把該檔案copy到你想要放到位置
- ALTER DATABASE RENAME FILE ’filename’ TO filename’
關於redo log的設定
一般至少兩組redo log 檔案,
每組中的redo log檔案最好在不同的磁碟上,防止一起損壞。
每組中的redo log檔案必須大小一致,它們是同時修改的。
不同組的redo log檔案大小不一定一致。
每組的redo log檔案數目必須一致。
跟redo logfile有關的其它資料庫引數
1、log_buffer
log_buffer是ORACLE SGA的一部分, 所有DML命令修改的資料塊先放在log_buffer裡, 如果滿了或者到了check_point時候通過lgwr後臺程式寫
到redo logfile裡去。它不能設得太大,這樣在意外發生時會丟失很多改變過的資料。它最好不要大於512K或者128K*CPU個數。
我們可以用下面的SQL語句檢測log_buffer使用情況:
SQL> select rbar.name,rbar.value,re.name,re.value,(rbar.value*100)/re.value||'%' "radio"
from v$sysstat rbar,v$sysstat re
where rbar.name='redo buffer allocation retries'
and re.name='redo entries';
這個比率小於1%才好,否則增加log_buffer的大小
2、log_checkpoint_interval
Oracle8.1 版本後log_checkpoint_interval指的是兩次checkpoint之間作業系統資料塊的個數。
checkpoint時Oracle把記憶體裡修改過的資料塊用DBWR寫到物理檔案,用LGWR寫到日誌和控制檔案。
一般UNIX作業系統的資料塊為 512 bytes。
從效能優化來說log_checkpoint_interval = redo logfile size bytes / 512 bytes
3、log_checkpoint_timeout
Oracle8.1 版本後log_checkpoint_timeout指的是兩次checkpoint之間時間秒數。
Oracle建議不用這個引數來控制,因為事務(transaction)大小不是按時間等量分佈的。
log_checkpoint_timeout = 0
log_checkpoint_timeout = 900
Redo Log Buffer
redo log buffer 可以迴圈使用,存放資料庫改變牽涉的資訊,其內部放的是redo entry。
redo entry存放的是INSERT, UPDATE, DELETE, CREATE, ALTER, DROP 等操作對資料庫的改變資訊,這些資訊在recovery的時候是很重要。這些redo entry
由oracle server程式從使用者記憶體放到redo buffer。
LGWR(Log writer)
LGWR(Log writer)是oracle啟動時候必須啟動的程式,它負責把redo log buffer中的redo entry寫到redo log檔案中。
在如下情況下寫檔案:
- redo log buffer 三分之一滿了
- 達到某時間點
- 在 DBWR w把修改的資料塊寫到資料檔案之前寫redo log file
- 事務commit的時候
- 在資料庫做歸檔redo log 檔案的時候
Redo Log file
redo log就是存放redo log 資訊的檔案了,至少有兩個redo log 組,oracle迴圈使用之。當然推薦有更多的redo log 組。既然是迴圈使用redo log,
必然會有一個log switch的過程。
log switch發生在:
- log file 已經寫滿了
- 使用了ALTER SYSTEM SWITCH LOGFILE 命令
在log switch 的時候自動會做checkpoint。
只要redo log組裡面有一個redo log file可以用,就能進行log switch。當然如果redo log file壞了,LGWR肯定會記錄到 trace和alert檔案.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26464953/viewspace-712834/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- innodb的redo log以及與binary log的區別
- InnoDB文件筆記(二)—— Redo Log筆記
- Redo Log之一:理解Oracle redo logOracle Redo
- MySQL的Redo log 以及Bin logMySql
- mysql日誌:redo log、binlog、undo log 區別與作用MySql
- standby redo log的理解
- undo log和redo log
- DG學習筆記(5)_Standby Redo Log筆記
- MySQL中的redo log和undo logMySql
- weblogic的記憶體分配Web記憶體
- LOGMINER的記憶體消耗記憶體
- Redo Log之二:遷移redo log到不同的儲存路徑
- (轉)老白的理解REDO LOG
- 修改oracle redo log的大小Oracle Redo
- [筆記]RAC上改變redo logfile大小筆記
- logminer工具對redo log或archive log的挖掘Hive
- MySQL:Redo & binlogMySql
- mysql之 redo logMySql
- oracle redo log operationOracle Redo
- redo的等待log file sync和log file parallel write和redo size設定Parallel
- archive log檔案大小與redo log檔案大小關係探究Hive
- MySQL中的redo log和checkpointMySql
- redo logfile的維護操作
- Redo Log Buffer的大小設定
- redo log file 物理結構學習與測試
- redo_log_switch_date
- redo log file 優化優化
- Oracle redo log重組Oracle Redo
- Oracle Dump Redo Log FileOracle
- MySQL Undo Log和Redo Log介紹MySql
- 關於redo log 檔案中記錄的內容問題 ?
- redo log 和 binlog 的一些總結
- MySQL binlog和redo的組提交MySql
- weblogic 記憶體調整Web記憶體
- WebLogic: 記憶體溢位Web記憶體溢位
- 【Mysql】三大日誌 redo log、bin log、undo logMySql
- Archive Log模式下Redo Log、Check Point和Switch LogHive模式
- MySQL 日誌系統 redo log、binlogMySql