Восстановление базы данных на главном экземпляре кластера больших данных SQL Server

Область применения: SQL Server 2019 (15.x)

В этой статье описывается восстановление существующей базы данных в главном экземпляре Кластеры больших данных SQL Server 2019. Рекомендуется использовать метод резервного копирования, копирования и восстановления.

Внимание

Поддержка надстройки "Кластеры больших данных" Microsoft SQL Server 2019 будет прекращена. Мы прекратим поддержку Кластеров больших данных SQL Server 2019 28 февраля 2025 г. Все существующие пользователи SQL Server 2019 с Software Assurance будут полностью поддерживаться на платформе, и программное обеспечение будет продолжать поддерживаться с помощью накопительных обновлений SQL Server до этого времени. Дополнительные сведения см. в записи блога объявлений и в статье о параметрах больших данных на платформе Microsoft SQL Server.

Создайте резервную копию существующей базы данных.

Сначала создайте резервную копию существующей базы данных SQL Server на Windows или Linux. Используйте стандартные методы резервного копирования с помощью Transact-SQL или с помощью такого средства, как SQL Server Management Studio (SSMS).

В этой статье показано, как восстановить базу данных AdventureWorks, но можно использовать резервную копию любой базы данных.

Совет

Скачайте резервную копию AdventureWorks.

Копирование файла резервной копии

Скопируйте файл резервной копии в контейнер SQL Server в модуле Pod главного экземпляра кластера Kubernetes.

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 см. в следующем обзоре: