本页面介绍如何检查 Spanner 双区域仲裁的运行状况,以及如何在服务中断时手动更改仲裁。
如需详细了解双区域,请参阅 Spanner 双区域实例配置。
检查双区域仲裁状态
您可以通过以下方式检查双区域仲裁的状态。
- 在数据库概览页面上
- 使用系统数据分析信息中心
在数据库概览页面上
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击采用双区域配置的实例的名称。
点击数据库的名称。
在“概览”下,查找仲裁行,该行显示实例的双区域仲裁状态:
如果两个区域均达成仲裁,状态会显示为双区域。
如果已执行手动或由 Google 管理的故障切换,您将看到服务区域的名称(例如
asia-south1
)。
系统数据分析信息中心
创建双区域配置后,您可以在实例级系统数据分析信息中心查看双区域仲裁可用性指标。
如需了解详情,请参阅查看系统数据分析信息中心。
将双区域仲裁从双区域更改为单区域(故障切换)
如需在发生区域级中断或网络分区问题时手动进行故障切换,请执行以下操作:
Google Cloud 控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击采用双区域配置的实例的名称。
点击导航菜单中的系统数据分析。
找到双区域仲裁可用性指标。
如果双区域仲裁可用性指标显示某个区域发生中断,请点击 Google Cloud 控制台顶部的
激活 Cloud Shell。
Cloud Shell 随即会打开。
如需将双区域仲裁从双区域更改为单个区域,请在 gcloud CLI 标签页中输入以下命令:
gcloud spanner databases change-quorum
。如需了解详细说明,请参阅gcloud
标签页。
gcloud CLI
使用 gcloud spanner databases change-quorum
命令将双区域仲裁从双区域更改为单区域。
gcloud spanner databases change-quorum
DATABASE_ID --instance=INSTANCE_ID
--single-region --serving-location=SERVING_LOCATION
[--etag=ETAG]
请替换以下内容:
DATABASE_ID
:数据库的永久标识符。INSTANCE_ID
:实例的永久性标识符。SERVING_LOCATION
:您要进行故障切换的区域实例配置。例如,如果asia-south1
(孟买)运行状况不佳,而您想要故障切换到asia-south2
(德里),请输入asia-south2
。确保SERVING_LOCATION
是健康状况良好的区域。选择错误的区域进行故障切换会导致数据库不可用,这种情况在区域恢复在线之前不可恢复。
可选标志:
--etag=ETAG
:ETAG
参数可用于防止重放攻击。
如需检查仲裁更改操作的状态,请运行 gcloud spanner databases describe
命令。quorumInfo
字段提供有关操作的信息。
gcloud spanner databases describe DATABASE_ID
--instance=INSTANCE_ID
将双区域仲裁从单区域更改为双区域(故障恢复)
如需在中断的区域运行状况良好或解决网络分区问题后手动故障恢复,请执行以下操作:
Google Cloud 控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击采用双区域配置的实例的名称。
点击导航菜单中的系统数据分析。
找到双区域仲裁可用性指标。
在双区域仲裁可用性指标上,点击更改区域仲裁。
Cloud Shell 随即会打开。
如需将双区域仲裁从双区域更改为单个区域,请在 gcloud CLI 标签页中输入以下命令:
gcloud spanner databases change-quorum
。如需了解详细说明,请参阅gcloud
标签页。
gcloud CLI
使用 gcloud spanner databases change-quorum
命令将双区域仲裁从单区域更改为双区域。
gcloud spanner databases change-quorum
DATABASE_ID --instance=INSTANCE_ID
--dual-region
[--etag=ETAG]
请替换以下内容:
DATABASE_ID
:数据库的永久标识符。INSTANCE_ID
:实例的永久性标识符。
可选标志:
--etag=ETAG
:ETAG
参数可用于乐观并发控制。
如需检查仲裁更改操作的状态,请运行 gcloud spanner databases describe
命令。quorumInfo
字段提供有关操作的信息。
gcloud spanner databases describe DATABASE_ID
--instance=INSTANCE_ID
后续步骤
- 详细了解双区域实例配置。