在ORACLE數據庫中實現從非歸檔模式到歸檔模式的轉化
2024-08-29 13:39:30
供稿:網友
一、查看數據庫運行模式
可以用超級用戶(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST查看
SQL> archive log list
Database log mode No Archive Mode
Automatic archivalDisabled
Archive destination /eXPort/home/Oracle/PRodUCt/8.1.7/dbs/arch
Oldest online log sequence 28613
Current log sequence28615
或者用:
SQL> SELECT NAME,LOG_MODE FROM V$DATABASE;
NAMELOG_MODE
--------------------
BIGSUNNOARCHIVELOG
如看到如上情況,則證實是非歸檔(NOARCHIVELOG)模式。
二、關閉數據庫
通知相關人員后,發布如下命令關閉數據庫:
SQL> shutdown immediate
三、設置相應的初始化參數
參數文件一般存放在$ORACLE_HOME/dbs目錄下,格式為:initSID.ora,其中SID為數據庫名。可以使用VI命令進行編輯。
1、設置歸檔路徑
a)LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEST參數
這兩個參數指明了歸檔日志存放的兩個路徑,假如只設置第一個,則歸檔日志只存放到一個路徑。
例:
log_archive_dest=/disk1/archive
log_archive_duplex_dest=/disk2/archive
b)LOG_ARCHIVE_DEST_n參數
其中n為1-5的整數,必需從低到高設置,下面舉例說明:
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"
LOCATION要害字說明是本機的一個目錄,而SERVICE要害字說明是已經在Net8中進行了配置的其他數據庫主機的別名。
MANDATORY要害字說明聯機日志文件必須要成功歸檔到這個目錄后才能被覆寫(聯機日志文件是重復使用的文件)。缺省為可選(OPTIONAL),即即使歸檔不成功也可以覆寫。在設置時應該至少有一個本地(LOCATION)強制(MANDATORY)歸檔目錄。
REOPEN要害字說明假如歸檔不成功時系統要重新嘗試歸檔,缺省每300秒嘗試一次直到成功。可以通過=n來指定嘗試的時間間隔,如log_archive_dest_2中的時間間隔為600秒,而log_archive_dest_1中的時間間隔為300秒。
a)和b)兩種方式是排斥的,即只能設置其中的一種,a)和b)的不同之處在于:
a)最多只能設置2個歸檔路徑,而b)最多可設置5個。
a)中只能指定本地目錄,b)中可指定遠程服務目錄。
假如使用a)方式,則log_archive_dest是強制(MANDATORY)歸檔目錄,而log_archive_duplex_dest為可選(OPTIONAL)目錄。
a)中不能使用REOPEN要害字。
所以推薦使用b)方式。
2、設置歸檔日志文件名格式
例:
log_archive_format=arch%S.arc
其中%S為日志序列號,則生成的歸檔日志文件名為arch001.arc、arch002.arc等。
3、設置最小歸檔成功數
例:
log_archive_min_succeed_dest=2
此參數說明至少有2個歸檔路徑歸檔成功后才能覆寫聯機日志文件,此參數和歸檔路徑參數聯用。
如歸檔路徑參數設置為:
log_archive_dest_1="LOCATION=/archive MANDATORY REOPEN"
log_archive_dest_2="SERVICE=standby_db1 OPTIONAL"
log_archive_dest_3="LOCATION=/archive2 OPTIONAL"
則log_archive_dest_1必須歸檔成功(MANDATORY),log_archive_dest_2、log_archive_dest_3中必須有一個歸檔成功(log_archive_min_succeed_dest=2)后才能覆寫聯機日志文件。同樣,假如log_archive_dest_n中的MANDATORY要害字個數大于log_archive_min_succeed_dest,則log_archive_min_succeed_dest的設置不起作用。
4、控制歸檔路徑是否可用
例:
log_archive_dest_state_1=DEFER
log_archive_dest_state_2=ENABLE
此參數和log_archive_dest_n參數配對使用,缺省值為ENABLE,假如想停止使用一個歸檔目錄,只需將其對應的log_archive_dest_state_n參數值設置為DEFER。
5、實現自動歸檔(可選)
log_archive_start=true
log_archive_max_processes=2
在ORACLE中,自動歸檔的進程名為ARC0、ARC1等,log_archive_start參數說明是否采用自動歸檔,值為true表示采用,為false時必須采用命令來手工備份。log_archive_max_processes表示在log_archive_start為true時運行幾個歸檔進程來完成歸檔工作,取值范圍為1-10。
四、更改數據庫運行模式
在SQLPLUS中執行命令:
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
至此,模式轉化工作已經大功告成。但需要注重的是,由于更改了數據庫結構,如有數據庫安全方面的需要,必須關閉數據庫并完全備份。