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...