現在就Oracle 10g歸檔方式討論:關閉歸檔/啟用閃回恢復區歸檔(Oracle 10g新特性)/啟用類Oracle9i的歸檔。注:在Oracle安裝過程中,如果數據庫是自動創建的,那麼該數據庫最初的存檔模式是由操作系統指定的。通常情況下,Oracle 10g歸檔日志在Oracle 數據庫安裝結束後需要手工創建。
環境:Oracle 10g 10.2.0.1.0/Windows 2003 Server SP1
一、關閉歸檔
- v$archived_log,v$log,v$archive_dest,v$database,v$archive_processes,
- v$backup_redolog,v$log_histroy,v$recovery_file_dest.
1、啟動SQL*PLUS以管理身份登錄Oracle數據庫:
- SQL> connect / as sysdba
2、關閉數據庫實例
- SQL> shutdown immediate
3、備份數據庫:在對數據庫做出任何重要的改變之前,建議備份數據庫以免出現任何問題。
4、啟動一個新的實例並裝載數據庫,但不打開數據庫:
- SQL> startup mount
5、禁止自動存檔
- SQL> alter system archive log stop;
6、禁止存檔聯機重做日志:轉換數據庫的存檔模式。
- SQL> alter database noarchivelog ;
7、打開數據庫:
- SQL> alter database open ;
8、察看已連接實例的存檔信息:
- SQL> archive log list ;
數據庫日志模式 非存檔模式
自動存檔 禁用
存檔終點 E:Oraclearc
最早的聯機日志序列 50
當前日志序列 52
二、啟用閃回恢復區歸檔(Oracle 10g新特性)-Oracle數據庫安裝完成後首次創建自動歸檔日志
1、啟動SQL*PLUS以管理身份登錄Oracle數據庫:
- SQL> connect / as sysdba
2、關閉數據庫實例
- SQL> shutdown immediate
3、備份數據庫:在對數據庫做出任何重要的改變之前,建議備份數據庫以免出現任何問題。
4、啟動一個新的實例並裝載數據庫,但不打開數據庫:
- SQL> startup mount
5、轉換數據庫的存檔模式為歸檔方式:
- SQL> alter database archivelog ;
6、打開數據庫:
- SQL> alter database open ;
7、在數據庫實例啟動後允許自動存檔方式:
- SQL> alter system archive log start ;
8、通過資源管理器察看Flash_recovery_area的日志文件結構快照如下:
9、關閉Flash_recovery_area歸檔:
- SQL>alter database Flashback off ;
10、閃回區默認的存儲空間為2G,修改Flash_RECOVERY_AREA空間為20GB:
- SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20g ;
10g默認的歸檔日志存放地方/
三、啟用類Oracle9i的歸檔(自己創建歸檔日志路徑)
1、啟動SQL*PLUS以管理身份登錄Oracle數據庫:
- SQL> connect / as sysdba
2、關閉數據庫實例
- SQL> shutdown immediate
3、備份數據庫:在對數據庫做出任何重要的改變之前,建議備份數據庫以免出現任何問題。
4、啟動一個新的實例並裝載數據庫,但不打開數據庫:
- SQL> startup mount
5、轉換數據庫的存檔模式為歸檔方式
- SQL> alter database archivelog ;
6、打開數據庫:
- SQL> alter database open ;
7、在數據庫實例啟動後允許自動存檔方式:
- SQL> alter system set log_archive_start=true scope=spfile;
8、指定歸檔日志文件的存放位置並記錄到SPFILE:
- SQL> alter system set log_archive_dest_1=' location=E:\Oracle\arc' scope=spfile;
9、指定歸檔日志文件名命名格式:使用%s來包含日志序號作為文件名的一部份,並且使用%t來包含線程號,使用大寫字母(%S和%T)來以0填 補文件名左邊的空處。
- The following variables can be used in the format:
- %s log sequence number
- %S log sequence number, zero filled
- %t thread number
- %T thread number, zero filled
- SQL> alter system set log_archive_format='BE%S_%R_%T.arc' scope=spfile;
四、閃回恢復區歸檔與類Oracle9i歸檔的切換
類Oracle9i歸檔到閃回恢復區歸檔:
1、以SYSDBA身份登錄Oracle的OEM,依次選擇管理->數據庫配置中的所有初始化參數:
2、選擇“當前”的初始化參數,將“在當前正在運行的實例模式下將更改應用於 SPFile。對於靜態參數, 必須重新啟動數據庫。”選中,查找參數“log_archive_dest_1”、“log_archive_dest_2“...,將所有上述的參數值 清空,其它參數保持不變,點擊應用按鈕後注銷退出。
閃回恢復區歸檔到類Oracle9i歸檔:同三,只應用7、8、9步驟即可。
●如果在Oracle安裝結束後先做閃回恢復區歸檔,後改為類Oracle9i歸檔,如果手工將原歸檔文件刪除,則需要以Rman方式來清理失 效的日志記錄信息,操作步驟如下:
1、以sysdba身份登錄到Rman:
- C:>rman nocatalog target
2、刪除失效的日志記錄信息:
- RMAN>crosscheck archivelog all;
- RMAN>delete expired archivelog all;
●查詢那一個聯機重做日志組需要存檔:
- SQL> select group#,archived from sys.v$log ;
- GROUP# ARC
- ---------- ---
- 1 NO
- 2 YES
- 3 YES
●查看當前的存檔模式:
- SQL> select log_mode from sys.v$database ;
- LOG_MODE