前言
今年出现过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
- 连接测试python 脚本
Python 并行对表操作测试脚本- 下载
# /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
文章推荐
-
实验笔记:
《Update 影响 Select 效率示例》
《Oracle 多表关联update》
《Oracle 查看Redo产生多少》
《Oracle 总结:为什么不走索引(一)》
《Oracle 总结:为什么不走索引(二)》 -
故障处理
《Oracle HASH JOIN 引起的TEMP爆满分析总结》
《expdp/impdp 任务终止不能靠Ctrl+C》
《Oracle_索引重建—优化索引碎片》
《Oracle 自动收集统计信息机制》
《DBA_TAB_MODIFICATIONS表的刷新策略测试》
《FY_Recover_Data.dbf》
《Oracle RAC 集群迁移文件操作.pdf》
《Oracle Date 字段索引使用测试.dbf》
《Oracle 诊断案例 :因应用死循环导致的CPU过高》
《记录一起索引rebuild与收集统计信息的事故》
《RAC DG删除备库redo时报ORA-01623》
《问答榜上引发的Oracle并行的探究(一)》
《问答榜上引发的Oracle并行的探究(二)》
《DG 同步延迟之奇怪的经典报错:ORA-16191》 -
等待事件
《log file sync》 等待事件问题分析汇总
《ASH报告发现:os thread startup 等待事件分析》 -
监控&脚本
《DG standby time 监控脚本部署》
《Oracle 慢SQL监控脚本》
《Oracle 慢SQL监控测试及监控脚本.pdf》
《oracle 监控表空间脚本 每月10号0点至06点不报警》
《Oracle 脚本实现简单的审计功能》 -
安装系列
《ORACLE_19C_linux安装.pdf》
《Oracle 19c-手工建库.pdf》
《19c单库升级19.11补丁.pdf》
《19c_rac补丁《19.11-p32841500》.pdf 》
《oracle_图形-单实例11.2.0.4升级19.3.pdf》
《oracle_11.2.0.3升级11.2.0.4–单实例升级.pdf》
《oracle_静默-单实例 11.2.0.4升级19.3.pdf》
《CentOS_6.7系统一步一步 RAC 11.2.0.4升级19.3.pdf》
《整理后_RAC_11.2.0.4升级19c.pdf》
欢迎赞赏支持或留言指正




