Este tópico descreve como migrar dados de uma instância ApsaraDB RDS for SQL Server para uma instância SQL Server autogerenciada. Baixe os arquivos de backup físico completo e incremental no console do ApsaraDB RDS, carregue-os no servidor que hospeda sua instância SQL Server autogerenciada, descompacte os arquivos e restaure o banco de dados.
Pré-requisitos
Certifique-se de ter um physical backup file completo da sua instância ApsaraDB RDS for SQL Server.
Também é possível 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 sua instância SQL Server autogerenciada como destino.
Procedimento
-
Baixe os arquivos de backup físico completo e incremental da sua instância ApsaraDB RDS for SQL Server.
Se o servidor de destino puder acessar a instância de origem, também é possível baixar os arquivos de backup com o comando
wget "URL". Substitua "URL" pela backup file download URL. -
Carregue os arquivos de backup baixados no servidor que hospeda a instância 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, recomendamos renomear os arquivos no formato
<Database name>_<Backup method>_<Date>. Por 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 para o arquivo de backup completo:
/tmp/testdb_datafull_201901071320.bakCaminho para o arquivo de backup incremental:
/tmp/testdb_datadiff_201901071330.bak
-
Faça login na instância SQL Server autogerenciada e execute a seguinte instrução para consultar os nomes de arquivos lógicos 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 o Passo 6. Caso esteja restaurando apenas o backup completo, avance para o Passo 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 executar essa instrução, o banco de dados testdb ficará no estado restoring.
Nota/var/opt/mssql/data/testdb.mdfé o caminho para o arquivo de dados, etestdb.mdfé o nome lógico do arquivo de dados./var/opt/mssql/data/testdb_log.ldfé o caminho para o arquivo de log, etestdb_log.ldfé o nome lógico do arquivo de log.
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 executar essa instrução, o banco de dados testdb ficará no estado restoring.
-
Execute a seguinte instrução para recuperar o banco de dados e colocá-lo online.
RESTORE DATABASE testdb WITH RECOVERY; GO