設定oracle資料庫redo日誌大小

2021-10-07 03:35:02 字數 1759 閱讀 7132

1、檢視當前日誌組成員

sql> select member from v$logfile;

2、檢視當前日誌組狀態

sql> select group#,members,bytes/1024/1024.status from v$log;
3、增加日誌組

sql> alter database add logfile group 4

('/opt/oracle/oradata/oral/redo04.log'

) size 200m;

sql> alter database add logfile group 5

('/opt/oracle/oradata/oral/redo05.log'

) size 200m;

sql> alter database add logfile group 6

('/opt/oracle/oradata/oral/redo06.log'

) size 200m;

sql> alter system switch logfile;

system altered

sql>select group#,members,bytes/1024/1024.status from v$log;

current:指當前的日誌檔案,在進行例項恢復時是必須的

active:是指活動的非當前日誌,在進行例項恢復時會被用到。active狀態意味著checkpoint尚未完成,因此該日誌檔案不能被覆蓋。

inactivel:是非活動日誌,在例項恢復時不在需要,但在介質恢復時可能需要

unused:表示該日誌從未被寫入,可能是剛新增的或者resetlogs後被重置

4、刪除舊的日誌組

sql> alter database drop logfile group 1

;sql> alter database drop logfile group 2

;sql> alter database drop logfile group 3

;database altered

可能會報錯如下

ora-

01624

:log 1 needed for crash recovery of instance orcl(thread 1

)ora-

00312

:online log 1 thread 1

:'/opt/oracle/oradata/orcl/redo01.log'

原因:因為日誌成員處在active狀態,不能drop掉的,在執行alter system switch logfile;

解決辦法:切換日誌組,然後重新產出就可以了

sql> alter system switch logfile;

sql> select group#,members,bytes/1024/1024,stuatus from v$log;

sql> alter database drop logfile group 1

;

5、再檢視日誌組

sql> select group#,members,bytes/1024/1024,stuatus from v$log;
6、在作業系統下刪除之前的redolog日誌檔案

oracle@suse-01-27:~>rm -r /opt/oracle/oradata/orcl/redo0[1-3].log

資料庫undo和redo

undo和redo是沒有關係的,不能相互取代,對於資料庫來說,只有有沒有undo 和有沒有redo的區別,不是有了undo就不能有redo,或者有了redo就不能有undo。到底用不用redo和undo是和steal no steal force no force策略相關的。你肯定是沒搞明白這四個策...

webconfig設定Oracle資料庫資訊

我這裡使用的是oracle11g 首先在nuget中安裝oracle.manageddataaccess和oracle.manageddataaccess.entity兩個包 在專案主目錄中開啟web.config 在這個標籤中新增如下所示 在兩個新增的兩個標籤中的 key constr 和 nam...

資料庫的REDO和UNDO機制

redo undo機制是在資料庫引擎曾實現的。undo機制如下 假設有a b兩個資料,值分別為1,2。a.事務開始.b.記錄a 1到undo log.c.修改a 3.d.記錄b 2到undo log.e.修改b 4.f.將undo log寫到磁碟。g.將資料寫到磁碟。h.從磁碟檔案中刪除之前的und...