Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server em Linux
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server em uma imagem de contêiner Linux do SQL Server 2017 (14.x) em execução no Docker.
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server em uma imagem de contêiner Linux do SQL Server 2019 (15.x) em execução no Docker.
Este tutorial demonstra como mover e restaurar um arquivo de backup do SQL Server em uma imagem de contêiner do SQL Server 2022 (16.x) Linux em execução no Docker.
Este tutorial demonstra como mover e restaurar um ficheiro de backup do SQL Server para uma imagem de contentor Linux SQL Server 2025 (17.x) a correr no Docker.
- Obtenha e execute a imagem mais recente do container SQL Server para Linux.
- Copie o arquivo de banco de dados da Wide World Importers para o contêiner.
- Restaure o banco de dados no contêiner.
- Execute instruções Transact-SQL para exibir e modificar o banco de dados.
- Faça backup do banco de dados modificado.
Pré-requisitos
- Um ambiente de execução de contentor instalado, como Docker ou Podman
- Instale o sqlcmdmais recente
- Requisitos do sistema para SQL Server no Linux
Opções de implantação
Esta seção fornece opções de implantação para seu ambiente.
sqlcmd atualmente não suporta o parâmetro MSSQL_PID ao criar contêineres. Se você usar as instruções sqlcmd neste tutorial, criará um contêiner com a edição Developer do SQL Server. Use as instruções da interface de linha de comando (CLI) para criar um contêiner usando a licença de sua escolha. Para obter mais informações, consulte Implantar e conectar-se a contêineres Linux do SQL Server.
- CLI
- sqlcmd
Puxe e execute a imagem do contêiner
Abra um terminal bash no Linux.
Extraia a imagem do contêiner Linux do SQL Server 2017 (14.x) do Registro de contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2017-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2017-latestAtenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Este comando cria um contêiner do SQL Server 2017 (14.x) com a edição Developer (padrão). A porta
1433do SQL Server é exposta no host como porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, consulte Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar um status deUp, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, consulte Solucionar problemas de contêineres do SQL Server Docker.
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Puxe a imagem do contêiner Linux do SQL Server 2019 (15.x) do Registro de Contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2019-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2019-latestAtenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Este comando cria um contêiner do SQL Server 2019 (15.x) com a edição Developer (padrão). A porta
1433do SQL Server é exposta no host como porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, consulte Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar um status deUp, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, consulte Solucionar problemas de contêineres do SQL Server Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Extraia a imagem do contêiner Linux do SQL Server 2022 (16.x) do Registro de contêiner da Microsoft.
sudo docker pull mcr.microsoft.com/mssql/server:2022-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2022-latestAtenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Este comando cria um contêiner do SQL Server 2022 (16.x) com a edição Developer (padrão). A porta
1433do SQL Server é exposta no host como porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, consulte Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar um status deUp, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, consulte Solucionar problemas de contêineres do SQL Server Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Abra um terminal bash no Linux.
Extrai a imagem do contentor SQL Server 2025 (17.x) Linux do Microsoft Container Registry.
sudo docker pull mcr.microsoft.com/mssql/server:2025-latestPara executar a imagem de contêiner com o Docker, você pode usar o seguinte comando:
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql1' -p 1401:1433 \ -v sql1data:/var/opt/mssql \ -d mcr.microsoft.com/mssql/server:2025-latestAtenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Este comando cria um contentor SQL Server 2025 (17.x) com a edição de Desenvolvimento (por defeito). A porta
1433do SQL Server é exposta no host como porta1401. O parâmetro-v sql1data:/var/opt/mssqlopcional cria um contêiner de volume de dados chamadosql1data. Isso é usado para persistir os dados criados pelo SQL Server.Importante
Este exemplo usa um contêiner de volume de dados no Docker. Para obter mais informações, consulte Configurar imagens de contêiner do SQL Server no Docker.
Para exibir seus contêineres, use o comando
docker ps.sudo docker ps -aSe a coluna
STATUSmostrar um status deUp, o SQL Server está sendo executado no contêiner e escutando na porta especificada na colunaPORTS. Se a colunaSTATUSdo contêiner do SQL Server mostrarExited, consulte Solucionar problemas de contêineres do SQL Server Docker.$ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 941e1bdf8e1d mcr.microsoft.com/mssql/server/mssql-server-linux "/bin/sh -c /opt/m..." About an hour ago Up About an hour 0.0.0.0:1401->1433/tcp sql1
Alterar a palavra-passe do administrador do sistema (SA)
A conta sa é um administrador de sistema na instância do SQL Server criada durante a instalação. Depois de criar o contêiner do SQL Server, a variável de ambiente MSSQL_SA_PASSWORD especificada pode ser detetada executando echo $MSSQL_SA_PASSWORD no contêiner. Por motivos de segurança, altere a sua palavra-passe sa:
Escolha uma senha forte para usar na conta
sa. Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.Use
docker execpara executar o utilitário sqlcmd para alterar a senha através de uma instrução Transact-SQL. Substitua<old-password>e<new-password>por seus próprios valores de senha:Importante
A variável de ambiente
SA_PASSWORDfoi preterida. UseMSSQL_SA_PASSWORDem vez disso.sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U sa -P '<old-password>' \ -Q 'ALTER LOGIN sa WITH PASSWORD="<new-password>"'docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd ` -S localhost -U sa -P "<old-password>" ` -Q "ALTER LOGIN sa WITH PASSWORD='<new-password>'"
Copiar um arquivo de backup para o contêiner
Este tutorial usa os bancos de dados de exemplo Wide World Importers para Microsoft SQL. Use as etapas a seguir para baixar e copiar o arquivo de backup do banco de dados Wide World Importers para seu contêiner do SQL Server.
Primeiro, use
docker execpara criar uma pasta de backup. O comando a seguir cria um diretório/var/opt/mssql/backupdentro do contêiner do SQL Server.sudo docker exec -it sql1 mkdir /var/opt/mssql/backupEm seguida, transfira o ficheiro WideWorldImporters-Full.bak para o seu computador anfitrião. Os comandos a seguir navegam até o diretório home/user e baixam o arquivo de backup como
wwi.bak.cd ~ curl -L -o wwi.bak 'https://github.com/Microsoft/sql-server-samples/releases/download/wide-world-importers-v1.0/WideWorldImporters-Full.bak'Use
docker cppara copiar o arquivo de backup para o contêiner no diretório/var/opt/mssql/backup.sudo docker cp wwi.bak sql1:/var/opt/mssql/backup
Restaurar o banco de dados
O arquivo de backup agora está localizado dentro do contêiner. Antes de restaurar o backup, é importante conhecer os nomes de arquivos lógicos e os tipos de arquivos dentro do backup. Os comandos Transact-SQL a seguir inspecionam o backup e executam a restauração usando sqlcmd no contêiner.
Dica
Este tutorial usa sqlcmd dentro do contêiner, porque o contêiner vem com essa ferramenta pré-instalada. No entanto, você também pode executar instruções Transact-SQL com outras ferramentas de cliente fora do contêiner, como extensão do SQL Server para Visual Studio Code ou Usar o SQL Server Management Studio no Windows para gerenciar o SQL Server no Linux. Para se conectar, use a porta de host que foi mapeada para a porta 1433 no contêiner. Neste exemplo, o anfitrião e a porta são localhost,1401 na máquina anfitriã e Host_IP_Address,1401 remotamente.
Execute sqlcmd dentro do contêiner para listar nomes de arquivos lógicos e caminhos dentro do backup. Isto é feito com a instrução
RESTORE FILELISTONLYTransact-SQL.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd -S localhost \ -U sa -P '<new-password>' \ -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/wwi.bak"' \ | tr -s ' ' | cut -d ' ' -f 1-2Os resultados devem ser semelhantes aos seguintes resultados:
LogicalName PhysicalName ------------------------------------------ WWI_Primary D:\Data\WideWorldImporters.mdf WWI_UserData D:\Data\WideWorldImporters_UserData.ndf WWI_Log E:\Log\WideWorldImporters.ldf WWI_InMemory_Data_1 D:\Data\WideWorldImporters_InMemory_Data_1Chame o comando
RESTORE DATABASEpara restaurar o banco de dados dentro do contêiner. Especifique novos caminhos para cada um dos arquivos na etapa anterior.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'RESTORE DATABASE WideWorldImporters FROM DISK = "/var/opt/mssql/backup/wwi.bak" WITH MOVE "WWI_Primary" TO "/var/opt/mssql/data/WideWorldImporters.mdf", MOVE "WWI_UserData" TO "/var/opt/mssql/data/WideWorldImporters_userdata.ndf", MOVE "WWI_Log" TO "/var/opt/mssql/data/WideWorldImporters.ldf", MOVE "WWI_InMemory_Data_1" TO "/var/opt/mssql/data/WideWorldImporters_InMemory_Data_1"'Os resultados devem ser semelhantes aos seguintes resultados:
Processed 1464 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1. Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1. Processed 33 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1. Processed 3862 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1. Converting database 'WideWorldImporters' from version 852 to the current version 869. Database 'WideWorldImporters' running the upgrade step from version 852 to version 853. Database 'WideWorldImporters' running the upgrade step from version 853 to version 854. Database 'WideWorldImporters' running the upgrade step from version 854 to version 855. Database 'WideWorldImporters' running the upgrade step from version 855 to version 856. Database 'WideWorldImporters' running the upgrade step from version 856 to version 857. Database 'WideWorldImporters' running the upgrade step from version 857 to version 858. Database 'WideWorldImporters' running the upgrade step from version 858 to version 859. Database 'WideWorldImporters' running the upgrade step from version 859 to version 860. Database 'WideWorldImporters' running the upgrade step from version 860 to version 861. Database 'WideWorldImporters' running the upgrade step from version 861 to version 862. Database 'WideWorldImporters' running the upgrade step from version 862 to version 863. Database 'WideWorldImporters' running the upgrade step from version 863 to version 864. Database 'WideWorldImporters' running the upgrade step from version 864 to version 865. Database 'WideWorldImporters' running the upgrade step from version 865 to version 866. Database 'WideWorldImporters' running the upgrade step from version 866 to version 867. Database 'WideWorldImporters' running the upgrade step from version 867 to version 868. Database 'WideWorldImporters' running the upgrade step from version 868 to version 869. RESTORE DATABASE successfully processed 58455 pages in 18.069 seconds (25.273 MB/sec).
Verifique o banco de dados restaurado
Execute a seguinte consulta para exibir uma lista de nomes de banco de dados em seu contêiner:
sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P '<new-password>' \
-Q 'SELECT name FROM sys.databases'
Você deve ver WideWorldImporters na lista de bancos de dados.
Fazer uma alteração
Siga estas etapas para fazer uma alteração no banco de dados.
Execute uma consulta para exibir os 10 principais itens na tabela
Warehouse.StockItems.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT TOP 10 StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems ORDER BY StockItemID'Você verá uma lista de identificadores e nomes de itens:
StockItemID StockItemName ----------- ----------------- 1 USB missile launcher (Green) 2 USB rocket launcher (Gray) 3 Office cube periscope (Black) 4 USB food flash drive - sushi roll 5 USB food flash drive - hamburger 6 USB food flash drive - hot dog 7 USB food flash drive - pizza slice 8 USB food flash drive - dim sum 10 drive variety pack 9 USB food flash drive - banana 10 USB food flash drive - chocolate barAtualize a descrição do primeiro item com a seguinte instrução
UPDATE:sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'UPDATE WideWorldImporters.Warehouse.StockItems SET StockItemName="USB missile launcher (Dark Green)" WHERE StockItemID=1; SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'Deverá ver uma saída semelhante ao seguinte texto:
(1 rows affected) StockItemID StockItemName ----------- ------------------------------------ 1 USB missile launcher (Dark Green)
Criar um novo backup
Depois de restaurar seu banco de dados em um contêiner, você também pode querer criar regularmente backups de banco de dados dentro do contêiner em execução. As etapas seguem um padrão semelhante às etapas anteriores, mas em sentido inverso.
Use o comando
BACKUP DATABASETransact-SQL para criar um backup de banco de dados no contêiner. Este tutorial cria um novo arquivo de backup,wwi_2.bak, no diretório/var/opt/mssql/backupcriado anteriormente.sudo docker exec -it sql1 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q "BACKUP DATABASE [WideWorldImporters] TO DISK = N'/var/opt/mssql/backup/wwi_2.bak' WITH NOFORMAT, NOINIT, NAME = 'WideWorldImporters-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"Os resultados devem ser semelhantes aos seguintes resultados:
10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. Processed 1200 pages for database 'WideWorldImporters', file 'WWI_Primary' on file 1. Processed 53096 pages for database 'WideWorldImporters', file 'WWI_UserData' on file 1. 80 percent processed. Processed 3865 pages for database 'WideWorldImporters', file 'WWI_InMemory_Data_1' on file 1. Processed 938 pages for database 'WideWorldImporters', file 'WWI_Log' on file 1. 100 percent processed. BACKUP DATABASE successfully processed 59099 pages in 25.056 seconds (18.427 MB/sec).Em seguida, copie o arquivo de backup para fora do contêiner e para sua máquina host.
cd ~ sudo docker cp sql1:/var/opt/mssql/backup/wwi_2.bak wwi_2.bak ls -l wwi*
Usar os dados persistentes
Além de fazer backups de banco de dados para proteger seus dados, você também pode usar contêineres de volume de dados. O início deste tutorial criou o contêiner sql1 com o parâmetro -v sql1data:/var/opt/mssql. O contêiner de volume de dados sql1data persiste os dados /var/opt/mssql mesmo depois que o contêiner é removido. As etapas a seguir removem completamente o contêiner sql1 e, em seguida, criam um novo contêiner, sql2, com os dados persistentes.
Pare o contentor
sql1.sudo docker stop sql1Retire o recipiente. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente e os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latestA base de dados Wide World Importers está agora no novo contentor. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A palavra-passe
sanão é a palavra-passe que especificou para o contentorsql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados a partir dosql1, incluindo a senha alterada do início do tutorial. Na verdade, algumas opções como esta são ignoradas devido à restauração dos dados em /var/opt/mssql. Por esse motivo, a senha é<new-password>como mostrado aqui.
Pare o contentor
sql1.sudo docker stop sql1Retire o recipiente. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente e os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latestA base de dados Wide World Importers está agora no novo contentor. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A palavra-passe
sanão é a palavra-passe que especificou para o contentorsql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados a partir dosql1, incluindo a senha alterada do início do tutorial. Na verdade, algumas opções como esta são ignoradas devido à restauração dos dados em /var/opt/mssql. Por esse motivo, a senha é<new-password>como mostrado aqui.
Pare o contentor
sql1.sudo docker stop sql1Retire o recipiente. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente e os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2022-latestA base de dados Wide World Importers está agora no novo contentor. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A palavra-passe
sanão é a palavra-passe que especificou para o contentorsql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados a partir dosql1, incluindo a senha alterada do início do tutorial. Na verdade, algumas opções como esta são ignoradas devido à restauração dos dados em/var/opt/mssql. Por esse motivo, a senha é<new-password>como mostrado aqui.
Pare o contentor
sql1.sudo docker stop sql1Retire o recipiente. Isso não exclui o contêiner de volume de dados
sql1datacriado anteriormente e os dados persistentes nele.sudo docker rm sql1Crie um novo contêiner,
sql2e reutilize o contêiner de volume de dadossql1data.sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<password>' \ --name 'sql2' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v sql1data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2025-latestA base de dados Wide World Importers está agora no novo contentor. Execute uma consulta para verificar a alteração anterior feita.
sudo docker exec -it sql2 /opt/mssql-tools18/bin/sqlcmd \ -S localhost -U sa -P '<new-password>' \ -Q 'SELECT StockItemID, StockItemName FROM WideWorldImporters.Warehouse.StockItems WHERE StockItemID=1'A palavra-passe
sanão é a palavra-passe que especificou para o contentorsql2,MSSQL_SA_PASSWORD=<password>. Todos os dados do SQL Server foram restaurados a partir dosql1, incluindo a senha alterada do início do tutorial. Na verdade, algumas opções como esta são ignoradas devido à restauração dos dados em/var/opt/mssql. Por esse motivo, a senha é<new-password>como mostrado aqui.
Atenção
Sua senha deve seguir a política de senha de padrão do SQL Server. Por padrão, a senha deve ter pelo menos oito caracteres e conter caracteres de três dos quatro conjuntos a seguir: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As palavras-passe podem ter até 128 caracteres. Use senhas tão longas e complexas quanto possível.
Próximo passo
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux que executa o SQL Server 2017 (14.x) em um contêiner. Você aprendeu a:
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux que executa o SQL Server 2019 (15.x) em um contêiner. Você aprendeu a:
Neste tutorial, você aprendeu como fazer backup de um banco de dados no Windows e movê-lo para um servidor Linux que executa o SQL Server 2022 (16.x) em um contêiner. Você aprendeu a:
Neste tutorial, aprendeste a fazer backup de uma base de dados no Windows e a transferi-la para um servidor Linux a correr SQL Server 2025 (17.x) num contentor. Você aprendeu a:
- Crie imagens de contêiner do SQL Server Linux.
- Copie backups de banco de dados do SQL Server em um contêiner.
- Execute instruções Transact-SQL com sqlcmd.
- Crie e extraia arquivos de backup de um contêiner.
- Use contêineres de volume de dados para persistir os dados de produção do SQL Server.
Em seguida, analise outros cenários de configuração e solução de problemas de contêiner:
Contribuir para a documentação SQL
Você sabia que você mesmo pode editar conteúdo SQL? Se o fizer, não só ajudará a melhorar a nossa documentação, como também será creditado como contribuidor da página.
Para obter mais informações, consulte Editar a documentação do Microsoft Learn.