建立 SQL Server VM 執行個體

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 的虛擬機器 (VM) 執行個體,並在需要時水平擴展至大型多節點設定。

Compute Engine 會將資料儲存在具備自動備援和自動靜態資料加密功能的耐用區塊儲存空間磁碟上。使用這些磁碟儲存 SQL Server 資料,不必擔心資料的耐久性或安全性。如要進一步提升效能,請建立 VM 執行個體,並將本機 SSD 做為快取,為 SQL Server 查詢提供額外的 IOPS 和效能。

您可以透過下列方式建立執行 SQL Server 的 Compute Engine VM 執行個體:

如需預先安裝 SQL Server 的可用映像檔完整清單,請參閱「作業系統詳細資料」。

SQL Server 映像檔的機型需求

最適合 SQL Server 的機型取決於您執行的 SQL Server 版本。

SQL Server Standard

您可以在使用任何機型建立的 VM 執行個體上執行 SQL Server Standard,但共用核心機型無法提供最佳效能。Google 建議您使用至少一個 vCPU 的 VM 執行個體,執行 SQL Server Standard。

SQL Server Enterprise

執行 SQL Server Enterprise 的 VM 執行個體必須至少有 4 個 vCPU。為獲得最佳效能,Google 建議您在記憶體容量較大的 VM 執行個體上執行 SQL Server Enterprise。視工作負載而定,您應使用 highmem 預先定義機型,並搭配 8 個以上的 vCPU,例如 N2。highmem預先定義機型可盡量提高 Compute Engine 上每個 vCPU 的記憶體比例,最適合 SQL Server 企業版 VM。

您可以在 Compute Engine 上使用 SQL Server Enterprise,建立 SQL Server 可用性群組。

預設元件

根據預設,SQL Server 映像檔包含數種元件。預設元件的種類取決於您選擇的 SQL Server 版本。

如要瞭解 SQL Server 版本隨附的預設元件,請參閱「SQL Server 2019 的版本和支援功能」。

如要瞭解如何修改 SQL Server 元件,請參閱「將功能新增至 SQL Server 執行個體」。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    控制台

    使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,不需要設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。 登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設區域和可用區。
  • Terraform

    如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。

    1. 安裝 Google Cloud CLI。

    2. 設定 gcloud CLI,使用您的聯合身分。

      詳情請參閱「 使用聯合身分登入 gcloud CLI」。

    3. 為使用者帳戶建立本機驗證憑證:

      gcloud auth application-default login

      如果傳回驗證錯誤,請確認您已 使用聯合身分登入 gcloud CLI。

    詳情請參閱「 設定本機開發環境的驗證機制」。

    REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。

建立 SQL Server 執行個體

如要建立 SQL Server 執行個體,請指定您所需之特定 SQL Server 版本的映像檔系列。如需 SQL Server 映像檔系列的清單,請參閱「作業系統詳細資料」。

為達到最佳效能,資料庫伺服器平台需要虛擬 CPU 數量較多、記憶體容量較大的機型。執行 SQL Server 執行個體時,Google 建議使用至少 2 個 vCPU 和 4 GB 記憶體的機器類型。您可以使用自訂機型設定 SQL Server 執行個體,以符合工作負載的效能需求。您可以使用較大的磁碟或速度較快的磁碟類型,提升應用程式效能。

您必須設定特定防火牆規則,允許 VM 執行個體所屬的虛擬私有雲網路或子網路傳輸 SQL Server 流量。詳情請參閱 SQL Server 最佳做法的相關說明。

控制台

如要建立 SQL Server 執行個體,請按照下列步驟操作:

  1. 前往 Cloud de Confiance 控制台的「建立執行個體」頁面。

    前往「建立執行個體」

  2. 指定 VM 執行個體詳細資料。

  3. 按一下「OS 和儲存空間」垂直分頁標籤。

  4. 點選「變更」,然後執行下列操作:

    1. 在「Public images」(公開映像檔) 分頁中,按一下「Operating system」(作業系統) 清單,然後選取「SQL Server on Windows Server」(Windows Server 上的 SQL Server)。
    2. 在「Version」(版本) 清單中選取版本。
    3. 在「Boot disk type」(開機磁碟類型) 清單中,選取開機磁碟類型。
    4. 在「Size (GB)」(大小 (GB)) 欄位中,設定開機磁碟大小。
    5. 選用:如要修改開機磁碟的進階設定,請點選「顯示進階設定」,然後指定設定。
    6. 如要儲存開機磁碟設定,請按一下「選取」。
  5. 在「建立執行個體」視窗中,按一下「建立」。

建立 VM 執行個體後,請建立防火牆規則,允許存取執行個體上的 SQL Server。預設的 SQL Server 連接埠為 1433。

  1. 前往 Cloud de Confiance 控制台的「Firewall Rules」(防火牆規則) 頁面。

    前往「Firewall Rules」(防火牆規則)

  2. 按一下頁面頂端的 [Create firewall rule] (建立防火牆規則)。

  3. 指定這個防火牆規則的詳細資料。

    • 在「Name」(名稱) 欄位中,指定防火牆規則的名稱。
    • 在「Network」(網路) 欄位中,選取 SQL Server 執行個體所在的虛擬私有雲網路。
    • 在「Direction of traffic」(流量方向),選取「Ingress」(輸入)。
    • 在「目標」欄位中,選擇防火牆規則的目標,可以是所有執行個體,也可以是指定的目標標記或服務帳戶。舉例來說,您可以選取「網路中的所有執行個體」選項。如果您為 SQL Server 執行個體設定了標記或服務帳戶,則可將防火牆規則限制為特定標記或服務帳戶。
    • 在 [Source filter] (來源篩選器) 欄位中,選取您要允許存取這個通訊埠的 IP 範圍。如果是輸入規則,您可以選取來源 IPv4 範圍、來源 IPv6 範圍、來源標記或服務帳戶。使用「來源篩選器」後方的欄位,提供所選項目的其他資訊。
    • 在「通訊協定和通訊埠」部分,選擇「指定的通訊協定和通訊埠」,然後輸入 SQL Server 使用的通訊埠。在本例中,請選擇「TCP」TCP並輸入 1433,這是預設通訊埠。
  4. 按一下「建立」,建立這項防火牆規則,並允許透過指定通訊埠存取 SQL Server 執行個體。

如要為 VM 執行個體新增其他防火牆規則,請參閱防火牆規則說明文件。

gcloud

使用 compute images list 指令查看可用的 SQL Server 映像檔清單:

gcloud compute images list --project windows-sql-cloud --no-standard-images

使用 compute instances create 指令建立新的 VM,並指定其中一個 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

更改下列內容:

  • VM_NAME:新執行個體的名稱。
  • IMAGE_FAMILY: :Windows Server 或 SQL Server 映像檔的公開映像檔系列之一。
  • MACHINE_TYPE:其中一個可用的機型。
  • BOOT_DISK_SIZE:開機磁碟大小 (GB)。較大的永久磁碟具有較高的處理量。
  • BOOT_DISK_TYPE:執行個體開機磁碟的類型。例如:pd-balanced。

建立 VM 後,請建立防火牆規則,允許存取 VM 上的 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 是 VM 所在的虛擬私有雲網路名稱。

如需為 VM 新增其他防火牆規則,請參閱防火牆規則說明文件。

Terraform

如要建立 SQL Server VM 執行個體,請使用 google_compute_instance 資源。

resource "google_compute_instance" "sqlserver_vm" {
  provider = google-beta
  name     = "sqlserver-vm"
  boot_disk {
    auto_delete = true
    device_name = "persistent-disk-0"
    initialize_params {
      image = "windows-sql-cloud/sql-std-2019-win-2022"
      size  = 50
      type  = "pd-balanced"
    }
    mode = "READ_WRITE"
  }
  machine_type = "n1-standard-4"
  zone         = "europe-west1-b"
  network_interface {
    access_config {
      network_tier = "PREMIUM"
    }
    network    = google_compute_network.default.id
    stack_type = "IPV4_ONLY"
    subnetwork = google_compute_subnetwork.default.id
  }
}

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

REST

如要使用 API 建立 VM,請在 VM 建立要求中加入 initializeParams 屬性,並指定 Windows 映像檔。

POST https://compute.s3nsapis.fr/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
  }]
}

更改下列內容:

  • PROJECT_ID:專案 ID。
  • ZONE:這個執行個體的可用區。
  • VM_NAME:新 VM 的名稱。
  • 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:VM 開機磁碟的類型。例如:pd-ssd。

建立 VM 後,請使用 firewalls.insert 方法建立防火牆規則,允許存取 VM 上的 SQL Server。預設 SQL Server 通訊埠為 1433。

POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "sql-server-1433",
 "network": "global/networks/NETWORK",
 "allowed": [
  {
   "IPProtocol": "tcp",
   "ports": [
    "1433"
   ]
  }
 ]
}

更改下列內容:

  • PROJECT_ID:專案 ID。
  • NETWORK:VM 所在的虛擬私有雲網路名稱。

建立 SQL Server 執行個體後,請設定 VM 的初始密碼,以便使用 RDP 連線至 VM。以系統管理員身分執行 SQL Server Management Studio,管理 SQL Server 執行個體中的資料庫。

您可以透過下列一或多個項目,強化 SQL Server 安裝作業:

管理 SQL Server 資料庫

以系統管理員身分執行 SQL Server Management Studio,設定 SQL Server 資料庫。您可以在本機工作站下載並安裝 SQL Server Management Studio,並使用該工具連線至 VM 執行個體上的資料庫引擎。

如果無法在本機工作站安裝 Management Studio,請使用 RDP 連線至 Windows VM,並在 VM 執行個體上執行 Management Studio。根據預設,SQL Server 2012 和 SQL Server 2014 都包含 SQL Server Management Studio。如果是 SQL Server 2016,您必須從 Microsoft 網站下載 SQL Server Management Studio,並安裝在 VM 執行個體上。

根據預設,SQL Server 會使用 Windows 驗證模式控管 SQL Server 本身的存取權。如要使用 SQL Server 驗證模式,可以變更驗證模式。

更新 SQL Server 執行個體名稱

如果重新命名 VM (該 VM 裝載 SQL Server),則必須更新 SQL Server 執行個體名稱。詳情請參閱「重新命名託管 SQL Server 獨立執行個體的電腦」。

後續步驟