Restaurar o banco de dados de exemplo AdventureWorks na Instância Gerenciada de SQL - Azure Arc

O AdventureWorks é um banco de dados de exemplo que contém um banco de dados OLTP geralmente usado em tutoriais e exemplos. Ele é fornecido e mantido pela Microsoft como parte do repositório GitHub de exemplos de SQL Server.

Este documento descreve um processo simples de restauração do banco de dados de exemplo AdventureWorks em sua Instância Gerenciada de SQL - Azure Arc.

Baixar o arquivo de backup do AdventureWorks

Baixe o arquivo de backup do AdventureWorks (.bak) no contêiner de sua Instância Gerenciada de SQL. Neste exemplo, use o comando kubectl exec para executar remotamente um comando no contêiner da Instância Gerenciada de SQL para baixar nele o arquivo. bak. Baixe o arquivo de qualquer local acessível pelo wget se você quiser efetuar pull de outros arquivos de backup de banco de dados no contêiner da Instância Gerenciada de SQL. Uma vez no contêiner da Instância Gerenciada de SQL, a restauração é fácil com o T-SQL RESTORE DATABASE padrão.

Execute um comando como este para baixar o arquivo. bak substituindo o valor do nome do pod e o nome do namespace antes da execução.

Observação

Seu contêiner precisará de conectividade com a Internet sobre 443 para baixar o arquivo do GitHub

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

Exemplo

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

Restaurar o banco de dados AdventureWorks

Também é possível executar um comando exec kubectl para usar a ferramenta da CLI sqlcmd incluída no contêiner da Instância Gerenciada de SQL a fim de executar o comando T-SQL para RESTORE DATABASE.

Execute um comando como este para restaurar o banco de dados. Substitua o valor do nome do pod, a senha e o nome do namespace antes da execução.

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'"

Exemplo

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'"