RAC環境一個例項何時會歸檔另一個例項的日誌
有人在我的BLOG上提出問題,為什麼有的時候發現一個例項所在的伺服器上包含了另一個伺服器的歸檔日誌。
其實很多中情況都可能造成這個問題的產生。
最簡單的情況,一個節點執行了ALTER SYSTEM ARCHIVE LOG CURRENT命令:
SQL> SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
GROUP# THREAD# SEQUENCE# ARCHIV STATUS
---------- ---------- ---------- ------ --------------------
1 1 672 NO CURRENT
2 1 671 YES INACTIVE
3 2 441 YES INACTIVE
4 2 442 NO CURRENT
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, THREAD# FROM V$INSTANCE;
INSTANCE_NUMBER INSTANCE_NAME THREAD#
--------------- ---------------- ----------
1 testrac1 1
SQL> COL NAME FORMAT A30
SQL> COL VALUE FORMAT A30
SQL> SELECT INST_ID, NAME, SUBSTR(VALUE, 1, 26) VALUE
2 FROM GV$PARAMETER
3 WHERE NAME = 'log_archive_dest_1';
INST_ID NAME VALUE
---------- ------------------------------ ------------------------------
1 log_archive_dest_1 LOCATION=/data1/archivelog
2 log_archive_dest_1 LOCATION=/data1/archivelog
SQL> HOST ls -l /data1/archivelog
total 0
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 0
下面執行切換ARCHIVE LOG CURRENT的操作:
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系統已更改。
SQL> HOST ls -l /data1/archivelog
total 102
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 288
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系統已更改。
SQL> HOST ls -l /data1/archivelog
total 128
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 354
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
-rw-rw---- 1 oracle oinstall 33792 Jan 5 00:26 2_443_626291662.dbf
預設情況下,執行ALTER SYSTEM ARCHIVE LOG CURRENT命令時,各個例項歸檔當前例項載入的日誌。
而如果將一個例項關閉,再次執行同樣的命令:
SQL> HOST srvctl stop inst -d testrac -i testrac2
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系統已更改。
SQL> HOST ls -l /data1/archivelog
total 902
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
-rw-r----- 1 oracle oinstall 68096 Jan 5 00:31 1_674_626291662.dbf
-rw-r----- 1 oracle oinstall 312320 Jan 5 00:31 2_444_626291662.dbf
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 354
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
-rw-rw---- 1 oracle oinstall 33792 Jan 5 00:26 2_443_626291662.dbf
這時,當前例項歸檔當前載入日誌的同時,也會將關閉例項的日誌歸檔到本地。
SQL> HOST srvctl start inst -d testrac -i testrac2
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系統已更改。
SQL> HOST ls -l /data1/archivelog
total 1142
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
-rw-r----- 1 oracle oinstall 68096 Jan 5 00:31 1_674_626291662.dbf
-rw-r----- 1 oracle oinstall 112640 Jan 5 00:37 1_675_626291662.dbf
-rw-r----- 1 oracle oinstall 312320 Jan 5 00:31 2_444_626291662.dbf
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 676
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
-rw-rw---- 1 oracle oinstall 33792 Jan 5 00:26 2_443_626291662.dbf
-rw-rw---- 1 oracle oinstall 1024 Jan 5 00:37 2_445_626291662.dbf
-rw-rw---- 1 oracle oinstall 153600 Jan 5 00:39 2_446_626291662.dbf
當關閉例項恢復後,執行命令後,一般會恢復各個例項歸檔各自載入日誌的情況。
另一種情況是備份、恢復造成的。
對於RESTORE命令就不想多少了,備份命令也可能造成本地例項歸檔其他例項日誌的情況:
SQL> HOST
$ rman target /
恢復管理器: Release 10.2.0.3.0 - Production on 星期六 1月 5 00:42:51 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: TESTRAC (DBID=4291216984)
RMAN> configure channel 1 device type disk format '/data1/backup/%U' connect sys/test@testrac1;
使用目標資料庫控制檔案替代恢復目錄
舊的 RMAN 配置引數:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/data1/backup/%U' CONNECT '*';
新的 RMAN 配置引數:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/data1/backup/%U' CONNECT '*';
已成功儲存新的 RMAN 配置引數
RMAN> configure channel 2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;
舊的 RMAN 配置引數:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/data1/backup/%U' CONNECT '*';
新的 RMAN 配置引數:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/data1/backup/%U' CONNECT '*';
已成功儲存新的 RMAN 配置引數
RMAN> configure default device type to disk;
舊的 RMAN 配置引數:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
新的 RMAN 配置引數:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
已成功儲存新的 RMAN 配置引數
RMAN> backup archivelog all;
啟動 backup 於 05-1月 -08
當前日誌已存檔
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=309 例項=testrac1 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=291 例項=testrac2 devtype=DISK
通道 ORA_DISK_1: 正在啟動存檔日誌備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =1 序列 =672 記錄 ID=2336 時間戳=643163033
輸入存檔日誌執行緒 =1 序列 =673 記錄 ID=2341 時間戳=643163127
輸入存檔日誌執行緒 =1 序列 =674 記錄 ID=2345 時間戳=643163504
輸入存檔日誌執行緒 =1 序列 =675 記錄 ID=2350 時間戳=643163864
輸入存檔日誌執行緒 =1 序列 =676 記錄 ID=2354 時間戳=643164280
輸入存檔日誌執行緒 =2 序列 =444 記錄 ID=2344 時間戳=643163497
通道 ORA_DISK_1: 正在啟動段 1 於 05-1月 -08
通道 ORA_DISK_2: 正在啟動存檔日誌備份集
通道 ORA_DISK_2: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =2 序列 =442 記錄 ID=2337 時間戳=643163120
輸入存檔日誌執行緒 =2 序列 =443 記錄 ID=2340 時間戳=643163213
輸入存檔日誌執行緒 =2 序列 =445 記錄 ID=2348 時間戳=643163878
輸入存檔日誌執行緒 =2 序列 =446 記錄 ID=2351 時間戳=643163951
通道 ORA_DISK_2: 正在啟動段 1 於 05-1月 -08
通道 ORA_DISK_1: 已完成段 1 於 05-1月 -08
段控制程式碼=/data1/backup/1cj5bq3v_1_1 標記=TAG20080105T004446 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
通道 ORA_DISK_2: 已完成段 1 於 05-1月 -08
段控制程式碼=/data1/backup/1dj5bq6m_1_1 標記=TAG20080105T004446 註釋=NONE
通道 ORA_DISK_2: 備份集已完成, 經過時間:00:00:02
通道 ORA_DISK_1: 正在啟動存檔日誌備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =2 序列 =447 記錄 ID=2355 時間戳=643164283
通道 ORA_DISK_1: 正在啟動段 1 於 05-1月 -08
通道 ORA_DISK_1: 已完成段 1 於 05-1月 -08
段控制程式碼=/data1/backup/1ej5bq41_1_1 標記=TAG20080105T004446 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 05-1月 -08
啟動 Control File and SPFILE Autobackup 於 05-1月 -08
段 handle=/data/oracle/product/10.2/database/dbs/c-4291216984-20080105-02 comment=NONE
完成 Control File and SPFILE Autobackup 於 05-1月 -08
RMAN> exit
恢復管理器完成。
$ ls -l /data1/archivelog
total 1540
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
-rw-r----- 1 oracle oinstall 68096 Jan 5 00:31 1_674_626291662.dbf
-rw-r----- 1 oracle oinstall 112640 Jan 5 00:37 1_675_626291662.dbf
-rw-r----- 1 oracle oinstall 55808 Jan 5 00:44 1_676_626291662.dbf
-rw-r----- 1 oracle oinstall 312320 Jan 5 00:31 2_444_626291662.dbf
-rw-r----- 1 oracle oinstall 136192 Jan 5 00:44 2_447_626291662.dbf
$ rsh 172.25.198.223 ls -l /data1/archivelog
total 676
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
-rw-rw---- 1 oracle oinstall 33792 Jan 5 00:26 2_443_626291662.dbf
-rw-rw---- 1 oracle oinstall 1024 Jan 5 00:37 2_445_626291662.dbf
-rw-rw---- 1 oracle oinstall 153600 Jan 5 00:39 2_446_626291662.dbf
在上面的例子中,為了同時備份兩個例項的歸檔,rman設定了兩個CHANNEL,分別連線到不同的例項上執行備份操作。由於執行BACKUP ARCHIVE LOG操作,Oracle自動會執行一個ARCHIVE LOG CURRENT的命令,而這個命令是在當前的例項執行的。對於這種情況,所有例項的日誌都會歸檔到本地。
從上面最後的ls命令可以看到,thread 2 sequence 447的歸檔已經在本地生成。
其實對於RAC來說,哪個例項載入哪個THREAD#不是固定的,完全可以互換兩個例項所載入的日誌THREAD。
$ exit
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
系統已更改。
SQL> HOST ls -l /data1/archivelog
total 1828
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
-rw-r----- 1 oracle oinstall 68096 Jan 5 00:31 1_674_626291662.dbf
-rw-r----- 1 oracle oinstall 112640 Jan 5 00:37 1_675_626291662.dbf
-rw-r----- 1 oracle oinstall 55808 Jan 5 00:44 1_676_626291662.dbf
-rw-r----- 1 oracle oinstall 136192 Jan 5 00:51 1_677_626291662.dbf
-rw-r----- 1 oracle oinstall 312320 Jan 5 00:31 2_444_626291662.dbf
-rw-r----- 1 oracle oinstall 136192 Jan 5 00:44 2_447_626291662.dbf
SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
total 948
-rw-rw---- 1 oracle oinstall 137728 Jan 5 00:25 2_442_626291662.dbf
-rw-rw---- 1 oracle oinstall 33792 Jan 5 00:26 2_443_626291662.dbf
-rw-rw---- 1 oracle oinstall 1024 Jan 5 00:37 2_445_626291662.dbf
-rw-rw---- 1 oracle oinstall 153600 Jan 5 00:39 2_446_626291662.dbf
-rw-rw---- 1 oracle oinstall 124928 Jan 5 00:52 2_448_626291662.dbf
下面關閉資料庫,修改初始化引數,使得當前例項載入THREAD 2的日誌:
SQL> HOST srvctl stop db -d testrac
SQL> CREATE PFILE='/export/home/oracle/inittestrac1.ora' FROM SPFILE='+DISK/testrac/spfiletestrac.ora';
檔案已建立。
將初始化引數inittestrac1.ora中的
testrac1.thread=2
testrac2.thread=1
改為
testrac1.thread=2
testrac2.thread=1
下面啟動當前例項:
SQL> STARTUP PFILE=inittestrac1.ora
ORACLE 例程已經啟動。
Total System Global Area 2147483648 bytes
Fixed Size 2031480 bytes
Variable Size 1056964744 bytes
Database Buffers 1073741824 bytes
Redo Buffers 14745600 bytes
資料庫裝載完畢。
資料庫已經開啟。
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, THREAD# FROM V$INSTANCE;
INSTANCE_NUMBER INSTANCE_NAME THREAD#
--------------- ---------------- ----------
1 testrac1 2
SQL> SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- --------------------
1 1 678 NO CURRENT
2 1 677 YES INACTIVE
3 2 449 YES INACTIVE
4 2 450 NO CURRENT
SQL> ALTER SYSTEM SWITCH LOGFILE;
系統已更改。
SQL> SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;
GROUP# THREAD# SEQUENCE# ARC STATUS
---------- ---------- ---------- --- --------------------
1 1 678 YES INACTIVE
2 1 679 NO CURRENT
3 2 451 NO CURRENT
4 2 450 YES ACTIVE
SQL> HOST ls -l /data1/archivelog
total 3304
-rw-r----- 1 oracle oinstall 51712 Jan 5 00:23 1_672_626291662.dbf
-rw-r----- 1 oracle oinstall 12800 Jan 5 00:25 1_673_626291662.dbf
-rw-r----- 1 oracle oinstall 68096 Jan 5 00:31 1_674_626291662.dbf
-rw-r----- 1 oracle oinstall 112640 Jan 5 00:37 1_675_626291662.dbf
-rw-r----- 1 oracle oinstall 55808 Jan 5 00:44 1_676_626291662.dbf
-rw-r----- 1 oracle oinstall 136192 Jan 5 00:51 1_677_626291662.dbf
-rw-r----- 1 oracle oinstall 50688 Jan 5 01:12 1_678_626291662.dbf
-rw-r----- 1 oracle oinstall 312320 Jan 5 00:31 2_444_626291662.dbf
-rw-r----- 1 oracle oinstall 136192 Jan 5 00:44 2_447_626291662.dbf
-rw-r----- 1 oracle oinstall 354816 Jan 5 01:03 2_449_626291662.dbf
-rw-r----- 1 oracle oinstall 321024 Jan 5 01:12 2_450_626291662.dbf
由此可見,對於日誌和例項其實並沒有對應關係,因此在本地出現其他例項上的歸檔也是十分正常的情況。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-200426/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修改系統時間導致RAC環境的一個例項重啟
- RAC歸檔日誌還原一例
- Oracle9.2.0.7 RAC , 例項2的歸檔到了例項1的歸檔目錄 ?Oracle
- 【RAC】RAC環境下歸檔日誌格式約定
- 一個資料庫最多可有多少個例項,多少個日誌組資料庫
- oracle rac及單例項開啟歸檔Oracle單例
- (轉)Oracle rac環境下清除asm例項OracleASM
- rac+dg環境刪除歸檔日誌
- MySQL 拷貝一個InnoDB分割槽表到另一個例項MySql
- 關於歸檔日誌的幾個引數選項
- 單例模式 - 只有一個例項單例模式
- 三個例項演示 Java Thread Dump 日誌分析Javathread
- Linux環境下的一個rman備份的例項指令碼Linux指令碼
- RAC資料庫啟用、禁用一個例項資料庫
- 刪除Linux非rac環境下的ASM例項LinuxASM
- SHELL-分析日誌例項
- RAC環境只啟動單例項資料庫單例資料庫
- linux 環境下檢視日誌最常用的命令(tail)含例項LinuxAI
- ArcGIS API for JavaScript開發環境搭建及第一個例項demoAPIJavaScript開發環境
- SQL Server誤區 一個例項多個映象和日誌傳送延遲SQLServer
- 連線RAC資料庫中單個例項(一)資料庫
- 單例項環境利用備份恢復RAC資料庫(一)單例資料庫
- Oracle11g RAC在例項關閉後自動在啟動例項上歸檔Oracle
- 刪除Linux非rac環境下的ASM例項(轉)LinuxASM
- ASM單例項(Oracle 11.2.0.4)環境(一)ASM單例Oracle
- 第一個jsp例項JS
- Linux環境下的一個rman備份的例項指令碼(轉載)Linux指令碼
- 單機環境配置ASM例項ASM
- 利用STANDBY將單例項資料庫升級為RAC環境(一)單例資料庫
- 【RAC】由系統環境變數中"/"引起的空閒例項變數
- 一個例項中,多個synchronized方法的呼叫synchronized
- dddsample一個可執行的例項
- jafka安裝配置和啟動一個自帶例項和手寫一個例項
- RAC 例項 遷移到 單例項 -- 使用RMAN Duplicate單例
- Oracle10g RAC環境下DataGuard備庫搭建例項Oracle
- 查詢RAC環境中例項間資源分配情況
- 歸併排序例項排序
- 為何jquery例項化的時候不需要new 一個建構函式jQuery函式