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