共用方式為


移轉:SQL Server 至 Azure Arc 所啟用的 SQL 受控執行個體

此情節會逐步引導您完成遷移步驟,透過兩種不同的備份和還原方式,將資料庫從 SQL Server 執行個體,遷移到 Azure Arc 中的 Azure SQL 受控執行個體。

使用 Azure Blob 儲存體

使用 Azure Blob 儲存體來移轉至 Azure Arc 所啟用的 SQL 受控執行個體。

此方法會將 Azure Blob 儲存體作為暫存位置,您可以將資料備份到該位置,並從中還原資料。

必要條件

步驟 1:佈建 Azure Blob 儲存體

  1. 請遵循建立 Azure Blob 儲存體帳戶中所述的步驟
  2. 啟動 Azure 儲存體總管
  3. 登入 Azure,以存取在上一個步驟中建立的 Blob 儲存體
  4. 以滑鼠右鍵按一下 Blob 儲存體帳戶,然後選取 [建立 Blob 容器],以建立可儲存備份檔案的新容器

步驟 2:取得儲存體 Blob 認證

  1. 在 Azure 儲存體總管中,以滑鼠右鍵按一下剛建立的 Blob 容器,然後選取 [取得共用存取簽章]

  2. 依序選取 [讀取]、[寫入] 和 [清單]

  3. 選取 [建立]

    記下此畫面中的 URI 和查詢字串。 您需要在後續步驟中使用這兩個項目。 按一下 [複製] 按鈕,以儲存至記事本或 OneNote 等應用程式。

  4. 關閉 [共用存取簽章] 視窗。

步驟 3:將資料庫檔案備份至 Azure Blob 儲存體

在此步驟中,我們會連線到來源 SQL Server,並建立資料庫的備份檔案,該檔案將會遷移到已啟用 Azure Arc 的 SQL 受控執行個體。

  1. 啟動 Azure Data Studio

  2. 連線到具備所需資料庫的 SQL Server 執行個體,該資料庫將會遷移到已啟用 Azure Arc 的 SQL 受控執行個體

  3. 在資料庫上方按一下滑鼠右鍵,然後選取 [新增查詢]

  4. 使用先前步驟中共用存取簽章的相關資訊,以下列格式準備查詢,這些格式可取代 <...> 所指出的預留位置。 取代值之後,請執行查詢。

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
       SECRET = '<SAS_TOKEN>';  
    
  5. 同樣地,請依照下列方式準備 BACKUP DATABASE 命令,以建立 Blob 容器的備份檔案。 取代值之後,請執行查詢。

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. 開啟 Azure 儲存體總管,並驗證在上一個步驟中建立的備份檔案是否顯示在 Blob 容器中

請參閱下列文章,了解如何將資料備份至 URL:

步驟 4:將資料庫從 Azure Blob 儲存體還原至已啟用 Azure Arc 的 SQL 受控執行個體

  1. 從 Azure Data Studio 登入,並連線到已啟用 Azure Arc 的 SQL 受控執行個體。

  2. 展開 [系統資料庫] ,以滑鼠右鍵按一下 [master] 資料庫,然後選取 [新查詢]

  3. 在查詢編輯器視窗中,準備並執行上一個步驟中的相同查詢以建立認證。

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
      SECRET = '<SAS_TOKEN>';  
    
  4. 準備並執行下列命令,以確認備份檔案是否完整且可供讀取。

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. 請依照下列方式準備並執行 RESTORE DATABASE 命令,將備份檔案還原至已啟用 Azure Arc 的 SQL 受控執行個體資料庫

    RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf'
    ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf'
    ,RECOVERY;  
    GO
    

方法 2:使用 kubectl,將備份檔案複製到已啟用 Azure Arc 的 Azure SQL 受控執行個體

此方法說明如何取得您透過任何方式所建立的備份檔案,並將其複製到 Azure SQL 受控執行個體 Pod 中的本機儲存體,藉此讓您從其中還原檔案,如同在 Windows 或 Linux 的一般檔案系統還原檔案。 在此案例中,您將使用命令 kubectl cp,將檔案從一個位置複製到 Pod 的檔案系統。

必要條件

  • 安裝並設定 kubectl,指向已部署 Azure Arc 資料服務的 Kubernetes 叢集
  • 請備有 Azure Data Studio 等工具,或事先安裝 SQL Server 管理伺服器,並連線到您想建立備份檔案的 SQL Server;或者備有已在本機檔案系統上建立的現有 .bak 檔案。

步驟 1:備份資料庫 (如果尚未備份)

將 SQL Server 資料庫備份到本機檔案路徑,如同將任何一般的 SQL Server 資料備份到磁碟:

BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO

步驟 2:將備份檔案複製到 Pod 的檔案系統

尋找已部署 sql 執行個體的 Pod 名稱。 名稱通常會如同此範例:pod/<sqlinstancename>-0

執行下列項目以取得所有 Pod 的清單:

kubectl get pods -n <namespace of data controller>

範例:

將備份檔案從本機儲存體複製到叢集中的 sql Pod。

kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi

#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi

步驟 3:還原資料庫

準備並執行 RESTORE 命令,將備份檔案還原至已啟用 Azure Arc 的 Azure SQL 受控執行個體

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'  
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'  
,RECOVERY;  
GO

範例:

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'  
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'  
,RECOVERY;  
GO

深入了解已啟用 Azure Arc 的 SQL 受控執行個體的特性和功能

從建立資料控制器開始

建立已啟用 Azure Arc 的 SQL 受控執行個體