创建实例

本页面介绍如何创建 Cloud SQL for SQL Server 实例。

如需详细了解所有实例设置,请参阅实例设置

创建 Cloud SQL 实例后,您可以通过创建导入数据库来向该实例添加数据库。

创建实例

控制台

  1. 转到 Google Cloud Console 中的“Cloud SQL 实例”页面。

    转到“Cloud SQL 实例”页面

  2. 点击创建实例
  3. 选择 SQL Server,然后点击下一步
  4. 输入名称。

    请勿在实例名称中包含敏感信息或个人身份信息,因为此名称对外可见。
    无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

  5. 输入用户密码。
  6. 位置下,为实例选择地区和区域。

    将实例与访问实例的资源置于相同地区内。以后无法更改选择的地区。大多数情况下,您不需要指定区域。

  7. 配置选项下,更新所需的其他任何实例设置:

    设置 备注
    数据库版本
    数据库版本 SQL Server 2017 Standard(默认值)
    SQL Server 2017 Enterprise
    SQL Server 2017 Express
    SQL Server 2017 Web
    连接
    专用 IP 地址 为您的实例添加专用 IP 地址。需要进行额外配置,才能连接到实例。
    公共 IP 地址 为您的实例添加公共 IP 地址。需要进行额外配置,才能连接到实例。
    机器类型和存储空间
    核心数 实例的 vCPU 数。了解详情
    内存 实例的内存量(以 GB 为单位)。了解详情
    存储类型 表示您的实例使用 SSD 存储空间。 所有 SQL Server 实例都使用 SSD 存储空间。 了解详情
    存储空间容量 为实例预配的存储空间量。了解详情
    存储空间自动扩容 该设置决定了在可用空间不足时,Cloud SQL 是否自动为您的实例提供更多存储空间。了解详情
    自动备份和高可用性
    高可用性 如果您需要将实例配置为高可用性实例,则必须选择高可用性(地区级)选项。了解详情
    自动备份 您希望系统开始执行备份的时间范围。
    已获授权的网络
    数据库标志
    标志和参数 您可以使用数据库标志来控制实例的设置和参数。 了解详情

    此外,您还可以设置用于实例中数据库的排序规则类型的默认值。在默认排序规则下的下拉菜单中,您可以指定用于数据排序和相关操作的默认值。此值确定此实例的数据库的默认排序规则、大小写和重音敏感度,可在以后节省相关工作量。此排序规则默认设置在实例级是永久性的,但在数据库级却不是永久性的。您可以使用数据库管理工具更改此默认设置,但仅限于您正在创建或更新的特定数据库。创建实例后,您无法更改其排序规则默认设置(除非您重新创建实例)。如需了解 SQL Server 中的排序规则,请参阅排序规则和 Unicode 支持
    维护时间表
    维护期 该设置用于确定 Cloud SQL 可对您的实例执行中断性维护的时段(时长为一小时)。如果您没有设置此时段,则系统可能会随时执行中断性维护。了解详情
    维护时间 相对于同一项目内的其他实例,此实例的首选更新时间。了解详情

  8. 点击创建
  9. 实例完成初始化后,点击相应实例名称即可将其打开。

gcloud

如需了解如何安装和开始使用 gcloud 命令行工具,请参阅安装 Cloud SDK。如需了解如何启动 Cloud Shell,请参阅 Cloud Shell 文档

2020 年 3 月初之前,请使用 Beta 版的 gcloud sql instances create 命令,即使用 gcloud beta sql instances create 命令。

此外,您还必须使用 gcloud 243.0.0 或更高版本。

  1. 创建实例:
    gcloud sql instances create [INSTANCE_NAME] \
    --database-version=SQLSERVER_2017_STANDARD \
    --cpu=[NUMBER_CPUS] \
    --memory=[MEMORY_SIZE] \
    --root-password=[INSERT-PASSWORD-HERE]
    

    请勿在实例名称中包含敏感信息或个人身份信息,因为此名称对外可见。
    无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

    vCPU 和内存大小值存在一定的限制:

    标准选项(同时还提供轻量级和高内存选项。如需了解详情,请参阅 Google Cloud Console):

    版本 CPU/内存
    SQL Server 2017 Express 从预设选项中选择:
    • 1 个 vCPU,3.75 GB 内存
    • 2 个 vCPU,3.75 GB 内存
    • 4 个 vCPU,3.75 GB 内存
    SQL Server 2017 Web 从预设选项或自定义选项中选择:
    • 1 个 vCPU,4 GB 内存
    • 2 个 vCPU,8 GB 内存
    • 4 个 vCPU,16 GB 内存
    • 1-16 个 vCPU,4-64 GB 内存
    SQL Server 2017 Standard 从预设选项或自定义选项中选择:
    • 1 个 vCPU,4 GB 内存
    • 2 个 vCPU,8 GB 内存
    • 4 个 vCPU,16 GB 内存
    • 1-24 个 vCPU,4-104 GB 内存
    SQL Server 2017 Enterprise 从预设选项或自定义选项中选择:
    • 2 个 vCPU,8 GB 内存
    • 4 个 vCPU,16 GB 内存
    • 2-96 个 vCPU,8-104 GB 内存

    例如,以下字符串会创建一个具有两个 vCPU 和 7680 MB 内存的实例:

    gcloud sql instances create myinstance \
    --database-version=SQLSERVER_2017_STANDARD \
    --cpu=2 \
    --memory=7680MB \
    --root-password=[INSERT-PASSWORD-HERE]
    

    如需了解一些示例值,请参阅机器类型示例

    您还可以创建共享核心实例,方法是使用 --tier db-f1-micro--tier db-g1-small 并丢弃 --cpu--memory 参数。

    您可以添加更多参数来确定其他实例设置:

    设置 参数 备注
    必需参数
    数据库版本 --database-version SQLSERVER_2017_STANDARDSQLSERVER_2017_ENTERPRISESQLSERVER_2017_EXPRESSSQLSERVER_2017_WEB
    地区 --region 查看有效值
    连接
    专用 IP --network 指定您要用于此实例的 VPC 网络的名称。网络必须已配置专用服务访问权限。仅适用于 Beta 版命令 (gcloud beta sql instances create)。 了解详情
    公共 IP 地址 --authorized-networks 只有来自已获授权网络的公共 IP 连接才能连接到您的实例。了解详情
    机器类型和存储空间
    机器类型 --tier 用于指定共享核心实例(db-f1-microdb-g1-small)。使用此参数时,不能指定 --cpu--memory 参数。
    存储类型 --storage-type 表示您的实例使用 SSD 存储空间(所有 SQL Server 实例都使用 SSD 存储空间)。了解详情
    存储空间容量 --storage-size 为实例预配的存储空间量(以 GB 为单位)。 了解详情
    存储空间自动扩容 --storage-auto-increase 该设置决定了在可用空间不足时,Cloud SQL 是否自动为您的实例提供更多存储空间。了解详情
    存储空间自动扩容上限 --storage-auto-increase-limit 此设置决定了 Cloud SQL 能自动将存储空间扩容到多大的程度。仅适用于 Beta 版命令 (gcloud beta sql instances create)。 了解详情
    自动备份和高可用性
    高可用性 --availability-type 对于高可用性实例,请将此项设置为 REGIONAL了解详情
    自动备份 --backup-start-time 您希望系统开始执行备份的时间范围。了解详情
    添加数据库标志
    数据库标志 --database-flags 您可以使用数据库标志来控制实例的设置和参数。详细了解数据库标志详细了解如何设置此参数的格式
    添加默认排序规则
    默认排序规则 --collation 您可以设置用于实例中数据库的排序规则类型的默认值。例如,您可以为此参数指定以下值:
    SQL_Latin1_General_CP1_CI_AS

    此排序规则默认设置在实例级是永久性的,但在数据库级却不是永久性的。您可以使用数据库管理工具更改此默认设置,但仅限于您正在创建或更新的特定数据库。创建实例后,您无法更改其排序规则默认设置(除非您重新创建实例)。如需了解 SQL Server 中的排序规则,请参阅排序规则和 Unicode 支持
    设置维护时间表
    维护期 --maintenance-window-day
    --maintenance-window-hour
    该设置用于确定 Cloud SQL 可对您的实例执行中断性维护的时段(时长为一小时)。如果您没有设置此时段,则系统可能会随时执行中断性维护。了解详情
    维护时间 --maintenance-release-channel 相对于相同项目内的其他实例,您为一个实例确定的首选更新时间。如果提前更新,则使用 preview;如果延后更新,则使用 production了解详情

  2. 请记下系统自动分配的 IP 地址。

    如果您未使用 Cloud SQL 代理,则需要使用此地址,作为应用或工具连接到实例时使用的主机地址。

  3. 设置用户密码:
    gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \
           --password=[PASSWORD]
    

REST

1. 创建实例

如需查看此调用的完整参数列表,请参阅 Instances:insert 页面。如需了解实例设置,包括针对各地区和机器类型的有效值,请参阅实例设置

请勿在 instance-id 中包含敏感信息或个人身份信息,因为该值对外可见。
无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

tier 参数的值是一个字符串,表示新实例的 CPU 数量和内存量。该字符串采用 db-custom-[CPUS]-[MEMORY_MBS] 格式。如需查看一些示例,请参阅机器类型示例。此外,您还可以通过提供 db-f1-microdb-g1-small 作为 tier 参数的值来创建共享核心实例。

借助 collation 参数(未显示在下面的基本 API 调用中),您可以设置用于实例中数据库的排序规则类型的默认值。此排序规则默认设置在实例级是永久性的,但在数据库级却不是永久性的。您可以使用数据库管理工具更改此默认设置,但仅限于您正在创建或更新的特定数据库。创建实例后,您无法更改其排序规则默认设置(除非您重新创建实例)。如需了解 SQL Server 中的排序规则,请参阅排序规则和 Unicode 支持。如需查看 JSON 正文的原型,请参阅设置。以下是您可以为 collation 参数指定的示例字符串:SQL_Latin1_General_CP1_CI_AS

在使用下面的任何请求数据之前,请先进行以下替换:

  • project-id:您的项目 ID
  • instance-id:所需的实例 ID
  • region:所需地区
  • database-version:数据库版本的枚举字符串。例如 SQLSERVER_2017_STANDARD
  • password:根用户的密码
  • machine-type:机器(层级)类型的枚举字符串,例如:db-custom-[CPUS]-[MEMORY_MBS]

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

请求 JSON 正文:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "rootPassword": "password",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "enabled": true
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

创建实例后,您可以进一步配置默认用户帐号

2. 检索实例的 IPv4 地址

您也可以根据情况选择检索系统自动分配的 IPv4 地址。在响应中,该地址包含在 ipAddress 字段中。

在使用下面的任何请求数据之前,请先进行以下替换:

  • project-id:您的项目 ID
  • instance-id:您在上一步中创建的实例 ID

HTTP 方法和网址:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "database-version",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "machine-type",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "zone",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "19:00",
      "kind": "sql#backupConfiguration",
      "enabled": true
    },
    "settingsVersion": "1",
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "backend-type",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "region",
  "gceZone": "zone"
}

机器类型示例

借助自定义机器类型,您可以为实例配置其所需的内存容量和 CPU 数量。但是这些值也有一定的限制:

  • vCPU 的数量必须为 1 或介于 2 至 96 之间的偶数。
  • 内存必须符合以下条件:
    • 每个 vCPU 的内存量介于 0.9 至 6.5 GB 之间
    • 内存量是 256 MB 的倍数
    • 内存量至少为 3.75 GB (3840 MB)

下面根据 SQL Server 实例适用的预定义机器类型,列举了一些示例机器类型值:

预定义机器类型 vCPU 内存 (MB) API 层字符串
db-n1-standard-1 1 3840 db-custom-1-3840
db-n1-standard-2 2 7680 db-custom-2-7680
db-n1-standard-4 4 15360 db-custom-4-15360
db-n1-standard-8 8 30720 db-custom-8-30720
db-n1-standard-16 16 61440 db-custom-16-61440
db-n1-standard-32 32 122880 db-custom-32-122880
db-n1-standard-64 64 245760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13312 db-custom-2-13312
db-n1-highmem-4 4 26624 db-custom-4-26624
db-n1-highmem-8 8 53248 db-custom-8-53248
db-n1-highmem-16 16 106496 db-custom-16-106496
db-n1-highmem-32 32 212992 db-custom-32-212992
db-n1-highmem-64 64 425984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

后续步骤