Viewing Inspection Results
Context
DWS allows you to inspect a cluster before performing a change, such as scaling or upgrading the cluster. You can click Start inspection, and the system will check if the cluster's health status and metrics meet the requirements for the change. Once the inspection is passed, you can proceed with the change. If the inspection fails, you can view the inspection details page to see which items did not pass the inspection. From there, you can handle the inspection items based on the details provided. If you cannot handle them, contact technical support. For details about the inspection item check criteria, see Table 1.
Notes and Constraints
- This feature is supported only in cluster version 8.1.1 or later.
- The inspection plug-in 8.3.1.100 or later has been installed in the cluster.
- The inspection result is valid for 24 hours, during which you can make the change operation. Once the 24-hour validity period expires, you will need to perform the inspection again.
- If a cluster was not inspected within 24 hours before a change such as scale-in, scale-out, or upgrade, inspect it and ensure that the inspection is passed.
Viewing Inspection Details
- Log in to the DWS console.
- In the navigation pane on the left, choose Clusters > Cluster List. In the cluster list, click the name of the target cluster.
- On the Cluster Information page, click the Inspection Management tab.
- Click
next to the name of a task to check the inspection status, execution progress, inspection result, and pass rate. For more details about these inspection items, click View Details in the task row. After creating an inspection task on the configuration change page, you can keep track of its progress and view details. You can even stop the inspection from that same page. Figure 1 Viewing inspection details
Stopping an Inspection Task
- Log in to the DWS console.
- In the navigation pane on the left, choose Clusters > Cluster List. In the cluster list, click the name of the target cluster.
- On the Cluster Information page, click the Inspection Management tab.
- Locate the row that contains the inspection task and click Stop in the Operation column to stop the inspection task.
Inspection Criteria
| Change Operation | Item | Check Criteria |
|---|---|---|
| Scaling operations and typical modifications | CheckTimeZone | The inspection passes if all nodes in the cluster use the same time zone, and fails if they do not. |
| CheckHDFSConfig | Check whether the HDFS foreign tables in the cluster can be queried. If HDFS foreign tables fail to be queried, the check fails. Otherwise, the check passes. | |
| CheckExpandVersionLimit | Check the cluster version. If the version is earlier than 8.1.3, the check fails. | |
| CheckWalLevel | Check the wal_level parameter of the logical cluster in the specified version. If the value is hot_standby, the check item fails. You are advised to upgrade the cluster before scale-out. | |
| CheckCrontab | If the crontab configuration is complete, the check is successful. Otherwise, the check fails. | |
| CheckRecursive | Check whether WITH RECURSIVE statements exist in Top SQL statements in the last week. If no, the check item passes. Otherwise, a warning is reported. | |
| CheckDataNodeID | Check whether there are DNs with different types of IDs in a large cluster, such as 6xxx and 4xxxx. If yes, the check fails. Contact technical support. | |
| CheckExchangePartition | Check whether EXCHANGE PARTITION statements are executed within one week by querying dbms_om.PGXC_WLM_SESSION_INFO. If yes, the check item fails and the involved tables need to be redistributed offline. | |
| CheckPCKTable | Check whether there are pck tables in all service databases. If yes, rectify the issue according to the suggestions. | |
| CheckExpandGUCSetting | Check the user-level and cluster-level parameter statement_timeout. If the parameter is set to a value greater than 12 hours as well as temp_file_limit and sql_use_spacelimit are both set to -1, the check is passed. Otherwise, a warning is reported. | |
| CheckModuleImport | Check whether modules can be imported to the O&M tool. If a module fails to be imported, the possible cause is that the dynamic link library file is missing. In this case, contact technical support for rectification. | |
| CheckFilePermission | Check permissions of the files in a specified directory. If the permissions do not meet requirements, the check fails. | |
| CheckTopologyConsistency | Check the consistency between the static and XML configuration files. If they are inconsistent, the check fails. Otherwise, the check passes. | |
| CheckInsertOverWrite | If there is a sequence in a specified version, a warning is reported. If there is a sequence and there are key CN logs that contain insert overwrite, the check fails. In this case, offline redistribution is required. | |
| CheckViewCount | Query the number of views in each service database. If the number of views exceeds 200,000, the check item fails. Otherwise, the check item passes. | |
| CheckHstoreAutoVacuumWorker | If the value of autovacuum_max_workers_hstore is greater than or equal to that of autovacuum_max_workers, the check fails. As a result, all autovacuum threads are allocated to column-store tables. | |
| CheckClusterRing |
| |
| CheckNodeGroup | If there is any group_name field containing installation, query, or optimal, the check fails. Otherwise, the check is successful. | |
| CheckSpaceUsage | When usage goes beyond the warning threshold (set at 70% by default), a warning is issued. If it goes beyond the NG threshold (set at 90% by default), the inspection fails. The inspection fails if the available space in the GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data directory is less than the threshold. | |
| CheckClusterState | It verifies the CM process, fenced UDF, and cluster status. If the CM process is missing, the inspection fails. A warning is issued if the fenced UDF status is down. The inspection passes for a normal cluster status, but fails otherwise. | |
| CheckEnvProfile | It checks the environment variables ($GAUSSHOME, $LD_LIBRARY_PATH, and $PATH) of a node. If these variables exist and are properly configured, the inspection passes. Otherwise, the inspection fails. | |
| CheckReadonlyMode | It checks the value of default_transaction_read_only on all nodes that contain CNs in the cluster. If the value is off, the inspection passes. Otherwise, the inspection fails. | |
| CheckCollector | It checks whether the information collection is successful. If it is, the inspection passes. Otherwise, the inspection fails. | |
| CheckTrust | If any node is not trusted, the inspection fails. Otherwise, the inspection passes. | |
| CheckBalanceState | It checks the Balanced attribute of the cluster. If it is Yes, the inspection passes. A warning is displayed if it is not. If the query fails, the inspection also fails. | |
| CheckUtilslib | It checks for the existence of the $GAUSSHOME/utilslib directory. If it exists, the inspection fails. If it does not exist, the inspection passes. | |
| CheckPgxcgroup | It checks the number of records in the pgxc_group table where in_redistribution is Y. If the number is 0, the inspection passes. If the number is greater than 0, the inspection fails. | |
| CheckLockState | It checks whether the cluster is locked. If the cluster is not locked, the inspection passes. If it is locked, the inspection fails. | |
| CheckDBConnection | It checks whether the database can be connected. If it can, the inspection passes. Otherwise, the inspection fails. | |
| CheckGUCConsistent | It checks whether the GUC parameters of CNs and DNs are consistent. If they are consistent, the inspection passes. Otherwise, the inspection fails. | |
| CheckTDDate | The inspection fails if the ORC table in the TD database exists and has columns of the date type. | |
| CheckNodeNums | For version 9.0.x, upgrade it to version 9.1.x before scale-out. For version 9.1.x, if nodenums is not set for V3 tables, the inspection fails and scale-out is not allowed. | |
| CheckPgxcRedistb | If any temporary table remains in the database after data redistribution, the inspection fails. | |
| CheckGUCSetting | If the GUC parameters in postgresql.conf are consistent with those in pg_settings, the inspection passes. Otherwise, the inspection fails. | |
| CheckProacl | The inspection fails if proacl in the pg_proc system table has usernames with only digits. Otherwise, it passes. | |
| CheckUltraWideTable | If a table with more than 996 columns exists, the inspection fails. Otherwise, the inspection passes. | |
| CheckDataRedisSchema | If a data_redis schema exists in the database and the owner name is not redisuser, the inspection fails. Otherwise, the inspection passes. | |
| CheckDiskSpaceLimited | If the disk space of the user is limited, the inspection fails. Otherwise, the inspection passes. | |
| CheckTableCollate | The inspection fails if the database has a PCK table or a column-store partitioned table with a collate field. Otherwise, it passes. | |
| CheckDefaultOrientation | It checks the GUC parameter. If both the database and default_orientation are set to row storage, the inspection passes. Otherwise, the inspection fails. | |
| CheckReplicationUuid | The inspection passes if there is no replicated table that uses the default UUID. Otherwise, it fails. | |
| CheckJsonb | Run the select attrelid::regclass from pg_attribute a join pg_type t on a.atttypid = t.oid and t.typname = 'jsonb' group by 1 SQL statement. If the jsonb type is used, the inspection fails. Otherwise, the inspection passes. | |
| CheckLengthOfIndex | Run the SELECT length(pg_get_indexdef(indexrelid)) FROM pg_index order by 1 desc limit 1 SQL statement. If the result is greater than 192 x 1024, the inspection fails. Otherwise, the inspection passes. | |
| CheckLengthOfTable | Run the 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; SQL statement. If the result is not empty, the inspection fails. Otherwise, the inspection passes. | |
| CheckUseWorkloadManager | Run the show use_workload_manager SQL statement. If the result is on, the inspection passes. Otherwise, the inspection fails. This inspection item is not included in version 8.1.3.320 and beyond. Meaning, it has been verified and passed in later versions. | |
| CheckNecessarySchema | It checks whether the necessary schema(public) exists. If schema(public) does not exist, the check fails. | |
| CheckCMParamConsistency | To pass this check, ensure that the parameter settings in the cm.conf file obtained from both the active and standby CM nodes are consistent. The check will pass if they are consistent and fail if they are not. | |
| CheckRoachFilePermissions | Check for excessive permissions on the Roach plug-in file in clusters running version 8.2.1 or later. If there are excessive permissions, modify the script in advance. Otherwise, the scale-out will fail. | |
| CheckSQLCompatibility | In MySQL compatibility mode, redistribution of temporary tables with indexes is slow. If the SHOW sql_compatibility value is set to mysql in the service database and the disable_including_all_mysql enumerated value is not present in the behavior_compat_options, this item will not pass the check. However, if the enumerated value is included, the item will pass the check. | |
| CheckCgroup | Checks whether Cgroup data is consistent on each node. If it is, the check passes. Otherwise, the check fails. | |
| CheckRoleLockState | Check whether there are locked users in a specified version. | |
| CheckTableSize | Check the value of relpages of tables in a specified version. If the value is greater than 1125899906842623, the check item fails. | |
| CheckGaussVer | Check whether the versions of binary files in the $GAUSSHOME/bin directory on each node are consistent. If they are inconsistent, the check fails. | |
| CheckBinaryUpgrade | Check whether the corresponding backup file exists in the /DWS/manager/upgrade_backup/directory. If the backup file exists, the check fails. Otherwise, the check is passed. | |
| CheckXFS | View the /etc/os-release file to obtain the version information. If EulerOS is used and the version is 4.19.87 or earlier, XFS bugs are involved and the check is not passed. Otherwise, the check is passed. | |
| CheckGTMConfigConsistency | It obtains the parameters in the configuration files of the active and standby GTMs. If the parameter settings are consistent, this item passes the check. | |
| CheckColversion | If there are column-store tables that are not marked as 1.0 and the current default column-store table is 2.0, this item fails the check. Otherwise, this item passes the check. | |
| CheckTopSqlSize | It checks the size of the TopSQL table. If the size exceeds 50 GB, the check fails. | |
| CheckDeltaTable | It checks the existence of the delta table. If the table exists, this item fails the check. | |
| CheckMaxDatanode | It checks the value of comm_max_datanode. If the value is not equal to the actual number of primary DataNodes, this item fails the check. | |
| CheckSSHIP | To pass this check, ensure that the parameter settings in the cm.conf file obtained from both the active and standby CM nodes are consistent. The check will pass if they are consistent and fail if they are not. | |
| CheckTimeZoneLink | Run the ll /etc/localtime command in the sandbox. If the file path to which the link points contains /var/chroot, the check is not passed. | |
| CheckSpecialFile | Checks whether files in the program directory ($GAUSSHOME and each instance directory) contain special characters and files of non-Ruby users. If no, this item passes the check. | |
| CheckTableUsage | Check whether V3, HStore, HStore_opt, cold and hot, or Turbo_store tables are used. If they are used, the check fails. Contact technical support for review before perform scale-out. | |
| CheckNextOid | Check OID rollback. | |
| CheckRSCompressTable | If a row-store compression table is used, the check fails. Otherwise, the check passes. | |
| CheckSysSchemaTable | If a user-created table exists in the system schema, the check fails. Otherwise, the check is successful. | |
| Pre-upgrade health check | CheckClusterParams | The cluster configuration parameters (IP address, port, and path parameters) specified in postgresql.conf or pgxc_node should match those in the static configuration file. Otherwise, the inspection fails. |
| CheckCNNum | It checks the number of CNs in the cluster. If the number is greater than 2 and less than 10, the inspection passes. Otherwise, the inspection fails. | |
| CheckDDL | Start a transaction to delete schemas and tables. If the transaction can be committed, the inspection passes. Otherwise, the inspection fails. | |
| CheckTimeZone | The inspection passes if all nodes in the cluster use the same time zone, and fails if they do not. | |
| CheckXidEpoch | It checks the XID consumption. If the value is greater than or equal to 2 to the power of 32, the inspection fails. | |
| CheckCnNumberSame | It checks whether the number of CNs obtained using the /opt/dws/xml/cluster.xml command is consistent with that obtained using the cm_ctl query -Cv command. If they are consistent, the check passes. Otherwise, the check fails. | |
| CheckGaussVer | The inspection passes if the binary files in the $GAUSSHOME/bin directory on each node have identical versions. | |
| CheckPsort | The inspection fails if the psort index exists. | |
| CheckCatchup | It checks whether the CatchupMain function can be found in the gaussdb process stack. If it cannot be found, the inspection passes. Otherwise, the inspection fails. | |
| CheckClusterState | It verifies the CM process, fenced UDF, and cluster status. If the CM process is missing, the inspection fails. A warning is issued if the fenced UDF status is down. The inspection passes for a normal cluster status, but fails otherwise. | |
| CheckMetaDataConsistency | If the data in the system table between CN and DN is consistent, the inspection passes. Otherwise, the inspection fails. | |
| CheckDependSystemObj | If self-created objects depend on system objects, the inspection fails. Otherwise, the inspection passes. | |
| CheckPgKeyWords | If names of tables, columns, functions, or data types are new reserved keywords, the inspection fails. Otherwise, the inspection passes. | |
| CheckReadonlyMode | It checks the value of default_transaction_read_only on all nodes that contain CNs in the cluster. If the value is off, the inspection passes. Otherwise, the inspection fails. | |
| CheckMetaData | If metadata in the system table is consistent, the inspection passes. Otherwise, the inspection fails. | |
| CheckGUCSetting | If the GUC parameters in postgresql.conf are consistent with those in pg_settings, the inspection passes. Otherwise, the inspection fails. | |
| CheckPgxcgroup | It checks the number of records in the pgxc_group table where in_redistribution is Y. If the number is 0, the inspection passes. If the number is greater than 0, the inspection fails. | |
| CheckCmserverStandby | If the value of cm_server in the cluster is standby, the inspection passes. Otherwise, a warning is displayed. | |
| CheckSpaceUsage | When usage goes beyond the warning threshold (set at 70% by default), a warning is issued. If it goes beyond the NG threshold (set at 90% by default), the inspection fails. The inspection fails if the available space in the GAUSSHOME/PGHOST/GPHOME/GAUSSLOG/tmp/data directory is less than the threshold. | |
| CheckEnvProfile | It checks the environment variables ($GAUSSHOME, $LD_LIBRARY_PATH, and $PATH) of a node. If these variables exist and are properly configured, the inspection passes. Otherwise, the inspection fails. | |
| CheckBalanceState | It checks the Balanced attribute of the cluster. If it is Yes, the inspection passes. A warning is displayed if it is not. If the query fails, the inspection also fails. | |
| CheckTDDate | The inspection fails if the ORC table in the TD database exists and has columns of the date type. | |
| CheckCatalog | If there is a custom database object in pg_catalog, the inspection fails. Otherwise, the inspection passes. | |
| CheckPgauthid | If the most significant bit of oid in pg_authid is 1, the inspection fails. Otherwise, the inspection passes. | |
| CheckSysdate | If the sysdate view is used in tables, views, and stored procedures, the inspection fails. Otherwise, the inspection passes. | |
| CheckFilesNumber | If the number of tmp files in the GAUSSHOME/PGHOST/GPHOME directory is greater than 10,000, the inspection fails. Otherwise, the inspection passes. | |
| CheckKeyFilesExist | If the upgrade_version, conf, control, and data files exist in key directories, the inspection passes. Otherwise, the inspection fails. | |
| CheckReturnType | If the return value is invalid, the inspection fails. Otherwise, the inspection passes. | |
| CheckTrust | If any node is not trusted, the check fails. Otherwise, the check passes. | |
| CheckEnumGUCValue | It checks whether some parameters in pg_postgres.conf contain quotation marks. If single quotation marks are missing, this item fails the check. | |
| CheckSpecialFile | Checks whether files in the program directory $GAUSSHOME contain special characters and files of non-Ruby users. If no, this item passes the check. | |
| CheckNecessarySchema | It checks the existence of the necessary schemas (public). | |
| CheckUserDefinedDataType | It connects to all databases. Run the 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; SQL statement. If the result is empty, the check is passed. | |
| CheckCMParamConsistency | To pass this check, ensure that the parameter settings in the cm.conf file obtained from both the active and standby CM nodes are consistent. The check will pass if they are consistent and fail if they are not. | |
| CheckLightProxy | It checks the enable_light_proxy parameter. If the value is off and behavior_compat_options does not contain the enumerated value enable_force_add_batch, the item fails the check. | |
| CheckSSHIP | To pass this check, ensure that the parameter settings in the cm.conf file obtained from both the active and standby CM nodes are consistent. The check will pass if they are consistent and fail if they are not. | |
| CheckSysSchemaTable | If a user-created table exists in the system schema, the check fails. Otherwise, the check is successful. | |
| CheckTimeZoneLink | Run the ll /etc/localtime command in the sandbox. If the file path to which the link points contains /var/chroot, the check is not passed. |