Bo's Oracle Station

【博客文章2023】在线把基于DNS的RAC集群改为基于GNS的RAC集群

2023-4-3 15:18| 发布者: admin| 查看: 142| 评论: 0

摘要: 在线把基于DNS的RAC集群改为基于GNS的RAC集群。
【博客文章2023】在线把基于DNS的RAC集群改为基于GNS的RAC集群

Author: Bo Tang

1. 操作原理和步骤概览:

     以下操作步骤适用于Oracle Database 12.2.0/18c/19c。操作在一套基于DNS的MAA双集群中进行,参与的4台主机分别是:station3(192.168.0.3),station4(192.168.0.4),station5(192.168.0.5)和station6(192.168.0.6)。
    前台业务0暂停地将基于DNS的RAC集群改为基于GNS的RAC集群,操作开始前的DNS集群的基本情况如下:

    操作结束后的GNS集群的基本情况如下:

2. 操作准备:


       以grid用户检查RAC集群:


$cluvfy stage -pre crsinst -n station3,station4

   以grid用户检查DNS代理子域给GNS是否配置好:首先查看一下DNS服务器的正向域配置文件example.com.zone:

; Specify the time-to-live( TTL ) for the zone
$TTL 86400  ; 1 Day ( we could have used 1D )

; Begin Start Of Authority resource record
example.com. IN  SOA server1.example.com. root.server1.example.com. ( 
				2003040100	; serial number
				1H 		; refresh slave
				5M 		; retry query
				1W 		; expire
				1M 		; negative TTL 
)

; Specify our name servers 
; !!WARNING: You can not use CNAMEs for RDATA here !!
; owner			TTL	CL  type		RDATA
@				IN  NS		server1.example.com.

; Specify our mail exchangers
; !!WARNING: You can not use CNAMEs for RDATA here !!
; owner			TTL	CL  type  	RDATA
@				IN  MX  	10  server1.example.com.

; This is broken and against RFC but must be done to placate the masses
; owner			TTL	CL  type	RDATA
example.com.                	IN  A		192.168.0.254

; List our CNAME records ( aliases ) here
; owner			TTL	CL  type	RDATA
mail.example.com.	3600   	IN  CNAME	server1.example.com.
kerberos.example.com.	3600	IN  CNAME	server1.example.com.

; List our A records ( hosts ) here
; owner			TTL	CL  type	RDATA
server1.example.com.				IN  A		192.168.0.254
station3				IN  A		192.168.0.3
station4				IN  A		192.168.0.4
station5				IN  A		192.168.0.5
station6				IN  A		192.168.0.6
; 必须注释掉所有DNS里头的scan配置
; scan3                    0        IN  A           192.168.0.103
; scan3                    0        IN  A           192.168.0.104
; scan3                    0        IN  A           192.168.0.153
; scan5                    0        IN  A           192.168.0.105
; scan5                    0        IN  A           192.168.0.106
; scan5                    0        IN  A           192.168.0.155

gns.cluster3.example.com.                    IN  A           192.168.0.154
gns.cluster5.example.com.                    IN  A           192.168.0.156
cluster3.example.com.                                    IN  NS             gns.cluster3.example.com.
cluster5.example.com.                                    IN  NS             gns.cluster5.example.com.

   其次查看一下DNS服务器的反向域配置文件192.168.0..zone:

; Specify the time-to-live( TTL ) for the zone $TTL 86400 ; 1 Day ( we could have used 1D ) ; Begin Start Of Authority resource record 0.168.192.IN-ADDR.ARPA. IN SOA server1.example.com. root.server1.example.com.( 2003040100 ; serial number 1H ; refresh slave 5M ; retry query 1W ; expire 1M ; negative TTL ) ; Specify our name servers ; !!WARNING: You can not use CNAMEs for RDATA here !! ; owner TTL CL type RDATA @ IN NS server1.example.com. ; List our PTR records ( rev lookup ) here ; owner TTL CL type RDATA 254.0.168.192.IN-ADDR.ARPA. IN PTR server1.example.com. 3 IN PTR station3.example.com. 4 IN PTR station4.example.com. 5 IN PTR station5.example.com. 6 IN PTR station6.example.com.

; 必须注释掉所有DNS里头的scan配置

; 103 0 IN PTR scan3.example.com. ; 104 0 IN PTR scan3.example.com. ; 153 0 IN PTR scan3.example.com. ; 105 0 IN PTR scan5.example.com. ; 106 0 IN PTR scan5.example.com. ; 155 0 IN PTR scan5.example.com. 154 IN PTR gns.cluster3.example.com. 156 IN PTR gns.cluster5.example.com. cluster3.example.com. IN NS gns.cluster3.example.com. cluster5.example.com. IN NS gns.cluster5.example.com.


    两个域名zone文件中,蓝色的部分支持基于DNS的集群,红色的部分支持转换之后的GNS集群。

    以grid用户检查:


    如果报告/var/tmp下面存在socket或者grid infrastructure的ORACLE_HOME没有写权限这样的错误。可以忽略。

3. 操作:


    在开始操作前,建议删除dataguard broker配置,如果有的话。

    以root用户使用srvctl命令配置GNS资源,-domain填写的是DNS代理给GNS负责解析的域名,-vip是GNS服务器的地址:


#srvctl add gns -domain example.com -vip 192.168.0.154


#srvctl add gns -domain example.com -vip 192.168.0.156


     以上的命令中的-domain取值为GNS的代理子域。举例:如果最终GNS解析的域名为cluster3.example.com,那么-domain的取值就是example.com。特别注意-doamin不能写成cluster3.example.com,否则最后的vip和scan都会变成:vip.cluster3.cluster3.example.com或scan.cluster3.cluster3.example.com。也就是说cluster的名字是GNS规则自动添加的。

    station3以root用户启动GNS:


#srvctl start gns


    station5以root用户启动GNS:

#srvctl start gns


    由于还没有完全转变成VIP由DHCP获取的状态,所以VIP仍然是由/etc/hosts来手工指定。目前需要改动CRS来支持混合的静态和动态DHCP的网络地址模式,station3以root用户执行:

#srvctl modify network -nettype MIXED


    station5以root用户执行:

#srvctl modify network -nettype MIXED


    此时SCAN-VIP已经从dhcp服务器获得,并启动;而VIP仍然由手工设定。

4. 操作后的检查:

    由于集群做了相应的改动,需要使用grid用户再次检查集群。查看其是否在启用GNS:

$cluvfy stage -post crsinst -n station3,station4


5. 最后的操作:

    以root用户在station3上配置的VIP:

#srvctl stop vip -n station3 -force

#srvctl modify vip -n station3 -address station3-vip.cluster3.example.com/255.255.255.0

#srvctl start vip -n station3

#srvctl stop vip -n station4 -force

#srvctl modify vip -n station4 -address station4-vip.cluster3.example.com/255.255.255.0

#srvctl start vip -n station4


    以root用户在station5上配置的VIP:
    
    继续之前,尤其重要的是:四个节点都要修改/etc/hosts,把所有vip的声明都注释掉。
    以root用户在station3上更新GNS解析的SCAN名字:
    

#srvctl modify scan -scanname scan.cluster3.example.com


    以root用户在station5上更新GNS解析的SCAN名字:
    
  
    以root用户在station3上把网络改成完全由DHCP来获取VIP和SCAN-VIP:
    

#srvctl modify network -nettype DHCP


    以root用户在station5上把网络改成完全由DHCP来获取VIP和SCAN-VIP:
    

    最后还要修改RAC数据库的remote_listener参数,以反映新的scan的名字。不要去管RAC数据库的local_listener参数。

路过

雷人

握手

鲜花

鸡蛋

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-12-7 17:53 , Processed in 0.045312 second(s), 21 queries .

返回顶部