向数据库分片组中添加路由器 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

向数据库分片组中添加路由器

您可以向数据库分片组中添加路由器。

先决条件

添加路由器具有以下先决条件:

  • 您必须拥有一个数据库分片组。

  • 用户必须具有 rds_aurora_limitless_cluster_admin 权限。rds_superuser 拥有此权限;因此主用户也拥有该权限。rds_superuser 可以将该权限授予其他用户:

    /* Logged in as the master user or a user with rds_superuser privileges */ CREATE USER username; GRANT rds_aurora_limitless_cluster_admin to username;
    注意

    如果您在创建数据库分片组后更改了 Amazon Web Services 账户 的默认 CA 证书,新路由器将使用与现有路由器的 CA 证书不同的新 CA 证书。根据信任存储的不同,某些连接可能会失败。

  • 要启用系统启动的路由器添加功能,请在与数据库集群相关联的自定义数据库集群参数组中设置以下数据库集群参数:

    参数

    rds_aurora.limitless_enable_auto_scale

    on

    rds_aurora.limitless_auto_scale_options

    add_routeradd_router,split_shard

    有关更多信息,请参阅Amazon Aurora 数据库集群的数据库集群参数组

添加路由器

要添加路由器,请使用 rds_aurora.limitless_add_router 函数。该函数启动异步运行的路由器添加任务。

SELECT rds_aurora.limitless_add_router();

在成功提交任务后,等待返回的任务 ID,例如:

job_id --------------- 1691300000000 (1 row)

追踪路由器添加

您可以使用任务 ID 来跟踪路由器添加任务。要描述特定任务并获取有关它的更多详细信息,请运行以下查询:

SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(job_id);

例如:

SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(1691300000000); job_id | action | job_details | status | submission_time | message ---------------+------------+--------------------------+---------+------------------------+------------------------------------------- 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded. + | | | | | New router instance with ID 7 was created. (1 row)

当您将不存在的任务作为输入传递时,查询会返回错误。

SELECT * from rds_aurora.limitless_list_router_scale_jobs(1691300000001); ERROR: no job found with the job ID provided

您可以使用不带任务 ID 的相同查询来跟踪所有路由器添加任务的状态,例如:

SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(); job_id | action | job_details | status | submission_time | message ---------------+------------+--------------------------+-------------+------------------------+------------------------------------------- 1691200000000 | ADD_ROUTER | Add 1 new Router by User | IN_PROGRESS | 2023-08-05 01:46:40+00 | 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded. + | | | | | New router instance with ID 7 was created. 1691400000000 | ADD_ROUTER | Add 1 new Router by User | FAILED | 2023-08-07 09:20:00+00 | Error occurred for the add router job 1691400000000. | | | | | Retry the command. If the issue persists, contact AWS Support. 1691500000000 | ADD_ROUTER | Add 1 new Router by User | CANCELED | 2023-08-07 09:20:00+00 | Scaling job was cancelled. (4 rows)

任务状态可以是下列项之一:

  • IN_PROGRESS – 路由器添加任务已提交,正在进行中。同一时间只能有一个任务在进行中。

  • CANCELLATION_IN_PROGRESS – 用户正在取消路由器添加任务。

  • CANCELED – 用户或系统已成功取消路由器添加任务。

  • SUCCESS – 路由器添加任务已成功完成。该 message 字段包含新路由器的实例 ID。

  • FAILED – 路由器添加任务失败。该 message 字段包含失败的详细信息以及可对失败任务采取的任何后续操作。

注意

没有 PENDING 状态,因为不需要最终确定路由器添加任务。它们不会造成停机。

取消路由器添加

您可以取消处于 IN_PROGRESS 状态的路由器添加任务。您需要任务 ID 才能将其取消。

SELECT * from rds_aurora.limitless_cancel_router_scale_jobs(job_id);

除非出现错误,否则不会返回任何输出。您可以使用任务跟踪查询来跟踪取消情况。