旧式高可用性配置

本页面介绍了实现高可用性 (HA) 的 MySQL 实例的旧版配置。

在旧版高可用性配置中,Cloud SQL for MySQL 实例使用故障切换副本为实例添加高可用性。 Google Cloud 控制台不提供此功能。建议的配置不使用故障切换副本。当前的高可用性配置使用 Google 的区域级永久性磁盘,这些磁盘会在一个区域的两个可用区之间,在块级同步复制数据。

如需详细了解当前高可用性配置,请参阅高可用性配置概览。

将实例从旧版高可用性更新为当前高可用性

如需将实例从旧版高可用性更新为当前的高可用性配置,请执行以下操作:

  1. 将实例更新为当前的高可用性配置。

    1. 删除您要更新的 MySQL 实例的故障切换副本。如需了解详情,请参阅为实例停用高可用性。
    2. 配置主实例以使用当前的高可用性版本。如需了解详情,请参阅对现有实例进行高可用性配置。

    另一个选项是使用 Database Migration Service 迁移到使用当前高可用性配置的实例。

  2. 创建读取副本实例,以分流您不想在主实例上执行的所有读取工作负载。

启动故障切换

测试故障切换是一项可选操作,但建议您执行此项测试,这样便于了解应用在发生故障切换时的响应情况。

如需详细了解故障切换,请参阅故障切换概览。

gcloud

启动故障切换:

gcloud sql instances failover PRIMARY_INSTANCE_NAME

curl

  1. 描述相应主实例以获取 settingsVersion 字段的值。
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         -X GET \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
  2. 启动故障转移:
    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data '{"failoverContext":{"settingsVersion":"SETTINGS_VERSION"}}' \
         -X POST \
         https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/failover

实例即会执行故障切换,且暂时无法提供数据。

旧版配置:创建复制延迟提醒

故障切换操作所需的时间取决于故障切换启动时复制延迟的时长。借助Google Cloud 控制台中的 Cloud Monitoring,您可以在复制延迟时间超过阈值时收到提醒。

如需详细了解复制延迟,请在 MySQL 文档的 SHOW SLAVE STATUS 语法页面中搜索“seconds_behind_master”。

如需详细了解 Cloud Monitoring,请参阅 Cloud Monitoring 文档。

旧版配置:为特定故障切换副本设置提醒

  1. 在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择提醒。
  2. 点击创建提醒政策。
  3. 为提醒输入一个描述性名称。
  4. 选择 Metric Threshold,然后点击 Next 以打开“Target”标签。
  5. 在 Resource Type 中,选择 Cloud SQL。
  6. 在 Applies To 中选择 Single,然后选择您的故障切换副本。
  7. 点击 Next 以打开“Configuration”标签。
  8. 输入以下值:

    字段 值
    If Metric 落后于主实例的秒数
    条件 上方
    阈值 120(或任何适合您环境的值)
    持续时间 3 分钟

  9. 选择通知方法,然后点击保存条件。

旧版配置:为故障切换副本组设置提醒

如果您打算在同一项目中创建多个故障切换副本,那么为整个组设置提醒更为方便,而无需分别为每个故障切换副本设置提醒。如需创建一个受监控的组,请在故障切换副本的名称中添加一个后缀(如“-failover”)。切勿对任何其他类型的 Cloud SQL 实例使用此后缀。

创建故障切换副本组:

  1. 在 Google Cloud 控制台中,前往 Monitoring 页面。

    转至 Resources

  2. 在上方菜单栏中,选择组 > 创建...。
  3. 为您的组输入一个描述性名称。
  4. 保留 Name 和 Contains 的选中状态,并输入您的名称子字符串。
  5. 点击 Save Group。此时会打开新组对应的摘要页面。
  6. 确认预期的实例包含在此组中。

为故障切换副本组创建提醒:

  1. 在 Google Cloud 控制台的导航面板中,选择 Monitoring,然后选择提醒。
  2. 点击创建提醒政策。
  3. 为您的组提醒输入一个描述性名称。
  4. 选择 Metric Threshold,然后点击 Next 以打开“Target”标签。
  5. 在 Resource Type 中,选择 Cloud SQL。
  6. 在 Applies To 中选择 Group,然后选择您的故障切换组。
  7. 保留 Any Member Violates 的选中状态,然后点击 Next 以打开“Configuration”标签。
  8. 输入以下值:

    字段 值
    If Metric 落后于主实例的秒数
    条件 上方
    阈值 120(或任何适合您环境的值)
    持续时间 3 分钟

  9. 选择所需的 Notification 方法,然后点击 Save Condition。

旧版配置:为实例停用高可用性

您需要删除故障切换副本实例才能对主实例移除高可用性。

执行此过程之前,请确保主实例当前没有运行操作。

如需停用高可用性,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 选择与要停用高可用性的实例关联的故障切换实例。
  3. 在实例详情页面上,点击删除。
  4. 在删除副本窗口中,重新输入故障切换实例的名称。
  5. 点击删除。原始实例的配置将会更改为可用区。

gcloud

如需了解参考信息,请参阅 gcloud sql instances delete。
gcloud sql instances delete FAILOVER_REPLICA_NAME

curl

以下请求使用 instances:delete 方法删除实例。
gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json'\
      -X DELETE\
https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME

后续步骤