本页介绍如何检查 Spanner 的健康状况 双区域仲裁,以及如何在服务期间手动更改仲裁 造成干扰。
如需详细了解双区域,请参阅 Spanner 双区域实例配置。
检查双区域仲裁状态
您可以通过以下方式检查双区域仲裁的状态。
- 在数据库概览页面上
- 使用系统数据分析信息中心
在数据库概览页面上
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击采用双区域配置的实例的名称。
点击数据库的名称。
在“Overview”(概览)下,查找 Quorum 行,该行显示了双区域 仲裁状态:
如果两个区域均达成仲裁,状态会显示为双区域。
如果执行了手动或 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
健康状况良好 区域。选择错误的区域进行故障切换会导致数据库 unavailability,这在区域恢复在线之前不可恢复。
可选标志:
--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
后续步骤
- 详细了解双区域实例配置。