创建实例

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

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

新创建的实例具有一个 sqlserver 数据库。

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

选择 vCPU 和内存大小值

创建 Cloud SQL for SQL Server 实例时,您可以根据 vCPU 和内存要求从多种机器配置中进行选择。以下部分显示了每个数据库版本和机器类型的 vCPU 和内存配置:

SQL Server 2017 Express、SQL Server 2019 Express 和 SQL Server 2022 Express

机器类型 vCPU/内存
轻便
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,3.75 GB 内存
  • 4 个 vCPU,3.75 GB 内存
标准版
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,7.50 GB 内存
  • 4 个 vCPU,15 GB 内存
高内存
  • 4 个 vCPU,26 GB 内存
  • 8 个 vCPU,52 GB 内存
自定义 1-8 个 vCPU,3.75 GB 到 52 GB

SQL Server 2017 Web、SQL Server 2019 Web 和 SQL Server 2022 Web

机器类型 vCPU/内存
轻便
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,3.75 GB 内存
  • 4 个 vCPU,3.75 GB 内存
标准版
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,7.50 GB 内存
  • 4 个 vCPU,15 GB 内存
高内存
  • 4 个 vCPU,26 GB 内存
  • 8 个 vCPU,52 GB 内存
  • 16 个 vCPU,104 GB 内存
自定义 1-32 个 vCPU,3.75 GB 到 208 GB

SQL Server 2017 Standard、SQL Server 2019 Standard 和 SQL Server 2022 Standard

机器类型 vCPU/内存
轻便
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,3.75 GB 内存
  • 4 个 vCPU,3.75 GB 内存
标准版
  • 1 个 vCPU,3.75 GB 内存
  • 2 个 vCPU,7.50 GB 内存
  • 4 个 vCPU,15 GB 内存
高内存
  • 4 个 vCPU,26 GB 内存
  • 8 个 vCPU,52 GB 内存
  • 16 个 vCPU,104 GB 内存
自定义 1-48 个 vCPU,3.75 GB 到 312 GB

SQL Server 2017 Enterprise、SQL Server 2019 Enterprise 和 SQL Server 2022 Enterprise

机器类型 vCPU/内存
轻便
  • 2 个 vCPU,3.75 GB 内存
  • 4 个 vCPU,3.75 GB 内存
标准版
  • 2 个 vCPU,7.50 GB 内存
  • 4 个 vCPU,15 GB 内存
高内存
  • 4 个 vCPU,26 GB 内存
  • 8 个 vCPU,52 GB 内存
  • 16 个 vCPU,104 GB 内存
自定义 2-96 个 vCPU,3.75 GB 到 624 GB

并发多线程

借助 Cloud SQL for SQL Server 上的并发多线程 (SMT),您可以在一个物理核心上将两个虚拟 CPU (vCPU) 作为独立的单独线程运行。 SMT 默认处于启用状态;但是,您可以停用它,这可能会降低许可费用。

停用 SMT 可能会影响实例性能。如需了解停用 SMT 对实例性能的影响,我们建议您对实例执行负载测试

创建实例

控制台

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

    转到“Cloud SQL 实例”

  2. 点击创建实例
  3. 点击 Choose SQL Server(选择 SQL Server)。
  4. 实例信息窗格实例 ID 字段中,输入您的实例的 ID。

    无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

  5. 输入用户密码。
  6. 选择实例的数据库版本。要查看可用的版本,请点击下拉箭头。
  7. 选择区域和可用区可用性部分,为实例选择区域和可用区。

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

  8. 自定义实例部分,更新实例的设置。例如,您可以防止意外删除实例
  9. 点击创建
  10. 实例的初始化过程完成后,点击实例名称将其打开。

gcloud

如需了解如何安装和开始使用 gcloud CLI,请参阅安装 gcloud CLI。如需了解如何启动 Cloud Shell,请参阅 Cloud Shell 文档

您必须使用 gcloud 243.0.0 或更高版本。

如需了解如何保护实例免遭意外删除,请参阅防止删除实例

  1. 创建实例:
    gcloud beta sql instances create INSTANCE_NAME \
    --database-version=SQLSERVER_2017_STANDARD \
    --region=REGION_NAME \
    --cpu=NUMBER_OF_vCPUs \
    --memory=MEMORY_SIZE \
    --root-password=ROOT-PASSWORD
    

    无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

    如本页前面所述,vCPU 和内存大小值受限制。请参阅选择 vCPU 和内存大小值

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

    gcloud sql instances create myinstance \
    --database-version=SQLSERVER_2017_STANDARD \
    --region=us-central1 \
    --cpu=2 \
    --memory=7680MB \
    --root-password=EXAMPLE-PASSWORD
    

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

    如需了解实例设置的参数,请参阅 gcloud sql instances create

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

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

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

Terraform

如需创建实例,请使用 Terraform 资源

resource "google_sql_database_instance" "instance" {
  name             = "sqlserver-instance"
  region           = "us-central1"
  database_version = "SQLSERVER_2019_STANDARD"
  root_password    = "INSERT-PASSWORD-HERE"
  settings {
    tier = "db-custom-2-7680"
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

REST v1beta4

1. 创建实例

并非所有可能的字段都显示在下面的基本 API 调用中。如需查看 JSON 请求的原型,请参阅设置

另请参阅 Instances:insert 页面。如需了解实例设置,包括针对区域的有效值,请参阅实例设置。如需了解机器类型,请参阅自定义实例配置

请勿在 instance-id 中包含敏感信息或个人身份信息,因为该值对外可见。

无需在实例名称中包含项目 ID。此操作将在适当的位置(例如在日志文件中)自动完成。

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

timeZone 字段(未显示在下面的基本 API 调用中)可让您为实例设置永久的默认时区。如需了解包含此字段的 JSON 表示法,请参阅设置。以下是您可以为 timeZone 字段指定的示例字符串:"Pacific Standard Time"了解详情

如需创建与代管式 Microsoft AD 集成的实例,请为 domain 字段指定一个网域,例如 subdomain.mydomain.com。如需了解详情,请参阅使用 Windows 身份验证创建实例。此外,请注意与其他项目中的代管式 AD 域集成的过程和限制条件

如需了解如何在请求正文中设置 machine-type 的值,请参阅自定义实例配置

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

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

HTTP 方法和网址:

POST https://sqladmin.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://sqladmin.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://sqladmin.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://sqladmin.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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "region",
  "gceZone": "zone"
}

自定义实例配置

自定义实例配置允许您选择实例需要的内存大小和 CPU。这种灵活性可让您选择适合您的工作负载的虚拟机类型。

机器类型名称使用以下格式:db-custom-NUMBER_OF_vCPUs-MEMORY

NUMBER_OF_vCPUs 替换为机器中的 CPU 数量,并将 MEMORY 替换为机器中的内存量。

例如,如果您的机器名称为 db-custom,并且您的机器具有 1 个 CPU 和 3840 MB RAM,则机器格式为 db-custom-1-3840

选择 CPU 数量和内存量时,您选择的配置有一些限制:

  • 您可以为实例配置的 vCPU 数量取决于 SQL Server 版本。
  • vCPU 的数量必须为 1 或介于 2 至 96 之间的偶数。
  • 内存大小必须符合以下条件:
    • 每个 vCPU 的内存量介于 0.9 至 6.5 GB 之间
    • 内存量是 256 MB 的倍数
    • 内存量至少为 3.75 GB (3840 MB)

问题排查

问题 问题排查
错误消息:Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID] 尝试再次创建 Cloud SQL 实例。

后续步骤