推荐的监控和维护任务

    下面小节中的表格对Greenplum系统管理员可以定期执行来确保系统所有组件操作最优的活动给出了建议。监控活动帮助用户尽早检测和诊断问题。维护活动帮助用户保持系统最新并且避免性能退化(例如由于膨胀的系统表或者逐渐缩小的空闲磁盘空间导致的性能退化)。

    并非需要在每个集群中都实现所有这些建议,请使用推荐的频繁和重要性作为指导来根据实际服务需求实现监控和维护。

    上级主题: 管理一个Greenplum系统

    数据库告警日志监控

    表 2. 数据库告警日志监控
    活动过程纠正措施
    从系统中检查FATAL和ERROR日志消息。

    推荐频率:每15分钟

    重要度: WARNING

    这项活动和接下来的一项是监控log_alert_history表中消息的两种方法。只需要设置其中一种即可。

    gpperfmon数据库中运行下列查询:
    1. SELECT * FROM log_alert_history
    2. WHERE logseverity in (‘FATAL’, ERROR’)
    3. AND logtime > (now() - interval 15 minutes’);
    向DBA发送一个告警让他(她)分析该告警。可能想要对该查询增加额外的过滤条件忽略掉兴趣度不高的特定消息。
    设置服务器配置参数来发送 SNMP 或者 email告警。

    推荐频率:N/A。告警由系统生成。

    重要度: WARNING

    这项活动和上一项是监控log_alert_history表中消息的两种方法。只需要设置其中一种即可。

    启用服务器配置参数以通过 SNMP 或者 email发送告警:
    • gp_email_smtp_server
    • gp_email_smtp_userid
    • gp_email_smtp_password or gp_snmp_monitor_address
    • gp_snmp_community
    • gp_snmp_use_inform_or_trap

    DBA基于告警的性质采取行动。

    目录监控

    表 4. 目录监控活动
    活动过程纠正措施
    运行目录一致性检查以确保集群中每台主机上的目录都是一致的并且处于好的状态。

    推荐频率:每周

    在每个数据库中运行Greenplum的gpcheckcat工具:
    1. gpcheckcat -O
    对任何检测到的问题运行修复脚本。
    运行一个长期的表目录检查。

    推荐频率:每月

    重要度: CRITICAL

    在一次停机时间,在系统中没有用户时,在每个数据库中运行Greenplum的gpcheckcat工具:
    对任何检测到的问题运行修复脚本。
    检查没有相应pg_attribute项的pg_class项。

    推荐频率:每月

    重要度: IMPORTANT

    在一次停机时间,在系统中没有用户时,在每个数据库中运行Greenplum的gpcheckcat工具:
    1. gpcheckcat -R pgclass
    对任何被发现的问题运行修复脚本。
    检查泄露的临时方案和丢失的方案定义。

    推荐频率:每月

    重要度: IMPORTANT

    在一次停机时间,在系统中没有用户时,在每个数据库中运行Greenplum的gpcheckcat工具:
    1. gpcheckcat -R namespace
    对任何被发现的问题运行修复脚本。
    检查随机分布表上的约束。

    推荐频率:每月

    重要度: IMPORTANT

    在一次停机时间,在系统中没有用户时,在每个数据库中运行Greenplum的gpcheckcat工具:
    1. gpcheckcat -R distribution_policy
    对任何被发现的问题运行修复脚本。
    检查非存在对象上的依赖。

    推荐频率:每月

    重要度: IMPORTANT

    在一次停机时间,在系统中没有用户时,在每个数据库中运行Greenplum的gpcheckcat工具:对任何被发现的问题运行修复脚本。

    数据库维护

    表 6. 数据库维护活动
    活动过程纠正措施
    在堆表中标记所占用空间可被重用的已删除行。

    推荐频率:每日

    重要度: CRITICAL

    清理用户表:
    1. VACUUM <table>;
    定期清理被更新的表以防止膨胀。
    更新表统计信息。

    推荐频率:在装载数据后且在执行查询前

    重要度: CRITICAL

    分析用户表。用户可以使用analyzedb管理工具:
    1. analyzedb -d <database> -a
    定期分析被更新的表,这样优化器能产生有效的查询执行计划。
    备份数据库数据。

    推荐频率:每日,或者根据备份计划的要求

    重要度: CRITICAL

    运行gpcrondump工具并行地创建Master和Segment数据库的备份。最佳做法是在数据库必须被恢复时已经有一个当前的备份准备好。
    清理、重新索引以及分析系统目录以维护一个高效的目录。

    推荐频率:每周,或者当数据库对象被频繁创建和删除时使用更高的频率

    1. VACUUM每个数据库中的系统表。
    2. 在每个数据库中运行REINDEX SYSTEM,或者使用带有-s选项的reindexdb命令行工具:
    3. ANALYZE每个系统表:
      优化器从系统表检索信息来创建查询计划。如果系统表和索引被允许随时间膨胀,系统表上的扫描会增加查询执行时间。在重新索引后运行ANALYZE很重要,因为REINDEX会让索引上没有统计信息。