當(dāng)前位置:
首頁 >
【原创】oracle的归档模式
發(fā)布時間:2025/3/21
33
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【原创】oracle的归档模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一。查看oracle數(shù)據(jù)庫是否為歸檔模式:
1.select name,log_mode from v$database;
NAME?????????????? LOG_MODE
------------------ ------------------------
QUERY?????????? NOARCHIVELOG
2.使用ARCHIVE LOG LIST 命令
Database log mode????????????? No Archive Mode
Automatic archival???????????? Disabled
Archive destination??????????? /data/oracle/product/10.2.0/db_1//dbs/arch
Oldest online log sequence???? 739
Current log sequence?????????? 741
二。什么是Oracle歸檔模式?
Oracle數(shù)據(jù)庫有聯(lián)機(jī)重做日志,這個日志是記錄對數(shù)據(jù)庫所做的修改,比如插入,刪除,更新數(shù)據(jù)等,對這些操作都會記錄在聯(lián)機(jī)重做日志里。一般數(shù)據(jù)庫至少要有2個聯(lián)機(jī)重做日志組。當(dāng)一個聯(lián)機(jī)重做日志組被寫滿的時候,就會發(fā)生日志切換,這時聯(lián)機(jī)重做日志組2成為當(dāng)前使用的日志,當(dāng)聯(lián)機(jī)重做日志組2寫滿的時候,又會發(fā)生日志切換,去寫聯(lián)機(jī)重做日志組1,就這樣反復(fù)進(jìn)行。
如果數(shù)據(jù)庫處于非歸檔模式,聯(lián)機(jī)日志在切換時就會丟棄. 而在歸檔模式下,當(dāng)發(fā)生日志切換的時候,被切換的日志會進(jìn)行歸檔。比如,當(dāng)前在使用聯(lián)機(jī)重做日志1,當(dāng)1寫滿的時候,發(fā)生日志切換,開始寫聯(lián)機(jī)重做日志2,這時聯(lián)機(jī)重做日志1的內(nèi)容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的文件叫歸檔重做日志。
數(shù)據(jù)庫使用歸檔方式運行時才可以進(jìn)行災(zāi)難性恢復(fù)。
1.歸檔日志模式和非歸檔日志模式的區(qū)別
非歸檔模式只能做冷備份,并且恢復(fù)時只能做完全備份.最近一次完全備份到系統(tǒng)出錯期間的數(shù)據(jù)不能恢復(fù).
歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復(fù).
用ARCHIVE LOG LIST 可以查看期模式狀態(tài)時歸檔模式還是非歸檔模式.
三。配置數(shù)據(jù)庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產(chǎn)生的備份日志對于歸檔模式已經(jīng)不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日志文件組不允許被覆蓋(重寫),當(dāng)日志文件寫滿之后,如果沒有進(jìn)行手動歸檔,那么系統(tǒng)將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
運行過程中關(guān)閉和重啟歸檔日志進(jìn)程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當(dāng)前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日志目標(biāo)
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.歸檔模式和非歸檔模式的轉(zhuǎn)換
第4步的逆過程.
6.配置多個歸檔進(jìn)程
Q:什么時候需要使用多個歸檔進(jìn)程?
A:如果歸檔過程會消耗大量的時間,那么可以啟動多個歸檔進(jìn)程,這是個動態(tài)參數(shù),可以用ALTER SYSTEM動態(tài)修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10個歸檔進(jìn)程
與歸檔進(jìn)程有關(guān)的動態(tài)性能視圖
v$bgprocess,v$archive_processes
7.配置歸檔目標(biāo),多歸檔目標(biāo),遠(yuǎn)程歸檔目標(biāo),歸檔日志格式
歸檔目標(biāo) LOG_ARCHIVE_DEST_n
本地歸檔目標(biāo):
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";
遠(yuǎn)程歸檔目標(biāo):
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強(qiáng)制的歸檔目標(biāo),如果出錯,600秒后重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標(biāo),如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";
歸檔目標(biāo)狀態(tài):關(guān)閉歸檔目標(biāo)和打開歸檔目標(biāo)
關(guān)閉歸檔目標(biāo)1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
打開歸檔目標(biāo)2
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE
歸檔日志格式
LOG_ARCHIVE_FORMAT
8.獲取歸檔日志信息
V$ARCHVIED_LOG
V$ARCHVIE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;
1.select name,log_mode from v$database;
NAME?????????????? LOG_MODE
------------------ ------------------------
QUERY?????????? NOARCHIVELOG
2.使用ARCHIVE LOG LIST 命令
Database log mode????????????? No Archive Mode
Automatic archival???????????? Disabled
Archive destination??????????? /data/oracle/product/10.2.0/db_1//dbs/arch
Oldest online log sequence???? 739
Current log sequence?????????? 741
二。什么是Oracle歸檔模式?
Oracle數(shù)據(jù)庫有聯(lián)機(jī)重做日志,這個日志是記錄對數(shù)據(jù)庫所做的修改,比如插入,刪除,更新數(shù)據(jù)等,對這些操作都會記錄在聯(lián)機(jī)重做日志里。一般數(shù)據(jù)庫至少要有2個聯(lián)機(jī)重做日志組。當(dāng)一個聯(lián)機(jī)重做日志組被寫滿的時候,就會發(fā)生日志切換,這時聯(lián)機(jī)重做日志組2成為當(dāng)前使用的日志,當(dāng)聯(lián)機(jī)重做日志組2寫滿的時候,又會發(fā)生日志切換,去寫聯(lián)機(jī)重做日志組1,就這樣反復(fù)進(jìn)行。
如果數(shù)據(jù)庫處于非歸檔模式,聯(lián)機(jī)日志在切換時就會丟棄. 而在歸檔模式下,當(dāng)發(fā)生日志切換的時候,被切換的日志會進(jìn)行歸檔。比如,當(dāng)前在使用聯(lián)機(jī)重做日志1,當(dāng)1寫滿的時候,發(fā)生日志切換,開始寫聯(lián)機(jī)重做日志2,這時聯(lián)機(jī)重做日志1的內(nèi)容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的文件叫歸檔重做日志。
數(shù)據(jù)庫使用歸檔方式運行時才可以進(jìn)行災(zāi)難性恢復(fù)。
1.歸檔日志模式和非歸檔日志模式的區(qū)別
非歸檔模式只能做冷備份,并且恢復(fù)時只能做完全備份.最近一次完全備份到系統(tǒng)出錯期間的數(shù)據(jù)不能恢復(fù).
歸檔模式可以做熱備份,并且可以做增量備份,可以做部分恢復(fù).
用ARCHIVE LOG LIST 可以查看期模式狀態(tài)時歸檔模式還是非歸檔模式.
三。配置數(shù)據(jù)庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日志模式下產(chǎn)生的備份日志對于歸檔模式已經(jīng)不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日志文件組不允許被覆蓋(重寫),當(dāng)日志文件寫滿之后,如果沒有進(jìn)行手動歸檔,那么系統(tǒng)將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
運行過程中關(guān)閉和重啟歸檔日志進(jìn)程
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當(dāng)前日志文件
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日志文件
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日志文件
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日志目標(biāo)
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.歸檔模式和非歸檔模式的轉(zhuǎn)換
第4步的逆過程.
6.配置多個歸檔進(jìn)程
Q:什么時候需要使用多個歸檔進(jìn)程?
A:如果歸檔過程會消耗大量的時間,那么可以啟動多個歸檔進(jìn)程,這是個動態(tài)參數(shù),可以用ALTER SYSTEM動態(tài)修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10個歸檔進(jìn)程
與歸檔進(jìn)程有關(guān)的動態(tài)性能視圖
v$bgprocess,v$archive_processes
7.配置歸檔目標(biāo),多歸檔目標(biāo),遠(yuǎn)程歸檔目標(biāo),歸檔日志格式
歸檔目標(biāo) LOG_ARCHIVE_DEST_n
本地歸檔目標(biāo):
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";
遠(yuǎn)程歸檔目標(biāo):
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強(qiáng)制的歸檔目標(biāo),如果出錯,600秒后重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標(biāo),如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";
歸檔目標(biāo)狀態(tài):關(guān)閉歸檔目標(biāo)和打開歸檔目標(biāo)
關(guān)閉歸檔目標(biāo)1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
打開歸檔目標(biāo)2
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2 = ENABLE
歸檔日志格式
LOG_ARCHIVE_FORMAT
8.獲取歸檔日志信息
V$ARCHVIED_LOG
V$ARCHVIE_DEST
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
ARCHIVE LOG LIST;
總結(jié)
以上是生活随笔為你收集整理的【原创】oracle的归档模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 安装完毕要做的事
- 下一篇: TestInside640-801 v1