Microsoft SQL Server 是一种在 Windows Server 和某些 Linux 发行版上运行的数据库系统。您可以将 Compute Engine 上的 SQL Server 用作应用后端的一部分、一个灵活的开发测试环境或者作为本地系统的补充用于备份和灾难恢复目的。
Compute Engine 会提供已在 Windows Server 上预安装 Microsoft SQL Server 的映像。对于这些 SQL Server 映像,Compute Engine 会管理 Windows Server 和 SQL Server 的许可,并将相应费用计入月度账单中。您可以创建具有 SQL Server 的虚拟机,并在必要时横向扩容为大型多节点配置。
Compute Engine 将您的数据存储在可自动实现冗余和自动进行静态加密的耐用永久性磁盘上。您可以使用这些永久性磁盘存储您的 SQL Server 数据,而无需担心您的数据的耐用性和安全性。您可以创建如下虚拟机来提升性能:将本地 SSD 用作缓存来为 SQL Server 查询提供额外的 IOPS 和性能。
您可以通过以下方式创建运行 SQL Server 的 Compute Engine 虚拟机 (VM) 实例:
使用 SQL Server 映像创建虚拟机。这些映像都包含一个可在 Windows Server 上运行的 SQL Server 版本。您无需另外再从 Microsoft 获取许可,就可使用这些映像在 Compute Engine 上运行 SQL Server。
将现有的 SQL Server 许可迁移到 Compute Engine 上的 Windows Server 虚拟机,并自行管理这些许可。
如需预安装了 SQL Server 的可用映像的完整列表,请参阅操作系统详细信息。
SQL Server 映像对机器类型的要求
SQL Server Standard
您可以在具有任何机器类型的虚拟机上运行 SQL Server Standard,但共享核心机器类型不会以最优方式运行。Google 建议您使用至少配备了一个 vCPU 的虚拟机来运行 SQL Server Standard。
SQL Server Enterprise
运行 SQL Server Enterprise 的虚拟机必须至少配备 4 个 vCPU。为了获得最佳性能,Google 建议您在具有较大内存容量的虚拟机上运行 SQL Server Enterprise。根据您的工作负载,您应该使用配备了 8 个或者更多个 vCPU 的高内存机器类型。这些机器类型会将内存与 Compute Engine 中可用的每个 vCPU 之比最大化,达到最适合 SQL Server Enterprise 虚拟机的状态。
此外,您还可以在 Compute Engine 上使用 SQL Server Enterprise 来创建 SQL Server 可用性组。
默认组件
SQL Server 映像默认包含一些组件。默认包含的组件取决于您选择的 SQL Server 版本。
如需了解您的 SQL Server 版本中包含的默认组件,请参阅 SQL Server 2019 版本和支持的功能。
如需了解如何修改 SQL Server 组件,请参阅向 SQL Server 虚拟机添加功能。
准备工作
-
设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
在 Google Cloud 控制台中,转到创建实例页面。
指定虚拟机详情。
在启动磁盘部分,点击更改,然后执行以下操作:
- 在公共映像标签页上,点击操作系统列表,然后选择 Windows Server 上的 SQL Server。
- 在版本字段中,选择一个版本。
- 在启动磁盘类型列表中,选择启动磁盘类型。
- 在大小 (GB) 字段中,设置启动磁盘大小。
- 可选:如需修改启动磁盘的高级配置,请点击显示高级配置,然后指定您的设置。
- 要保存启动磁盘配置,请点击选择。
点击创建。
在 Google Cloud 控制台中,转到防火墙规则页面。
在页面顶部,点击创建防火墙规则以开始创建防火墙规则。
指定此防火墙规则的详细信息。
- 在名称字段中,指定防火墙规则的名称。
- 在网络字段中,选择 SQL Server 实例所在的 VPC 网络。
- 选择“入站”作为流量方向。
- 在目标字段中,选择防火墙规则的目标,可以是所有实例,也可以是指定的目标标记或服务账号。例如,您可以选择网络中的所有实例选项。如果您为 SQL Server 实例配置了标记或服务账号,则可以将防火墙规则限制为特定标记或服务账号。
- 在来源过滤条件字段中,选择您希望允许在此端口上访问的 IP 范围。对于入口规则,您可以选择来源 IPv4 地址范围、来源 IPv6 地址范围、来源标记或服务账号。使用来源过滤器后面的字段提供有关您选择的其他信息。
- 在协议和端口部分中,选择指定的协议和端口,然后输入 SQL Server 使用的端口。在本示例中,选择 TCP 并输入
1433
(默认端口)。
点击创建以创建此防火墙规则并允许通过端口 1433 访问 SQL Server 实例。
- VM_NAME:新实例的名称。
- IMAGE_FAMILY:Windows Server 或 SQL Server 映像的其中一个公共映像系列。
- MACHINE_TYPE:可用的机器类型之一。
- BOOT_DISK_SIZE:启动磁盘大小(以 GB 为单位)。永久性磁盘越大,吞吐量越高。
- BOOT_DISK_TYPE:您的实例的启动磁盘类型。例如
pd-balanced
。 - PROJECT_ID:项目的 ID。
- ZONE:此实例的可用区。
- VM_NAME:新虚拟机的名称。
- MACHINE_TYPE:可用的机器类型。
- IMAGE_PROJECT:对于 Windows Server 映像为
windows-cloud
;对于预安装了 SQL Server 的 Windows Server 映像为windows-sql-cloud
。 - IMAGE_FAMILY:Windows Server 或 SQL Server 映像的公共映像系列。
- BOOT_DISK_SIZE:启动磁盘大小(以 GB 为单位)。永久性磁盘越大,吞吐量越高。
- BOOT_DISK_TYPE:您的虚拟机的启动磁盘类型。例如
pd-ssd
。 - PROJECT_ID:项目的 ID。
- NETWORK:您的虚拟机所在的 VPC 网络的名称。
- 在您的 SQL Server 实例上安装 SQL Server 数据工具,以便您可以使用 Visual Studio 来创建和管理 SQL Server 数据库。 连接到虚拟机,然后从 Microsoft 网站下载并安装 SQL Server 数据工具。
- SQL Server 映像包含几个默认组件。
您可以选择向 SQL Server 安装添加功能。SQL Server 映像始终包含安装程序可执行文件
c:\sql_server_install\setup.exe
。 - 如果您需要将 SQL Server 安装到辅助永久性磁盘,请向虚拟机添加辅助永久性磁盘。然后连接到虚拟机,运行
c:\sql_server_install\setup.exe
安装程序并在辅助磁盘上选择新的安装路径。 - 如果启动磁盘或任何辅助存储磁盘上需要任何额外的存储空间,请调整永久性磁盘的大小(即使您的虚拟机正在运行)。
- 验证虚拟机是否已成功启动。
- 创建并挂接辅助存储磁盘到虚拟机,以便在启动磁盘外单独存储您的数据。
- 了解在 Google Cloud 上使用 SQL Server 的最佳做法。
- 创建并配置高性能 SQL Server 实例。
- 使用 HammerDB 在 SQL Server 上运行负载测试。
- 将 SQL Server 与 .NET 应用一起使用。
- 连接到虚拟机。
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
创建 SQL Server 实例
要创建 SQL Server 实例,请为需要使用的特定 SQL Server 版本指定映像系列。如需 SQL Server 映像系列的列表,请参阅操作系统详细信息。
为获得最佳性能,数据库服务器平台需要配备了更多虚拟 CPU 和更大内存的机器类型。Google 建议您在运行 SQL Server 实例时使用至少配备了 2 个 vCPU 和 4 GB 内存的机器类型。您可以使用自定义机器类型来配置 SQL Server 实例,以与工作负载的性能要求匹配。此外,您可以使用更大的永久性磁盘和更快的 SSD 永久性磁盘来提升应用的性能。
此外,您必须设置特定的防火墙规则,以允许您的虚拟机所属的 VPC 网络或子网上的 SQL Server 流量。如需了解详情,请参阅 SQL Server 的最佳做法。
控制台
如需创建 SQL Server 实例,请按照以下步骤操作:
创建虚拟机后,请创建防火墙规则以允许访问虚拟机上的 SQL Server。默认 SQL Server 端口为 1433。
如果您需要向虚拟机添加其他防火墙规则,请参阅防火墙规则文档。
gcloud
使用
compute images list
命令查看可用 SQL Server 映像的列表:gcloud compute images list --project windows-sql-cloud --no-standard-images
使用
compute instances create
命令创建新虚拟机,并为其中一个 Windows Server 或 SQL Server 公共映像指定映像系列。gcloud compute instances create VM_NAME \ --image-project windows-sql-cloud \ --image-family IMAGE_FAMILY \ --machine-type MACHINE_TYPE \ --boot-disk-size BOOT_DISK_SIZE \ --boot-disk-type BOOT_DISK_TYPE
请替换以下内容:
创建虚拟机后,请创建防火墙规则以允许访问虚拟机上的 SQL Server。默认 SQL Server 端口为 1433。
gcloud compute firewall-rules create sql-server-1433 \ --description "Allow SQL Server access from all sources on port 1433." \ --allow tcp:1433 --network NETWORK
其中 NETWORK 是虚拟机所在 VPC 网络的名称。
如果您需要向虚拟机添加其他防火墙规则,请参阅防火墙规则文档。
Terraform
如需创建 SQL Server 虚拟机实例,请使用
google_compute_instance
资源。如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
REST
如需使用 API 创建虚拟机,请在虚拟机创建请求中添加
initializeParams
属性,并指定 Windows 映像。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances instance = { "name": "VM_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [{ "boot": "true", "type": "PERSISTENT", "initializeParams": { "diskName": "DISK_NAME", "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY", "diskSizeGb": "BOOT_DISK_SIZE", "diskType": "BOOT_DISK_TYPE", } }], "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "serviceAccounts": [{ "email": DEFAULT_SERVICE_EMAIL, "scopes": DEFAULT_SCOPES }] }
请替换以下内容:
创建虚拟机后,请创建防火墙规则以允许访问虚拟机上的 SQL Server。默认 SQL Server 端口为 1433。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "sql-server-1433", "network": "global/networks/NETWORK", "allowed": [ { "IPProtocol": "tcp", "ports": [ "1433" ] } ] }
请替换以下内容:
创建 SQL Server 实例后,为虚拟机设置初始密码,以便可通过 RDP 连接到虚拟机。然后,以管理员身份运行 SQL Server Management Studio 以管理 SQL Server 实例上的数据库。
此外,您可以使用以下一项或多项建议来提升 SQL Server 的安装体验:
管理 SQL Server 数据库
以管理员身份运行 SQL Server Management Studio 来配置 SQL Server 数据库。您可以在本地工作站上下载并安装 SQL Server Management Studio,然后使用 SQL Server Management Studio 远程连接到数据库引擎(位于您的虚拟机上)。
如果无法在本地工作站上安装 Management Studio,请通过 RDP 连接到虚拟机,然后在虚拟机本身上运行 Management Studio。默认情况下,SQL Server 2012 和 SQL Server 2014 都包含 SQL Server Management Studio。对于 SQL Server 2016,必须从 Microsoft 网站下载 SQL Server Management Studio 并将其安装在虚拟机上。
默认情况下,SQL Server 使用 Windows 身份验证模式来控制对 SQL Server 本身的远程访问。如果您需要使用 SQL Server 身份验证模式,请更改身份验证模式。
手动更新 SQL Server 实例名称
如果您重命名虚拟机(其托管 SQL Server),则必须更新 SQL Server 实例名称。如需了解详情,请参阅重命名托管 SQL Server 独立实例的计算机。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-11-26。
-