Este tópico descreve como migrar dados de uma instância do ApsaraDB RDS for SQL Server para uma instância do SQL Server autogerenciada. Baixe os arquivos de backup físico completo e incremental no console do ApsaraDB RDS, envie-os para o servidor que hospeda a instância do SQL Server autogerenciada, descompacte os arquivos e restaure o banco de dados.
Pré-requisitos
Verifique se você tem um arquivo de backup físico completo da instância do ApsaraDB RDS for SQL Server.
Você também pode usar o Data Transmission Service (DTS) para migrar arquivos de backup físico ou snapshots. No DTS, configure o ApsaraDB RDS for SQL Server como source e a instância do SQL Server autogerenciada como destino.
Procedimento
-
Baixe os arquivos de backup físico completo e incremental da instância do ApsaraDB RDS for SQL Server.
Se o servidor de destino tiver acesso à instância de origem, baixe os arquivos de backup com o comando
wget "URL". Substitua "URL" pela URL de download do arquivo de backup. -
Envie os arquivos de backup baixados para o servidor que hospeda a instância do SQL Server autogerenciada e descompacte os arquivos de backup completo e incremental.
NotaApós a descompactação, os arquivos de backup completo e incremental terão o mesmo nome. Para facilitar a manutenção, renomeie os arquivos no formato
<Nome do banco de dados>_<Método de backup>_<Data>. Exemplo:testdb_datafull_201901071320.bak, em quedatafullindica um backup completo.testdb_datadiff_201901071330.bak, em quedatadiffindica um backup incremental.
-
Anote os caminhos dos arquivos de backup completo e incremental descompactados. Este tópico usa os seguintes caminhos como exemplo:
Caminho do arquivo de backup completo:
/tmp/testdb_datafull_201901071320.bakCaminho do arquivo de backup incremental:
/tmp/testdb_datadiff_201901071330.bak
-
Faça login na instância do SQL Server autogerenciada e execute a instrução a seguir para consultar os nomes lógicos dos arquivos no arquivo de backup:
RESTORE FILELISTONLY FROM DISK='/tmp/testdb_datafull_201901071320.bak'; GOO resultado da consulta mostra que o nome lógico do arquivo de dados é 'testdb' e o nome lógico do arquivo de log é 'testdb_log'.
-
Restaure o banco de dados a partir do arquivo de backup completo e especifique os locais de armazenamento dos arquivos de dados e de log.
ImportanteSe precisar restaurar um backup incremental, prossiga para a Etapa 6. Se estiver restaurando apenas o backup completo, pule para a Etapa 7.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datafull_201901071320.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOApós a execução dessa instrução, o banco de dados testdb ficará no estado restoring.
Nota/var/opt/mssql/data/testdb.mdfé o caminho do arquivo de dados, etestdb.mdfé o nome lógico desse arquivo./var/opt/mssql/data/testdb_log.ldfé o caminho do arquivo de log, etestdb_log.ldfé o nome lógico desse arquivo.
Visualize os caminhos dos arquivos de dados e de log na seção do banco de dados de destino.
-
(Opcional) Restaure o banco de dados a partir do arquivo de backup incremental e especifique os locais de armazenamento dos arquivos de dados e de log.
RESTORE DATABASE testdb FROM DISK = '/tmp/testdb_datadiff_201901071330.bak' WITH REPLACE, NORECOVERY, STATS = 10, MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf', MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf'; GOApós a execução dessa instrução, o banco de dados testdb ficará no estado restoring.
-
Execute a instrução a seguir para recuperar o banco de dados e colocá-lo online.
RESTORE DATABASE testdb WITH RECOVERY; GO