常見問題--oracle10g歸檔模式
一。檢視oracle資料庫是否為歸檔模式:
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資料庫有聯機重做日誌,這個日誌是記錄對資料庫所做的修改,比如插入,刪除,更新資料等,對這些操作都會記錄在聯機重做日誌裡。一般資料庫至少要有2個聯機重做日誌組。當一個聯機重做日誌組被寫滿的時候,就會發生日誌切換,這時聯機重做日誌組2成為當前使用的日誌,當聯機重做日誌組2寫滿的時候,又會發生日誌切換,去寫聯機重做日誌組1,就這樣反覆進行。
如果資料庫處於非歸檔模式,聯機日誌在切換時就會丟棄. 而在歸檔模式下,當發生日誌切換的時候,被切換的日誌會進行歸檔。比如,當前在使用聯機重做日誌1,當1寫滿的時候,發生日誌切換,開始寫聯機重做日誌2,這時聯機重做日誌1的內容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的檔案叫歸檔重做日誌。
資料庫使用歸檔方式執行時才可以進行災難性恢復。
1.歸檔日誌模式和非歸檔日誌模式的區別
非歸檔模式只能做冷備份,並且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的資料不能恢復.
歸檔模式可以做熱備份,並且可以做增量備份,可以做部分恢復.
用ARCHIVE LOG LIST 可以檢視期模式狀態時歸檔模式還是非歸檔模式.
三。配置資料庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日誌模式下產生的備份日誌對於歸檔模式已經不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日誌檔案組不允許被覆蓋(重寫),當日志檔案寫滿之後,如果沒有進行手動歸檔,那麼系統將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
執行過程中關閉和重啟歸檔日誌程式
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當前日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日誌目標
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.歸檔模式和非歸檔模式的轉換
第4步的逆過程.
6.配置多個歸檔程式
Q:什麼時候需要使用多個歸檔程式?
A:如果歸檔過程會消耗大量的時間,那麼可以啟動多個歸檔程式,這是個動態引數,可以用ALTER SYSTEM動態修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10個歸檔程式
與歸檔程式有關的動態效能檢視
v$bgprocess,v$archive_processes
7.配置歸檔目標,多歸檔目標,遠端歸檔目標,歸檔日誌格式
歸檔目標 LOG_ARCHIVE_DEST_n
本地歸檔目標:
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";
遠端歸檔目標:
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強制的歸檔目標,如果出錯,600秒後重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標,如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";
歸檔目標狀態:關閉歸檔目標和開啟歸檔目標
關閉歸檔目標1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
開啟歸檔目標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資料庫有聯機重做日誌,這個日誌是記錄對資料庫所做的修改,比如插入,刪除,更新資料等,對這些操作都會記錄在聯機重做日誌裡。一般資料庫至少要有2個聯機重做日誌組。當一個聯機重做日誌組被寫滿的時候,就會發生日誌切換,這時聯機重做日誌組2成為當前使用的日誌,當聯機重做日誌組2寫滿的時候,又會發生日誌切換,去寫聯機重做日誌組1,就這樣反覆進行。
如果資料庫處於非歸檔模式,聯機日誌在切換時就會丟棄. 而在歸檔模式下,當發生日誌切換的時候,被切換的日誌會進行歸檔。比如,當前在使用聯機重做日誌1,當1寫滿的時候,發生日誌切換,開始寫聯機重做日誌2,這時聯機重做日誌1的內容會被拷貝到另外一個指定的目錄下。這個目錄叫做歸檔目錄,拷貝的檔案叫歸檔重做日誌。
資料庫使用歸檔方式執行時才可以進行災難性恢復。
1.歸檔日誌模式和非歸檔日誌模式的區別
非歸檔模式只能做冷備份,並且恢復時只能做完全備份.最近一次完全備份到系統出錯期間的資料不能恢復.
歸檔模式可以做熱備份,並且可以做增量備份,可以做部分恢復.
用ARCHIVE LOG LIST 可以檢視期模式狀態時歸檔模式還是非歸檔模式.
三。配置資料庫的歸檔模式
改變非歸檔模式到歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
5)SQL>做一次完全備份,因為非歸檔日誌模式下產生的備份日誌對於歸檔模式已經不可用了.這一步非非常重要!
改變歸檔模式到非歸檔模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE NOARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
3.啟用自動歸檔: LOG_ARCHIVE_START=TRUE
歸檔模式下,日誌檔案組不允許被覆蓋(重寫),當日志檔案寫滿之後,如果沒有進行手動歸檔,那麼系統將掛起,知道歸檔完成為止.
這時只能讀而不能寫.
執行過程中關閉和重啟歸檔日誌程式
SQL>ARCHIVE LOG STOP
SQL>ARCHIVE LOG START
4.手動歸檔: LOG_ARCHIVE_START=FALSE
歸檔當前日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT;
歸檔序號為052的日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG SEQUENCE 052;
歸檔所有日誌檔案
SQL>ALTER SYSTEM ARCHIVE LOG ALL;
改變歸檔日誌目標
SQL>ALTER SYSTEM ARCHIVE LOG CURRENT TO '&PATH';
5.歸檔模式和非歸檔模式的轉換
第4步的逆過程.
6.配置多個歸檔程式
Q:什麼時候需要使用多個歸檔程式?
A:如果歸檔過程會消耗大量的時間,那麼可以啟動多個歸檔程式,這是個動態引數,可以用ALTER SYSTEM動態修改.
SQL>ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES=10;
Oracle9i中最多可以指定10個歸檔程式
與歸檔程式有關的動態效能檢視
v$bgprocess,v$archive_processes
7.配置歸檔目標,多歸檔目標,遠端歸檔目標,歸檔日誌格式
歸檔目標 LOG_ARCHIVE_DEST_n
本地歸檔目標:
SQL>LOG_ARCHIVE_DEST_1 = "LOCATION=D:ORACLEARCHIVEDLOG";
遠端歸檔目標:
SQL>LOG_ARCHIVE_DEST_2 = "SERVICE=STANDBY_DB1";
強制的歸檔目標,如果出錯,600秒後重試:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_4 = "LOCATION=E:ORACLEARCHIVEDLOG MANDATORY REOPEN=600";
可選的歸檔目標,如果出錯,放棄歸檔:
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_3 = "LOCATION=E:ORACLEARCHIVEDLOG OPTIONAL";
歸檔目標狀態:關閉歸檔目標和開啟歸檔目標
關閉歸檔目標1
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1 = DEFER
開啟歸檔目標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;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15720542/viewspace-606342/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle10g 歸檔模式和非歸檔模式的轉換Oracle模式
- 常見問題--控制檔案
- 常見問題--oracle10g修改表結構Oracle
- Oracle10G歸檔模式應用Oracle模式
- 更改oracle10g的歸檔模式和歸檔路徑Oracle模式
- Oracle10g RAC下啟用歸檔模式Oracle模式
- 【Nginx】常見問題Nginx
- js常見問題JS
- CSS常見問題CSS
- Git 常見問題Git
- PHP 常見問題PHP
- swiper常見問題
- nginx 常見問題Nginx
- java 常見問題Java
- MyBatis常見問題MyBatis
- 前端常見問題前端
- Git常見問題Git
- SQLServer常見問題SQLServer
- css 常見問題CSS
- HTML常見問題HTML
- PyMongo 常見問題Go
- xhtml常見問題HTML
- UITableview 常見問題UIView
- mysql常見問題MySql
- MySQL 常見問題MySql
- BlockUI常見問題BloCUI
- Mysql:常見問題MySql
- Oracle常見問題一千問Oracle
- 設計模式常見面試題設計模式面試題
- Oracle資料庫日常問題-歸檔異常增長Oracle資料庫
- 網易iTownSDK常見問題
- weex常見問題解析
- sonar常見問題分析
- Linux 常見問題Linux
- Redis面試常見問題Redis面試
- 常見面試SQL問題面試SQL
- 前端常見問題整理前端
- ReactNative常見問題React