1、在sys身份下登陸oracle,執行命令archive log list;


SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 25 Next log sequence to archive 27 Current log sequence 27
?2、查看動態性能試圖v$database


SQL> select dbid,name,log_mode from v$database;DBID NAME LOG_MODE ---------- ---------------------------------------- ------------ 3718810889 POLI ARCHIVELOG
3、如何開啟歸檔模式?


SQL>SHUTDOWN IMMEDIATE;SQL>STARTUP MOUNT;SQL>ALTER DATABSE ARCHIVELOG;SQL>ALTER DATABASE OPEN;
4、?Filled online redo log files cannot be reused until:
- A checkpoint has taken place
- File has been archived by ARCn
在歸檔模式下,上述2個條件必須同時滿足;非歸檔模式下,只滿足第一個條件即可.
5、查看歸檔模式信息方法


SQL> select log_mode from v$database;LOG_MODE ------------ ARCHIVELOGSQL>


SQL> select archiver from v$instance;ARCHIVE ------- STARTED


SQL> select log_mode from v$database;LOG_MODE ------------ ARCHIVELOGSQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 8 Next log sequence to archive 10 Current log sequence 10 SQL>
Archived Redo?Log?Files
- Filled?online redo log files can be archived
- There are two advantages in running the databaes in ARCHIVELOG mode and archive?online redo log files:
- Recovery: A database backup together with online and archived redo log files can guarante recovery of all commited transactions.
- Backup:This can be performed while the database is open.
- By default,the database is created in NOARCHIVED mode.
歸檔模式與非歸檔模式切換
總結:歸檔模式切換至非歸檔模式,非歸檔模式切換至歸檔模式都是在數據庫處于mount狀態下完成;
一下內容都是從網上尋找到的資料,只是個人學習,多個資料合并成的。和其他文檔有相同的地方不要見怪。
?
Oracle數據庫可以運行在兩種模式下:? ?? 歸檔模式(archivelog)和非歸檔模式(noarchivelog).
歸檔模式&非歸檔模式區別? 歸檔模式,可以在線|離線備份數據庫,可以是全備份或者是部分備份(單個表空間|數據文件)? 非歸檔模式,只能離線備份而且必須備份所有的數據文件,控制文件,日志文件? 最大的區別是歸檔模式能夠做到零數據丟失;當然歸檔會消耗一些存儲和性能資源
歸檔模式工作方式:數據庫有DML或其它事務處理時,日志寫進程LGWR會把語句寫入到日志文件LOG-A中, 然后數據庫會把改的數據調到內存中,修改完成后(修改的事務也會被記錄到LOG-A中),不知道在什么情況下,會把臟數據寫回磁盤.? LOG-A寫滿后切換日志:CKPT被觸發,告知控制文件有日志且換發生,CKPT工作完成,數據庫繼續工作,新產生的日志會被寫到LOG-B中,等LOG-B也被寫滿,切換日志,歸檔進程被喚起,LOG-A中的數據copy到一個文件里面(我是這么想的,我不知道這個文件叫什么名字)然后數據庫的事務日志又源源不斷的寫到LOG-A中,按照這種工作方式,你的數據庫即使出現問題也會被回復到down機前的最后一刻的狀態
非歸檔模式不保存舊日志,? LOG-A滿后切換到LOG-B,LOG-B滿后再切換回LOG-A,LOG-A中的舊數據會被覆蓋.
?
1.查詢系統當前歸檔模式
sys@ora10g> archive log list;
Database log mode?????????????
Archive Mode?????? (歸檔模式;如果是非歸檔模式,顯示No Archive Mode)
Automatic archival????????????
Enabled Archive destination???????????
/oracle/arch/ora10g Oldest online log sequence????
1525 Next log sequence to archive?? 1527
Current log sequence?????????? 1527
系統現處于歸檔模式
2.重新啟動數據庫到mount狀態
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ora10g> startup mount;
ORACLE instance started.
Total System Global Area? 209715200 bytes Fixed Size?????????????????
2071640 bytes Variable Size????????????
125830056 bytes Database Buffers??????????
75497472 bytes Redo Buffers???????????????
6316032 bytes Database mounted.
3.在mount狀態下直接調整數據庫到非歸檔模式
sys@ora10g> alter database noarchivelog;
Database altered.
如果想從非歸檔模式調整到歸檔模式
sys@ora10g> alter database archivelog;
4.OPEN數據庫驗證數據庫歸檔模式
sys@ora10g> alter database open;
Database altered.
sys@ora10g> archive log list;
Database log mode?????????????
No Archive Mode???? (非歸檔模式;如果是歸檔模式,顯示Archive Mode)
Automatic archival????????????
Disabled Archive destination??????????? /oracle/arch/ora10g
Oldest online log sequence???? 1525
Current log sequence?????????? 1527
OK,此時系統已運行在非歸檔模式。