Oracle數(shù)據(jù)庫各版本單機及rac啟用歸檔方法匯總
概述
Oracle數(shù)據(jù)庫有聯(lián)機重做日志,這個日志是記錄對數(shù)據(jù)庫所做的修改,比如插入、刪除、更新等,對這些操作都會記錄在聯(lián)機重做日志里。一般數(shù)據(jù)庫至少要有2個聯(lián)機重做日志組。如果數(shù)據(jù)庫處于非歸檔模式,聯(lián)機日志在切換時就會丟棄,而在歸檔模式下,當(dāng)發(fā)生日志切換的時候,被切換的日志會進(jìn)行歸檔。
歸檔模式和非歸檔模式的優(yōu)缺點歸檔模式的優(yōu)點
- 可以進(jìn)行完全、不完全恢復(fù):由于對數(shù)據(jù)庫所做的全部改動都記錄在日志文件中,如果發(fā)生硬盤故 障等導(dǎo)致數(shù)據(jù)文件丟失的話,則可以利用物理備份和歸檔日志完全恢復(fù)數(shù)據(jù)庫,不會丟失任何數(shù)據(jù)??梢赃M(jìn)行聯(lián)機熱備:所謂聯(lián)機熱備,就是在數(shù)據(jù)庫運行狀態(tài)下,對數(shù)據(jù)庫進(jìn)行備份。備份時用戶對 數(shù)據(jù)庫的使用不受任何影響。
- 可以實施 Data Guard:可以部署 1 個或多個備用數(shù)據(jù)庫,從而最大限度地提供災(zāi)難保護(hù)手段。
- 可以實施 Stream:利用 Stream 技術(shù),可以實現(xiàn)最簡單的單向復(fù)制到復(fù)雜的雙向復(fù)制、多向復(fù)制, 提供更加靈活的數(shù)據(jù)冗余方案。
- 表空間可以脫機:可以備份部分?jǐn)?shù)據(jù)庫,比如重要的表空間。
- 能夠增量備份:只需做一次完全備份,以后只備份發(fā)生改變的數(shù)據(jù),可以提高備份速度
- 更多的優(yōu)化選項:隨著 Oracle 版本升級,在聯(lián)機熱備方面不斷有新的優(yōu)化策略出現(xiàn)。
歸檔模式的缺點
- 需要更多的磁盤空間保存歸檔日志;
- DBA 會有更多的管理工作,包括維護(hù)歸檔空間、備份歸檔日志。
非歸檔模式的缺點
- 只能進(jìn)行脫機備份,也就是所謂的“ 冷備份”,和聯(lián)機備份的“ 熱備份” 相對應(yīng),數(shù)據(jù)庫必須完全 關(guān)閉后備份,在備份過程中數(shù)據(jù)庫不可用。
- 必須備份整個數(shù)據(jù)庫,不能只備份部分?jǐn)?shù)據(jù)庫。
- 不能增量備份,對于 TB 級數(shù)據(jù)庫(VLDB) ,這是一個非常大的缺點。
- 只能部分恢復(fù),如果數(shù)據(jù)文件丟失需要恢復(fù),DBA 只能恢復(fù)最后一次的完全備份,而之后的所有 數(shù)據(jù)庫改變?nèi)縼G失。
非歸檔模式的優(yōu)點
- DBA 的管理工作減少,因為非歸檔模式不產(chǎn)生歸檔日志,因此 DBA 不用考慮對歸檔的管理;性能會有提升。
非歸檔模式不生成歸檔日志,從數(shù)據(jù)安全角度來說,這種模式缺點是主要的,而優(yōu)點可以忽略不計。
一、單實例啟用歸檔
1.1 oracle 9i
對于oracle 9i啟用日志歸檔的方法如下:
- ALTER SYSTEM SET log_archive_start=TRUE SCOPE=spfile;
- ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
- ALTER SYSTEM SET log_archive_format='arch_%t_%s.arc' SCOPE=spfile;
- SHUTDOWN IMMEDIATE;
- STARTUP MOUNT;
- ARCHIVE LOG START;
- ALTER DATABASE ARCHIVELOG;
- ALTER DATABASE OPEN;
1.2 oracle 10g及其以上版本
在oracle 10g中l(wèi)og_archive_start參數(shù)和archive log start命令被廢棄。其方法如下:
- ALTER SYSTEM SET log_archive_dest_1='location=/u01/oradata/MYSID/archive/' SCOPE=spfile;
- ALTER SYSTEM SET log_archive_format='arch_%t_%s_%r.arc' SCOPE=spfile;
- SHUTDOWN IMMEDIATE;
- STARTUP MOUNT;
- ALTER DATABASE ARCHIVELOG;
- ALTER DATABASE OPEN;
二、RAC歸檔
由于ALTER DATABASE ARCHIVELOG僅當(dāng)數(shù)據(jù)庫以獨占模式掛載時,才能執(zhí)行該命令。這意味著必須先停止整個群集數(shù)據(jù)庫,然后才能執(zhí)行該操作。
2.1 oracle 9i
1、設(shè)置相關(guān)的存檔參數(shù)
- ALTER SYSTEM SET log_archive_start = TRUE范圍= spfile;
- ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
- ALTER SYSTEM SET log_archive_format ='arch_%t_%s.arc'SCOPE = spfile;
2、由于我們需要以獨占模式掛載數(shù)據(jù)庫,因此我們必須還更改以下參數(shù)
- ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;
3、停止集群
- $ srvctl stop database -d MYDB
4、在群集關(guān)閉的情況下,我們可以連接到單個節(jié)點并發(fā)出以下命令。
- STARTUP MOUNT;
- ARCHIVE LOG START;
- ALTER DATABASE ARCHIVELOG;
- ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
- SHUTDOWN IMMEDIATE;
請注意,該CLUSTER_DATABASE參數(shù)已被重置為其原始值。由于數(shù)據(jù)文件和spfile在所有實例之間共享,因此該操作僅需要從單個節(jié)點執(zhí)行。
5、再次啟動集群數(shù)據(jù)庫
- $ srvctl start database -d MYDB
當(dāng)前設(shè)置將所有存檔日志放置在同一目錄中。這是可以接受的,因為線程(%t)是存檔格式的一部分,可以防止實例之間的任何名稱沖突。如果需要位于特定于節(jié)點的位置,LOG_ARCHIVE_DEST_1則可以為每個實例使用相關(guān)的SID前綴。
2.2 oracle 10gR1
如果LOG_ARCHIVE_DEST_n未設(shè)置參數(shù),則已歸檔的重做日志將放置在FRA中。如果要手動指定其位置和文件名格式,可以按以下步驟進(jìn)行操作。
1、設(shè)置歸檔相關(guān)參數(shù)
- ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
- ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;
2、由于我們需要以獨占模式掛載數(shù)據(jù)庫,因此我們還必須更改以下參數(shù)。
- ALTER SYSTEM SET cluster_database=FALSE SCOPE=spfile;
3、在群集關(guān)閉的情況下,我們可以連接到單個節(jié)點并發(fā)出以下命令。
- STARTUP MOUNT;
- ALTER DATABASE ARCHIVELOG;
- ALTER SYSTEM SET cluster_database=TRUE SCOPE=spfile;
- SHUTDOWN IMMEDIATE;
請注意,該CLUSTER_DATABASE參數(shù)已被重置為其原始值。由于數(shù)據(jù)文件和spfile在所有實例之間共享,因此該操作僅需要從單個節(jié)點執(zhí)行。
4、啟動集群數(shù)據(jù)庫
- $ srvctl start database -d MYDB
2.3 oracle 10gR2
從10gR2開始,您不再需要CLUSTER_DATABASE在此過程中重置參數(shù)。
如果LOG_ARCHIVE_DEST_n未設(shè)置參數(shù),則已歸檔的重做日志將放置在FRA中。如果要手動指定其位置和文件名格式,可以按以下步驟進(jìn)行操作。
1、設(shè)置歸檔相關(guān)參數(shù)
- ALTER SYSTEM SET log_archive_dest_1 ='location = / u01 / oradata / MYDB / archive /'SCOPE = spfile;
- ALTER SYSTEM SET log_archive_format ='arch_%t_%s_%r.arc'SCOPE = spfile;
2、在命令行中,我們可以使用以下命令停止整個集群數(shù)據(jù)庫并以裝入模式啟動它。
- $ srvctl stop database -d MYDB
- $ srvctl start database -d MYDB -o mount
一旦數(shù)據(jù)庫處于mount模式可以用下面的命令啟動歸檔
- sqlplus / as sysdba
- ALTER DATABASE ARCHIVELOG;
- EXIT;
由于數(shù)據(jù)文件和spfile在所有實例之間共享,因此該操作僅需要從單個節(jié)點執(zhí)行。
3、停止并重新啟動集群數(shù)據(jù)庫
- $ srvctl stop database -d MYDB
- $ srvctl start database -d MYDB
2.4 oracle 11g
配置方法同oracle 10gR2
2.5 oracle 12c
配置方法同oracle 10gR2
三、總結(jié)
1、此文匯集了oracle各版本單機和集群啟用歸檔的方法,以備工作中查詢備用。