共用方式為


將資料庫還原至 SQL Server 巨量數據叢集主要實例

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

本文說明如何將現有的資料庫還原至 SQL Server 2019 巨量數據叢集的主要實例。 建議的方法是使用備份、複製和還原方法。

Important

MICROSOFT SQL Server 2019 巨量數據叢集已淘汰。 SQL Server 2019 巨量數據叢集的支援已於 2025 年 2 月 28 日結束。 如需詳細資訊,請參閱 Microsoft SQL Server 平臺上的公告部落格文章和巨量數據選項。

備份現有的資料庫

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

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

Tip

下載 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>

Example:

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

Example:

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'

Example:

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

Note

您只需要針對從舊版 SQL Server 還原的資料庫執行這些設定腳本。 如果您在 SQL Server 主要實例中建立新的資料庫,資料集區和存放集區的儲存程序已為您設定。

Next steps

若要深入瞭解 SQL Server 巨量數據叢集,請參閱下列概觀: