一个问题:rac对单机ADG搭建完成之后,rac是双节点,假设某一个节点发生故障done机了,或者是将一个节点关机了,然后
这个数据库再启动话是否还能起来???
起不来。因为一旦重启,之前修改的参数就生效了,启动的时候就会出现参数路径不一致的情况,就会导致这个节点无法启动。
有两个解决办法:
1.生成一个pfile文件,使用pfile文件启动,但是有弊端
2、重新编辑参数文件,清空路径不一致的参数,然后再启动。
生产库上如果不能立即重启使参数生效,那就等可以重启的时候在统一重启各个节点的数据库使参数生效就可以了。
备库:
standby
操作系统
oracle版本
db_name
db_unique
hostname
oracle_sid
rhel-server-6.5-x86_64
11.2.0.4
rac11g
rac11gdg
rac11gdg
rac11gdg
主库:
RAC
操作系统
oracle版本
db_name
db_unique
hostname
oracle_sid
节点1
rhel-server-6.5-x86_64
11.2.0.4
rac11g
rac11g
rac11g1
rac11g1
节点2
rhel-server-6.5-x86_64
11.2.0.4
rac11g
rac11g
rac11g2
rac11g2
1、创建物理备库 的准备工作,首先保证rac数据库的状态都正常
[grid@rac11g1 ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 0 6 -APR-2017 17 :0 0 :55
Copyright ( c ) 1991 , 2013 , Oracle . All rights reserved .
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))
Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date 0 6 -APR-2017 16 :0 5 :29
Uptime 0 days 0 hr. 55 min . 25 sec
Security ON: Local OS Authentication
Listener Parameter File /u01/11.2.0 /grid/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/rac11g1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
( DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.10 )(PORT=1521 )))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.26 )(PORT=1521 )))
Service "+ASM" has 1 instance(s).
Instance "+ASM1" , status READY, has 1 handler(s) for this service...
Service "rac11g" has 1 instance(s).
Instance "rac11g1" , status READY, has 1 handler(s) for this service...
Service "rac11gXDB" has 1 instance(s).
Instance "rac11g1" , status READY, has 1 handler(s) for this service...
The command completed successfully
[grid@rac11g1 ~]$ crsctl status resource -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
ONLINE ONLINE rac11g1 Started
ONLINE ONLINE rac11g2 Started
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
1 ONLINE ONLINE rac11g1 Open
2 ONLINE ONLINE rac11g2 Open
1 ONLINE ONLINE rac11g1
10中的命令:
[grid@rac11g1 admin]$ crs_stat -tName Type Target State Host ------------------------------------------------------------ora.ARCHDG.dg ora....up.type ONLINE ONLINE rac11g1 ora.DATADG.dg ora....up.type ONLINE ONLINE rac11g1 ora....ER.lsnr ora....er.type ONLINE ONLINE rac11g1 ora....N1.lsnr ora....er.type ONLINE ONLINE rac11g1 ora....VOTE.dg ora....up.type ONLINE ONLINE rac11g1 ora.asm ora.asm.type ONLINE ONLINE rac11g1 ora.cvu ora.cvu.type ONLINE ONLINE rac11g1 ora.gsd ora.gsd.type OFFLINE OFFLINE ora....network ora....rk.type ONLINE ONLINE rac11g1 ora.oc4j ora.oc4j.type ONLINE ONLINE rac11g1 ora.ons ora.ons.type ONLINE ONLINE rac11g1 ora.rac11g.db ora....se.type ONLINE ONLINE rac11g1 ora....SM1.asm application ONLINE ONLINE rac11g1 ora....G1.lsnr application ONLINE ONLINE rac11g1 ora....1g1.gsd application OFFLINE OFFLINE ora....1g1.ons application ONLINE ONLINE rac11g1 ora....1g1.vip ora....t1.type ONLINE ONLINE rac11g1 ora....SM2.asm application ONLINE ONLINE rac11g2 ora....G2.lsnr application ONLINE ONLINE rac11g2 ora....1g2.gsd application OFFLINE OFFLINE ora....1g2.ons application ONLINE ONLINE rac11g2 ora....1g2.vip ora....t1.type ONLINE ONLINE rac11g2 ora....ry.acfs ora....fs.type ONLINE ONLINE rac11g1 ora.scan1.vip ora....ip.type ONLINE ONLINE rac11g1
1.1、 修改 RAC 数据库为 FORCE LOGGING
SQL> select force_logging from v$database;
SQL> alter database force logging;
注:通常我们设置生产库的每个redo大小为512M~2048M之间,并且大于等于三组
column STATUS format a12;
column MEMBER format a50;
select l.GROUP #,l.THREAD #,l.BYTES /1024/1024||'MB' MB,l.STATUS , lf.TYPE ,lf.MEMBER from v$log l,v$logfile lf where l.GROUP #=lf.GROUP #;
GROUP # THREAD# MB STATUS TYPE MEMBER
---------- ---------- ----- ------------ ------- --------------------------------------------------
1 1 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_1.263.940529009
2 1 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_2.262.940529023
3 1 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_3.261.940529039
5 2 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_5.268.940259119
6 2 512 MB CURRENT ONLINE +DATADG/rac11g/onlinelog/group_6.269.940259139
7 2 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_7.270.940259155
8 2 512 MB INACTIVE ONLINE +DATADG/rac11g/onlinelog/group_8.271.940259169
4 1 512 MB CURRENT ONLINE +DATADG/rac11g/onlinelog/group_4.273.940529057
[root@rac11g1 ~]# vim /etc/hosts (节点1 同节点2 )
127.0 .0.1 localhost localhost.localdomain localhost4 localhost4.localdomain 4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain 6
192.168 .56.26 rac11g1-vip
192.168 .56.27 rac11g2-vip
192.168 .56.70 db11g1 //备库的ip 以及主机名
编辑备库 的hosts文件:(与rac中的hosts文件相同)
[root@db11g1 ~]# vim /etc/hosts
127.0 .0.1 localhost localhost.localdomain localhost4 localhost4.localdomain 4
192.168 .56.26 rac11g1-vip
192.168 .56.27 rac11g2-vip
修改完成之后在各个节点上ping 一下检查是否可以ping通
[root@rac11g1 ~]# ping db11g1
PING db11g1 (192.168 .56.70 ) 56 (84 ) bytes of data.
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=1 ttl=64 time =0.327 ms
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=2 ttl=64 time =0.350 ms
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=3 ttl=64 time =0.274 ms
[root@rac11g2 ~]# ping db11g1
PING db11g1 (192.168 .56.70 ) 56 (84 ) bytes of data.
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=1 ttl=64 time =0.204 ms
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=2 ttl=64 time =0.195 ms
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=3 ttl=64 time =0.420 ms
64 bytes from db11g1 (192.168 .56.70 ): icmp_seq=4 ttl=64 time =0.349 ms
[root@db11g1 ~]# ping rac11g1
PING rac11g1 (192.168 .56.10 ) 56 (84 ) bytes of data.
64 bytes from rac11g1 (192.168 .56.10 ): icmp_seq=1 ttl=64 time =1.64 ms
64 bytes from rac11g1 (192.168 .56.10 ): icmp_seq=2 ttl=64 time =0.556 ms
64 bytes from rac11g1 (192.168 .56.10 ): icmp_seq=3 ttl=64 time =0.243 ms
64 bytes from rac11g1 (192.168 .56.10 ): icmp_seq=4 ttl=64 time =0.270 ms
--- rac11g1 ping statistics ---
4 packets transmitted, 4 received, 0 % packet loss, time 3187 ms
rtt min/avg/max/mdev = 0.243 /0.678 /1.645 /0.571 ms
[root@db11g1 ~]# ping rac11g2
PING rac11g2 (192.168 .56.11 ) 56 (84 ) bytes of data.
64 bytes from rac11g2 (192.168 .56.11 ): icmp_seq=1 ttl=64 time =1.02 ms
64 bytes from rac11g2 (192.168 .56.11 ): icmp_seq=2 ttl=64 time =0.269 ms
64 bytes from rac11g2 (192.168 .56.11 ): icmp_seq=3 ttl=64 time =0.268 ms
[oracle@db11g1 admin]$ vim listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0 /db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
(GLOBAL_DBNAME = rac11gdg)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0 /db_1)
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 .56.70 )(PORT = 1521 ))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
ADR_BASE_LISTENER = /u01/app/oracle
[oracle@db11g1 admin]$ lsnrctl stop
[oracle@db11g1 admin]$ lsnrctl start
[oracle@db11g1 admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 17-SEP-2017 14:06:30Copyright (c) 1991, 2013, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.70)(PORT=1521)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 11.2.0.4.0 - ProductionStart Date 17-SEP-2017 14:06:26Uptime 0 days 0 hr. 0 min. 3 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/diag/tnslsnr/rac11gdg/listener/alert/log.xmlListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.56.70)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))Services Summary...Service "rac11g" has 1 instance(s). Instance "rac11gdg", status UNKNOWN, has 1 handler(s) for this service...The command completed successfully
[root@rac11g1 ~]# su - oracle
[oracle@rac11g1 ~]$ cd /u01/app/oracle/product/11.2.0 /db_1/network/admin/
[oracle@rac11g1 admin]$ ls
samples shrept.lst tnsnames.ora
[oracle@rac11g1 admin]$ vim tnsnames.ora
# tnsnames.ora.rac 11 g1 Network Configuration File: /u01/app/oracle/product/11.2.0 /db_1/network/admin/tnsnames.ora.rac 11 g1
# Generated by Oracle configuration tools.
(ADDRESS = (PROTOCOL = TCP)(HOST = rac11gscan)(PORT = 1521 ))
// 注:这里主机名写成rac11gscan ,可以解析两个节点
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 .56.70 )(PORT = 1521 ))
[oracle@rac11g1 admin]$ tnsping RACDG
TNS Ping Utility for Linux: Version 11.2 .0.4 .0 - Production on 06 -APR-2017 18 :22:19
Copyright (c) 1997 , 2013 , Oracle. All rights reserved.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 .56.70 )(PORT = 1521 ))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racdg)))
[oracle@rac11g1 admin]$ tnsping RAC11G
TNS Ping Utility for Linux: Version 11.2 .0.4 .0 - Production on 06 -APR-2017 18 :22:27
Copyright (c) 1997 , 2013 , Oracle. All rights reserved.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac11gscan)(PORT = 1521 )) (CONNECT_DATA =
(SERVER = DEDICATED) (SERVICE_NAME = rac11g)))
[oracle@rac11g2 admin]$ vim tnsnames.ora
# tnsnames.ora.rac 11 g2 Network Configuration File: /u01/app/oracle/product/11.2.0 /db_1/network/admin/tnsnames.ora.rac 11 g2
# Generated by Oracle configuration tools.
(ADDRESS = (PROTOCOL = TCP)(HOST = rac11gscan)(PORT = 1521 ))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 .56.70 )(PORT = 1521 ))
[oracle@rac11g2 admin]$ tnsping rac11g
TNS Ping Utility for Linux: Version 11.2 .0.4 .0 - Production on 06 -APR-2017 18 :26:21
Copyright (c) 1997 , 2013 , Oracle. All rights reserved.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rac11gscan)(PORT = 1521 )) (CONNECT_DATA =
(SERVER = DEDICATED) (SERVICE_NAME = rac11g)))
[oracle@rac11g2 admin]$ tnsping racdg
TNS Ping Utility for Linux: Version 11.2 .0.4 .0 - Production on 06 -APR-2017 18 :26:24
Copyright (c) 1997 , 2013 , Oracle. All rights reserved.
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168 .56.70 )(PORT = 1521 ))
(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = racdg)))