本页面介绍了如何创建、列出、修改和删除 Spanner 实例。
创建实例
您可以使用 Google Cloud 控制台、Google Cloud CLI 或客户端库来创建实例。您还可以通过添加可选的只读副本来创建采用自定义实例配置的实例。
控制台
前往 Google Cloud 控制台中的创建实例页面。
输入要在 Google Cloud 控制台中显示的实例名称。此实例名称在您的 Google Cloud 项目中必须是唯一的。
输入实例 ID 以永久标识您的实例。此实例 ID 在您的 Google Cloud 项目中也必须是唯一的。实例 ID 创建后便无法更改。
点击继续。
在配置实例部分的选择配置下,选择单区域、双区域或多区域。或者,如果要比较三种配置之间的规范,请点击比较区域配置。
从下拉列表中选择一个配置。
可选:如需向 Spanner 基本配置添加只读副本,请先使用 Google Cloud CLI 创建自定义实例配置。
点击继续。
在分配计算容量部分的选择单位下,点击以下选项之一:
- 处理单元,适用于小型实例。
- 节点(适用于大型实例)。一个节点是 1,000 个处理单元。
如需了解详情,请参阅计算容量、节点和处理单元。
在选择伸缩模式下,点击以下选项之一:
手动分配(如果要为固定计算资源和费用手动设置计算容量)。
- 数量表示此实例使用的处理单元或节点的数量。
自动扩缩(预览版),可让 Spanner 自动添加和移除计算容量。如需详细了解代管式代管式自动扩缩器,请参阅 Spanner 的代管式自动扩缩器。配置以下代管式自动扩缩器选项:
- 最小值表示要缩减到的最小限制,具体取决于您为计算容量选择的测量单位。如需了解详情,请参阅确定最低限制。
- 最大值表示要扩容到的最大限制,具体取决于您为计算容量选择的测量单位。如需了解详情,请参阅确定上限。
- 高优先级 CPU 利用率目标表示要使用的高优先级 CPU 的目标百分比。如需了解详情,请参阅确定 CPU 利用率目标。
- 存储空间利用率目标表示要使用的存储空间的目标百分比。如需了解详情,请参阅确定存储空间利用率目标。
点击创建以创建实例。
gcloud
使用 gcloud spanner instances create
命令创建实例。将计算容量指定为实例上所需节点或处理单元的数量。
gcloud spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --nodes=NODE-COUNT
或
gcloud spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --processing-units=PROCESSING-UNIT-COUNT
请替换以下内容:
- INSTANCE-ID:您的 Google Cloud 项目中唯一的永久性标识符。实例 ID 创建后便无法更改。
- INSTANCE-CONFIG:实例配置的永久性标识符,用于定义实例的地理位置并影响数据的复制方式。对于自定义实例配置,则以
custom-
开头。如需了解详情,请参阅实例配置。 - INSTANCE-DESCRIPTION:要在 Google Cloud 控制台中显示的实例名称。此实例名称在您的 Google Cloud 项目中必须是唯一的。
NODE-COUNT:实例的计算容量,以节点数表示。每个节点等于 1000 个处理单元。
PROCESSING-UNIT-COUNT:实例的计算容量,以处理单元数表示。您可以输入最多 1000 的 100 倍数(100、200、300 等),也可以使用 1000 的倍数输入更大的数量(1000、2000、3000 等)。注意:如果您要创建打算稍后使用代管式自动扩缩器启用的实例,请勿使用此参数。
添加代管式自动扩缩(预览版)
您还可以通过 gcloud beta spanner instances create
命令将新实例配置为使用代管式自动扩缩。如需了解详情,请参阅 Spanner 的代管式自动扩缩器。
使用以下命令创建具有代管式自动扩缩器的实例。
gcloud beta spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --autoscaling-min-processing-units=MINIMUM_PROCESSING_UNITS \ --autoscaling-max-processing-units=MAXIMUM_PROCESSING_UNITS \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
或
gcloud beta spanner instances create INSTANCE-ID \ --config=INSTANCE-CONFIG \ --description=INSTANCE-DESCRIPTION \ --autoscaling-min-nodes=MINIMUM_NODES \ --autoscaling-max-nodes=MAXIMUM_NODES \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
请替换以下内容:
- INSTANCE-ID:您的 Google Cloud 项目中唯一的永久性标识符。实例 ID 创建后便无法更改。
- INSTANCE-CONFIG:实例配置的永久性标识符,用于定义实例的地理位置并影响数据的复制方式。对于自定义实例配置,则以
custom-
开头。如需了解详情,请参阅实例配置。 - INSTANCE-DESCRIPTION:要在 Google Cloud 控制台中显示的实例名称。此实例名称在您的 Google Cloud 项目中必须是唯一的。
- MINIMUM_PROCESSING_UNITS、MINIMUM_NODES:伸缩时的处理单元数或节点数下限。如需了解详情,请参阅确定最低限制。
- MAXIMUM_PROCESSING_UNITS、MAXIMUM_NODES:纵向扩容时的处理单元或节点数上限。如需了解详情,请参阅确定上限。
- CPU_PERCENTAGE:要使用的高优先级 CPU 的目标百分比(从 10% 到 90%)。如果您要针对费用进行优化,请使用较高的百分比。如需了解详情,请参阅确定 CPU 利用率目标。
- STORAGE_PERCENTAGE:要使用的存储空间的目标百分比(从 10% 到 99%)。如需了解详情,请参阅确定存储空间利用率目标。
使用自定义配置的示例
如需在基本区域实例配置 us-central1
中创建实例 test-instance
,请运行以下命令:
gcloud spanner instances create test-instance --config=regional-us-central1 \
--description="Test Instance" --nodes=1
如需在自定义多区域实例配置 custom-eur6
中创建实例 custom-eur6-instance
,请先创建自定义实例配置。
然后运行以下命令:
gcloud spanner instances create custom-eur6-instance --config=custom-eur6 \
--description="Instance with custom read-only" --nodes=1
运行上述任一命令后,您应该会看到类似于以下示例的消息:
Creating instance...done.
C++
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
C#
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
使用 Go 创建具有代管式自动扩缩功能的实例(预览版)
Java
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
使用 Java 创建具有代管式自动扩缩功能的实例(预览版)
Node.js
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Python
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
如需了解如何安装和使用 Spanner 客户端库,请参阅 Spanner 客户端库。
如需向 Spanner 进行身份验证,请设置应用默认凭据。如需了解详情,请参阅为本地开发环境设置身份验证。
列出实例
您可以显示 Spanner 实例的列表。
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
Google Cloud 控制台会显示您的 Spanner 实例列表,以及每个实例的 ID、显示名称、配置和计算容量(以处理单元和节点为单位)。
gcloud
使用 gcloud spanner instances list
命令:
gcloud spanner instances list
gcloud CLI 会输出 Spanner 实例的列表,以及每个实例的 ID、显示名称、配置和计算容量。
修改实例
以下部分介绍了如何更改实例的显示名和计算容量。您无法更改实例 ID 或实例配置。
更改显示名称
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击您要重命名的实例的名称。
点击修改实例。
输入新的实例名称。此名称在 Google Cloud 项目中必须是唯一的。
点击保存。
gcloud
使用 gcloud spanner instances update
命令:
gcloud spanner instances update INSTANCE_ID --description=INSTANCE_NAME
请替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- INSTANCE_NAME:要在 Google Cloud 控制台中显示的实例名称。此实例名称在您的 Google Cloud 项目中必须是唯一的。
更改计算容量
您必须预配足够的计算容量,使 CPU 利用率和存储空间利用率低于建议的最大值。如需了解详情,请参阅 Spanner 的配额和限制。
在以下几种情况下,您无法减少现有实例的计算容量:
- 如果移除计算容量,您的实例每 1000 个处理单元(1 个节点)需要存储超过 4 TB 的数据。
- 根据您的历史使用模式,Spanner 已为您实例数据创建了大量的分片,在极少数情况下,Spanner 在移除计算容量后将无法管理这些分片。
在后一种情况下,您可以尝试逐渐减少计算容量,直到找到 Spanner 管理所有实例分片所需的最小容量。如果实例因使用模式变化而不再需要如此多的分片,Spanner 最终可能会将一些分片合并在一起,以便您在一两周后尝试进一步减少实例的计算容量。
移除计算容量时,请在 Cloud Monitoring 中监控 CPU 利用率和请求延迟时间,以确保单区域实例的 CPU 利用率保持在 65% 以下,而在多区域实例中,每个区域的 CPU 利用率保持在 45% 以下。在移除计算容量时,请求延迟时间可能会暂时增加。
如果要增加实例的计算容量,您的 Google Cloud 项目必须具有足够的配额才能添加计算容量。完成增加请求所需的时间取决于请求的大小。在大多数情况下,请求会在几分钟内完成。在极少数情况下,纵向扩容最多可能需要一个小时才能完成。
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击要更改的实例名称。
点击修改实例。
如需更改计算容量,请选择测量单位(处理单元或节点),然后输入数量。使用处理单元时,最多可输入 1000 的倍数 100(100、200、300 等),或输入 1000 的倍数(1000、2000、3000 等)的更大数量。每个节点等于 1000 个处理单元。
点击保存。
如果系统对话框提示此位置没有足够的配额来添加计算容量,请按照说明请求更高配额。
gcloud
使用 gcloud spanner instances update
命令。使用此命令时,请将计算容量指定为节点或处理单元数。
gcloud spanner instances update INSTANCE_ID --nodes=NODE_COUNT [--async]
或
gcloud spanner instances update INSTANCE_ID --processing-units=PROCESSING_UNIT_COUNT [--async]
请替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- NODE_COUNT:实例的计算容量,以节点数表示。每个节点等于 1000 个处理单元。
- PROCESSING_UNIT_COUNT:实例的计算容量,以处理单元数表示。您可以输入最多 1000 的 100 倍数(100、200、300 等),也可以使用 1000 的倍数输入更大的数量(1000、2000、3000 等)。
可选标志:
--async
:如果您希望立即返回请求,而不等待正在进行的操作完成,请使用此标志。您可以通过运行gcloud spanner operations describe
来检查请求的状态。
在实例上启用或停用代管式自动扩缩器
在现有实例上添加或更改代管式自动扩缩功能时,存在以下限制:
- 您无法在正在移动的实例上启用代管式自动扩缩器。
在启用了代管式自动扩缩器的情况下,您无法移动实例。
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击要启用代管式自动扩缩器的实例的名称。
点击修改实例。
在配置计算容量下,点击自动扩缩。
对于下限,请选择缩减时要使用的下限。如需了解详情,请参阅确定最低限制。
对于上限,选择纵向扩容时要使用的上限。如需了解详情,请参阅确定上限。
对于高优先级 CPU 利用率目标,请选择要使用的高优先级 CPU 的百分比。如需了解详情,请参阅确定 CPU 利用率目标。
对于存储空间利用率目标,选择要使用的存储空间百分比。如需了解详情,请参阅确定存储空间利用率目标。
点击保存。
gcloud
使用 gcloud beta spanner instances update
命令将代管式自动扩缩器添加到实例。如需了解详情和限制,请参阅 Google Cloud CLI
标志和限制。
您可以使用以下命令添加托管式自动扩缩器:
gcloud beta spanner instances update INSTANCE_ID \ --autoscaling-min-processing-units=MINIMUM_PROCESSING_UNITS \ --autoscaling-max-processing-units=MAXIMUM_PROCESSING_UNITS \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
或
gcloud beta spanner instances update INSTANCE_ID \ --autoscaling-min-processing-units=MINIMUM_NODES \ --autoscaling-max-processing-units=MAXIMUM_NODES \ --autoscaling-high-priority-cpu-target=CPU_PERCENTAGE \ --autoscaling-storage-target=STORAGE_PERCENTAGE
请替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- MINIMUM_PROCESSING_UNITS、MINIMUM_NODES:纵向缩容时使用的处理单元数或节点数下限。如需了解详情,请参阅确定最低限制。
- MAXIMUM_PROCESSING_UNITS、MAXIMUM_NODES:纵向扩容时使用的处理单元或节点数上限。如需了解详情,请参阅确定上限。
- CPU_PERCENTAGE:要使用的高优先级 CPU 的目标百分比(从 10% 到 90%)。如果您要针对费用进行优化,并且不要求所有请求都具备低延迟,请使用较高的百分比。如需了解详情,请参阅确定 CPU 利用率目标。
- STORAGE_PERCENTAGE:要使用的存储空间的目标百分比(从 10% 到 99%)。如需了解详情,请参阅确定存储空间利用率目标。
将代管式自动扩缩器添加到实例后,您还可以修改代管式自动扩缩器设置。例如,如果要将处理单元数上限增加到 10000,请运行以下命令:
gcloud beta spanner instances update test-instance \
--autoscaling-max-processing-units=10000
将实例从使用代管式自动伸缩器更改为手动伸缩
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击要停用代管式自动扩缩器的实例的名称。
在选择伸缩模式下,点击手动分配。
点击保存。
gcloud
使用 gcloud beta spanner instances update
命令更新实例。
使用以下命令将实例从使用代管式自动伸缩器更改为手动伸缩:
gcloud beta spanner instances update INSTANCE_ID \ --processing-units=PROCESSING_UNIT_COUNT
或
gcloud beta spanner instances update INSTANCE_ID \ --nodes=NODE_COUNT
请替换以下内容:
- INSTANCE_ID:实例的永久性标识符。
- NODE_COUNT:实例的计算容量,以节点数表示。每个节点等于 1000 个处理单元。
- PROCESSING_UNIT_COUNT:实例的计算容量,以处理单元数表示。您可以输入最多 1000 的 100 倍数(100、200、300 等),也可以使用 1000 的倍数输入更大的数量(1000、2000、3000 等)。
为实例加标签
标签可帮助您整理资源。
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
选中实例对应的复选框。 页面右侧将显示信息面板。
点击信息面板中的标签标签页。然后,您可以为 Spanner 实例添加、删除或更新标签。
移动实例
如需了解如何将实例从任何实例配置迁移到任何其他实例配置(包括在单区域配置和多区域配置之间迁移),请参阅移动实例。
删除一个实例
您可以使用 Google Cloud 控制台或 Google Cloud CLI 删除实例。
如果要删除具有一个或多个启用了删除保护的数据库的实例,您必须先对该实例中的所有数据库停用删除保护,然后才能删除该实例。
控制台
前往 Google Cloud 控制台中的 Spanner 实例页面。
点击要删除的实例名称。
点击删除实例。
按照说明进行操作,确认您要删除实例。
点击删除。
gcloud
使用 gcloud spanner instances delete
命令,并将 INSTANCE-ID 替换为实例 ID:
gcloud spanner instances delete INSTANCE-ID
停止或重启实例
Spanner 是一项全代管式数据库服务,可监督自己的底层任务和资源,包括在必要时监控和重启进程,且无需停机。由于不需要手动停止或重启给定实例,因此 Spanner 不提供执行此操作的方法。
后续步骤
- 了解如何使用数据操纵语言 (DML) 或 gcloud CLI 插入、更新和删除数据。
- 为实例及其数据库授予 Identity and Access Management 角色。
- 了解如何设计 Spanner 架构。