Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом сценарии описаны шаги по переносу базы данных из экземпляра SQL Server в управляемый экземпляр SQL Azure в Azure Arc с помощью двух разных методов резервного копирования и восстановления.
Использование хранилища блобов Azure
Используйте хранилище BLOB-объектов Azure для миграции в Управляемый экземпляр SQL, поддерживаемый Azure Arc.
Этот метод использует Azure Blob Storage в качестве временного хранилища, в которое можно создать резервную копию и из которого можно восстановиться.
Предпосылки
- Установка расширения MSSQL для Visual Studio Code
- Установка обозревателя службы хранилища Azure
- Подписка Azure
Шаг 1. Подготовка хранилища BLOB-объектов в Azure
- Выполните действия, описанные в статье "Создание учетной записи хранения BLOB-объектов Azure"
- Запуск обозревателя службы хранилища Azure
- Войдите в Azure , чтобы получить доступ к хранилищу BLOB-объектов, созданному на предыдущем шаге
- Щелкните правой кнопкой мыши учетную запись хранения BLOB-объектов и выберите "Создать контейнер BLOB-объектов ", чтобы создать новый контейнер, в котором будет храниться файл резервной копии.
Шаг 2. Получите учетные данные для BLOB-объектов хранилища
В обозревателе хранилища Azure щелкните правой кнопкой мыши по контейнеру BLOB-данных, который только что был создан, и выберите "Получить Подписанный Доступ"
Выбор элемента "Чтение", " Запись " и "Список"
Выберите 'Создать'
Запишите URI и строку запроса на этом экране. Они потребуются в последующих шагах. Нажмите кнопку "Копировать ", чтобы сохранить в Блокноте или OneNote и т. д.
Закройте окно подписанного URL-адреса .
Шаг 3. Резервное копирование файла базы данных в хранилище BLOB-объектов Azure
На этом шаге мы подключимся к исходному SQL Server и создадим файл резервной копии базы данных, которую мы хотим перенести в управляемый экземпляр SQL — Azure Arc.
Запустите Visual Studio Code.
Подключитесь к экземпляру SQL Server с базой данных, которую требуется перенести в управляемый экземпляр SQL — Azure Arc
Щелкните базу данных правой кнопкой мыши и выберите команду "Создать запрос"
Подготовьте запрос в следующем формате, заменив заполнители, указанные
<...>с помощью сведений из подписи общего доступа на предыдущих шагах. После замены значений запустите запрос.IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';Аналогичным образом подготовьте команду BACKUP DATABASE следующим образом, чтобы создать файл резервной копии для контейнера BLOB-объектов. После замены значений запустите запрос.
BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'Откройте обозреватель службы хранилища Azure и убедитесь, что файл резервной копии, созданный на предыдущем шаге, отображается в контейнере BLOB-объектов.
Дополнительные сведения о резервном копировании по URL-адресу см. здесь:
Резервное копирование и восстановление SQL Server с помощью хранилища BLOB-объектов Azure
Резервное копирование по URL-адресу с помощью SQL Server Management Studio (SSMS)
Шаг 4. Восстановление базы данных из хранилища BLOB-объектов Azure в Управляемый экземпляр SQL — Azure Arc
В Visual Studio Code выполните вход и подключитесь к SQL Managed Instance - Azure Arc.
Разверните системные базы данных, щелкните правой кнопкой мыши базу данных master и выберите "Создать запрос".
В окне редактора запросов подготовьте и выполните тот же запрос из предыдущего шага, чтобы создать учетные данные.
IF NOT EXISTS (SELECT * FROM sys.credentials WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>') CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '<SAS_TOKEN>';Подготовьте и выполните приведенную ниже команду, чтобы убедиться, что файл резервной копии доступен для чтения и нетронут.
RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'Подготовка и выполнение команды RESTORE DATABASE , как показано ниже, чтобы восстановить файл резервной копии в базе данных в Управляемом экземпляре SQL — Azure Arc
RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak' WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf' ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf' ,RECOVERY; GO
Метод 2. Копирование файла резервной копии в управляемый экземпляр SQL Azure — pod Azure Arc с помощью kubectl
В этом методе показано, как создать файл резервной копии с помощью любого метода, а затем скопировать его в локальное хранилище в модуле управляемого экземпляра SQL Azure, чтобы восстановить его из него так же, как и в обычной файловой системе Windows или Linux. В этом сценарии вы будете использовать команду kubectl cp для копирования файла из одного места в файловую систему pod.
Предпосылки
- Установите и настройте kubectl, чтобы указать кластер Kubernetes, где развернуты службы данных Azure Arc.
- Установите и подключите SQL Server Management Studio (SSMS) к SQL Server, где вы хотите создать файл резервного копирования, ИЛИ используйте уже существующий файл .bak в вашей локальной файловой системе.
Шаг 1. Резервное копирование базы данных, если вы еще не сделали
Резервное копирование базы данных SQL Server в локальный путь к файлу, как и любое обычное резервное копирование SQL Server на диск:
BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO
Шаг 2. Копирование файла резервной копии в файловую систему pod
Найдите имя модуля pod, в котором развернут экземпляр SQL. Обычно это должно выглядеть следующим образом. pod/<sqlinstancename>-0
Получите список всех модулей pod, выполнив следующую команду:
kubectl get pods -n <namespace of data controller>
Пример:
Скопируйте файл резервной копии из локального хранилища в модуль pod SQL в кластере.
kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi
#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi
Шаг 3. Восстановление базы данных
Подготовка и запуск команды RESTORE для восстановления файла резервной копии в управляемом экземпляре SQL Azure — Azure Arc
RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'
,RECOVERY;
GO
Пример:
RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'
,RECOVERY;
GO
Связанный контент
Узнайте больше о функциях и возможностях управляемого экземпляра SQL с поддержкой Azure Arc