將 SQL Server 資料庫從 AWS EC2 遷移至 Compute Engine


本教學課程將逐步說明如何使用不同的方法,將 Amazon Elastic Compute Cloud (AWS EC2) 中的 Microsoft SQL Server 資料庫遷移至 Compute Engine。

本頁面將討論以下方法:

每種遷移方法各有優缺點。最適合的遷移策略取決於您的具體情況和優先順序。建議您根據下列考量因素,選擇最適合自己的遷移方法:

  • 可用性:請考量遷移方法是否支援 SQL Server 資料庫的所有版本和授權。

  • 資料庫大小:資料庫的大小會大幅影響可行的遷移選項,因為大型資料庫可能需要採用與小型資料庫不同的策略。選擇遷移方法時,請考量資料移轉時間、可能的停機時間和資源需求。

  • 停機容許值:遷移期間可接受的停機時間長度是關鍵因素。有些方法可讓您將停機時間降到最低,甚至幾乎為零,但其他方法則需要更長的停機時間。請考慮採用可接受的停機時間的遷移方法。

  • 複雜度:資料庫結構定義、應用程式依附元件和整體環境的複雜度,可能會影響遷移方式。請確認您選擇的遷移方法支援非資料庫物件的遷移作業,例如 SQL 代理程式工作、已連結的伺服器、權限和使用者物件。

  • 成本:遷移作業的財務面也是考量因素之一。不同的遷移方法會產生不同的費用,包括資料傳輸、運算資源和其他服務的費用。請考慮最適合自己的遷移方法。

  • 資料安全性和法規遵循:請確認所選的遷移方法符合資料安全性和法規遵循要求。請考量資料加密、存取控管,以及適用於資料的任何特定產業規定。

目標

本教學課程將說明如何完成下列工作,將 SQL Server 資料庫從 AWS EC2 遷移至 Compute Engine:

費用

本教學課程使用 Google Cloud的計費元件,包括:

使用Pricing Calculator 可根據您的預測使用量來產生預估費用。

事前準備

開始前,請先完成下列工作:

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

準備專案和網路

如要為部署 SQL Server 以進行遷移作業,請為 Google Cloud 專案和虛擬私有雲 (VPC) 做好準備,並執行下列操作:

  1. 在 Google Cloud 主控台中,按一下「Activate Cloud Shell」(啟用 Cloud Shell) 啟動 Cloud Shell。 即可開啟 Cloud Shell

    前往 Google Cloud 控制台

  2. 設定預設專案 ID:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替換為您的 Google Cloud 專案 ID。

  3. 設定預設區域:

    gcloud config set compute/region REGION
    

    REGION 替換為您要部署的區域 ID。

  4. 設定預設可用區:

    gcloud config set compute/zone ZONE
    

    ZONE 替換為您要部署的區域 ID。請確認該區域在先前步驟中指定的區域中有效。

在 Compute Engine 上建立 SQL Server 執行個體

將 SQL Server 資料庫遷移至 Compute Engine 前,您必須在 Compute Engine 上建立虛擬機器 (VM) 來代管資料庫。

使用下列指令,在 Compute Engine 上建立 SQL Server 執行個體:

2022 標準

gcloud compute instances create sql-server-std-migrate-vm \
--project=PROJECT_ID \
--zone ZONE \
--machine-type n4-standard-8 \
--subnet SUBNET_NAME \
--create-disk=auto-delete=yes,boot=yes,device-name=node-1,image=projects/windows-sql-cloud/global/images/sql-2022-standard-windows-2022-dc-v20250213,mode=rw,size=50,type=projects/PROJECT_ID/zones/ZONE/diskTypes/pd-balanced \
--scopes=https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/devstorage.read_write

更改下列內容:

  • PROJECT_ID使用 Google Cloud 專案的 ID。
  • ZONE包含區域 ID。
  • SUBNET_NAME使用虛擬私有雲子網路的名稱。

2022 企業

gcloud compute instances create sql-server-ent-migrate-vm \
--project=PROJECT_ID \
--zone ZONE \
--machine-type n4-standard-8 \
--subnet SUBNET_NAME \
--create-disk=auto-delete=yes,boot=yes,device-name=node-1,image=projects/windows-sql-cloud/global/images/sql-2022-enterprise-windows-2022-dc-v20250213,mode=rw,size=50,type=projects/PROJECT_ID/zones/ZONE/diskTypes/pd-balanced \
--scopes=https://www.googleapis.com/auth/compute,https://www.googleapis.com/auth/servicecontrol,https://www.googleapis.com/auth/service.management.readonly,https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring.write,https://www.googleapis.com/auth/trace.append,https://www.googleapis.com/auth/devstorage.read_write

更改下列內容:

  • PROJECT_ID使用 Google Cloud 專案的 ID。
  • ZONE包含區域 ID。
  • SUBNET_NAME使用虛擬私有雲子網路的名稱。

如要進一步瞭解如何在 Compute Engine 上建立 SQL Server 執行個體,請參閱「建立 SQL Server 執行個體」一文。

設定 SQL Server VM 並連線

如要設定 SQL Server VM 並連線至該 VM,請按照下列步驟操作:

  1. 為帳戶設定初始 Windows 密碼:

    1. 前往 Google Cloud 控制台的「VM Instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 按一下 SQL Server VM 的名稱。

    3. 按一下 [Set Windows password] (設定 Windows 密碼) 按鈕。

    4. 輸入密碼,然後在系統提示時點選「設定」,即可設定新的 Windows 密碼。

    5. 儲存使用者名稱和密碼。

  2. 連線至 SQL Server VM:

    1. 使用「VM 執行個體」頁面中的 SQL Server VM 公開 IP 位址,以及上一個步驟中儲存的憑證,透過 Microsoft 遠端桌面 (RDP) 連線至 SQL Server VM。

    2. 以系統管理員身分執行 SQL Server Management Studio (SSMS)

    3. 確認已選取「信任伺服器憑證」核取方塊,然後按一下「連線」

SQL Server 虛擬機器人現在已可用於資料庫遷移作業。如要建立新的使用者登入資訊,以便連線及管理 SQL Server VM,請參閱「建立登入資訊」。

完整資料庫備份與還原

完整資料庫備份和還原是資料庫遷移最常見且簡單的方法。採用這種做法時,系統會從來源環境取得 SQL Server 資料庫的完整備份,然後在目的地環境中進行還原。 Google Cloud 雖然這個方法相對簡單,但對於大型資料庫而言,建立及還原備份的時間可能會相當耗時。

本節將說明如何使用 SSMS 搭配 AdventureWorks2022 資料庫範例匯出 SQL Server 資料庫。

建立完整資料庫備份

如要建立完整的資料庫備份,請按照下列步驟操作:

  1. 使用 Microsoft RDP 登入 AWS EC2 VM。

  2. 使用 SSMS 連線至 SQL Server。

  3. 在「物件總管」中展開「資料庫」資料夾。

  4. 按一下資料庫名稱的滑鼠右鍵,然後在選單中按一下「Tasks」

  5. 按一下「Back Up」,開啟資料庫備份精靈。

    1. 確認要備份的資料庫名稱,並將備份類型設為「Full」。

    2. 按一下完整備份目的地下方的「新增」

    3. 按一下「...</span>」圖示 (...),選取備份檔案的資料夾和名稱。

    4. 按一下「OK」設定檔案名稱,然後再按一下「OK」設定目的地。

      資料庫備份選項。

    5. 按一下「OK」開始資料庫備份作業,並等待備份完成。

      備份程序完成後,系統會建立備份檔案。您現在可以使用這個備份檔案,將資料庫內容遷移至 Compute Engine VM。

    6. 按一下「OK」即可退出資料庫備份精靈。

將備份檔案轉移至 Compute Engine VM

如要遷移 SQL Server 資料庫內容,您必須將在上一個步驟中建立的備份檔案,轉移至您建立的 Compute Engine VM。如要瞭解各種轉移選項,請參閱「將檔案轉移至 Windows VM」。

從備份檔案還原 SQL Server 資料庫

如要從備份檔案還原資料庫,請按照下列步驟操作:

  1. 使用 RDP 登入 Compute Engine VM。

  2. 使用 SSMS 連線至 SQL Server。

  3. 在「物件總管」中,以滑鼠右鍵按一下「資料庫」資料夾,然後點選「還原資料庫」

  4. 針對「Source」(來源),請按一下「Device」(裝置)和省略號圖示 (...),開啟「Select backup device」(選取備份裝置) 頁面。

  5. 確認備份媒體類型已設為「檔案」,然後按一下「新增」選取備份檔案。

    還原資料庫選取裝置。

  6. 按一下「OK」,將備份檔案設為還原裝置。

  7. 按一下「確定」即可還原資料庫。

    程序完成後,資料庫就會遷移至 Compute Engine 上的目標 SQL Server。

  8. 如要確認程序是否已順利完成,您可以展開 Object Explorer 中的「databases」資料夾,確認是否可以看到已遷移的資料庫。

    驗證已還原的資料庫。

使用 BACPAC 檔案進行遷移

備份套件 (BACPAC) 檔案是 SQL Server 資料庫的邏輯表示法。您可以從來源 AWS 環境匯出,然後匯入目的地環境。 Google Cloud 對於較小資料庫,這個方法通常比完整備份和還原更快,但可能不適合用於非常大型的資料庫或具有複雜依附項目的資料庫。

以下節將說明如何使用 BACPAC 檔案遷移 SQL Server 資料庫。

建立 BACPAC 匯出作業

如要建立 BACPAC 匯出作業,請按照下列步驟操作:

  1. 使用 Microsoft RDP 登入 AWS EC2 VM。

  2. 使用 SSMS 連線至 SQL Server。

  3. 在「Object Explorer」中展開「databases」資料夾。

  4. 在資料庫名稱上按一下滑鼠右鍵,然後點選「工作」

  5. 按一下「Export Data-tier Application」,開啟匯出精靈。

    1. 點按「Next」

    2. 在「Save to local disk」選項中按一下「Browse」,然後選取 BACPAC 檔案。

    3. 按一下「進階」分頁標籤,然後選取要匯出的結構定義。

    4. 點選「下一步」即可前往摘要頁面。

    5. 按一下「Finish」即可匯出 BACPAC 檔案,並等待匯出作業完成。

    6. 按一下「關閉」即可退出精靈。

  6. 將先前步驟中建立的 BACPAC 檔案,轉移至 Compute Engine 上的目標 VM。如要瞭解轉移選項,請參閱「將檔案轉移至 Windows VM」。

從 BACPAC 檔案還原 SQL Server 資料庫

如要從 BACPAC 檔案還原資料庫,請按照下列步驟操作:

  1. 使用 RDP 登入 Compute Engine VM。

  2. 使用 SSMS 連線至 SQL Server。

  3. 在「物件總管」中,以滑鼠右鍵按一下「資料庫」資料夾,然後點選「匯入資料層應用程式」

  4. 點按「Next」

  5. 按一下「瀏覽」,然後選取要還原的 BACPAC 檔案,接著按一下「下一步」

  6. 確認新資料庫名稱,然後點選「下一步」

  7. 按一下「Finish」,然後等待匯入作業完成。

  8. 按一下「關閉」即可退出精靈。

  9. 如要確認程序是否已順利完成,您可以展開 Object Explorer 中的「databases」資料夾,確認是否可以看到已遷移的資料庫。

使用 Always-On 可用性群組遷移

AOAG 是 SQL Server 的高可用性和災難復原功能。您可以使用 AOAG 遷移現有的 AOAG 叢集、獨立 SQL Server 和 Windows Server 容錯移轉叢集 (WSFC)。使用這個方法時,系統會在目的地 Google Cloud 環境中建立資料庫的複本,並在來源和目標之間同步處理資料。同步處理完成後,您就可以將目的地 Google Cloud 環境中的備用資源設為主要資源。這個方法可縮短停機時間,但需要額外的設定和設定。如果是簡單的遷移作業,且可以容許較長的服務中斷時間,其他方法可能更簡單且更具成本效益。

事前準備

開始遷移前,請確認下列事項:

  • 為確保資料安全且順利轉移,請在 AWS 和 Google Cloud之間建立對等連線。詳情請參閱「建立 Google Cloud 與 AWS 之間的高可用性 VPN 連線」。

  • 請確認來源資料庫是以獨立模式運作,且來源和目的地伺服器都已加入 Active Directory (AD)。如果來源資料庫已是使用 AOAG 的 WSFC 叢集的一部分,請參閱「使用分散式可用性群組遷移資料」。

  • 請確認來源 SQL Server 資料庫的所有加密金鑰都已安裝在所有將加入 AOAG 的 SQL Server 例項中。

準備 SQL Server 以加入 AOAG

如要將 SQL Server 新增至 AOAG,您必須在要加入群組的所有 SQL Server 例項上啟用 AOAG 功能。

如要針對所有要加入 AOAG 的 SQL Server VM 啟用 AOAG 功能,請按照下列步驟操作:

  1. 在 SQL Server 上啟用 AOAG。

    1. 使用 RDP 登入 SQL Server VM。

    2. 以管理員模式開啟 PowerShell。

    3. 執行下列指令,在 SQL Server 上啟用 AOAG。

      Enable-SqlAlwaysOn -ServerInstance $env:COMPUTERNAME -Force
      

    4. 執行下列指令,為資料複製作業開啟防火牆埠。

      netsh advfirewall firewall add rule name="Allow SQL Server replication" dir=in action=allow protocol=TCP localport=5022
      
    5. 針對要新增至 AOAG 的所有 SQL Server VM,重複執行步驟 1。

  2. 在 AD 中為 SQL Server 建立新使用者。

    $Credential = Get-Credential -UserName sql_server -Message 'Enter password'
    New-ADUser `
    -Name "sql_server" `
    -Description "SQL Admin account." `
    -AccountPassword $Credential.Password `
    -Enabled $true -PasswordNeverExpires $true
    
  3. 請針對所有 AOAG 中的 SQL Server 執行個體執行下列步驟:

    1. 開啟 SQL Server 組態管理工具
    2. 在導覽窗格中,選取「SQL Server Services」
    3. 在服務清單中,在「SQL Server (MSSQLSERVER)」上按一下滑鼠右鍵,然後選取「Properties」
    4. 在「以以下身分登入」下方,變更帳戶,如下所示:
      • 帳戶名稱: DOMAIN\sql_server,其中 DOMAIN 是 AD 網域的 NetBIOS 名稱。
      • 密碼:輸入您在本節先前步驟 2 中選擇的密碼。
    5. 按一下 [確定]

    6. 系統提示重新啟動 SQL Server 時,請選取「是」

SQL Server 現已在網域使用者帳戶下執行。

為 SQL Server 資料庫設定鏡像端點

如要為 AOAG 建立端點,請按照下列步驟操作:

  1. 如果來源 SQL Server 資料庫是使用透明資料加密 (TDE) 加密,請執行這個步驟,將憑證和金鑰備份、轉移及安裝到目的地 SQL Server。

  2. 使用 SSMS 登入 AWS 上的來源資料庫。

  3. 執行下列 T-SQL 指令,建立可用性群組的端點。

    USE [master]
    GO
    CREATE LOGIN [NET_DOMAIN\sql_server] FROM WINDOWS
    GO
    
    USE [DATABASE_NAME]
    GO
    CREATE USER [NET_DOMAIN\sql_server] FOR LOGIN [NET_DOMAIN\sql_server]
    GO
    
    USE [master]
    GO
    CREATE ENDPOINT migration_endpoint
        STATE=STARTED
        AS TCP (LISTENER_PORT=5022)
        FOR DATABASE_MIRRORING (ROLE=ALL);
    GO
    
    GRANT CONNECT ON ENDPOINT::[migration_endpoint] TO [NET_DOMAIN\sql_server]
    GO
    

    NET_DOMAIN 替換為 AD 網域的 NetBIOS 名稱,並將 DATABASE_NAME 替換為要遷移的資料庫名稱。

  4. 使用 SSMS 連線至 Google Cloud 目的地 SQL Server,然後執行下列 T-SQL 指令,建立資料庫鏡像端點。

    CREATE LOGIN [NET_DOMAIN\sql_server] FROM WINDOWS
    GO
    
    CREATE ENDPOINT migration_endpoint
        STATE=STARTED
        AS TCP (LISTENER_PORT=5022)
        FOR DATABASE_MIRRORING (ROLE=ALL);
    GO
    
    GRANT CONNECT ON ENDPOINT::[migration_endpoint] TO [NET_DOMAIN\sql_server]
    GO
    

    NET_DOMAIN 替換成 AD 網域的 NetBIOS 名稱。

  5. 在 SSMS 的物件總管中,依序前往「伺服器物件」>「端點」>「資料庫鏡像」,驗證端點。

    SMSS 端點檢視畫面。

建立 AOAG

如要建立 AOAG,請按照下列步驟操作:

  1. 使用 SSMS 登入 AWS 上的來源資料庫。

  2. 執行下列 T-SQL 指令,將資料庫復原模式設為完整,並進行完整備份。

    USE [master]
    GO
    
    ALTER DATABASE [DATABASE_NAME]
    SET RECOVERY FULL;
    BACKUP DATABASE [DATABASE_NAME]
    TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\DATABASE_NAME.bak';
    

    DATABASE_NAME 替換為要遷移的資料庫名稱。

  3. 執行下列 T-SQL 指令來建立 AOAG。

    USE [master]
    GO
    
    CREATE AVAILABILITY GROUP [migration-ag]
    WITH (
        AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
        DB_FAILOVER = OFF,
        DTC_SUPPORT = NONE,
        REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = 0
    )
    FOR DATABASE [DATABASE_NAME]
    REPLICA ON
    N'SOURCE_SERVERNAME' WITH (
        ENDPOINT_URL = 'TCP://SOURCE_HOSTNAME:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        BACKUP_PRIORITY = 50,
        SEEDING_MODE = AUTOMATIC,
        SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY)
    ),
    N'DEST_SERVERNAME' WITH (
        ENDPOINT_URL = 'TCP://DEST_HOSTNAME:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        BACKUP_PRIORITY = 50,
        SEEDING_MODE = AUTOMATIC,
        SECONDARY_ROLE(ALLOW_CONNECTIONS = READ_ONLY)
    );
    GO
    

    更改下列內容:

    • DATABASE_NAME包含要遷移的資料庫名稱。
    • SOURCE_SERVERNAME包含來源資料庫的伺服器名稱。
    • DEST_SERVERNAME包含目的地資料庫的伺服器名稱。
    • SOURCE_HOSTNAME包含來源的完整網域名稱 (FQDN)。
    • DEST_HOSTNAME包含目標的 FQDN。
  4. 在目的地資料庫上執行下列 T-SQL 指令,將資料庫新增至 AOAG。

    USE [master]
    GO
    
    ALTER AVAILABILITY GROUP [migration-ag] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
    ALTER AVAILABILITY GROUP [migration-ag] GRANT CREATE ANY DATABASE;
    GO
    
  5. Object Explorer 中或執行下列 T-SQL 指令,確認新建立的 AOAG 和資料庫狀態。

    SELECT * FROM sys.dm_hadr_availability_group_states
    GO
    

    驗證備用資料庫。

SQL Server AOAG 現已設定完成,並持續在 AWS 和 Google Cloud之間同步。接下來,您必須設定 WSFC 和事件監聽器,以便實現高可用性和災難復原。詳情請參閱「Windows Server 容錯移轉叢集與 SQL Server」和「可用性群組事件方塊監聽器是什麼」。

使用分散式可用性群組遷移

分散式可用性群組是橫跨兩個獨立可用性群組的特殊類型可用性群組。這項服務旨在提供跨地理位置分散的區域提供高可用性和災難復原功能。這項架構可在主要和次要可用性群組之間進行無縫資料複製和容錯移轉,非常適合用於資料遷移。詳情請參閱「分散式可用性群組」。

以下各節將說明如何使用分散式可用性群組遷移 SQL Server 資料庫。

事前準備

請確認您有 WSFC 與 SQL Server,並使用在 AWS 上執行的可用性群組,該群組含有虛擬網路名稱 (VNN) 的 Proxy 程式。

準備目的地環境

如要準備目的地環境,請按照下列步驟操作:

  1. 如要使用可用性群組,並在 Google Cloud上使用內部負載平衡器,為 WSFC 設定 SQL Server,請參閱「使用內部負載平衡器,為 SQL Server Always-on 可用性群組設定同步提交」。

  2. 在「Object Explorer」中,確認已建立 bookshelf-ag 並正在複製 bookshelf 資料庫。完成驗證後,請按照下列步驟從備援叢集中的兩個節點中移除可用性群組和資料庫。

    驗證目標叢集的初始狀態。

  3. 在 SSMS 中連線至 node-1,並儲存 bookshelf 事件方塊的 IP 位址。

    SELECT * FROM sys.availability_group_listeners
    
  4. 執行下列 T-SQL 指令,移除 bookshelf-ag 可用性群組和 bookshelf 資料庫。

    USE master
    GO
    
    DROP AVAILABILITY GROUP [bookshelf-ag]
    GO
    ALTER DATABASE [bookshelf] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
    GO
    DROP DATABASE [bookshelf]
    GO
    
  5. 在 SSMS 中針對 node-2 執行下列 T-SQL,移除複製的資料庫。

    USE master
    GO
    
    DROP DATABASE [bookshelf]
    GO
    

建立分散式可用性群組

如要建立可用性群組,以便用於分散式可用性群組,請按照下列步驟操作:

  1. node-1 上執行下列 T-SQL 指令。

    USE master
    GO
    
    CREATE AVAILABILITY GROUP [gcp-dest-ag]
    FOR
    REPLICA ON
        N'NODE-1' WITH
        (
            ENDPOINT_URL = N'TCP://NODE-1:5022',
            FAILOVER_MODE = MANUAL,
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            BACKUP_PRIORITY = 50,
            SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
            SEEDING_MODE = AUTOMATIC
        ),
        N'NODE-2' WITH
        (
            ENDPOINT_URL = N'TCP://NODE-2:5022',
            FAILOVER_MODE = MANUAL,
            AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
            BACKUP_PRIORITY = 50,
            SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),
            SEEDING_MODE = AUTOMATIC
        );
    GO
    
  2. 建立監聽器。

    USE master;
    GO
    
    ALTER AVAILABILITY GROUP [gcp-dest-ag]
    ADD LISTENER N'gcp-dest-lsnr' (
    WITH IP (
    (N'LISTENER_IP', N'255.255.255.0')
    ),
    PORT = 1433);
    GO
    

    LISTENER_IP 替換為 Listener 的 IP 位址。

  3. 使用 SSMS 連線至 node-2,然後執行下列 T-SQL 指令,將其新增至 gcp-dest-ag 可用性群組。

    USE master
    GO
    
    ALTER AVAILABILITY GROUP [gcp-dest-ag] JOIN;
    ALTER AVAILABILITY GROUP [gcp-dest-ag] GRANT CREATE ANY DATABASE;
    
  4. 使用 SSMS 連線至 AWS 上來源 SQL Server 的主要備用資源,然後執行下列 T-SQL 指令,建立分散式可用性群組。

    USE [master]
    GO
    
    CREATE AVAILABILITY GROUP [distributed-ag]
    WITH (DISTRIBUTED)
    AVAILABILITY GROUP ON
    'AWS_AG' WITH
    (
        LISTENER_URL = 'tcp://AWS_LISTENER:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        SEEDING_MODE = AUTOMATIC
    ),
    'gcp-dest-ag' WITH
    (
        LISTENER_URL = 'tcp://gcp-dest-lsnr:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        SEEDING_MODE = AUTOMATIC
    )
    GO
    

    AWS_AG 替換為 AWS 中的可用性群組名稱,並將 AWS_LISTENER 替換為 AWS 可用性群組的事件監聽器。

  5. node-1 的 SSMS 中執行下列 T-SQL 指令,將其新增至分散式可用性群組。

    USE [master]
    GO
    
    ALTER AVAILABILITY GROUP [distributed-ag]
    JOIN
    AVAILABILITY GROUP ON
    'AWS_AG' WITH
    (
        LISTENER_URL = 'tcp://AWS_LISTENER:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        SEEDING_MODE = AUTOMATIC
    ),
    'gcp-dest-ag' WITH
    (
        LISTENER_URL = 'tcp://gcp-dest-lsnr:5022',
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
        FAILOVER_MODE = MANUAL,
        SEEDING_MODE = AUTOMATIC
    )
    GO
    

    AWS_AG 替換為 AWS 中的可用性群組名稱,並將 AWS_LISTENER 替換為 AWS 可用性群組的事件監聽器。

  6. 在 `node-1' 上執行下列 T-SQL 指令,確認所有可用性群組都正常運作,並透過分散式可用性群組複製到 Google Cloud上的新 SQL Server 叢集

    SELECT * FROM sys.dm_hadr_availability_group_states
    GO
    

清除所用資源

完成教學課程後,您可以清除所建立的資源,這樣資源就不會占用配額並產生費用。下列各節將說明如何刪除或關閉這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

如要刪除專案:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.