管理存储数据库

扩展监控将 Vertica 数据库的监控数据存储在专用 MC 存储数据库中。

要使用扩展监控,必须首先设置存储数据库并将其配置为 Kafka 流式传输。然后,为任何或所有受监控的数据库开启扩展监控。

MC 自动为存储数据库配置架构(名为 dcschema),该架构与您监控的数据库上的 DC 表同步。

MC 准备

首先,确认 MC 并未与 Vertica 数据库安装在同一主机上。启用扩展监控后,MC 与生产数据库共享主机会影响性能。

同时,还必须增加为 MC 应用程序服务器分配的内存,如下一节所述。根据以下条件优化内存分配选项:

  • 数据库的需求。

  • 计划在 MC 图表中同时查看的监控数据量。

例如,MC 需要更多内存才能在图表中显示一周数据。

修改内存分配

要修改内存分配,请执行以下操作:

  1. 在管理控制台中,选择“MC 设置 (MC Settings)”页面上的配置 (Configuration) 选项卡。

  2. 修改应用程序服务器 JVM 设置 (Application Server JVM Settings) 下的以下字段,以增加为 JVM 分配的内存:

    • 初始堆大小 (Initial Heap Size): 对于扩展监控,建议的最小值为 2 GB。(默认值为 1 GB。)

    • 最大堆大小 (Maximum Heap Size): 对于扩展监控,建议的最小值为 4 GB。(默认值为 2 GB。)

  3. 单击页面右上角的应用 (Apply)。将提示重新启动 MC。

  4. 单击确定 (OK),重新启动 MC 并保存您的更改。

存储数据库要求

要为扩展监控设置存储,系统必须满足以下先决条件:

  • 可用主机或可用数据库的 Vertica 版本不低于计划监控的数据库版本。

  • 已为扩展监控配置 MC(请参阅准备 MC 以使用扩展监控。)

  • 具备对已部署的 Kafka 服务器的访问权限(有关安装 Kafka 的详细信息,请参阅 Apache Kafka 网站。)

设置存储数据库

要为扩展监控配置存储数据库,请在“MC 设置 (MC Settings)”页面上,选择“MC 存储数据库设置 (MC Storage DB Setup)”选项卡。分别修改以下三个区域的设置:

1) Kafka 代理 (Kafka Broker) >

输入部署的一个或多个 Kafka 服务器的主机名或 IP 地址和端口。

2) MC 外部存储数据库 (MC external storage database)

指定存储数据库。您可以创建新的数据库,也可以使用现有数据库。

  • 创建新的数据库 (Create a new database): 要使用 Vertica 的社区版许可证在可用主机上创建新的单节点群集,请选择此选项。这样可避免影响您正常使用 Vertica 许可证。

  • 使用 MC 已知的现有数据库 (Use an existing database known to MC): 要指定已导入 MC 的数据库,请选择此选项。如果数据库中存在架构 "dcschema",则会出现对话框。根据系统需求,执行以下操作之一:

    • 要保留现有架构的数据,请单击附加 (Append)。例如,如果已将此数据库用于扩展监控存储并重新导入,则可以使用此选项来保留其历史数据供继续使用。
    • 要从数据库中清除现有架构并创建为扩展监控存储配置的全新版本 dcschema,请单击移除 (Remove)

在出现 数据库名称 (Database name) 提示时:

  1. 从下拉列表中选择要使用的数据库。

  2. 要使用该数据库进行扩展监控,请单击准备 MC 存储数据库 (Prepare MC Storage database)

高级流式传输选项 (Advanced Streaming Options):

要更改“调度程序时间范围 (Scheduler Frame Duration)”的值,请单击高级流式传输选项 (Advanced Streaming Options)。管理控制台显示流式传输选项 (Streaming Options) 窗口,您可以在其中修改管理控制台为扩展监控使用的“调度程序时间范围 (Scheduler Frame Duration)”默认值。

调度程序时间范围 (Scheduler Frame Duration) 是 Kafka 调度程序为每个单独的时间范围处理和运行 COPY 语句设置的时间量,时间结束后 KafkaSource 将终止 COPY 语句。Vertica 必须具有充足的时间,保证在期限内完成 COPY 任务。

如果时间范围过短,您将会发现数据丢失,因为调度程序没有充足的时间处理所有数据。对于无法处理数据的微批处理,您可能会在管理控制台的“加载 (Load)”页面上看到错误或消息。

相反,如果时间范围过长,调度程序需要投入大量时间处理传入数据,处理完数据后,可能需要等待时间范围到期。在这种情况下,您可能会在处理数据时发现一定的延迟。此外,管理控制台中的图表可能不会实时显示数据,而且可能会表现出一定的延迟。

您可以使用以下等式估算每个 COPY 的平均可用时间:

每个 COPY 的时间=(时间范围并行度)/微批处理数*

此等式仅提供粗略估计。很多因素会影响每个 COPY 语句需要运行的时间量。

Vertica 要求每个 COPY 至少运行 100 毫秒。

3) 启用扩展监控 (enable extended monitoring)

单击选择数据库进行扩展监控 (Select database(s) for extended monitoring)

重新启动存储数据库

如果在启用流式传输的情况下停止存储数据库,则自动停止向存储数据库进行流式传输。重新启动存储数据库后,必须在“MC 存储数据库设置 (MC Storage DB Setup)”选项卡上重新启用流式传输。

如果在对数据库进行扩展监控的情况下禁用向 MC 存储数据库进行流式传输,Kafka 保留策略将确定可以将流式传输禁用状态保持多长时间而不会丢失数据。请参阅管理流式传输服务进行扩展监控

停止存储数据库

  1. 在“MC 设置 (MC Settings)”中选择“扩展监控 (Extended Monitoring)”选项卡。

  2. 将所有数据库的“扩展监控 (Extended Monitoring)”设置为关闭 (OFF)

  3. 在“MC 设置 (MC Settings)”中选择“MC 存储数据库设置 (MC Storage DB Setup)”选项卡。

  4. 单击“MC 外部存储数据库 (MC External Storage Database)”部分的禁用流式传输 (Disable Streaming),以停用存储数据库。

  5. 单击“MC 外部存储数据库 (MC External Storage Database)”部分的移除 (Remove),以从 MC 中移除 MC 存储数据库。

  6. 选择保留还是移除存储数据库已收集的数据:

    • 保留数据 (Keep Data): 不会移除现有数据。如果将此数据库重新用于扩展监控存储,可以选择将新收集的监控数据附加到现有数据。

    • **移除数据 (Remove Data):**MC 从数据库中删除其自定义的存储架构。

配置存储数据库内存使用

在存储数据库的“资源池 (Resource Pools)”选项卡上,可以选择增加 SYSQUERY 和 KAFKA_DEFAULT_POOL 的内存大小。有关在 MC 中设置资源池参数,请参阅在管理控制台 (Management Console) 中配置资源池

  • SYSQUERY: 为针对系统监控和编录表的查询的中间结果的临时存储而保留。默认设置为 1G。为获得 MC 的最佳性能,请设置为 2G 或更高。

  • KAFKA_DEFAULT_POOL: 为 Kafka 调度程序执行的所有查询而保留。默认设置为 30%,也是建议设置。默认情况下,当超出 30% 的内存大小时,查询会溢出到 GENERAL 池。

管理磁盘空间

存储数据库使用名为 dcschema 的自定义架构。您可以使用存储数据库“活动 (Activity)”选项卡上的“表利用率 (Table Utilization)”图表监控 MC 上的这些表。“表利用率 (Table Utilization)”图表列出了 dcschema 中的所有表及其详细信息,例如行计数和列属性。您可以按行计数排序,以确定特定表是否在存储数据库中占用更多的磁盘空间。请参阅监控表利用率和投影

如果 MC 存储数据库的磁盘空间有限,则应定期删除 dcschema 中的分区。MC 不会自动删除存储数据库中的分区。有关删除分区的详细信息,请参阅删除分区

表 dc_execution_engine_profiles 按天分区。由于此表包含的行数通常最多,因此最佳做法是提高删除表分区的频率。以下示例显示如何指定分区键 2016-08-22,以从 dc_execution_engine_profiles 中删除分区。

=> SELECT DROP_PARTITIONS
  ('dcschema.dc_execution_engine_profiles', 2016-08-2, 2016-08-22);

除 dc_execution_engine_profiles 以外,dcschema 中的所有其他表均按周分区。接下来的这个示例显示如何从表 dc_cpu_aggregate_by_minute 中删除分区,指定 2016 年的第 34 周。

=> SELECT DROP_PARTITION
  ('dcschema.dc_cpu_aggregate_by_minute', 201634, 201634);

管理客户端会话

默认情况下,Vertica 允许每个节点包含 50 个客户端会话和 5 个附加管理员会话。如果达到存储数据库限制,MC 将切换回默认监控,并且不会使用存储数据库中的扩展监控数据。

您可以选择在 MC 存储数据库的“设置 (Settings)”页面上配置能够在单个数据库群集节点上运行的最大客户端会话数:

  1. 在存储数据库仪表板上,单击设置 (Settings) 页面。

  2. 选择常规 (General) 选项卡。

  3. 最大客户端会话数 (Maximum client sessions) 字段中输入值。有效值为 0–1000。

有关在 MC 中管理客户端连接的更多详细信息,请参阅配置管理控制台

另请参阅