暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

RAC 节点更新HBA卡操作流程

原创 布衣 2023-11-06
1160

前言

  今年出现过4-5次的集群的CRS-1719报警如下:

[grid@db_rac1 ~]$ cat /u01/grid/11.2.0.3/product/log/db_rac1/alertdb_rac1.log 
[ctssd(13480)]CRS-2409:The clock on host db_rac1 is not synchronous with the mean cluster time. No action has been taken as the Cluster Time Synchronization Service is running in observer mode.
2023-11-04 02:57:15.594: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread not scheduled for 8080 msecs.
2023-11-04 02:57:17.124: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread not scheduled for 8050 msecs.
2023-11-04 02:57:24.076: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread not scheduled for 16570 msecs.
2023-11-04 02:57:25.598: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread not scheduled for 16530 msecs.
2023-11-04 02:57:32.199: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread not scheduled for 24690 msecs.
2023-11-04 02:57:34.081: 
[cssd(11817)]CRS-1719:Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread not scheduled for 25010 msecs.
2023-11-04 03:13:31.306: 
[ctssd(13480)]CRS-2409:The clock on host db_rac1 is not synchronous with the mean cluster time. No action has been taken as the Cluster Time Synchronization Service is running in observer mode.
2023-11-04 03:43:31.790: 

官网解释如下:

CRS-01719:群集同步服务守护程序(CSSD)字符串未安排毫秒数。
原因:过大的系统负载使群集同步服务守护进程(CSSD)中的线程无法按消息中指示的时间执行。这表示系统过载。
措施:采取措施减少系统负载或增加系统资源以处理负载。

  • 查看系统日志的:

    kernel: qla2xxx [0000:84:00.0]-801c:1: Abort command issued nexus=1:0:10 – 1 2002,
代码 说明
801c 唯一标识发出消息的驱动程序代码部分的十六进制 ID。
1 SCSI 目标的主机号
1:0:10 命令寻址到 SCSI 目标 1:0:10
1 驱动程序正在等待命令完成
2002 SCSI 命令已中止,HBA 已成功重置。
  • 以下命令来自:Abort command Issued供参考
  • 为qla2xxx驱动程序启用扩展日志记录,以便在问题发生时尝试捕获任何其他错误消息
$ chmod u+w /sys/module/qla2xxx/parameters/ql2xextended_error_logging
$ echo "1" > /sys/module/qla2xxx/parameters/ql2xextended_error_logging
  • 查看多路径信息:
[root@db_rac1 ~]# multipath -ll DATA3 (360***********************0020104) dm-16 3PARdata,VV size=500G features='0' hwhandler='1 alua' wp=rw `-+- policy='round-robin 0' prio=50 status=active |- 1:0:1:10 sdbd 67:112 active ready running |- 3:0:0:10 sdw 65:96 active ready running |- 1:0:0:10 sdv 65:80 active ready running `- 3:0:1:10 sdbe 67:128 active ready running

初步判断应该编号为1的HBA卡(光纤卡)异常导致。目前集群状态正常,只是偶尔报CRS-1719,避免集群突然异常宕机进行换卡操作。

测试RAC更换HBA卡操作

1、查看集群状态及连接情况

[grid@db_rac1 ~]$ crsctl status res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- ora.ARCH.dg ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 ora.CRS.dg ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 ora.DATA.dg ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 ora.LISTENER.lsnr ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 ora.asm ONLINE ONLINE db_rac1 Started ONLINE ONLINE db_rac2 Started ora.gsd OFFLINE OFFLINE db_rac1 OFFLINE OFFLINE db_rac2 ora.net1.network ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 ora.ons ONLINE ONLINE db_rac1 ONLINE ONLINE db_rac2 -------------------------------------------------------------------------------- Cluster Resources -------------------------------------------------------------------------------- ora.LISTENER_SCAN1.lsnr 1 ONLINE ONLINE db_rac2 ora.db_rac1.vip 1 ONLINE ONLINE db_rac1 ora.db_rac2.vip 1 ONLINE ONLINE db_rac2 ora.cvu 1 OFFLINE OFFLINE ora.oc4j 1 ONLINE ONLINE db_rac2 ora.racdb.db 1 ONLINE ONLINE db_rac1 Open 2 ONLINE ONLINE db_rac2 Open ora.scan1.vip 1 ONLINE ONLINE db_rac2
# /usr/bin/python3 # coding=UTF-8 import os, cx_Oracle,time os.environ["NLS_LANG"] = "AMERICAN_AMERICA.AL32UTF8" tns= ''' (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=scan_ip)(PORT=1521)) ) (CONNECT_DATA= (SERVICE_NAME=racdb) ) ) ''' for i in range(1,10): db=cx_Oracle.connect('system','oracle',tns) cursor = db.cursor() cursor.execute("select userenv('sid') from dual") sid = str(cursor.fetchone()[0]) cursor.execute("select instance_name from v$instance") ins = str(cursor.fetchone()[0]) time.sleep(1) print(str(time.strftime('%Y-%m-%d %H-%M-%S %A'))+" 会话:"+str(i)+" 实例:"+ins+" SID:"+sid) cursor.close() db.close()
  • 输出:新连接都被分配到 db_rac1 节点
2023-11-05 13-26-38 Sunday 会话:1 实例:db_rac1 SID:1422
2023-11-05 13-26-39 Sunday 会话:2 实例:db_rac1 SID:1422
2023-11-05 13-26-40 Sunday 会话:3 实例:db_rac1 SID:1422
2023-11-05 13-26-41 Sunday 会话:4 实例:db_rac1 SID:1422
2023-11-05 13-26-43 Sunday 会话:5 实例:db_rac1 SID:1422
2023-11-05 13-26-44 Sunday 会话:6 实例:db_rac1 SID:1422
2023-11-05 13-26-45 Sunday 会话:7 实例:db_rac1 SID:1422
2023-11-05 13-26-47 Sunday 会话:8 实例:db_rac1 SID:1422
2023-11-05 13-26-48 Sunday 会话:9 实例:db_rac1 SID:1422

Process finished with exit code 0

2、手动stop db_rac1 数据库实例

#先关闭监听,避免新会话连进实例 [grid@db_rac1 ~]$ lsnrctl stop #此期间重启所有应用,会话重连至其它节点。 #验证节点是否还有应用会话,无连接后进行关闭实例 [grid@db_rac1 ~]$ srvctl stop instance -d racdb -i db_rac1 [grid@db_rac1 ~]$ crsctl status res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources ------------------------------------------------------------------------------- ora.LISTENER.lsnr OFFLINE OFFLINE db_rac1 ONLINE ONLINE db_rac2 ora.racdb.db 1 OFFLINE OFFLINE Instance Shutdown 2 ONLINE ONLINE db_rac2 Open ora.scan1.vip 1 ONLINE ONLINE db_rac2

2、测试连接情况

2023-11-05 13-49-50 Sunday 会话:1 实例:db_rac2 SID:1643 2023-11-05 13-49-52 Sunday 会话:2 实例:db_rac2 SID:1643 2023-11-05 13-49-53 Sunday 会话:3 实例:db_rac2 SID:1643 2023-11-05 13-49-54 Sunday 会话:4 实例:db_rac2 SID:1643 2023-11-05 13-49-55 Sunday 会话:5 实例:db_rac2 SID:1643 2023-11-05 13-49-57 Sunday 会话:6 实例:db_rac2 SID:1643 2023-11-05 13-49-58 Sunday 会话:7 实例:db_rac2 SID:1643 2023-11-05 13-49-59 Sunday 会话:8 实例:db_rac2 SID:1643 2023-11-05 13-50-00 Sunday 会话:9 实例:db_rac2 SID:1643 Process finished with exit code 0

程序连接已经被分配到db_rac2 实例

3、关服务器

[root@db_rac1~]# poweroff

4、更换HBA卡操作忽略

5、启服务器,此节点实例及监听依然为关闭状态

[grid@db_rac1 ~]$ crsctl status res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------ora.LISTENER.lsnr OFFLINE OFFLINE db_rac1 ONLINE ONLINE db_rac2 ora.racdb.db 1 OFFLINE OFFLINE Instance Shutdown 2 ONLINE ONLINE db_rac2 Open ora.scan1.vip 1 ONLINE ONLINE db_rac2

6、并重新存储绑定新卡的wwn号,绑定新的链路

  • 查看多路径状态:
  • 刷新链路:

对于 Qlogic 卡,键入:
echo 1 > /sys/class/fc_host/host< 控制器>/issue_lip
echo “- – -” > /sys/class/scsi_host/host< 控制器>/scan
对于 Emulex 卡,键入:
echo “- – -” > /sys/class/scsi_host/host< 控制器>/scan
说明对于Qlogic和Emulex的方法不同的。

[root@db_rac1 ~]# echo "1" > /sys/class/fc_host/host7/issue_lip [root@db_rac1 ~]# echo "1" > /sys/class/fc_host/host8/issue_lip [root@db_rac1 ~]# echo "1" > /sys/class/fc_host/host9/issue_lip [root@db_rac1 ~]# echo "- - -" > /sys/class/scsi_host/host7/scan [root@db_rac1 ~]# echo "- - -" > /sys/class/scsi_host/host8/scan [root@db_rac1 ~]# echo "- - -" > /sys/class/scsi_host/host9/scan
[root@db_rac1 ~]# multipath -ll DATA3 (360***********************0020104) dm-16 3PARdata,VV size=500G features='0' hwhandler='1 alua' wp=rw `-+- policy='round-robin 0' prio=50 status=active |- 1:0:1:10 sdbd 67:112 active ready running |- 3:0:0:10 sdw 65:96 active ready running |- 1:0:0:10 sdv 65:80 active ready running `- 3:0:1:10 sdbe 67:128 active ready running

7、启库:

#先启数据库 [grid@db_rac1 ~]$ srvctl start instance -d racdb -i db_rac1 [grid@db_rac1 ~]$ crsctl status res -t ora.LISTENER.lsnr OFFLINE OFFLINE db_rac1 ONLINE ONLINE db_rac2 ora.racdb.db 1 ONLINE ONLINE db_rac1 Open 2 ONLINE ONLINE db_rac2 Open ora.scan1.vip 1 ONLINE ONLINE db_rac2 # 启完数据库再启监控,进会话连接,否则数据库在启动过程中,就会有新会话连接并报错 [grid@db_rac1 ~]$ lsnrctl start

文章推荐

欢迎赞赏支持或留言指正

最后修改时间:2023-11-12 16:55:34
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论