Oracle原理: 归档方式和日志文件
一、聯(lián)機(jī)日志、聯(lián)機(jī)日志組
oracle聯(lián)機(jī)重做日志放在了 /oracle/oradata/orcl下,有3個(gè)REDO.log,記錄了對(duì)數(shù)據(jù)庫(kù)的所有的操作。用戶在對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),后臺(tái)進(jìn)程LGWR就會(huì)把日志緩沖區(qū)的重做條目就會(huì)寫到重做日志里面。當(dāng)數(shù)據(jù)庫(kù)意外宕機(jī)重啟后,重做日志就能派上用場(chǎng)了。數(shù)據(jù)庫(kù)啟動(dòng)時(shí),先前滾,再回滾。達(dá)到了宕機(jī)前已提交了事物都不會(huì)丟失,未提交的事物都不會(huì)保留。
?歸檔日志文件就是聯(lián)機(jī)重做日志文件的備份,聯(lián)機(jī)重做日志文件又稱為在線日志文件,聯(lián)機(jī)日志文件。
日志是通過聯(lián)機(jī)日志組來組織,一個(gè)oracle會(huì)打開兩個(gè)日志文件組,一個(gè)日志組有很多可寫的日志文件,當(dāng)一個(gè)日志組寫滿時(shí)就會(huì)切換到下一個(gè)日志組繼續(xù)寫日志。全部寫滿時(shí),有會(huì)開始寫第1個(gè)日志組,循環(huán)進(jìn)行。?v$log 動(dòng)態(tài)視圖可看日志文件組信息。同一個(gè)日志組下的日志文件大小相同,不同日志組的大小可以不同。
二、歸檔方式和非歸檔方式的含義?
?當(dāng)數(shù)據(jù)庫(kù)為非歸檔方式時(shí):當(dāng)聯(lián)機(jī)日志組切換時(shí),寫滿的聯(lián)機(jī)日志組(被切換的日志組)中的日志信息就會(huì)唄丟棄。缺少了日志的部分就會(huì)無(wú)法進(jìn)行數(shù)據(jù)庫(kù)信息恢復(fù)。此方式可以避免實(shí)例故障,如宕機(jī),但是沒法避免介質(zhì)故障,如硬盤損壞。
當(dāng)數(shù)據(jù)庫(kù)為歸檔模式時(shí):那么所有的日志都會(huì)被保留下來,寫滿的日志組會(huì)被后臺(tái)進(jìn)程ARCH歸檔到歸檔目錄。用戶可以再次模式下完全恢復(fù)數(shù)據(jù)庫(kù)。默認(rèn)的歸檔日志文件路徑為..\flash_recovery_area\orcl\ONLINELOG? 。手動(dòng)切換歸檔日志:alter system switch logfile;?
三、Oracle歸檔方式的調(diào)整
----角色為SYSDBA---- archive log list; ---查看數(shù)據(jù)庫(kù)歸檔狀態(tài) shutdown immediate; --關(guān)閉數(shù)據(jù)庫(kù) startup mount; --裝載數(shù)據(jù)庫(kù) alter database archivelog; --設(shè)置歸檔模式,非歸檔為noarchivelog alter database open; --打開數(shù)據(jù)庫(kù) archive log list;?
?
四、日志文件、日志文件組、歸檔信息的查詢
select * from v$log ; --查詢?nèi)罩窘M select * from v$logfile; --查詢?nèi)罩?select * from v$archived_log --查詢已歸檔的日志alter database add logfile member 'D:\ORACLE\ORADATA\ORCL\REDOTEST.LOG' to group 1; --添加日志文件到組 alter database add logfile group 4 'D:\ORACLE\ORADATA\ORCL\REDOTEST.ora' size 10M; --添加日志組 SHOW PARAMETERS log_archive_dest; --查看歸檔日志位置信息archive log list; ---查看數(shù)據(jù)庫(kù)歸檔狀態(tài) alter system switch logfile; --手動(dòng)切換歸檔日志alter system set log_archive_dest_1 = 'location=D:\oracle\testlog'; --更改歸檔日志路徑位置alter system set log_archive_dest_state_9 = 'defer'; --停用歸檔日志9,允許用enable當(dāng)組狀態(tài)為INACTIVE時(shí)日志文件組可以被清除,清除后狀態(tài)變成Unused;
alter database clear logfile group 2; --清空日志組2的內(nèi)容?
總結(jié)
以上是生活随笔為你收集整理的Oracle原理: 归档方式和日志文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DEBUG日记:同样的代码在不同的环境却
- 下一篇: Oracle 原理: 数据类型