分享方式:


將資料庫還原至 SQL Server 巨量資料叢集的主要執行個體

適用於:SQL Server 2019 (15.x)

本文描述如何將現有的資料庫還原至 SQL Server 2019 巨量資料叢集的主要執行個體。 建議的方法是使用備份、複製和還原方法。

重要

Microsoft SQL Server 2019 巨量資料叢集附加元件將會淘汰。 SQL Server 2019 巨量資料叢集的支援將於 2025 年 2 月 28 日結束。 平台上將完全支援含軟體保證 SQL Server 2019 的所有現有使用者,而且軟體將會持續透過 SQL Server 累積更新來維護,直到該時間為止。 如需詳細資訊,請參閱公告部落格文章Microsoft SQL Server 平台上的巨量資料選項

備份現有的資料庫

首先,從 Windows 或 Linux 上的 SQL Server 備份現有的 SQL Server 資料庫。 搭配 Transact-SQL 或 SQL Server Management Studio (SSMS) 等工具使用標準備份技術。

本文說明如何還原 AdventureWorks 資料庫,但您可以使用任意資料庫備份。

提示

下載 AdventureWorks 備份

複製備份檔案

將備份檔案複製到 Kubernetes 叢集之主要執行個體 Pod 中的 SQL Server 容器。

kubectl cp <path to .bak file> master-0:/var/tmp/<.bak filename> -c mssql-server -n <name of your big data cluster>

範例:

kubectl cp ~/Downloads/AdventureWorks2022.bak master-0:/var/tmp/AdventureWorks2022.bak -c mssql-server -n clustertest

接著,確認備份檔案已複製到 Pod 容器。

kubectl exec -it master-0 -n <name of your big data cluster> -c mssql-server -- bin/bash
cd /var/
ls /tmp
exit

範例:

kubectl exec -it master-0 -n clustertest -c mssql-server -- bin/bash
cd /var/
ls /tmp
exit

還原備份檔案

接下來,將資料庫備份還原至 SQL Server 主要執行個體。 如果您想要還原在 Windows 上建立的資料庫備份,您必須取得檔案的名稱。 在 Azure Data Studio 中,連線到主要執行個體並執行此 SQL 指令碼:

RESTORE FILELISTONLY FROM DISK='/tmp/<db file name>.bak'

範例:

RESTORE FILELISTONLY FROM DISK='/tmp/AdventureWorks2022.bak'

備份檔案清單

現在,還原資料庫。 以下為範例指令碼。 請根據您的資料庫備份,視需要取代名稱/路徑。

RESTORE DATABASE AdventureWorks2022
FROM DISK='/tmp/AdventureWorks2022.bak'
WITH MOVE 'AdventureWorks2022_Data' TO '/var/opt/mssql/data/AdventureWorks2022_Data.mdf',
        MOVE 'AdventureWorks2022_Log' TO '/var/opt/mssql/data/AdventureWorks2022_Log.ldf',
        MOVE 'AdventureWorks2022_mod' TO '/var/opt/mssql/data/AdventureWorks2022_mod'

設定資料集區和 HDFS 存取

現在,若要讓 SQL Server 主要執行個體存取資料集區和 HDFS,請執行資料集區和存放集區預存程序。 對您剛還原的資料庫執行下列 Transact-SQL 指令碼:

USE AdventureWorks2022;
GO
-- Create the SqlDataPool data source:
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlDataPool')
  CREATE EXTERNAL DATA SOURCE SqlDataPool
  WITH (LOCATION = 'sqldatapool://controller-svc/default');

-- Create the SqlStoragePool data source:
IF NOT EXISTS(SELECT * FROM sys.external_data_sources WHERE name = 'SqlStoragePool')
   CREATE EXTERNAL DATA SOURCE SqlStoragePool
   WITH (LOCATION = 'sqlhdfs://controller-svc/default');
GO

注意

您只需要針對從舊版 SQL Server 還原的資料庫執行這些安裝指令碼。 如果您在 SQL Server 主要執行個體中建立新的資料庫,會為您設定好資料集區和存放集區預存程序。

後續步驟

若要深入了解 SQL Server 巨量資料叢集,請參閱下列概觀: