¿Cómo resuelvo los errores cuando uso la copia de seguridad y la restauración nativas para mi instancia de base de datos de Amazon RDS para SQL Server?
Quiero resolver los errores que se producen al realizar copias de seguridad y restaurar mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS) para Microsoft SQL Server.
Descripción corta
Para resolver los errores que se producen al utilizar la copia de seguridad y restauración nativas para la instancia de base de datos de Amazon RDS para SQL Server, prueba lo siguiente:
- Aumenta el espacio en la instancia de base de datos.
- Otorga permisos de acceso al rol de AWS Identity and Access Management (IAM) para la opción SQLSERVER_BACKUP_RESTORE.
- Otorga permisos de AWS Key Management Service (AWS KMS) al rol de IAM del grupo de opciones.
- Concede permisos a la política de IAM o a la política de bucket para las copias de seguridad entre cuentas.
- Importa el Certificado TDE (Transparent Data Encryption, cifrado de datos transparente).
- Indica las letras de unidad de Windows correctas.
- Establece el valor MAXTRANSFERSIZE del archivo de copia de seguridad en un valor mayor que el que has utilizado al realizar la restauración.
- Reduce el tamaño del archivo de copia de seguridad para transferirlo a Amazon Simple Storage Service (Amazon S3).
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de errores para la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Aumentar el espacio en la instancia de base de datos
Es posible que la instancia de base de datos no tenga suficiente espacio cuando restaures la copia de seguridad desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) o local. En este caso, Amazon RDS detiene la tarea.
Ejemplo de salida de registro:
[2022-04-07 05:21:22.317] Aborted the task because of a task failure or a concurrent RESTORE_DB request. [2022-04-07 05:21:22.437] Task has been aborted [2022-04-07 05:21:22.440] There is not enough space on the disk to perform restore database operation.
Para resolver este problema, puedes aumentar el almacenamiento disponible en la instancia de base de datos. Alternativamente, puedes reducir el tamaño del archivo de registro de transacciones en la instancia de base de datos.
Aumentar el almacenamiento disponible
Sigue estos pasos:
- Ejecuta la siguiente consulta en la instancia de EC2 o local para comprobar el tamaño del archivo de datos de la base de datos y del archivo de registro de transacciones:
Nota: Sustituye DB_NAME por el nombre de tu base de datos.SELECT DB_NAME(database_id) AS DatabaseName, Name AS Logical_Name, Physical_Name, (size*8)/1024/1024 AS SizeGB FROM sys.master_files WHERE DB_NAME(database_id) = 'DB_NAME' GO Database Size = (DB_Name size + DB_Name_Log size) - Compara el tamaño de la base de datos de las instancias de EC2 o local con el almacenamiento disponible en la instancia de base de datos.
- Aumenta el almacenamiento disponible en la instancia de base de datos y, a continuación, restaura la base de datos.
Reducir el tamaño del archivo de registro de transacciones
Sigue estos pasos:
- Para reducir el tamaño actual del archivo de registro de transacciones en la instancia de EC2 o local, ejecuta el siguiente comando:
Nota: Sustituye FileName por el nombre del archivo de registro de datos o transacciones y FileSizeMB por el tamaño del archivo de destino en megabytes.DBCC SHRINKFILE (FileName, FileSizeMB) - Haz una copia de seguridad de la base de datos.
Otorgar permisos de acceso al rol de IAM para la opción SQLSERVER_BACKUP_RESTORE
Si no tienes suficientes permisos para el rol de IAM asociado a la opción SQLSERVER_BACKUP_RESTORE, Amazon RDS detiene la tarea.
Ejemplo de salida de registro:
[2020-12-15 08:56:22.143] Aborted the task because of a task failure or a concurrent RESTORE_DB request. [2020-12-15 08:56:22.213] Task has been aborted [2020-12-15 08:56:22.217] Access Denied
O bien:
[2022-07-16 16:08:22.067] Task execution has started. [2022-07-16 16:08:22.143] Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup. [2022-07-16 16:08:22.147] Task has been aborted [2022-07-16 16:08:22.150] Access Denied
Para resolver este problema, sigue estos pasos:
-
Ejecuta el siguiente comando para comprobar que el bucket de S3 y el prefijo de la carpeta son correctos en la consulta de restauración:
exec msdb.dbo.rds_restore_database @restore_db_name='database_name', @s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension'; -
Agrega la siguiente instrucción a la política de permisos de IAM:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/*" } ] }Nota: En la política anterior, sustituye arn:aws:s3:::bucket_name por el nombre de recurso de Amazon (ARN) de tu bucket de S3.
-
Agrega la política al rol asociado a la opción SQLSERVER_BACKUP_RESTORE.
-
Comprueba que la opción SQLSERVER_BACKUP_RESTORE esté en el grupo de opciones asociado a la instancia de base de datos.
Para obtener más información, consulta ¿Cómo realizo una copia de seguridad nativa de mi base de datos de SQL Server en Amazon RDS y la restauro desde Amazon S3?
Otorgar permisos de AWS KMS al rol de IAM del grupo de opciones
La copia de seguridad y la restauración nativas de RDS para SQL Server pueden cifrar y descifrar el archivo de copia de seguridad en el lado del cliente. Si la política del rol de IAM asociado al grupo de opciones carece de permisos para la clave de KMS, la copia de seguridad o la restauración fallarán.
Ejemplo de salida de registro:
[2025-12-12 01:34:22.217] Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup. [2025-12-12 01:34:22.223] Task has been aborted [2025-12-12 01:34:22.230] User: arn:aws:sts::0123456789:assumed-role/<your_role_name>/RDS-SqlServerBackupRestore is not authorized to perform: kms:DescribeKey on resource: arn:aws:kms:ap-northeast-1:0123456789:key/<your_kms_key_id> because no identity-based policy allows the kms:DescribeKey action
Para resolver este problema, agrega la siguiente instrucción a la política de IAM asociada al grupo de opciones.
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowAccessToKey", "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Encrypt", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:0123456789:key/key-id" }, { "Sid": "AllowAccessToS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::PUT-BUCKET-NAME" }, { "Sid": "GetS3Info", "Effect": "Allow", "Action": [ "s3:GetObjectAttributes", "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::PUT-BUCKET-NAME/*" } ] }
Conceder permisos a la política de IAM o a la política de bucket para las copias de seguridad entre cuentas
Al restaurar una copia de seguridad de una base de datos de una cuenta de AWS en otra, Amazon RDS puede detener la tarea debido a la falta de permisos. Por ejemplo, almacenas la copia de seguridad en un bucket de S3 en la cuenta A y la restauras en una instancia de base de datos de Amazon RDS en la cuenta B.
La política del rol de IAM asociado al grupo de opciones o la política de bucket asociada al bucket de S3 carecen de permisos.
Ejemplo de salida de registro:
[2022-02-03 15:57:22.180] Aborted the task because of a task failure or a concurrent RESTORE_DB request. [2022-02-03 15:57:22.260] Task has been aborted [2022-02-03 15:57:22.263] Error making request with Error Code Forbidden and Http Status Code Forbidden. No further error information was returned by the service.
Para resolver este problema, sigue estos pasos:
-
Agrega la siguiente instrucción a la política de IAM asociada al grupo de opciones en la cuenta B:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::name_of_bucket_present_in_Account_A" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::name_of_bucket_present_in_Account_A/*" }, { "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt", "kms:Encrypt" "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Effect": "Allow", "Resource": [ "arn:aws: PUT THE NAME OF THE KEY HERE", "arn:aws:s3:::name_of_bucket_present_in_Account_A/*" ] } ] } -
Agrega la siguiente instrucción a la política de bucket asociada al bucket de S3 en la cuenta A:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Permission to cross account", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AWS-ACCOUNT-ID-OF-RDS:role/service-role/PUT-ROLE-NAME" ] }, "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::PUT-BUCKET-NAME" ] }, { "Sid": "Permission to cross account on object level", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AWS-ACCOUNT-ID-OF-RDS:role/service-role/PUT-ROLE-NAME" ] }, "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::PUT-BUCKET-NAME/*" ] } ] }
Para obtener más información, consulta Importación y exportación de bases de datos de SQL Server por copias de seguridad y restauración nativas y Propietario de bucket que concede permisos entre cuentas para objetos que no le pertenecen.
Importar el certificado TDE
Cuando restauras una copia de seguridad de una base de datos, sin haber importado el certificado TDE al servidor de destino, la tarea se detiene. Por ejemplo, intentas restaurar una base de datos con TDE desde una instancia de EC2 o local a una instancia de base de datos de RDS para SQL Server.
Ejemplo de salida de registro:
[2022-06-15 11:55:22.280] Cannot find server certificate with thumbprint '########'. [2022-06-15 11:55:22.280] RESTORE FILELIST is terminating abnormally. [2022-06-15 11:55:22.300] Aborted the task because of a task failure or a concurrent RESTORE_DB request. [2022-06-15 11:55:22.333] Task has been aborted [2022-06-15 11:55:22.337] Empty restore file list result retrieved.
Para resolver este problema, importa el certificado TDE al servidor de destino.
Para evitar este problema, utiliza una de las siguientes soluciones.
Realiza una copia de seguridad de la base de datos desde una instancia local o de EC2, pero el RDS de destino para SQL Server se encuentra en varias zonas de disponibilidad
Sigue estos pasos:
-
Crea una copia de seguridad de la base de datos de EC2 o local con TDE activado.
-
Restaura la copia de seguridad como una nueva base de datos en el servidor local.
-
Ejecuta el siguiente comando para desactivar el cifrado en la nueva base de datos:
USE master; GO ALTER DATABASE Databasename SET ENCRYPTION OFF; GONota: Sustituye Databasename por el nombre de tu base de datos.
-
Ejecuta el siguiente comando para colocar la clave de cifrado de base de datos (DEK) en la nueva base de datos:
USE Databasename; GO DROP DATABASE ENCRYPTION KEY; GONota: Sustituye Databasename por el nombre de tu base de datos.
-
Realiza una copia de seguridad nativa de SQL Server y, a continuación, restaura la copia de seguridad en la instancia de base de datos.
Realizas una copia de seguridad de la instancia de base de datos desde una instancia de base de datos de RDS para SQL Server cifrada con TDE
Sigue estos pasos:
- Utiliza una instantánea de base de datos de la instancia de RDS para SQL Server para restaurar una nueva instancia de base de datos.
Nota: Si cambias la edición de la instancia de base de datos, consulta Consideraciones sobre Microsoft SQL Server. - Desactiva TDE para la nueva instancia de base de datos.
- Realiza una copia de seguridad nativa de SQL y, a continuación, restaura la copia de seguridad en la instancia de base de datos.
- Activa TDE para la nueva instancia de base de datos.
Especificar las letras de unidad de Windows correctas
RDS para SQL Server puede restaurar una base de datos en volúmenes de almacenamiento adicionales. Si especificas una letra de unidad de Windows incorrecta para un volumen de almacenamiento, se produce un error en la operación de restauración.
Ejemplo de consulta y mensaje de error:
-- Native restore query EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::<your_bucket_name>/my_database.bak', @data_file_volume='Y:', -- incorrect drive letter. @log_file_volume='Z:'; -- incorrect drive letter. -- Error message Message 50000、Level 16、State 1、Procedure msdb.dbo.rds_restore_database、Line 122 Volume for data files is unavailable. Choose from available volumes.
Para resolver este problema, comprueba las letras de la unidad de Windows. Sigue estos pasos:
-
Enumera los volúmenes de almacenamiento adicionales adjuntos en tu instancia de base de datos con el comando describe-db-instances:
aws rds describe-db-instances \ --db-instance-identifier your-db-instance-id \ --query 'DBInstances[].AdditionalStorageVolumes[].VolumeName' \ --output textNota: Sustituye your-db-instance-id por el identificador de tu instancia de base de datos.
Nota: Si no puedes obtener el nombre del volumen, debes actualizar la CLI de AWS a la versión más reciente.Para obtener más información sobre los volúmenes de almacenamiento, consulta Consideraciones para el uso de volúmenes de almacenamiento adicionales con RDS para SQL Server.
-
Corrige la consulta para especificar las letras de unidad de Windows correctas para
@data_file_volumey@log_file_volume.
Establecer el valor MAXTRANSFERSIZE del archivo de copia de seguridad en un valor mayor que el que se ha utilizado al realizar la restauración
Se produce un error MAXTRANSFERSIZE cuando la copia de seguridad contiene grupos de archivos FILESTREAM u OLTP en memoria y se ha utilizado un MAXTRANSFERSIZE incorrecto durante la restauración.
Nota: RDS para SQL Server no admite la característica FILESTREAM.
Si especificas MAXTRANSFERSIZE de forma explícita, es posible que aparezca un error: "RESTORE requires MAXTRANSFERSIZE=<required_size> but <your_specified_size> was specified."
Ejemplo de consulta y resultado de registro:
-- query EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::<your_bucket_name>/my_database.bak', @max_transfer_size=65536 -- specified MAXTRANSFERSIZE explicitly -- error message [2025-12-11 07:26:22.320] Task execution has started. [2025-12-11 07:26:22.520] RESTORE requires MAXTRANSFERSIZE=4194304 but 65536 was specified. RESTORE DATABASE is terminating abnormally.
Para resolver este problema, no especifiques MAXTRANSFERSIZE:
EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::<your_bucket_name>/my_database.bak'
O bien, especifica un valor igual o superior al tamaño indicado en el mensaje de error:
EXEC msdb.dbo.rds_restore_database @restore_db_name='my_database', @s3_arn_to_restore_from='arn:aws:s3:::<your_bucket_name>/my_database.bak', @max_transfer_size=4194304
Reducir el tamaño del archivo de copia de seguridad para transferirlo a Amazon S3
Este problema se produce cuando se mueve un objeto que supera el tamaño máximo de objeto para una operación multiparte de Amazon S3. Amazon S3 divide el objeto más grande en varias partes que superan el número máximo de partes para cada carga.
Ejemplo de salida de registro:
[2022-04-21 16:45:04.597] reviews_consumer/reviews_consumer_PostUpdate_042122.bak: Completed processing 100% of S3 chunks. [2022-04-21 16:47:05.427] Write on "####" failed: 995(The I/O operation has been aborted because of either a thread exit or an application request.) A nonrecoverable I/O error occurred on file "XXXX:" 995(The I/O operation has been aborted because of either a thread exit or an application request.). BACKUP DATABASE is terminating abnormally. [2022-04-21 16:47:22.033] Unable to write chunks to S3 as S3 processing has been aborted. [2022-04-21 16:47:22.040] reviews_consumer/reviews_consumer_PostUpdate_042122.bak: Aborting S3 upload, waiting for S3 workers to clean up and exit [2022-04-21 16:47:22.053] Aborted the task because of a task failure or an overlap with your preferred backup window for RDS automated backup. [2022-04-21 16:47:22.060] reviews_consumer/reviews_consumer_PostUpdate_042122.bak: Aborting S3 upload, waiting for S3 workers to clean up and exit [2022-04-21 16:47:22.067] S3 write stream upload failed. Encountered an error while uploading an S3 chunk: Part number must be an integer between 1 and 10000, inclusive S3 write stream upload failed. Encountered an error while uploading an S3 chunk: Part number must be an integer between 1 and 10000, inclusive S3 write stream upload failed. Encountered an error while uploading an S3 chunk: Part number must be an integer between 1 and 10000, inclusive S3 write stream upload failed. Encountered an error while uploading an S3 chunk: Part number must be an integer between 1 and 10000, inclusive
Para resolver este problema, activa la compresión de la copia de seguridad de la base de datos para reducir el tamaño de la copia de seguridad a fin de que Amazon S3 pueda recibir el archivo.
Para activar la compresión de copias de seguridad, ejecuta el siguiente comando:
exec rdsadmin..rds_set_configuration 'S3 backup compression', 'true';
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 9 meses
- preguntada hace 10 meses
- preguntada hace un año
- preguntada hace 8 meses