我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

RAC环境一个实例何时会归档另一个实例的日志

上一篇 / 下一篇  2008-03-05 23:53:19 / 个人分类:ORACLE

有人在我的BLOG上提出问题,为什么有的时候发现一个实例所在的服务器上包含了另一个服务器的归档日志。

其实很多中情况都可能造成这个问题的产生。

 

 

最简单的情况,一个节点执行了ALTER SYSTEM ARCHIVE LOG CURRENT命令:

SQL> SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;

    GROUP#    THREAD#  SEQUENCE# ARCHIV STATUS
Z#{ m/K OE#yD.Ar0---------- ---------- ---------- ------ --------------------
,AQ"J;Sd yC3qe0         1          1        672 NO     CURRENT
O0_.jA.Q4J0         2          1        671 YES    INACTIVEITPUB个人空间{1u$R|r:n _'m
         3          2        441 YES    INACTIVE
0pY-rI0c0         4          2        442 NO     CURRENT

SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, THREAD# FROM V$INSTANCE;

INSTANCE_NUMBER INSTANCE_NAME       THREAD#ITPUB个人空间BN asU`Z"T-g-Q'jF
--------------- ---------------- ----------
Z,y] _%_7D3C0              1 testrac1                  1

SQL> COL NAME FORMAT A30ITPUB个人空间(u"e7pFm pS-OK q
SQL>COLVALUE FORMAT A30        
E_ t/Yo4n2A0SQL> SELECT INST_ID, NAME, SUBSTR(VALUE, 1, 26) VALUE
d ?o/B` c"s0  2  FROM GV$PARAMETER
M5V4P0[G0  3  WHERE NAME = 'log_archive_dest_1';

   INST_ID NAME                           VALUEITPUB个人空间1c`#iH0}D~ C6n/f
---------- ------------------------------ ------------------------------
ow5g#{#`5p!Xj0         1 log_archive_dest_1             LOCATION=/data1/archivelogITPUB个人空间r'I,i;Y;n/L$y*^
         2 log_archive_dest_1             LOCATION=/data1/archivelog

SQL> HOST ls -l /data1/archivelogITPUB个人空间\V;`!TD1K
total 0

SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelog
!T*] BU(MJ*f,D0total 0

下面执行切换ARCHIVE LOG CURRENT的操作:

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

系统已更改。

SQL> HOST ls -l /data1/archivelog
NS wTK(cc0total 102ITPUB个人空间Z9Ts#u}aW5W
-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
p1A:oE as0total 288ITPUB个人空间l9H?(rL+] d L
-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
F.x!P+JJa ~}0total 128
EM7`kcbGW:X0-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbfITPUB个人空间?O wWxI|t;h:v
-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbf

SQL> HOST rsh 172.25.198.223 ls -l /data1/archivelogITPUB个人空间)b L2|G$L;]*H/K1^ j
total 354
,NNk6N4Zh"`]0-rw-rw----   1 oracle   oinstall  137728 Jan  5 00:25 2_442_626291662.dbfITPUB个人空间 E2EnY;W&i
-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/archivelogITPUB个人空间K0`P$N[_
total 902
!o/U(b hi,g6USE0-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbf
+y8\Coc1Ja0-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbfITPUB个人空间U4qt:cP1p4n6_
-rw-r-----   1 oracle   oinstall   68096 Jan  5 00:31 1_674_626291662.dbfITPUB个人空间y m;O*e7i/p o
-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
Je(v~IZ0total 354
IG#@(dN0~*`v0-rw-rw----   1 oracle   oinstall  137728 Jan  5 00:25 2_442_626291662.dbfITPUB个人空间DbJ(xp X(r ht4^F
-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/archivelogITPUB个人空间)wQ9I'h8SK FV
total 1142
"ji \I!~3dsn0-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbfITPUB个人空间:x2j"MF r)f3L z"w
-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbfITPUB个人空间Bi"y1lW5f0b"F
-rw-r-----   1 oracle   oinstall   68096 Jan  5 00:31 1_674_626291662.dbfITPUB个人空间H] q6z V0HJ h;M
-rw-r-----   1 oracle   oinstall  112640 Jan  5 00:37 1_675_626291662.dbf
J,p5i#~3q;U4F0-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
2AL;]7RpSu?y`8L0total 676
jaS I4s+p4LUs0-rw-rw----   1 oracle   oinstall  137728 Jan  5 00:25 2_442_626291662.dbfITPUB个人空间b2X`O2q's
-rw-rw----   1 oracle   oinstall   33792 Jan  5 00:26 2_443_626291662.dbfITPUB个人空间3PH"~Pt\7L0t
-rw-rw----   1 oracle   oinstall    1024 Jan  5 00:37 2_445_626291662.dbfITPUB个人空间X|K)Z!r-Te;`SP
-rw-rw----   1 oracle   oinstall  153600 Jan  5 00:39 2_446_626291662.dbf

当关闭实例恢复后,执行命令后,一般会恢复各个实例归档各自加载日志的情况。

另一种情况是备份、恢复造成的。

对于RESTORE命令就不想多少了,备份命令也可能造成本地实例归档其他实例日志的情况:

SQL> HOST
\/D)I9Ad]iTM0$ rman target /

恢复管理器: Release10.2.0.3.0 - Production on星期六15 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;

使用目标数据库控制文件替代恢复目录
?|8k)\{V:T3rU q0
旧的RMAN配置参数:
+M)g)jH ~M0CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/data1/backup/%U' CONNECT '*';
-n nF%O @6@ z0
新的RMAN配置参数
:ITPUB个人空间swQ(^$f Bj i p
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/data1/backup/%U' CONNECT '*';
$E"v7L:P/?&eF0
已成功存储新的RMAN配置参数

RMAN> configure channel 2 device type disk format '/data1/backup/%U' connect sys/test@testrac2;

旧的RMAN配置参数:ITPUB个人空间.G?j6ZAL5t
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT   '/data1/backup/%U' CONNECT '*';
b:y%EnQVr {o'D0
新的RMAN配置参数
:
)dhit$T,Ur0CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT   '/data1/backup/%U' CONNECT '*';ITPUB个人空间.A|"n#akC{)R
已成功存储新的RMAN配置参数

RMAN> configure default device type to disk;

旧的RMAN配置参数:
-u%a-L c+g`0CONFIGURE DEFAULT DEVICE TYPE TO DISK;
,k,|,~/` vC0
新的RMAN配置参数
:ITPUB个人空间+^ TZVA7I]V7y.j
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
,e!_&I3G+G\1{`%e+D0
已成功存储新的RMAN配置参数

RMAN> backup archivelog all;

启动backup05-1-08
`Cn-v:gP-zr0
当前日志已存档
ITPUB个人空间7bUj1\z
分配的通道: ORA_DISK_1ITPUB个人空间pW)lpp`:\3R1r:A
通道ORA_DISK_1: sid=309实例
=testrac1 devtype=DISKITPUB个人空间;OM0B|'Y2yaM
分配的通道
: ORA_DISK_2ITPUB个人空间` D.M2T3{'R)q:m3u
通道ORA_DISK_2: sid=291实例
=testrac2 devtype=DISKITPUB个人空间-t)[y.z@r
通道ORA_DISK_1:正在启动存档日志备份集

E)dt,i:E^jy0
通道ORA_DISK_1:正在指定备份集中的存档日志ITPUB个人空间ix'D,g%J4~4ld N
输入存档日志线程=1序列=672记录ID=2336时间戳=643163033ITPUB个人空间0K5Pf8V _L#_5h$yL
输入存档日志线程=1序列=673记录ID=2341时间戳
=643163127
lz!GHV0
输入存档日志线程=1序列=674记录ID=2345时间戳
=643163504
9S3}v4j!| uwSQe0
输入存档日志线程=1序列=675记录ID=2350时间戳
=643163864
4a.lu)I@RQ P0
输入存档日志线程=1序列=676记录ID=2354时间戳
=643164280
3h h9s/`,UgC0g0
输入存档日志线程=2序列=444记录ID=2344时间戳
=643163497ITPUB个人空间 V"L5uP2D7b CFQ
通道ORA_DISK_1:正在启动段105-1
-08ITPUB个人空间;k-Lnxw)l
通道ORA_DISK_2:正在启动存档日志备份集

0D:vU+RP0
通道ORA_DISK_2:正在指定备份集中的存档日志ITPUB个人空间*sS*V3~%O"zy
输入存档日志线程=2序列=442记录ID=2337时间戳=643163120ITPUB个人空间:i7Tj8CC"K
输入存档日志线程=2序列=443记录ID=2340时间戳
=643163213ITPUB个人空间O!O8|)M i
输入存档日志线程=2序列=445记录ID=2348时间戳
=643163878ITPUB个人空间(@#Uk| XOU
输入存档日志线程=2序列=446记录ID=2351时间戳
=643163951
2Q O-]6DN?mP0
通道ORA_DISK_2:正在启动段105-1
-08
Zu/`O9Ge0
通道ORA_DISK_1:已完成段105-1
-08
;eBn+N ^lC4A0
段句柄=/data1/backup/1cj5bq3v_1_1标记=TAG20080105T004446注释
=NONE
$y1}i}O,bW0
通道ORA_DISK_1:备份集已完成,经过时间
:00:00:02
B+a+H0Qd0
通道ORA_DISK_2:已完成段105-1
-08
pgq0h8L9wM%WrC0f0
段句柄=/data1/backup/1dj5bq6m_1_1标记=TAG20080105T004446注释
=NONE
(b3R;x0wUF*REv0
通道ORA_DISK_2:备份集已完成,经过时间
:00:00:02
7j;UkU)]z}[O0
通道ORA_DISK_1:正在启动存档日志备份集
ITPUB个人空间`zeP0X)N
通道ORA_DISK_1:正在指定备份集中的存档日志
ZS}5wG5K0
输入存档日志线程=2序列=447记录ID=2355时间戳=643164283ITPUB个人空间;_-bL.|6kq(`tQ$I
通道ORA_DISK_1:正在启动段105-1
-08
i!o-hV0~0F,V[K0
通道ORA_DISK_1:已完成段105-1
-08
4Ojk#o1Ky/Kf"H0
段句柄=/data1/backup/1ej5bq41_1_1标记=TAG20080105T004446注释
=NONEITPUB个人空间D/{a` VTk3k2K
通道ORA_DISK_1:备份集已完成,经过时间
:00:00:01
*G9S)xK4z&zj0
完成backup05-1-08

启动Control File and SPFILE Autobackup05-1-08
+oQ| m4H4X@zDP0
handle=/data/oracle/product/10.2/database/dbs/c-4291216984-20080105-02 comment=NONE
3B\Y/L:q @4E@,e0
完成Control File and SPFILE Autobackup05-1-08

RMAN> exit

ITPUB个人空间'cN,{}c7g%MFW0mV
恢复管理器完成。ITPUB个人空间9_aS(n YC#|
$ ls -l /data1/archivelogITPUB个人空间'EpS} kx(z1}
total 1540ITPUB个人空间H,C{/?sIY FAI
-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbfITPUB个人空间Vp5W ^"\q U"|"k*L+L
-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbf
6?!g+tH'B"^ L0-rw-r-----   1 oracle   oinstall   68096 Jan  5 00:31 1_674_626291662.dbf
F7Z LY4Ck0-rw-r-----   1 oracle   oinstall  112640 Jan  5 00:37 1_675_626291662.dbf
4fA(T ^-ZYF q(_Z0-rw-r-----   1 oracle   oinstall   55808 Jan  5 00:44 1_676_626291662.dbfITPUB个人空间6`#M Fvb*ar^
-rw-r-----   1 oracle   oinstall  312320 Jan  5 00:31 2_444_626291662.dbfITPUB个人空间7S)H6y kZ_ [%a
-rw-r-----   1 oracle   oinstall  136192 Jan  5 00:44 2_447_626291662.dbfITPUB个人空间u[*~cG7ue[D @"P
$ rsh 172.25.198.223 ls -l /data1/archivelogITPUB个人空间-dgM4A6y
total 676ITPUB个人空间8e&Lg8Bm_pO3O%[;}
-rw-rw----   1 oracle   oinstall  137728 Jan  5 00:25 2_442_626291662.dbf
;I ?5M!Y)Yj#KP0-rw-rw----   1 oracle   oinstall   33792 Jan  5 00:26 2_443_626291662.dbfITPUB个人空间W#_+CU;H,J3D
-rw-rw----   1 oracle   oinstall    1024 Jan  5 00:37 2_445_626291662.dbfITPUB个人空间#['ZZ%ta!yc
-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/archivelogITPUB个人空间 Ai-Z#BN
total 1828
S7~(\;O3X`4lie0-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbf
c c!LpU,a+H^@W0-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbf
hKoTK3V0-rw-r-----   1 oracle   oinstall   68096 Jan  5 00:31 1_674_626291662.dbf
(Mce.V|,R9vs!G0-rw-r-----   1 oracle   oinstall  112640 Jan  5 00:37 1_675_626291662.dbfITPUB个人空间1OO O"i4j4r%T/Bc
-rw-r-----   1 oracle   oinstall   55808 Jan  5 00:44 1_676_626291662.dbfITPUB个人空间DX P)E'K
-rw-r-----   1 oracle   oinstall  136192 Jan  5 00:51 1_677_626291662.dbfITPUB个人空间#~QC c9oMv5i
-rw-r-----   1 oracle   oinstall  312320 Jan  5 00:31 2_444_626291662.dbf
0i.Hy#d R:C%m0-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
C"J6g;c c5oW&W0total 948
O#GSs+c EfI0-rw-rw----   1 oracle   oinstall  137728 Jan  5 00:25 2_442_626291662.dbfITPUB个人空间 I{,k4hI+D
-rw-rw----   1 oracle   oinstall   33792 Jan  5 00:26 2_443_626291662.dbf
Xj }Zz} y[0-rw-rw----   1 oracle   oinstall    1024 Jan  5 00:37 2_445_626291662.dbf
P#I:K1?.Wa8Hz/E(mb0-rw-rw----   1 oracle   oinstall  153600 Jan  5 00:39 2_446_626291662.dbf
a1Vl/d/gjb [H0-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
i-H5Lj-a;wa0testrac2.thread=1

改为

testrac1.thread=2
i(c b;ZMXnd0testrac2.thread=1

下面启动当前实例:

SQL> STARTUP PFILE=inittestrac1.oraITPUB个人空间.[:v8c6N(G2E~
ORACLE
例程已经启动。

Total System Global Area 2147483648 bytesITPUB个人空间H)r1JN;y{B$f
Fixed Size                  2031480 bytesITPUB个人空间L_TlS"b]eS&B
Variable Size            1056964744 bytes
j-H(Z eZ|0Database Buffers         1073741824 bytes
6a4i@3rg0Redo Buffers               14745600 bytesITPUB个人空间/}:~1[5M h| ~7T8E
数据库装载完毕。
:J0V2A5H/U3e"ow0
数据库已经打开。ITPUB个人空间y+VnM2{i5?9U
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, THREAD# FROM V$INSTANCE;

INSTANCE_NUMBER INSTANCE_NAME       THREAD#ITPUB个人空间.i\}^+Eg/X*Lf
--------------- ---------------- ----------
xi;[rZ)?*zcF0              1 testrac1                  2

SQL> SELECT GROUP#, THREAD#, SEQUENCE#, ARCHIVED, STATUS FROM V$LOG;

    GROUP#    THREAD#  SEQUENCE# ARC STATUS
:hWUz8A K'O&SD0---------- ---------- ---------- --- --------------------
1I1AM!e0C PJ0         1          1        678 NO  CURRENTITPUB个人空间*F tE/f-w\7{
         2          1        677 YES INACTIVEITPUB个人空间8h$G'Qz3HA rL:yE1I@QH
         3          2        449 YES INACTIVE
6y0bj lB-\@0         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
uXCc:u2ca&w0---------- ---------- ---------- --- --------------------ITPUB个人空间k~y C {0yzq
         1          1        678 YES INACTIVEITPUB个人空间v G:| y@k(b
         2          1        679 NO  CURRENT
F_X_hc,X0         3          2        451 NO  CURRENTITPUB个人空间,h ?0rke-zTG
         4          2        450 YES ACTIVE

SQL> HOST ls -l /data1/archivelogITPUB个人空间,UH-pk5Jip
total 3304ITPUB个人空间@ xK,H#ri
-rw-r-----   1 oracle   oinstall   51712 Jan  5 00:23 1_672_626291662.dbf
'^6u*QI2`[0-rw-r-----   1 oracle   oinstall   12800 Jan  5 00:25 1_673_626291662.dbfITPUB个人空间'O9M!Z&WhoY+G7C
-rw-r-----   1 oracle   oinstall   68096 Jan  5 00:31 1_674_626291662.dbfITPUB个人空间eW#du3g S2z-N
-rw-r-----   1 oracle   oinstall  112640 Jan  5 00:37 1_675_626291662.dbf
/w@7t+FH Zo,oSB%sL0-rw-r-----   1 oracle   oinstall   55808 Jan  5 00:44 1_676_626291662.dbfITPUB个人空间w9Y;G3p3D5a"q
-rw-r-----   1 oracle   oinstall  136192 Jan  5 00:51 1_677_626291662.dbfITPUB个人空间2Q'F5?|d~3X`
-rw-r-----   1 oracle   oinstall   50688 Jan  5 01:12 1_678_626291662.dbf
`)|r^V0-rw-r-----   1 oracle   oinstall  312320 Jan  5 00:31 2_444_626291662.dbfITPUB个人空间1V^6cM}o*}
-rw-r-----   1 oracle   oinstall  136192 Jan  5 00:44 2_447_626291662.dbfITPUB个人空间{F4vG O
-rw-r-----   1 oracle   oinstall  354816 Jan  5 01:03 2_449_626291662.dbfITPUB个人空间3LGRY:d `|0c5b
-rw-r-----   1 oracle   oinstall  321024 Jan  5 01:12 2_450_626291662.dbf

由此可见,对于日志和实例其实并没有对应关系,因此在本地出现其他实例上的归档也是十分正常的情况。

 


TAG:

引用 删除 道可道非常道   /   2008-04-29 23:57:54
学习了
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar