適用於: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
複製備份檔
將備份檔複製到 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 巨量數據叢集,請參閱下列概觀: