將 SQL 資料庫從 Windows 遷移至 Linux


本教學課程將逐步說明兩種不同的方法,將 SQL Server 資料庫從 Windows Server 遷移至 Linux Server。

本頁面將探討下列方法:

理想的遷移方法取決於特定資料庫可接受的停機時間和大小。最常用的技術是備份與還原方法。

費用

在本文件中,您會使用 Google Cloud的下列計費元件:

如要根據預測用量估算費用,請使用 Pricing Calculator

初次使用 Google Cloud 的使用者可能符合免費試用資格。

完成本文所述工作後,您可以刪除已建立的資源,避免繼續計費。詳情請參閱清除所用資源一節。

事前準備

請確認您已備妥以下項目:

  • Google Cloud 專案和虛擬私有雲 (VPC),可連線至 Active Directory 網域控制站。
  • 用於 Windows Server 容錯移轉叢集 (WSFC) 虛擬機器 (VM) 執行個體的子網路。

如要完成本指南,您也需要 Google Cloud 專案:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

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

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. 完成本教學課程後,您可以刪除建立的資源以避免繼續計費。詳情請參閱「清除所用資源」一節。

以下各節將說明如何將 SQL Server 資料庫從 Windows 伺服器遷移至 Linux 伺服器。

將 SQL 資料庫匯入 Linux

本節說明如何使用 SQL Server Management Studio (SSMS),從 Windows 型 SQL Server 匯出 SQL 資料庫,並匯入 Linux 型 SQL Server。

必要條件

如要將 SQL 資料庫匯入 Linux,您需要下列項目:

  • Windows 電腦,且符合下列條件:

    • 已安裝 SQL Server。
    • 已安裝 SSMS
    • 您要遷移的 SQL 資料庫位於這部電腦上。本教學課程使用 AdventureWorks2022 資料庫範例。
  • 已安裝 SQL Server 的 Linux 電腦。

從 Windows 型 SQL Server 匯出 SQL 資料庫

如要從 Windows 型 SQL Server 匯出 SQL 資料庫,請按照下列步驟操作:

  1. 在 Windows 電腦上,於 C: 磁碟機建立新資料夾,並命名為 export (c:\export)。
  2. 開啟 SSMS。
  3. 在「連線」視窗中輸入 localhost,然後按一下「連線」
  4. 在物件總管中,展開「資料庫」
  5. 以滑鼠右鍵按一下目標資料庫,選取「工作」,然後按一下「匯出資料層應用程式...」。系統會開啟「匯出資料」精靈。

    匯出資料。

  6. 在「匯出資料」精靈中,選取「下一步」

  7. 在「設定」分頁中,設定「匯出資料」精靈,將備份套件 (BACPAC) 檔案 (.bacpac) 儲存至本機磁碟。

  8. 指定資料夾和檔案名稱,如下所示:

    c:\export\MigrationFile.bacpac
    
  9. 點選「下一步」

  10. 檢查指定設定,然後按一下「完成」,開始匯出程序。 .bacpac 檔案已成功建立在您選擇的位置。 現在可以將其匯入目標 SQL Server。

將資料庫匯入 Linux

如要將 SQL 資料庫匯入以 Linux 為基礎的 SQL Server,請按照下列步驟操作:

  1. 開啟 SSMS。
  2. 在「連線」視窗中,輸入目標伺服器的 IP 位址,然後按一下「連線」
  3. 在物件總管中,以滑鼠右鍵按一下「資料庫」資料夾,然後選取「匯入資料層應用程式...」
  4. 指定在匯出程序中建立的 .bacpac 檔案。

    c:\export\MigrationFile.bacpac
    
  5. 點選「下一步」

  6. 指定 AdventureWorks2022

    AdventureWorks2022
    
  7. 確認資料和記錄路徑顯示 Linux 執行個體的預設設定。

  8. 點選「下一步」

  9. 檢查匯入設定,然後按一下「完成」,開始匯入。

    匯入 bacpac 檔案設定。

  10. 按一下「關閉」關閉匯入精靈。資料庫已可連線。

使用 SQL 備份與還原功能進行遷移

您可以使用備份和還原功能,將 Windows 上的 SQL Server 資料庫遷移至 Linux 上的 SQL Server。本節提供逐步指南,協助您使用這個方法將資料庫轉移至 Linux 環境。

必要條件

如要使用備份和還原方法遷移資料庫,您需要下列項目:

在 Windows 電腦上備份資料庫

您可以使用 SSMS 將資料庫備份到 Windows 檔案,步驟如下:

  1. 在 Windows 電腦上開啟 SSMS。
  2. 在「連線」視窗中輸入 localhost。
  3. 在物件總管中,展開「資料庫」
  4. 以滑鼠右鍵按一下目標資料庫,選取「工作」,然後點選「備份...」

    建立備份。

  5. 在「備份資料庫」視窗中,確認「備份類型」設為「完整」,「備份至」設為「磁碟」。請記下備份檔案的名稱和位置,舉例來說,SQL Server 2022 的資料庫備份預設位置為 C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup

    SQL 資料庫備份選項。

  6. 按一下「確定」即可開始備份。

將備份檔案複製到 Linux 電腦

您可以使用安全複製通訊協定 (SCP) 用戶端,將備份檔案上傳至 Linux 電腦。下列程序會使用 SCP 指令列用戶端。不過,您也可以使用 WinSCPGit Bash Shell 上傳檔案。

  1. 在 Windows 電腦上開啟��的命令提示字元,然後前往包含備份檔案的目錄。這個備份檔案是在「在 Windows 電腦上備份資料庫」一節中建立。例如:

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Backup\'
    
  2. 使用 scp 指令將檔案複製到目標 Linux 電腦。 下列範例使用先前建立的 MigrationBackup.bak 檔案。

    scp MigrationBackup.bak sysadmin@LINUX_INTERNAL_IP:./
    

    LINUX_INTERNAL_IP 替換為 Linux 電腦的 IP。

    將備份檔案複製到目標電腦。

移動備份檔案

如要在 Linux 電腦上將資料庫還原至 SQL Server,請務必確認備份檔案位於 mssql 使用者擁有的預設位置,也就是 /var/opt/mssql

如要將備份檔案移至 mssql 目錄,請按照下列步驟操作:

  1. 從 Windows 機器使用 SSH 連線至目標 Linux 機器。

    ssh sysadmin@LINUX_INTERNAL_IP
    

    LINUX_INTERNAL_IP 替換為 Linux 電腦的 IP。

  2. 建立新的備份目錄。

    sudo mkdir -p /var/opt/mssql/backup
    
  3. 將備份檔案移到新建立的目錄。

    sudo mv ~/MigrationBackup.bak /var/opt/mssql/backup
    

還原資料庫

您可以使用 SSMS,在 Linux 電腦上還原資料庫,步驟如下:

  1. 在 Windows 電腦上開啟 SSMS。
  2. 在「連線」視窗中,輸入 Linux 電腦的 IP 位址或主機���稱。
  3. 指定「登入」資訊和「密碼」
  4. 按一下「連線」

    選取要還原的備份檔案。

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

  6. 在「還原資料庫」視窗中,將「來源」設為「裝置」,然後按一下「...」開啟備份選取對話方塊。

  7. 在「選取備用裝置」對話方塊中,按一下「新增」

  8. 在檔案瀏覽器中,按一下「\var\opt\mssql\backup」目錄,然後選取已上傳的備份檔案。

  9. 按一下「確定」接受所選項目並關閉對話方塊。

  10. 查看系統填入的備份媒體,然後按一下「確定」

    選取要還原的備份檔案。

在 Linux 電腦上還原資料庫前,請務必更新 Linux 電腦上還原資料庫檔案的位置,因為 Windows 伺服器上的路徑在 Linux 伺服器上不存在。

  1. 按一下左選單中的「檔案」
  2. 選取「將所有檔案重新放置到資料夾」,將還原的檔案移至 SQL Server 預設資料目錄。
  3. 按一下「確定」即可開始還原程序。
  4. 列出伺服器上的所有資料庫,確認還原作業是否成功。 系統應會列出已還原的資料庫。

    SELECT Name FROM sys.Databases
    GO
    
  5. 在遷移的資料庫上執行其他查詢。

    USE AdventureWorks2022
    SELECT top 100 * FROM [Person].[Person]
    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.

後續步驟