旧式高可用性配置

本页面介绍了实现高可用性 (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(或任何适合您环境的值)
    For 3 分钟

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

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

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

创建故障切换副本组:

  1. 在 Google Cloud 控制台中,转到 Monitoring 页面。

    转至 Resources

  2. 在上方菜单栏中,选择 > 创建...
  3. 为您的组输入一个描述性名称。
  4. 保留 NameContains 的选中状态,并输入您的名称子字符串。
  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(或任何适合您环境的值)
    For 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

后续步骤