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