Timescale Cloud:性能、扩展性、企业级

自托管产品

MST

对于对停机时间容忍度极低的 Timescale Cloud 服务,Timescale Cloud 提供了高可用性 (HA) 副本。HA 副本显著降低了因系统故障导致停机和数据丢失的风险,并使服务能够在日常维护期间避免停机。

本页将向您展示如何为您的 Timescale Cloud 服务选择最佳高可用性选项。

HA 副本是您数据库的精确、最新副本,与您的主节点位于同一区域内的多个 AWS 可用区 (AZ) 中。如果原始主数据节点不可用,它们会自动接管操作。主节点将其预写日志 (WAL) 流式传输到副本,以最大程度地降低故障转移期间数据丢失的可能性。

HA 副本可以是同步的,也可以是异步的。

  • 同步:一旦副本确认前一次写入完成,主节点就会提交下一次写入。主节点和副本之间没有延迟。它们始终处于相同状态。如果您需要最高级别的数据完整性,这是首选。但是,这会影响主节点的摄取时间。
  • 异步:主节点在未确认前一次写入完成的情况下提交下一次写入。异步 HA 副本通常与主节点相比存在时间上和数据上的延迟。如果您需要最短的主节点摄取时间,这是首选。

Sync and async replication

HA 副本具有独立的唯一地址,您可以并行地使用这些地址为您的主数据节点提供只读请求。当您的主数据节点发生故障时,Timescale Cloud 会在 30 秒内自动故障转移到 HA 副本。在故障转移期间,只读地址不可用,同时 Timescale Cloud 会自动创建一个新的 HA 副本。创建此副本所需的时间取决于多种因素,包括您数据的大小。

将 Timescale Cloud 服务升级到新的主要或次要版本等操作可能需要服务重启。重启在维护窗口期间进行。为避免任何停机时间,每个数据节点都会依次更新。也就是说,当主数据节点更新时,一个副本会被提升为主节点。主节点更新并上线后,HA 副本也会进行相同的维护。

为了确保所有 Timescale Cloud 服务在最常见的故障场景和维护期间具有最小的停机时间和数据丢失,所有服务默认启用快速恢复

Timescale Cloud 中提供以下 HA 配置

  • 非生产环境:无副本,最适合开发环境。

  • 高可用性:一个异步副本,位于与您的主节点不同的 AWS 可用区。提供高可用性且具有成本效益。最适合生产应用程序。

  • 最高可用性:两个副本,位于与您的主节点不同的 AWS 可用区。可用的复制模式有

    • 高性能 - 两个异步副本。通过两个可用区提供最高级别的可用性,并能够查询 HA 系统。最适合绝对关键的应用程序。
    • 高数据完整性 - 一个同步副本和一个异步副本。同步副本始终与主节点相同。最适合不能容忍任何数据丢失的应用程序。

下表总结了这些 HA 配置之间的差异

高可用性
(1 个异步)
高性能
(2 个异步)
高数据完整性
(1 个同步 + 1 个异步)
写入流主节点将其 WAL 流式传输到异步副本,异步副本可能与主节点略有延迟,提供 99.9% 的正常运行时间 SLA。主节点将其写入流式传输到两个异步副本,提供 99.9% 以上的正常运行时间 SLA。主节点将其写入流式传输到同步和异步副本。异步副本永远不会超前于同步副本。
附加读取副本推荐。从 HA 副本读取可能会导致可用性和延迟问题。不需要。即使其中一个 HA 副本已宕机,您仍然可以从 HA 副本读取。仅当您的读取用例与写入用例显着不同时,才配置附加读取副本。强烈推荐。如果您在同步副本上运行繁重查询,它可能会落后于主节点。具体来说,如果副本确认事务所需时间过长,则下一个事务将被取消。
手动选择要读取的副本不适用。不可用。查询会在所有可用的 HA 副本之间进行负载均衡。不可用。查询会在所有可用的 HA 副本之间进行负载均衡。
同步复制此配置仅支持异步副本。此配置仅支持异步副本。支持。
故障转移流程
  • 如果主节点发生故障,副本将成为主节点,同时创建新节点,停机时间仅为几秒。
  • 如果副本发生故障,将创建新的异步副本,而不影响主节点。如果您从异步 HA 副本读取,则这些读取将失败,直到新副本可用。
  • 如果主节点发生故障,其中一个副本将成为主节点,同时创建新节点,而另一个副本仍可用于读取。
  • 如果副本发生故障,将在另一个可用区中创建新的异步副本,而不影响主节点。新创建的副本在追赶期间会落后于主节点和原始副本。
  • 如果主节点发生故障,同步副本将成为主节点,同时创建新节点,而异步副本仍可用于读取。
  • 如果异步副本发生故障,将创建新的异步副本。在创建新异步副本的同时,同步副本上的繁重读取可能会延迟主节点的摄取时间。数据完整性仍然很高,但主节点的摄取性能可能会下降。
  • 如果同步副本发生故障,异步副本将成为同步副本,并创建新的异步副本。在此期间,主节点可能会遇到一些摄取性能下降。
成本构成主节点 + 异步 (2 倍)主节点 + 2 个异步 (3 倍)主节点 + 1 个异步 + 1 个同步 (3 倍)
层级性能、扩展和企业版扩展和企业版扩展和企业版

最高 HA 策略适用于扩展和企业版定价计划。

为 Timescale Cloud 服务启用 HA

  1. Timescale 控制台中,选择要为其启用复制的服务。

  2. 点击操作,然后选择高可用性

  3. 选择您的复制策略,然后点击更改配置

    Timescale Cloud service replicas

  4. 更改高可用性配置中,点击更改配置

要更改您的 HA 副本策略,请点击更改配置,选择一个策略,然后点击更改配置。要下载 HA 副本的连接信息,可以点击副本活动配置旁边的链接,或者在该服务的概览选项卡中查找信息。

要测试故障转移机制,您可以触发一次切换。切换是一种安全操作,它会尝试进行故障转移,如果副本或主节点不处于可安全切换的状态,则会抛出错误。

  1. tsdbadmintsdbowner 组中的其他用户身份连接到您的主节点。

    注意

    您也可以连接到 HA 副本并使用此过程检查其节点。

  2. psql 提示符下,连接到 postgres 数据库

    \c postgres

    您应该看到 postgres=> 提示符。

  3. 检查您的节点当前是否处于恢复状态

    select pg_is_in_recovery();
  4. 检查哪个节点是您的当前主节点

    select * from pg_stat_replication;

    请注意 application_name。这是您的服务 ID,后跟节点。重要部分是 -an-0-an-1

  5. 安排切换

    CALL tscloud.cluster_switchover();

    默认情况下,切换在 30 秒内发生。您可以通过传递一个间隔来更改时间,如下所示

    CALL tscloud.cluster_switchover('15 seconds'::INTERVAL);
  6. 等待切换发生,然后检查哪个节点是您的主节点

    SELECT * FROM pg_stat_replication;

    您应该会看到连接已重置的通知,如下所示

    FATAL: terminating connection due to administrator command
    SSL connection has been closed unexpectedly
    The connection to the server was lost. Attempting reset: Succeeded.
  7. 检查 application_name。如果您的主节点之前是 -an-1,现在应该变为 -an-0。如果之前是 -an-0,现在应该变为 -an-1

关键词

此页面有问题?报告问题 或 在 GitHub 中编辑此页面