Восстановление образца базы данных AdventureWorks в SQL Managed Instance — Azure Arc

AdventureWorks — это пример базы данных, содержащий базу данных OLTP, которая используется в учебниках. Он предоставляется и обслуживается корпорацией Майкрософт в составе репозитория примеров для SQL Server на GitHub.

В этом документе описывается простой процесс получения образца базы данных AdventureWorks в SQL Managed Instance — Azure ARC.

Скачивание файла резервной копии AdventureWorks

Скачайте файл резервной копии AdventureWorks (BAK) в контейнер SQL Managed Instance. В этом примере используйте команду kubectl exec, чтобы удаленно выполнить команду в контейнере SQL Managed Instance, чтобы скачать bak-файл в контейнер. Скачайте этот файл из любого расположения, доступного в wget, если у вас есть другие файлы резервной копии базы данных, которые нужно запрашивать в контейнере SQL Managed Instance. В контейнере SQL Managed Instance его легко восстановить с помощью стандартного RESTORE DATABASE T-SQL.

Выполните подобную команду, чтобы скачать файлы, указав нужное имя pod и имя пространства имен:

Примечание.

Чтобы скачать файл из GitHub, вашему контейнеру потребуется подключение к Интернету через порт 443.

kubectl exec <SQL pod name> -n <namespace name> -c arc-sqlmi -- wget https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2019.bak -O /var/opt/mssql/data/AdventureWorks2019.bak

Пример

kubectl exec sqltest1-0 -n arc -c arc-sqlmi -- wget https://github.com/Microsoft/sql-server-samples/releases/download/adventureworks/AdventureWorks2019.bak -O /var/opt/mssql/data/AdventureWorks2019.bak

Базу данных AdventureWorks можно восстановить.

Аналогичным образом можно выполнить команду Exec kubectl, чтобы использовать средство CLI sqlcmd, включенное в контейнер SQL Managed Instance, чтобы выполнить команду T-SQL для восстановления базы данных.

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

kubectl exec <SQL pod name> -n <namespace name> -c arc-sqlmi -- /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P <password> -Q "RESTORE DATABASE AdventureWorks2019 FROM  DISK = N'/var/opt/mssql/data/AdventureWorks2019.bak' WITH MOVE 'AdventureWorks2017' TO '/var/opt/mssql/data/AdventureWorks2019.mdf', MOVE 'AdventureWorks2017_Log' TO '/var/opt/mssql/data/AdventureWorks2019_Log.ldf'"

Пример

kubectl exec sqltest1-0 -n arc -c arc-sqlmi -- /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P MyPassword! -Q "RESTORE DATABASE AdventureWorks2019 FROM DISK = N'/var/opt/mssql/data/AdventureWorks2019.bak' WITH MOVE 'AdventureWorks2017' TO '/var/opt/mssql/data/AdventureWorks2019.mdf', MOVE 'AdventureWorks2017_Log' TO '/var/opt/mssql/data/AdventureWorks2019_Log.ldf'"