Esta página descreve como criar os arquivos de backup necessários para migrar seus bancos de dados do SQL Server para o Cloud SQL para SQL Server, incluindo as seguintes seções:
- Requisitos e limitações listam limitações importantes para o suporte a arquivos de backup.
- Convenções de nomenclatura explica os requisitos relacionados aos nomes dos arquivos de backup.
- Fazer um backup completo contém etapas para criar arquivos de backup completos.
- Fazer um backup diferencial contém etapas para criar arquivos de backup diferencial.
- Arquivos de backup do registro de transações contém etapas para criar arquivos de backup do registro de transações.
Requisitos e limitações
Os requisitos e limitações a seguir se aplicam aos arquivos de backup usados para a migração:
Todos os arquivos de backup precisam ter nomes que aderem às respectivas convenções de nomenclatura.
Os arquivos de backup podem ter no máximo 5 TB.
É possível dividir seus arquivos de backup completos ou diferenciais em arquivos menores se o tamanho do banco de dados exceder 5 TB. Cada divisão pode ter no máximo 5 TB.
É possível usar arquivos de backup e registro de transações criptografados para a migração. Se você quiser usar arquivos de backup criptografados, criptografe todos os arquivos de backup (completo, diferencial, registro de transações) que você usa para um banco de dados específico incluído na migração. Consulte Usar backups criptografados.
O Database Migration Service não migra o banco de dados
master
do SQL Server.A instância de origem do SQL Server não pode usar o modelo de recuperação simples. Para mais informações sobre os modelos de recuperação, consulte Modelos de recuperação (SQL Server) na documentação da Microsoft.
Convenções de nomenclatura
Esta seção aborda os requisitos de nome de arquivo para seus arquivos de backup completos, diferenciais e de registro de transações.
Para informações sobre os requisitos de nome e estrutura de pastas de bucket do Cloud Storage, consulte Criar e configurar buckets do Cloud Storage.
Para informações sobre como o Database Migration Service usa diferentes tipos de arquivos de backup em migrações homogêneas do SQL Server, consulte Tipos de arquivos de backup compatíveis.
Convenções de nomenclatura de arquivos de backup para instâncias locais do SQL Server
Nomes de arquivos de backup completo
A convenção de nomenclatura para arquivos de backup completos depende se você usa um único arquivo de backup ou se o divide em várias faixas. Em ambos os cenários, o Database Migration Service exige que você inclua um carimbo de data/hora da época (expresso como um carimbo de data/hora Unix em segundos) que represente o horário aproximado em que o backup completo foi feito.
Se o backup completo for um único arquivo, o nome do arquivo precisará usar o formato
db_name.epoch.bak
, em que:db_name
é o nome do banco de dados.epoch
é um carimbo de data/hora Unix em segundos.bak
é a extensão do arquivo
Veja alguns exemplos válidos:
my-business-database.1712649600.bak
my-other-database.1712649600.bak
Se você dividir o backup completo em faixas separadas, cada faixa poderá usar qualquer nome, mas elas precisam ser enviadas para uma pasta do Cloud Storage com o nome de um carimbo de data/hora Unix em segundos:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- 1712649600/ | | | |- mystripe-full_backup_file.bak | | | |- otherStripefull-bkp.bak | |- diff/ | | |- ... | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- 1715250742/ | | | |- cool-stripe-file.bak | | | |- secondStripeFile.bak | |- diff/ | | |- ... | |- log/ | | |- ...
Nomes de arquivos de backup diferencial
A convenção de nomenclatura para arquivos de backup diferencial depende se você usa um único arquivo de backup ou se o divide em várias faixas. Em ambos os cenários, o Database Migration Service exige que você inclua um carimbo de data/hora da época (expresso como um carimbo de data/hora Unix em segundos) que represente o horário aproximado em que o backup diferencial foi feito.
Se o backup diferencial for um único arquivo, o nome do arquivo precisará usar o formato
db_name.epoch.ext
, em que:db_name
é o nome do banco de dados.epoch
é um carimbo de data/hora Unix em segundos.ext
é a extensão do arquivo. Os arquivos de backup diferencial podem usar as seguintes extensões:.bak
,.dif
,.diff
.
Veja alguns exemplos válidos:
my-business-database.1731159833.bak
my-other-database.1731159833.dif
Se você dividir o backup diferencial em faixas separadas, cada faixa poderá usar qualquer nome, mas elas precisarão ser enviadas para uma pasta do Cloud Storage com o nome de um carimbo de data/hora Unix em segundos:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- mydiffstripe-diff_backup_file.dif | | | |- mySeconddiffstripe-diff_backup_file.bak | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- firstDiffStripe.bak | | | |- other_diff_stripe.diff | |- log/ | | |- ...
Nomes de arquivos de registro de transação
Os nomes dos arquivos de registro de transação precisam usar o formato db_name.epoch.trn
,
em que:
db_name
é o nome do banco de dados.epoch
é um carimbo de data/hora Unix em segundos.bak
é a extensão do arquivo
Veja alguns exemplos válidos:
my-business-database.1712649600.trn
my-other-database.1712649600.trn
Convenções de nomenclatura de arquivos de backup para o Amazon RDS
Nomes de arquivos de backup completo
A convenção de nomenclatura para arquivos de backup completos depende se você usa um único arquivo de backup ou se o divide em várias faixas. Em ambos os cenários, o Database Migration Service exige que você inclua um carimbo de data/hora da época (expresso como um carimbo de data/hora Unix em segundos) que represente o horário aproximado em que o backup completo foi feito.
Se o backup completo for um único arquivo, o nome do arquivo precisará usar o formato
db_id.family_guid.rds_backup_seq_id.epoch.bak
, em que:db_id
é o identificador do banco de dados interno do Amazon RDSfamily_guid
é o identificador exclusivo do Amazon RDS do banco de dados original na criação.rds_backup_seq_id
é o identificador que o Amazon RDS usa internamente para manter um número de sequência para cada arquivo de backup do registro da transação.epoch
é um carimbo de data/hora Unix em segundos.bak
é a extensão do arquivo
Veja alguns exemplos válidos:
3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1712649600.bak
1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1712649600.bak
Se você dividir o backup completo em faixas separadas, cada faixa poderá usar qualquer nome, mas elas precisam ser enviadas para uma pasta do Cloud Storage com o nome de um carimbo de data/hora Unix em segundos:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- 1712649600/ | | | |- mystripe-full_backup_file.bak | | | |- otherStripefull-bkp.bak | |- diff/ | | |- ... | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- 1715250742/ | | | |- cool-stripe-file.bak | | | |- secondStripeFile.bak | |- log/ | | |- ...
Nomes de arquivos de backup diferencial
A convenção de nomenclatura para arquivos de backup diferencial depende se você usa um único arquivo de backup ou se o divide em várias faixas. Em ambos os cenários, o Database Migration Service exige que você inclua um carimbo de data/hora da época (expresso como um carimbo de data/hora Unix em segundos) que represente o horário aproximado em que o backup diferencial foi feito.
Se o backup diferencial for um único arquivo, o nome do arquivo precisará usar o formato
db_id.family_guid.rds_backup_seq_id.epoch.ext
, em que:db_id
é o identificador do banco de dados interno do Amazon RDSfamily_guid
é o identificador exclusivo do Amazon RDS do banco de dados original na criação.rds_backup_seq_id
é o identificador que o Amazon RDS usa internamente para manter um número de sequência para cada arquivo de backup do registro da transação.epoch
é um carimbo de data/hora Unix em segundos.bak
é a extensão do arquivo. Os arquivos de backup diferencial podem usar as seguintes extensões:.bak
,.dif
,.diff
.
Veja alguns exemplos válidos:
3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1731159833.bak
1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1731159833.dif
Se você dividir o backup completo em faixas separadas, cada faixa poderá usar qualquer nome, mas elas precisam ser enviadas para uma pasta do Cloud Storage com o nome de um carimbo de data/hora Unix em segundos:
Cloud Storage bucket root/ |- my-business-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- mydiffstripe-diff_backup_file.dif | | | |- mySeconddiffstripe-diff_backup_file.bak | |- log/ | | |- ... |- my-other-database/ | |- full/ | | |- ... | |- diff/ | | |- 1731159833/ | | | |- firstDiffStripe.bak | | | |- other_diff_stripe.diff | |- log/ | | |- ...
Nomes de arquivos de registro de transação
No Amazon RDS, os arquivos de backup do registro de transação são gerados automaticamente e incluem todos os identificadores de banco de dados necessários.
Esses nomes padrão incluem o carimbo de data/hora da época e são totalmente compatíveis
com o Database Migration Service. É possível fazer o upload desses arquivos diretamente
na pasta /log/
.
Fazer o backup completo da instância de origem
O arquivo de backup completo do banco de dados é necessário para a fase de carga inicial do job de migração. Se você quiser criptografar seus backups, armazene a chave de criptografia para fazer o upload dela ao Cloud Storage quando criar a tarefa de migração. Consulte Usar backups criptografados.
Fazer backup completo de instâncias do SQL Server no local
É possível fazer o backup completo da sua instância local do SQL Server usando o T-SQL ou o SQL Server Management Studio (SSMS). Siga estas etapas:
- Verifique se você atende aos seguintes requisitos:
- Você usa os requisitos de nomenclatura corretos para seus arquivos de backup.
- Seus bancos de dados de origem não usam o modelo de recuperação simples. Consulte Modelos de recuperação (SQL Server) na documentação da Microsoft.
- Se o tamanho do banco de dados exceder 5 TB, divida o backup completo em faixas separadas. Cada divisão pode ter no máximo 5 TB. Consulte Fazer backup de dispositivos em um conjunto de mídia listrada.
- Faça o backup completo da sua instância de origem. Consulte
Guia de início rápido: faça backup e restaure um banco de dados do SQL Server com o SSMS
na documentação da Microsoft. Confira também estes comandos de exemplo:
Exemplo de comando T-SQL para um único arquivo de backup completo
Este comando de exemplo faz um backup completo do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); BACKUP DATABASE @DATABASE TO DISK = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '.bak'; GO
Exemplo de comando T-SQL para arquivos de backup completo em faixa
Este comando de exemplo faz um backup completo do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura exigida.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); BACKUP DATABASE @DATABASE TO DISK = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak', DISK = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak', DISK = 'X:\SQLServerBackups\full\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak' WITH FORMAT, MEDIANAME = 'AdventureWorksStripedSet0', MEDIADESCRIPTION = 'Striped media set for ' + @DATABASE + ' database'; GO
- Faça upload do arquivo de backup para um bucket do Cloud Storage. Consulte Criar e configurar um bucket do Cloud Storage.
Fazer backup completo do Amazon RDS
Para fazer o backup completo da sua origem do Amazon RDS, siga estas etapas:
- Verifique se você atende aos seguintes requisitos:
- Você usa os requisitos de nomenclatura corretos para seus arquivos de backup.
- Seus bancos de dados de origem não usam o modelo de recuperação simples. Consulte Como determinar um modelo de recuperação para seu banco de dados do Microsoft SQL Server na documentação do Amazon RDS.
- Se você quiser usar o backup do registro de transações depois de fazer o backup completo, ative os backups automáticos na sua instância do Amazon RDS.
- Configure o recurso de backup nativo. Consulte Como configurar o backup e a restauração nativos na documentação do Amazon RDS.
- Faça o backup completo da sua instância de origem. Se o tamanho do banco de dados
exceder 5 TB, divida o backup completo em faixas separadas
usando o parâmetro
@number_of_files
. Cada divisão pode ter um tamanho máximo de 5 TB. Consulte Como fazer backup de um banco de dados na documentação do Amazon RDS.Confira também este comando de exemplo:
Exemplo de consulta para fazer um backup completo no Amazon RDS
Este comando de exemplo faz um backup completo do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @unixTimestamp varchar(30); declare @fileName varchar(1000); SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE; exec msdb.dbo.rds_backup_database @source_db_name=@DATABASE, @s3_arn_to_backup_to=@fileName, @overwrite_s3_backup_file=1, @type='FULL', @number_of_files=1;
- Faça upload do arquivo de backup para um bucket do Cloud Storage. Consulte Criar e configurar um bucket do Cloud Storage.
Fazer o backup diferencial da instância de origem
É possível usar um arquivo de backup diferencial do banco de dados durante a fase de carga incremental do job de migração. É possível usar arquivos de backup diferenciados criptografados se você também criptografar o arquivo de backup completo e os arquivos de registro de transações do mesmo banco de dados. Todos os arquivos de backup e de registro de transações precisam usar a mesma chave de criptografia por banco de dados. Consulte Usar backups criptografados.
Fazer backup diferencial de instâncias locais do SQL Server
É possível fazer o backup diferencial da sua instância local do SQL Server usando o T-SQL ou o SQL Server Management Studio (SSMS). Siga estas etapas:
- Verifique se você atende aos seguintes requisitos:
- Você usa os requisitos de nomenclatura corretos para seus arquivos de backup.
- Seus bancos de dados de origem não usam o modelo de recuperação simples. Consulte Modelos de recuperação (SQL Server) na documentação da Microsoft.
- Se o tamanho do banco de dados exceder 5 TB, divida o backup diferencial em faixas separadas. Cada divisão pode ter no máximo 5 TB. Consulte Fazer backup de dispositivos em um conjunto de mídia listrada.
- Faça o backup diferencial da sua instância de origem. Consulte
Criar um backup diferencial do banco de dados
na documentação da Microsoft. Confira também estes comandos de exemplo:
Exemplo de comando T-SQL para um único arquivo de backup diferencial
Este comando de exemplo faz um backup diferencial do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); BACKUP DATABASE @DATABASE TO DISK = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '.bak' WITH DIFFERENTIAL; GO
Exemplo de comando T-SQL para arquivos de backup diferencial em faixa
Este comando de exemplo faz um backup diferencial do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); BACKUP DATABASE @DATABASE TO DISK = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe1.bak', DISK = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe2.bak', DISK = 'X:\SQLServerBackups\diff\' + @DATABASE + '.' + @unixTimestamp + '\stripe3.bak' WITH DIFFERENTIAL; WITH FORMAT, MEDIANAME = 'AdventureWorksStripedSet0', MEDIADESCRIPTION = 'Striped differential media set for ' + @DATABASE + ' database'; GO
- Faça upload do arquivo de backup para um bucket do Cloud Storage. Consulte Criar e configurar um bucket do Cloud Storage.
Fazer backup diferencial do Amazon RDS
Para fazer o backup diferencial da sua origem do Amazon RDS, siga estas etapas:
- Verifique se você atende aos seguintes requisitos:
- Você usa os requisitos de nomenclatura corretos para seus arquivos de backup.
- Seus bancos de dados de origem não usam o modelo de recuperação simples. Consulte Como determinar um modelo de recuperação para seu banco de dados do Microsoft SQL Server na documentação do Amazon RDS.
- Configure o recurso de backup nativo. Consulte Como configurar o backup e a restauração nativos na documentação do Amazon RDS.
- Faça o backup diferencial da sua instância de origem. Use o procedimento armazenado
rds_backup_database
com o parâmetrotype
definido comoDIFFERENTIAL
.Se o tamanho do banco de dados exceder 5 TB, divida o backup completo em faixas separadas usando o parâmetro
@number_of_files
. Cada divisão pode ter no máximo 5 TB.Consulte Como fazer backup de um banco de dados na documentação do Amazon RDS. Você também pode conferir o seguinte comando de exemplo:
Exemplo de consulta para fazer um backup diferencial no Amazon RDS
Este comando de exemplo faz um backup diferencial do banco de dados
AdventureWorks2022
. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @unixTimestamp varchar(30); declare @fileName varchar(1000); SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @unixTimestamp=CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); SELECT @fileName = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/full/' + @DATABASE '.' + @unixTimestamp + '/' + CAST(database_id AS VARCHAR(10)) + '.' + CAST(family_guid AS VARCHAR(50)) + '.*.' + @unixTimestamp) FROM master.sys.database_recovery_status WHERE DB_NAME(database_id)=@DATABASE; exec msdb.dbo.rds_backup_database @source_db_name=@DATABASE, @s3_arn_to_backup_to=@fileName, @overwrite_s3_backup_file=1, @type='DIFFERENTIAL', @number_of_files=1;
- Faça upload do arquivo de backup para um bucket do Cloud Storage. Consulte Criar e configurar um bucket do Cloud Storage.
Fazer backups do registro de transações
Os arquivos de backup do registro de transações contêm as mudanças que ocorrem no banco de dados de origem depois do backup completo. Os backups de registro de transação são necessários para a fase de carga contínua do job de migração. É possível programar exportações e uploads regulares de registros de transação para garantir que as atualizações de dados sejam replicadas continuamente para a instância de destino do Cloud SQL para SQL Server. Consulte Programar backups de registros de transações.
Se você usar arquivos de backup criptografados, também precisará criptografar os arquivos de registro de transações para o mesmo banco de dados. Consulte Usar backups criptografados.
Fazer um backup do registro de transações para instâncias locais do SQL Server
Para fazer um backup do registro de transações dos seus bancos de dados do SQL Server local, siga estas etapas:
- Verifique se você atende aos seguintes requisitos:
- Você usa os requisitos de nomenclatura corretos para seus arquivos de backup.
- Seus bancos de dados de origem não usam o modelo de recuperação simples. Consulte Modelos de recuperação (SQL Server) na documentação da Microsoft.
- Exporte os arquivos de registro de transações dos bancos de dados de origem do SQL Server. Consulte
Como fazer backup de um registro de transações na documentação da Microsoft.
Confira também este comando de exemplo:
Exemplo de comando T-SQL para exportar arquivos de registro de transações para o disco local
Este comando de exemplo cria um backup do registro de transações do banco de dados
AdventureWorks2022
e salva o arquivo no disco local. O arquivo de backup resultante usa a convenção de nomenclatura necessária.declare @DATABASE varchar(1000); SELECT @DATABASE = 'AdventureWorks2022'; declare @unixTimestamp varchar(1000); SELECT @unixTimestamp = CAST(DATEDIFF(s, '1970-01-01', GETUTCDATE()) AS VARCHAR(50)); BACKUP LOG @DATABASE TO DISK = 'X:\SQLServerBackups\log\' + @DATABASE + '.' + @unixTimestamp + '.trn';
- Faça upload dos arquivos de backup do registro de transações para o bucket do Cloud Storage que você criou para a migração.
Fazer um backup do registro de transações do Amazon RDS
Os backups de registros de transação são criados automaticamente se os backups automáticos forem ativados na sua instância do Amazon RDS. Consulte Ativar backups automáticos na documentação do Amazon RDS.
Para usar arquivos de backup do registro de transações na migração, siga estas etapas:
- Ative o acesso aos arquivos de registro de transações na sua instância do Amazon RDS.
Consulte
Acesso a backups de registros de transações com o RDS para SQL Server.
Confira também este comando de exemplo:
Exemplo de chamada de procedimento armazenado para ativar o acesso ao registro de transações no Amazon RDS
declare @DATABASE varchar(1000); declare @S3Bucket varchar(1000); declare @targetS3Arn varchar(1000);
SELECT @S3Bucket = 'dms-sqlserver-exports'; SELECT @DATABASE = 'AdventureWorks2022'; SELECT @targetS3Arn = ('arn:aws:s3:::' + @S3Bucket + '/' + @DATABASE + '/log/');
USE @DATABASE; exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn=@targetS3Arn;
- Copie os arquivos de backup do registro de transações do bucket do S3 para o bucket do Cloud Storage criado para a migração.