Поделиться через


Восстановление базы данных в главном экземпляре кластера больших данных 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 из 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

Теперь чтобы экземпляр master 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 см. в следующем обзоре: