oracle歸檔日誌

一、什麼是oracle歸檔模式?

oracle數據庫可以運行在歸檔模式(ARCHIVELOG)和非歸檔模式(NOARCHIVELOG)下。

在非歸檔模式下,每次聯機重做日誌文件已滿併發生日誌切換是,都要覆蓋原來聯機重做日誌文件。

在歸檔模式下,必須將已滿的聯機重做日誌文件進行歸檔才能被覆蓋。這樣DBA可以使用數據庫物理備份和歸檔的聯機重做日誌文件恢復數據庫,而不會丟失任何已經提交的數據。

二、oracle歸檔模式的好處

數據庫使用歸檔方式運行時纔可以進行災難性恢復。 歸檔日誌模式和非歸檔日誌模式的區別非歸檔模式只能做冷備份,並且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的數據不能恢復. 歸檔模式可以做熱備份,並且可以做增量備份,可以做部分恢復。

三、配置數據庫的歸檔模式

1、查看數據庫的歸檔模式

SQL> archive log list;
Database log mode       No Archive Mode
Automatic archival       Disabled
Archive destination       /home/oracle/flash_recovery_area/ORCL/archivelog/
Oldest online log sequence     293
Current log sequence       295



以上信息得知:

Adatabase log mode表示數據庫處於非歸檔模式下

Automatic archival 表示自動歸檔功能被禁用

Archive destination表示啓用歸檔模式時歸檔日誌保存的路徑

Oldest online log sequence表示最早的重做日誌序列號

Current log sequence 表示當前日誌序列號

295號日誌的歸檔文件第一個備份的名稱默認爲1_295_831914581.dbf

2、關閉數據庫,然後轉載數據庫

注意只有在數據庫處於mount狀態下才能修改日誌操作模式,關閉數據庫是不能使用shutdown abort命令。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount 
ORACLE instance started.


Total System Global Area 1590267904 bytes
Fixed Size    1336792 bytes
Variable Size 1224739368 bytes
Database Buffers  352321536 bytes
Redo Buffers   11870208 bytes
Database mounted.


3、修改歸檔模式

SQL> alter database archivelog;


Database altered.


4、修改相應初始化參數使數據庫處於自動歸檔模式(10g以前需要)

要在實例啓動前啓用自動歸檔功能,需要將初始化參數LOG_ARCHIVE_START 的值改爲TRUE。步驟如下:

(1)以管理員身份登錄數據庫

sqlplus / as sysdba

(2)修改服務器端初始化參數

alter system set log_archive_start=true scope=spfile;

(3)重新啓動數據庫,是參數生效

shutdown

startup

注意:重oracle10g開始log_archive_start參數已經被廢除

5、打開數據庫並查看歸檔模式

SQL> alter database open;


Database altered.


SQL> archive log list;
Database log mode       Archive Mode
Automatic archival       Enabled
Archive destination       /home/oracle/flash_recovery_area/ORCL/archivelog/
Oldest online log sequence     293
Next log sequence to archive   295
Current log sequence       295


四、配置數據庫從歸檔模式變成非歸檔模式

1、同樣要關閉數據庫,然後轉載數據庫

2、alter database noarchivelog

如果出現如下錯誤(ORA-38774)

SQL> alter database noarchivelog ;
alter database noarchivelog
*
ERROR at line 1:
ORA-38774: cannot disable media recovery - flashback database is enabled

需要先關閉flashback再運行alter database noarchivelog命令

SQL> alter database flashback off;


Database altered.


SQL> alter database noarchivelog;


Database altered.


3、打開數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章