查看巡检
背景信息
DWS支持在变更操作前(扩/缩容和升级)进行集群巡检,即在对应变更页面单击“开始巡检”后会巡检当前集群的健康状态和集群指标是否满足变更要求,检查通过后可开始变更。如果巡检不通过,可打开巡检详情,查看不通过的巡检项,根据详情说明处理不通过的巡检项。如果用户无法处理不通过的巡检项,请联系技术支持人员,巡检项检查标准详情请参见表1。
约束与限制
- 该特性仅8.1.1及以上集群版本支持。
- 集群已安装巡检插件并且插件版本为8.3.1.100及以上。
- 当前巡检结果24小时内有效,在有效期可执行变更操作,超过后需要重新进行巡检。
- 变更前集群24小时内没有巡检成功过,在变更操作(扩/缩容和升级)开始前需要先完成一次巡检,并保证巡检通过。
查看巡检详情
- 登录DWS管理控制台。
- 左侧导航栏选择“集群 > 集群列表”,在集群列表中单击指定集群名称。
- 进入“集群详情”页面,切换至“巡检管理”页签。
- 单击指定任务名称旁边的
图标,查看巡检结果(巡检状态、执行进度、巡检结果、通过率等),并单击所在行“查看详情”查看具体巡检项详情。在变更界面创建巡检任务后也可在当前页面查看巡检进度,巡检详情以及终止巡检。 图1 查看巡检详情
终止巡检任务
- 登录DWS管理控制台。
- 左侧导航栏选择“集群 > 集群列表”,在集群列表中单击指定集群名称。
- 进入“集群详情”页面,切换至“巡检管理”页签。
- 单击巡检中任务所在行操作列的“终止任务”终止该巡检任务。
巡检项检查标准说明
| 变更操作 | 巡检项名称 | 检查标准 |
|---|---|---|
| 扩/缩容、经典变更前巡检 | CheckTimeZone | 检查集群内各节点时区,如果时区一致则检查通过,否则检查项不通过。 |
| CheckHDFSConfig | 查询集群中的HDFS外表,确认是否能正常查询,如果有HDFS外表查询失败则检查不通过,否则检查通过。 | |
| CheckExpandVersionLimit | 检查集群版本,如果小于8.1.3则检查不通过,否则通过。 | |
| CheckWalLevel | 指定版本下,检查逻辑集群wal_level参数,如果值为hot_standby则检查不通过,建议先升级集群再做扩容。 | |
| CheckCrontab | 如果产品crontab配置完整,则检查通过,否则检查不通过。 | |
| CheckRecursive | 检查TopSQL中,近一周是否存在with recursive语句,如果不存在则检查通过,否则巡检结果为警告。 | |
| CheckDataNodeID | 检查大集群DN实例是否包含多种编号,如果存在多种编号例如6xxx,4xxxx等则检查不通过,请联系技术支持工程师进行处理。 | |
| CheckExchangePartition | 通过查询dbms_om.PGXC_WLM_SESSION_INFO,检查一周内是否有exchange partition语句,如果存在则检查不通过,涉及的表需要离线重分布。 | |
| CheckPCKTable | 检查所有业务库是否存在pck表,如果存在则需要按照建议进行整改。 | |
| CheckExpandGUCSetting | 检查用户级以及集群级的statement_timeout,如果参数设置大于12小时且temp_file_limit和sql_use_spacelimit均设置为-1则检查通过,否则检查报警告。 | |
| CheckModuleImport | 检查运维工具是否能正常导入模块,导入模块失败可能是由于缺少动态链接库文件,请联系技术支持工程师整改。 | |
| CheckFilePermission | 检查指定目录的文件权限,权限不满足要求时检查不通过。 | |
| CheckTopologyConsistency | 检查静态配置文件和XML配置文件的一致性,不一致则检查不通过,否则检查通过。 | |
| CheckInsertOverWrite | 指定版本下,存在序列则仅做告警,如果同时存在序列以及CN日志中有insert overwrite的关键日志则检查不通过,应当进行离线重分布。 | |
| CheckViewCount | 在各业务库查询视图数量,超过20万则检查不通过,否则检查通过。 | |
| CheckHstoreAutoVacuumWorker | 当autovacuum_max_workers_hstore大于或等于autovacuum_max_workers时检查不通过,会导致autovacuum线程全部分配给列存表。 | |
| CheckClusterRing |
| |
| CheckNodeGroup | 如果有installation、query、optimal的group_name,检查不通过,否则检查通过。 | |
| CheckSpaceUsage | 如果使用率超过warning阈值(默认为70%)报warning,超过NG阈值(默认为90%)则检查项不通过 。集群路径下检查“GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data”路径的剩余空间,不满足阈值则检查项不通过。 | |
| CheckClusterState | CM进程不存在,检查不通过;检查fenced UDF状态,如果为down则报warning;检查集群状态为Normal,则检查项通过,否则检查项不通过。 | |
| CheckEnvProfile | 检查节点环境变量($GAUSSHOME、$LD_LIBRARY_PATH、$PATH),如果环境变量存在并配置正确则检查项通过,否则检查项不通过。 | |
| CheckReadonlyMode | 检查集群中所有含CN节点上default_transaction_read_only值,如果为off则检查通过,否则不通过。 | |
| CheckCollector | 查看信息收集是否成功,如果收集成功则检查项通过,否则检查项不通过。 | |
| CheckTrust | 检查各个节点是否互信,如果有节点未互信则检查不通过,否则检查通过。 | |
| CheckBalanceState | 如果集群Balanced属性为Yes,则检查项通过,否则Warning,如果查询失败则检查项不通过。 | |
| CheckUtilslib | 如果$GAUSSHOME/utilslib目录存在,则检查不通过,否则检查通过。 | |
| CheckPgxcgroup | 检查pgxc_group表中in_redistribution为Y的个数,如果数量为0则检查项通过,否则检查项不通过。 | |
| CheckLockState | 检查集群是否被锁,如果集群未锁则检查通过,否则检查项不通过。 | |
| CheckDBConnection | 检查能否连接数据库,如果连接成功则检查项通过,否则检查项不通过。 | |
| CheckGUCConsistent | 检查各CN/DN实例的guc参数是否一致,如果全部一致则检查通过,否则检查不通过。 | |
| CheckTDDate | 若存在TD模式数据库下的orc表,且包含date类型的列则检查不通过。 | |
| CheckNodeNums | 9.0.x版本请升级到9.1.x及之后再做扩容,9.1.x版本如果存在V3表没有设置nodenums则检查不通过,不允许扩容。 | |
| CheckPgxcRedistb | 检查数据库中是否存在重分布残留的临时表,如果不存在则检查通过,否则检查不通过。 | |
| CheckGUCSetting | postgresql.conf中GUC参数和pg_settings中参数是否一致,一致则检查通过,否则不通过。 | |
| CheckProacl | 检查pg_proc系统表中proacl中是否存在纯数字用户名,如果存在,检查不通过,否则检查通过。 | |
| CheckUltraWideTable | 如果存在超过996列的表,检查不通过,否则检查通过。 | |
| CheckDataRedisSchema | 如果数据库中存在data_redis schema且属主用户名不是redisuser,则检查不通过,否则检查通过。 | |
| CheckDiskSpaceLimited | 用户的磁盘空间是否受限,如果受限,检查不通过,否则检查通过。 | |
| CheckTableCollate | 如果数据库中存在PCK表或者列存分区表使用collate字段,检查不通过,否则检查通过。 | |
| CheckDefaultOrientation | 检测GUC参数,数据库设置和用户设置default_orientation均为行存则通过,否则检查不通过。 | |
| CheckReplicationUuid | 不存在使用default uuid的复制表则通过,否则检查不通过。 | |
| CheckJsonb | 执行SQL语句“select attrelid::regclass from pg_attribute a join pg_type t on a.atttypid = t.oid and t.typname = 'jsonb' group by 1”,如果使用jsonb类型检查不通过,否则检查通过。 | |
| CheckLengthOfIndex | 执行SQL语句SELECT“ length(pg_get_indexdef(indexrelid)) FROM pg_index order by 1 desc limit 1”,如果结果大于192*1024检查不通过,否则检查通过。 | |
| CheckLengthOfTable | 执行SQL语句“select c.oid from pg_class c,pg_namespace n where c.relnamespace=n.oid and relkind='r' and n.nspname not in ('cstore') and length(n.nspname||'.'||c.relname)>=64;”,如果结果不为空检查不通过,否则检查通过。 | |
| CheckUseWorkloadManager | 执行sql语句“show use_workload_manager”,如果结果为on,检查通过,否则检查不通过。8.1.3.320及以后的版本不再校验此项参数,即此后的版本检查通过。 | |
| CheckNecessarySchema | 检查必要“schema(public)”是否都存在,如果缺失则检查不通过,否则检查通过。 | |
| CheckCMParamConsistency | 获取主备CM节点上的cm.conf文件,对比参数设置,如果参数配置一致则检查通过,否则检查不通过。 | |
| CheckRoachFilePermissions | 检查821及以上版本集群中roach插件文件权限是否过高,如果过高需要提前修改脚本规避,否则导致扩容失败。 | |
| CheckSQLCompatibility | mysql兼容性模式下,重分布临时表带索引会导致重分布慢。在对应的业务库中“SHOW sql_compatibility;”,如果值是mysql,且behavior_compat_options没有设置枚举值disable_including_all_mysql则检查不通过,否则检查通过。 | |
| CheckCgroup | 检查各个节点Cgroup数据,若各节点数据一致则检查项通过,否则检查项不通过。 | |
| CheckRoleLockState | 指定版本下,检查是否存在用户被锁。 | |
| CheckTableSize | 指定版本下,检查表的relpages,如果大于1125899906842623则检查不通过。 | |
| CheckGaussVer | 检查各节点$GAUSSHOME/bin目录下二进制文件版本是否一致。如果不一致检查不通过。 | |
| CheckBinaryUpgrade | 检查“/DWS/manager/upgrade_backup/”下是否有对应的备份文件,如果存在备份的文件,则检查不通过,否则检查通过。 | |
| CheckXFS | 查看“/etc/os-release”文件获取版本信息,如果是EulerOS且版本在4.19.87及以下则涉及XFS bug,检查不通过,否则检查通过。 | |
| CheckGTMConfigConsistency | 获取主备GTM配置文件参数,如果参数设置一致则检查通过,否则检查不通过。 | |
| CheckColversion | 检查如果存在没有标记为1.0列存表,且当前默认列存为2.0,则检查不通过,否则检查通过。 | |
| CheckTopSqlSize | 检查TopSQL表大小, 如果超过50G,则检查不通过,否则检查通过。 | |
| CheckDeltaTable | 检查是否存在delta表,如果存在delta表则该项检查不通过,否则检查通过。 | |
| CheckMaxDatanode | 检查comm_max_datanode的值,如果不等于实际主datanode个数,检查不通过,否则检查通过。 | |
| CheckSSHIP | 获取主备CM节点上的cm.conf文件,对比参数设置,如果参数配置一致则检查通过,否则检查不通过。 | |
| CheckTimeZoneLink | 在沙箱内执行“ll /etc/localtime”,如果链接指向的文件路径包含“/var/chroot”则检查不通过,否则检查通过。 | |
| CheckSpecialFile | 检查程序目录($GAUSSHOME以及各实例目录)下文件是否存在特殊字符以及非Ruby用户的文件,如果不存在则检查通过,否则检查不通过。 | |
| CheckTableUsage | 检查有使用V3表、HStore、HStore_opt、冷热表、Turbo_store表则检查项不通过,需要联系技术支持工程师进行评审再扩容。 | |
| CheckNextOid | 检查OID回卷问题。 | |
| CheckRSCompressTable | 如果存在使用行存压缩表情况,检查不通过,否则检查通过。 | |
| CheckSysSchemaTable | 如果系统schema下有用户自建的表检查不通过,否则检查通过。 | |
| 升级前巡检 | CheckClusterParams | 集群配置类参数(ip类、 Port类、路径类参数)在postgresql.conf或者pgxc_node的配置,必须和静态配置文件一致。不一致则检查不通过。 |
| CheckCNNum | 检查集群CN实例个数,如果CN个数大于2,小于10则检查项通过,否则检查项不通过。 | |
| CheckDDL | 启动事务创建/删除schema和表,如果事务能够提交,检查通过,否则检查不通过。 | |
| CheckTimeZone | 检查集群内各节点时区,如果时区一致则检查通过,否则检查项不通过。 | |
| CheckXidEpoch | 检查xid消耗量,如果大于等于2的32次方,检查不通过。 | |
| CheckCnNumberSame | 如果“/opt/dws/xml/cluster.xml和cm_ctl query -Cv”查询出来的CN数量一致,检查通过,否则检查不通过。 | |
| CheckGaussVer | 检查各节点$GAUSSHOME/bin目录下二进制文件版本是否一致。如果不一致,检查不通过。 | |
| CheckPsort | 如果有psort索引,检查不通过。 | |
| CheckCatchup | 检查gaussdb进程堆栈是否能搜索到CatchupMain函数,若搜索不到则检查项通过,否则检查项不通过。 | |
| CheckClusterState | CM进程不存在,检查不通过;检查fenced UDF状态,如果为down则报warning;检查集群状态为Normal,则检查项通过,否则检查项不通过。 | |
| CheckMetaDataConsistency | 检查系统表在CN和DN之间数据是否一致,一致则检查通过,否则检查不通过。 | |
| CheckDependSystemObj | 如果用户自建的对象依赖系统对象,检查不通过,否则检查通过。 | |
| CheckPgKeyWords | 如果表、列、函数、数据类型名为新增的保留关键字,检查不通过,否则检查通过。 | |
| CheckReadonlyMode | 检查集群中所有含CN节点上default_transaction_read_only值,若为off则检查通过,否则不通过。 | |
| CheckMetaData | 检查系统表元数据是否一致,如果一致,则检查通过,否则检查不通过。 | |
| CheckGUCSetting | postgresql.conf中GUC参数和pg_settings中参数是否一致,一致则检查通过,否则不通过。 | |
| CheckPgxcgroup | 检查pgxc_group表中in_redistribution为Y的个数,如果数量为0则检查项通过,否则检查项不通过。 | |
| CheckCmserverStandby | 如果集群cm_server属性为standby。则检查项通过,否则Warning。 | |
| CheckSpaceUsage | 如果使用率超过warning阈值(默认为70%)报warning,超过NG阈值(默认为90%)则检查项不通过 。集群路径下检查“GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data”路径的剩余空间,不满足阈值则检查项不通过。 | |
| CheckEnvProfile | 检查节点环境变量($GAUSSHOME、$LD_LIBRARY_PATH、$PATH),如果环境变量存在并配置正确则检查项通过,否则检查项不通过。 | |
| CheckBalanceState | 如果集群Balanced属性为Yes,则检查项通过,否则Warning,如果查询失败则检查项不通过。 | |
| CheckTDDate | 若存在TD模式数据库下的orc表,且包含date类型的列则检查不通过。 | |
| CheckCatalog | 检查pg_catalog中是否有用户自定义的数据库对象,如果有检查不通过,否则检查通过。 | |
| CheckPgauthid | 检查pg_authid中,oid的最高位如果等于1,检查不通过,否则检查通过。 | |
| CheckSysdate | 检查表、视图、存储过程中是否使用sysdate视图,如果有使用,检查不通过,否则检查通过。 | |
| CheckFilesNumber | 当GAUSSHOME/PGHOST/GPHOME/tmp文件数量大于10000时,检查不通过,否则检查通过。 | |
| CheckKeyFilesExist | 检查upgrade_version文件、conf文件、control文件,data下关键目录是否存在,若有文件存在,检查通过,否则检查不通过。 | |
| CheckReturnType | 用户自定义函数包含非法返回类型,检查不通过,否则检查通过。 | |
| CheckTrust | 检查各个节点是否互信,若有节点未互信则检查不通过,否则检查通过。 | |
| CheckEnumGUCValue | 检查pg_postgres.conf部分参数是否有引号,如果缺失单引号,则检查不通过,否则检查通过。 | |
| CheckSpecialFile | 检查程序目录“$GAUSSHOME”下文件是否存在特殊字符以及非Ruby用户的文件,如果不存在则检查通过,否则检查不通过。 | |
| CheckNecessarySchema | 检查必要“schema(public)”是否都存在。 | |
| CheckUserDefinedDataType | 连接所有数据库,执行SQL语句“select count(*) from pg_type t,pg_namespace n,PG_ATTRIBUTE a where t.typnamespace=n.oid and t.oid=a.atttypid and t.typname ='time_stamp' and n.nspname='information_schema' and a.atttypid> 16384;”,结果为空则检查通过,否则检查不通过。 | |
| CheckCMParamConsistency | 获取主备CM节点上的cm.conf文件,对比参数设置,如果参数配置一致则检查通过,否则检查不通过。 | |
| CheckLightProxy | 检查参数enable_light_proxy,如果为off,且behavior_compat_options不包含枚举值enable_force_add_batch则检查不通过,否则检查通过。 | |
| CheckSSHIP | 获取主备CM节点上的cm.conf文件,对比参数设置,如果参数配置一致则检查通过,否则检查不通过。 | |
| CheckSysSchemaTable | 如果系统schema下有用户自建的表则检查不通过,否则检查通过。 | |
| CheckTimeZoneLink | 在沙箱内执行“ll /etc/localtime”,如果链接指向的文件路径包含“/var/chroot”则检查不通过,否则检查通过。 |