Oracle RAC环境中归档日志的存放方式有如下几种方式


1. 本地文件系统


2. 集群文件系统

3. 网络文件系统(NFS)


4. 自动存储管理(ASM)

归档日志的存放方式决定了归档日志可以采用的备份方式。对于方式2、3、4,归档日志的备份与单实例归档日志的备份是一样的,对于方式1,归档日志的备份要复杂一些,可以通过每个节点各自进行备份,也可在备份软件(这里只Veritas Netbackup)端进行一定的设置,然后统一备份所有节点的归档日志。但要注意归档日志的恢复,应该让所有thread生成的归档对应用归档的实例可见。




RAC归档配置方案:使用ASM存储保存归档文件


1 修改归档归档位置(单节点操作): 
SQL> alter system set log_archive_log_dest_1='LOCATION=+ARCH'  sid='*';
2 修改数据库归档模式(单节点操作):
SQL>alter system set cluster_database=false sid='*';
3 关闭数据库(两个节点分别操作或者使用srvctl命令单节点操作)
SQL>shutdown immediate;
4 修改归档模式(单节点操作)
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter system set cluster_database=TRUE sid='*';
5 启动数据库,查看是否生效(两个节点都需要重新启动)
节点1因为已经到mount状态,所以:
SQL>alter database open;
SQL>archive log list;
节点2需要startup启动再查看
 

 

RAC归档配置方案:使用NFS共享存储保存归档文件
 

 1.软件版本 

 10.2.0.1.0  on 2.6.18-53.el5 

 2.测试机器 

 192.168.1.100        NFS 

 192.168.1.101        rac1        

 192.168.1.102        rac2 

 3.总体流程 

     -->配置NFS服务(192.168.1.103) 

     -->在RAC1节点上挂载NFS(192.168.1.101)rac1-rac2两个节点挂载点路径一致 

     -->在RAC2节点上挂载NFS(192.168.1.102)rac1-rac2两个节点挂载点路径一致 

     -->为RAC数据库开启归档 

     -->测试、确认以上配置达到目的 

 
4.rsize= 
20480000,wsize= 
20480000 
设置过小,在 
RMAN 
备份时会卡住         
        

 5.测试结果见楼下,欢迎补充、指正 



 
一、配置NFS服务(192.168.1.103) 

 1、在一个非常大的文件系统上建立目录 

 $ mkdir /u01/arch 

 $ ll -d /u01/arch 

 drwxr-xr-x 2 oracle oinstall 4096 Jul  611:01 /u01/arch 



 2、将该目录在/etc/exports中共享 

 # vim /etc/exports 

 /u01/arch *(rw,sync,no_all_squash) 

 3、在nfs服务端手动启动NFS服务器 

 # service nfs restart 



 4、开机自动加载NFS服务 

 # chkconfig --list nfs 

 nfs            0:off 1:off 2:off 3:off 4:off 5:off 6:off 

 # chkconfig nfs on 



二、在RAC1节点上挂载NFS(192.168.1.101)rac1-rac2两个节点挂载点路径一致 

 1、以oracle身份创建NFS的挂载点目录 

 [oracle@rac1 ~]$ mkdir /u01/rac_arch 



 2、以root身份手工挂载NFS目录 

 [oracle@rac1 ~]$ su - root 

 [root@rac1 ~]# mount -t nfs -o rw192.168.1.101:/u01/arch /u01/rac_arch 

 [root@rac1 ~]# ls -ld /u01/rac_arch/ 

 drwxr-xr-x 2 oracle oinstall 4096 Jul  611:01 /u01/rac_arch/ 



 3、以oracle身份测试NFS共享存储 

 [oracle@rac1 ~]$ touch /u01/rac_arch/oracle_1 

 [oracle@rac1 ~]$ ll   /u01/rac_arch/oracle_1  

 -rw-r--r-- 1 oracle oinstall 0 Jul  6 11:42/u01/rac_arch/oracle_1

三、在RAC2节点上挂载NFS(192.168.1.102)rac1-rac2两个节点挂载点路径一致


1、以oracle身份创建NFS的挂载点目录

[oracle@rac2 ~]$ mkdir /u01/rac_arch



2、以root身份手工挂载NFS目录



[root@rac1 ~]# mount -t nfs -o rw192.168.1.101:/u01/arch /u01/rac_arch 

 [root@rac1 ~]# ls -ld /u01/rac_arch/ 

 drwxr-xr-x 2 oracle oinstall 4096 Jul  611:01 /u01/rac_arch/


3、以oracle身份测试NFS共享存储



[oracle@rac2 ~]$ touch /u01/rac_arch/oracle_2 

 [oracle@rac2 ~]$ ll   /u01/rac_arch/oracle_2  

 -rw-r--r-- 1 oracle oinstall 0 Jul  6 11:42/u01/rac_arch/oracle_2

四、为RAC数据库开启归档

1、调整归档日志路径 

 SYS@RACDB1> alter system setlog_archive_dest_1='LOCATION=/u01/rac_arch/'; 

 SYS@RACDB1> show parameter log%_1 

 --log_archive_dest_1  stringLOCATION=/u01/rac_arch 



 2、调整归档日志文件命名方式 

 SYS@RACDB1>  alter system setlog_archive_format ='arch_%S_%R_%T.arc'  
scope=spfile 
; 

 SYS@RACDB1> select value from  
v$spparamete 
r wherename='log_archive_format'; 

 --arch_%S_%R_%T.arc 


 --log_archive_format    string%t_%s_%r.dbf 



 %s: 日志序列号 

 %S:日志序列号(带有前导0)。 

 %t: 重做线程编号。 

 %T: 重做线程编号(带有前导0) 

 %a: %A:数据库ID号 

 %d: 数据库ID号 

 %r: RESETLOGS的id值 



 3、关闭所有节点数据库实例 

 $ srvctl stop database -d RACDB 



 $ crs_stat -t 

 Name           Type          Target    State     Host        

 ------------------------------------------------------------ 

 ora....B1.inst application    OFFLINE  OFFLINE                

 ora....B2.inst application    ONLINE   OFFLINE                

 ora.RACDB.db   application   OFFLINE   OFFLINE                

 ora....SM1.asm application    ONLINE   ONLINE    rac1         

 ora....C1.lsnr application    ONLINE   ONLINE    rac1         

 ora.rac1.gsd   application   ONLINE    ONLINE    rac1         

 ora.rac1.ons   application   ONLINE    ONLINE    rac1         

 ora.rac1.vip   application   ONLINE    ONLINE    rac1         

 ora....SM2.asm application    ONLINE   ONLINE    rac2         

 ora....C2.lsnr application    ONLINE   ONLINE    rac2         

 ora.rac2.gsd   application   ONLINE    ONLINE    rac2         

 ora.rac2.ons   application   ONLINE    ONLINE    rac2         

 ora.rac2.vip   application   ONLINE    ONLINE    rac2         



 4、在其中一个节点上开归档 

 SYS@RACDB1> startup mount 

 SYS@RACDB1> alter database archivelog; 

 SYS@RACDB1> alter database open; 

 5、开启所有节点数据库实例 

 $ srvctl stop database -d RACDB 

 $ srvctl start database -d RACDB;sleep 60 



五、测试、确认以上配置达到目的 

 1、第一次切换不成功 

 SYS@RACDB2> alter system archive log current; 

 $ tail /u01/admin/RACDB/bdump/*.log 

   Current log# 3 seq# 25 mem# 0:+DG1/racdb/redo03.log 

 Sun Jul  6 17:02:14 2014 

 WARNING:NFS file system /u01/rac_arch mounted withincorrect options 

 WARNING: 
Expected NFS mount options 
:rsize>=16384,wsize>=16384,hard,noac/actimeo=0 

 Sun Jul  6 17:02:14 2014 

 Errors in file/u01/admin/RACDB/bdump/racdb2_arc1_6756.trc: 

 ORA-19504: failed to create file"/u01/rac_arch/arch_0000000024_0851859689_0002.arc" 

 ORA-27054: NFS file system where the file iscreated or resides is not mounted with correct options 

 Additional information: 3 

 ARC1: Error 19504 Creating archive log file to'/u01/rac_arch/arch_0000000024_0851859689_0002.arc' 



 2、在两个节点上重新remount 

 [root@rac1 ~]# mount -t nfs -oremount,rsize=65534,wsize=65534,hard,noac,actimeo=0 192.168.1.101:/u01/arch  

 /u01/rac_arch 

 [root@rac2 ~]# mount -t nfs -oremount,rsize=65534,wsize=65534,hard,noac,actimeo=0 192.168.1.101:/u01/arch  

 /u01/rac_arch 

 [root@rac1 ~]# vim fstab 



 3、第二次切换成功 

 SYS@RACDB2> alter system archive log current; 

 [root@rac2 ~]# mount|grep rac_arch 

 192.168.1.101:/u01/arch on /u01/rac_arch type nfs(rw,hard,nointr,tcp,noac,timeo=600,nolock,addr=192.168.1.101) 

 192.168.1.101:/u01/arch on /u01/rac_arch typenfs (rw,remount,rsize=65534,wsize=65534,hard,noac,actimeo=0,addr=192.168.1.101) 

 [root@rac2 ~]# ll /u01/rac_arch 

 total 1236 

 -rw-rw---- 1 oracle oinstall 1257984 Jul  617:12 arch_0000000022_0851859689_0001.arc 

 -rw-r--r-- 1 oracle oinstall      0 Jul  6 11:42 oracle_test 



 4、在rac1-rac2两个节点上设置开机自动挂载 

 [root@rac1 ~]# vim /etc/rc.local 

 mount -t nfs -oremount,rsize=65534,wsize=65534,hard,noac,actimeo=0 192.168.1.101:/u01/arch/u01/rac_arch 

 [root@rac2 ~]# vim /etc/rc.local 

 mount -t nfs -o remount,rsize=65534,wsize=65534,hard,noac,actimeo=0192.168.1.101:/u01/arch /u01/rac_arch


5、reboot两节点进一步验证