Prepare sus archivos de respaldo

Esta página describe cómo crear los archivos de respaldo necesarios para migrar sus bases de datos de SQL Server a Cloud SQL para SQL Server, incluidas las siguientes secciones:

Requisitos y limitaciones

Los siguientes requisitos y limitaciones se aplican a los archivos de respaldo que utiliza para la migración:

  • Todos los archivos de respaldo deben tener nombres que cumplan con sus respectivas convenciones de nomenclatura .

  • Sus archivos de respaldo pueden tener un tamaño máximo de 5 TB.

  • Puede dividir sus archivos de respaldo completos o diferenciales en archivos más pequeños si el tamaño de su base de datos supera los 5 TB. Cada franja puede tener un tamaño máximo de 5 TB.

  • Puede utilizar archivos de registro de transacciones y copias de seguridad cifrados para su migración. Si desea utilizar archivos de copia de seguridad cifrados, debe cifrar cada archivo de copia de seguridad (completo, diferencial, registro de transacciones) que utilice para una base de datos específica incluida en su migración. Consulte Usar copias de seguridad cifradas .

  • El servicio de migración de bases de datos no migra la base de datos master de SQL Server .

  • Su instancia de SQL Server de origen no puede utilizar el modelo de recuperación simple . Para obtener más información sobre los modelos de recuperación, consulte Modelos de recuperación (SQL Server) en la documentación de Microsoft.

Convenciones de nomenclatura

Esta sección cubre los requisitos de nombre de archivo para sus archivos de respaldo completos, diferenciales y de registros de transacciones.

Convenciones de nomenclatura de archivos de respaldo para instancias locales de SQL Server

Nombres de archivos de copia de seguridad completos

La convención de nomenclatura para los archivos de copia de seguridad completa depende de si utiliza un único archivo de copia de seguridad o si lo divide en varias franjas. En ambos escenarios, el Servicio de migración de bases de datos requiere que incluya una marca de tiempo de época (expresada como una marca de tiempo de Unix en segundos) que represente la hora aproximada en la que realizó la copia de seguridad completa.

  • Si su copia de seguridad completa es un solo archivo, el nombre del archivo debe usar el formato db_name.epoch.bak , donde:

    • db_name es el nombre de su base de datos
    • epoch es una marca de tiempo de Unix en segundos
    • .bak es la extensión del archivo

    Los ejemplos válidos incluyen:

    • my-business-database.1712649600.bak
    • my-other-database.1712649600.bak
  • Si divide su copia de seguridad completa en franjas separadas, cada franja puede usar cualquier nombre que elija, pero deben cargarse en una carpeta de Cloud Storage cuyo nombre es una marca de tiempo de Unix en 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/
    |  |  |- ...
    

Nombres de archivos de copia de seguridad diferenciales

La convención de nomenclatura para los archivos de copia de seguridad diferenciales depende de si utiliza un único archivo de copia de seguridad o si lo divide en varias franjas. En ambos escenarios, el Servicio de migración de bases de datos requiere que incluya una marca de tiempo de época (expresada como una marca de tiempo de Unix en segundos) que represente la hora aproximada en la que realizó la copia de seguridad diferencial.

  • Si su copia de seguridad diferencial es un solo archivo, el nombre del archivo debe usar el formato db_name.epoch.ext , donde:

    • db_name es el nombre de su base de datos
    • epoch es una marca de tiempo de Unix en segundos
    • .ext es la extensión del archivo; Los archivos de copia de seguridad diferenciales pueden utilizar las siguientes extensiones: .bak , .dif , .diff .

    Los ejemplos válidos incluyen:

    • my-business-database.1731159833.bak
    • my-other-database.1731159833.dif
  • Si divide su copia de seguridad diferencial en franjas separadas, cada franja puede usar cualquier nombre que elija, pero deben cargarse en una carpeta de Cloud Storage cuyo nombre es una marca de tiempo de Unix en 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/
    |  |  |- ...
    

Nombres de archivos de registro de transacciones

Los nombres de sus archivos de registro de transacciones deben usar el formato db_name.epoch.trn , donde:

  • db_name es el nombre de su base de datos
  • epoch es una marca de tiempo de Unix en segundos
  • .bak es la extensión del archivo

Los ejemplos válidos incluyen:

  • my-business-database.1712649600.trn
  • my-other-database.1712649600.trn

Convenciones de nomenclatura de archivos de copia de seguridad para Amazon RDS

Nombres de archivos de copia de seguridad completos

La convención de nomenclatura para los archivos de copia de seguridad completa depende de si utiliza un único archivo de copia de seguridad o si lo divide en varias franjas. En ambos escenarios, el Servicio de migración de bases de datos requiere que incluya una marca de tiempo de época (expresada como una marca de tiempo de Unix en segundos) que represente la hora aproximada en la que realizó la copia de seguridad completa.

  • Si su copia de seguridad completa es un solo archivo, el nombre del archivo debe usar el formato db_id.family_guid.rds_backup_seq_id.epoch.bak , donde:

    • db_id es el identificador de la base de datos interna de Amazon RDS
    • family_guid es el identificador único de Amazon RDS de la base de datos original en el momento de la creación.
    • rds_backup_seq_id es el identificador que Amazon RDS utiliza internamente para mantener un número de secuencia para cada archivo de copia de seguridad del registro de transacciones.
    • epoch es una marca de tiempo de Unix en segundos
    • .bak es la extensión del archivo

    Los ejemplos válidos incluyen:

    • 3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1712649600.bak
    • 1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1712649600.bak
  • Si divide su copia de seguridad completa en franjas separadas, cada franja puede usar cualquier nombre que elija, pero deben cargarse en una carpeta de Cloud Storage cuyo nombre es una marca de tiempo de Unix en 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/
    |  |  |- ...
    

Nombres de archivos de copia de seguridad diferenciales

La convención de nomenclatura para los archivos de copia de seguridad diferenciales depende de si utiliza un único archivo de copia de seguridad o si lo divide en varias franjas. En ambos escenarios, el Servicio de migración de bases de datos requiere que incluya una marca de tiempo de época (expresada como una marca de tiempo de Unix en segundos) que represente la hora aproximada en la que realizó la copia de seguridad diferencial.

  • Si su copia de seguridad diferencial es un solo archivo, el nombre del archivo debe usar el formato db_id.family_guid.rds_backup_seq_id.epoch.ext , donde:

    • db_id es el identificador de la base de datos interna de Amazon RDS
    • family_guid es el identificador único de Amazon RDS de la base de datos original en el momento de la creación.
    • rds_backup_seq_id es el identificador que Amazon RDS utiliza internamente para mantener un número de secuencia para cada archivo de copia de seguridad del registro de transacciones.
    • epoch es una marca de tiempo de Unix en segundos
    • .bak es la extensión del archivo; Los archivos de copia de seguridad diferenciales pueden utilizar las siguientes extensiones: .bak , .dif , .diff .

    Los ejemplos válidos incluyen:

    • 3.CX11CB3D-G2E4-46D9-B462-CE40CDA97E89.22.1731159833.bak
    • 1.FD21CD3F-B5E4-27Z9-B462-CE40CDA97E89.21.1731159833.dif
  • Si divide su copia de seguridad completa en franjas separadas, cada franja puede usar cualquier nombre que elija, pero deben cargarse en una carpeta de Cloud Storage cuyo nombre es una marca de tiempo de Unix en 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/
    |  |  |- ...
    

Nombres de archivos de registro de transacciones

En Amazon RDS, los archivos de copia de seguridad del registro de transacciones se generan automáticamente e incluyen todos los identificadores de base de datos necesarios. Estos nombres predeterminados incluyen la marca de tiempo de época y son totalmente compatibles con el Servicio de migración de bases de datos. Puede cargar estos archivos directamente en su carpeta /log/ .

Realice la copia de seguridad completa de su instancia de origen

Se requiere el archivo de copia de seguridad de la base de datos completa para la fase de carga inicial de su trabajo de migración. Si desea cifrar sus copias de seguridad, asegúrese de almacenar la clave de cifrado para poder cargarla luego en Cloud Storage cuando cree el trabajo de migración. Consulte Usar copias de seguridad cifradas .

Realice una copia de seguridad completa para instancias locales de SQL Server

Puede realizar una copia de seguridad completa de su instancia local de SQL Server utilizando T-SQL o SQL Server Management Studio (SSMS). Siga estos pasos:

  1. Asegúrate de cumplir con los siguientes requisitos:
  2. Realice la copia de seguridad completa de su instancia de origen. Consulte Inicio rápido: realizar copias de seguridad y restaurar una base de datos de SQL Server con SSMS en la documentación de Microsoft. También puede consultar los siguientes comandos de muestra:

    Ejemplo de comando T-SQL para un único archivo de copia de seguridad completo

    Este comando de muestra realiza una copia de seguridad completa de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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

    Ejemplo de comando T-SQL para archivos de copia de seguridad completos seccionados

    Este comando de muestra realiza una copia de seguridad completa de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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
  3. Cargue su archivo de respaldo en un depósito de Cloud Storage. Consulta Crear y configurar un depósito de Cloud Storage .

Realice una copia de seguridad completa para Amazon RDS

Para realizar la copia de seguridad completa de su fuente de Amazon RDS, siga estos pasos:

  1. Asegúrate de cumplir con los siguientes requisitos:
  2. Configure la capacidad de copia de seguridad nativa. Consulte Configuración de copia de seguridad y restauración nativas en la documentación de Amazon RDS.
  3. Realice la copia de seguridad completa de su instancia de origen. Si el tamaño de su base de datos supera los 5 TB, asegúrese de dividir la copia de seguridad completa en franjas separadas utilizando el parámetro @number_of_files . Cada franja puede tener un tamaño máximo de 5 TB. Consulte Copia de seguridad de una base de datos en la documentación de Amazon RDS.

    También puede consultar el siguiente comando de muestra:

    Consulta de ejemplo para realizar una copia de seguridad completa en Amazon RDS

    Este comando de muestra realiza una copia de seguridad completa de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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;
  4. Cargue su archivo de respaldo en un depósito de Cloud Storage. Consulta Crear y configurar un depósito de Cloud Storage .

Realice la copia de seguridad diferencial de su instancia de origen

Puede utilizar un archivo de copia de seguridad de base de datos diferencial durante la fase de carga incremental de su trabajo de migración. Puede utilizar archivos de copia de seguridad diferenciales cifrados si también cifra el archivo de copia de seguridad completo y los archivos de registro de transacciones para la misma base de datos. Todos los archivos de respaldo y registro de transacciones deben usar la misma clave de cifrado por base de datos. Consulte Usar copias de seguridad cifradas .

Realice una copia de seguridad diferencial para instancias locales de SQL Server

Puede realizar la copia de seguridad diferencial de su instancia local de SQL Server mediante T-SQL o SQL Server Management Studio (SSMS). Siga estos pasos:

  1. Asegúrate de cumplir con los siguientes requisitos:
  2. Realice la copia de seguridad diferencial de su instancia de origen. Consulte Crear una copia de seguridad de base de datos diferencial en la documentación de Microsoft. También puede consultar los siguientes comandos de muestra:

    Ejemplo de comando T-SQL para un único archivo de copia de seguridad diferencial

    Este comando de muestra realiza una copia de seguridad diferencial de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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

    Ejemplo de comando T-SQL para archivos de copia de seguridad diferenciales seccionados

    Este comando de muestra realiza una copia de seguridad diferencial de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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
  3. Cargue su archivo de respaldo en un depósito de Cloud Storage. Consulta Crear y configurar un depósito de Cloud Storage .

Realice una copia de seguridad diferencial para Amazon RDS

Para realizar la copia de seguridad diferencial de su fuente de Amazon RDS, siga estos pasos:

  1. Asegúrate de cumplir con los siguientes requisitos:
  2. Configure la capacidad de copia de seguridad nativa. Consulte Configuración de copia de seguridad y restauración nativas en la documentación de Amazon RDS.
  3. Realice la copia de seguridad diferencial de su instancia de origen. Utilice el procedimiento almacenado rds_backup_database con el parámetro type establecido en DIFFERENTIAL .

    Si el tamaño de su base de datos supera los 5 TB, asegúrese de dividir la copia de seguridad completa en franjas separadas utilizando el parámetro @number_of_files . Cada franja puede tener un tamaño máximo de 5 TB.

    Consulte Copia de seguridad de una base de datos en la documentación de Amazon RDS. También puede consultar el siguiente comando de muestra:

    Consulta de ejemplo para realizar una copia de seguridad diferencial en Amazon RDS

    Este comando de muestra realiza una copia de seguridad diferencial de la base de datos AdventureWorks2022 . El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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;
  4. Cargue su archivo de respaldo en un depósito de Cloud Storage. Consulta Crear y configurar un depósito de Cloud Storage .

Realizar copias de seguridad del registro de transacciones

Los archivos de copia de seguridad del registro de transacciones contienen los cambios que ocurren en su base de datos de origen después de realizar la copia de seguridad completa. Se requieren copias de seguridad del registro de transacciones para la fase de carga continua de su trabajo de migración. Puede programar exportaciones y cargas periódicas de registros de transacciones para garantizar que las actualizaciones de datos se repliquen continuamente en su instancia de destino de Cloud SQL para SQL Server. Consulte Programar copias de seguridad del registro de transacciones .

Si utiliza archivos de copia de seguridad cifrados, también debe cifrar los archivos de registro de transacciones para la misma base de datos. Consulte Usar copias de seguridad cifradas .

Realice una copia de seguridad del registro de transacciones para instancias de SQL Server locales

Para realizar una copia de seguridad del registro de transacciones de sus bases de datos de SQL Server locales, siga estos pasos:

  1. Asegúrate de cumplir con los siguientes requisitos:
  2. Exporte los archivos de registro de transacciones desde sus bases de datos de origen de SQL Server. Consulte Realizar una copia de seguridad de un registro de transacciones en la documentación de Microsoft. También puede consultar el siguiente comando de muestra:

    Ejemplo de comando T-SQL para exportar archivos de registro de transacciones al disco local

    Este comando de muestra crea una copia de seguridad del registro de transacciones de la base de datos AdventureWorks2022 y guarda el archivo en el disco local. El archivo de copia de seguridad resultante utiliza la convención de nomenclatura requerida.

    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';
  3. Cargue los archivos de copia de seguridad del registro de transacciones en el depósito de Cloud Storage que creó para su migración.

Realice una copia de seguridad del registro de transacciones para Amazon RDS

Las copias de seguridad del registro de transacciones se crean automáticamente si las copias de seguridad automáticas están habilitadas en su instancia de Amazon RDS. Consulte Habilitar copias de seguridad automatizadas en la documentación de Amazon RDS.

Para utilizar archivos de copia de seguridad del registro de transacciones para su migración, siga estos pasos:

  1. Habilite el acceso a los archivos de registro de transacciones en su instancia de Amazon RDS. Consulte Acceso a copias de seguridad del registro de transacciones con RDS para SQL Server . También puede consultar el siguiente comando de muestra:

    Ejemplo de llamada a procedimiento almacenado para habilitar el acceso al registro de transacciones en 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;

  2. Copie los archivos de copia de seguridad del registro de transacciones de su depósito de S3 al depósito de Cloud Storage que creó para su migración.