

# Acceso a las copias de seguridad del registro de transacciones con RDS para SQL Server
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess"></a>

Al tener acceso a las copias de seguridad del registro de transacciones para RDS para SQL Server, puede enumerar los archivos de copia de seguridad del registro de transacciones para una base de datos y copiarlos en un bucket de Amazon S3 de destino. Al copiar las copias de seguridad del registro de transacciones en un bucket de Amazon S3, puede utilizarlas en combinación con copias de seguridad de bases de datos completas y diferenciadas para realizar restauraciones puntuales de bases de datos. Utiliza los procedimientos almacenados de RDS para configurar el acceso a las copias de seguridad del registro de transacciones, enumera las copias de seguridad del registro de transacciones disponibles y las copia en su bucket de Amazon S3.

El acceso a las copias de seguridad del registro de transacciones ofrece las siguientes capacidades y beneficios:
+ Puede enumerar y ver los metadatos de las copias de seguridad del registro de transacciones disponibles para una base de datos en una instancia de base de datos de RDS para SQL Server.
+ Puede copiar las copias de seguridad del registro de transacciones disponibles de RDS para SQL Server en un bucket de Amazon S3 de destino.
+ Puede realizar restauraciones puntuales de bases de datos sin necesidad de restaurar una instancia de base de datos completa. Para obtener más información acerca la restauración de una instancia de base de datos a un momento determinado, consulte [Restauración de una instancia de base de datos a un momento especificado para Amazon RDS](USER_PIT.md).

## Disponibilidad y soporte
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Availability"></a>

Se puede acceder a las copias de seguridad del registro de transacciones dese todas las regiones de AWS. El acceso a las copias de seguridad del registro de transacciones está disponible para todas las ediciones y versiones de Microsoft SQL Server compatibles con Amazon RDS. 

## Requisitos
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements"></a>

Se deben cumplir los siguientes requisitos antes de permitir el acceso a las copias de seguridad del registro de transacciones: 
+  Las copias de seguridad automatizadas deben estar habilitadas en la instancia de base de datos y la retención de las copias de seguridad debe establecerse en un valor de uno o más días. Para obtener más información sobre cómo habilitar las copias de seguridad automatizadas y configurar una política de retención, consulte [Habilitar las copias de seguridad automatizadas](USER_WorkingWithAutomatedBackups.Enabling.md). 
+ Debe existir un bucket de Amazon S3 en la misma cuenta y región que la instancia de base de datos de origen. Antes de habilitar el acceso a las copias de seguridad del registro de transacciones, elija un bucket de Amazon S3 existente o [cree uno nuevo](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html) para usarlo en los archivos de copia de seguridad del registro de transacciones.
+ Se debe configurar una política de permisos de bucket de Amazon S3 de la siguiente manera para permitir que Amazon RDS copie los archivos de registro de transacciones en ella:

  1. Establezca la propiedad de la titularidad de la cuenta del objeto en el bucket **Bucket Owner Preferred** (Propietario del bucket preferido).

  1. Añada la política siguiente. No habrá ninguna política de forma predeterminada, así que utilice las listas de control de acceso (ACL) del bucket para editar la política de bucket y agregarla.

  

  En el siguiente ejemplo se utiliza un ARN para especificar un recurso. Le recomendamos que utilice las claves de contexto de condición globales de `SourceArn` y `SourceAccount` en las relaciones de confianza basadas en recursos para limitar los permisos del servicio a un recurso específico. Para obtener más información sobre cómo trabajar con ARN, consulte [Nombres de recursos de Amazon (ARN) ](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) y [Nombres de recursos de Amazon (ARN) en Amazon RDS](USER_Tagging.ARN.md).

    
**Example de una política de permisos de Amazon S3 para acceder a las copias de seguridad del registro de transacciones**  

------
#### [ JSON ]

****  

  ```
      {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Only allow writes to my bucket with bucket owner full control",
              "Effect": "Allow",
              "Principal": {
                  "Service": "backups.rds.amazonaws.com"
              },
              "Action": "s3:PutObject",
              "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/{customer_path}/*",
              "Condition": {
                  "StringEquals": {
                      "s3:x-amz-acl": "bucket-owner-full-control",
                      "aws:sourceAccount": "{customer_account}",
                      "aws:sourceArn": "{db_instance_arn}"
                  }
              }
          }
      ]
  }
  ```

------
+ Un rol de (IAM) AWS Identity and Access Management para acceder al bucket de Amazon S3. Si ya tiene un rol de IAM, puede utilizarlo. También puede elegir que un nuevo rol de IAM se cree en su nombre cuando se agregue la opción `SQLSERVER_BACKUP_RESTORE` mediante la Consola de administración de AWS. Si lo desea, puede crear uno nuevo manualmente. Para obtener más información sobre cómo crear y configurar un rol de IAM con `SQLSERVER_BACKUP_RESTORE`, consulte [Creación manual de un rol de IAM para la copia de seguridad y la restauración nativas](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).
+ La opción `SQLSERVER_BACKUP_RESTORE` debe añadirse a un grupo de opciones en la instancia de base de datos. Para obtener más información sobre cómo añadir la opción `SQLSERVER_BACKUP_RESTORE`, consulte [Compatibilidad con copia de seguridad y restauración nativas en SQL Server](Appendix.SQLServer.Options.BackupRestore.md).
**nota**  
Si la instancia de base de datos tiene habilitado el cifrado de almacenamiento, la clave y las acciones (KMS) de AWS KMS deben proporcionarse en el rol de IAM indicado en el grupo de opciones de copia de seguridad y restauración nativo.

  Si lo desea, si va a utilizar el procedimiento almacenado `rds_restore_log` para realizar restauraciones puntuales de bases de datos, le recomendamos que utilice la misma ruta de Amazon S3 para el grupo de opciones de copia de seguridad y restauración nativas y para acceder a las copias de seguridad del registro de transacciones. Este método garantiza que, cuando Amazon RDS asuma la función del grupo de opciones para realizar las funciones de registro de restauración, tenga acceso para recuperar las copias de seguridad del registro de transacciones desde la misma ruta de Amazon S3.
+ Si la instancia de base de datos está cifrada, independientemente del tipo de cifrado (clave administrada por AWS o clave administrada por el cliente), debe proporcionar una clave de KMS administrada por el cliente en el rol de IAM y en el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. 

## Limitaciones y recomendaciones
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Limitations"></a>

El acceso a las copias de seguridad del registro de transacciones tiene las siguientes limitaciones y recomendaciones:
+  Puede enumerar y copiar las copias de seguridad del registro de transacciones de los últimos siete días de cualquier instancia de base de datos que tenga configurada la retención de copias de seguridad entre uno y 35 días. 
+  Debe existir el bucket de Amazon S3 que se usa para acceder a las copias de seguridad del registro de transacciones en la misma cuenta y región que la instancia de base de datos de origen. No se admite la copia entre cuentas ni entre regiones. 
+  Solo se puede configurar un bucket de Amazon S3 como destino para copiar las copias de seguridad del registro de transacciones. Puede elegir un nuevo bucket de Amazon S3 de destino con el procedimiento `rds_tlog_copy_setup` almacenado. Para obtener más información sobre cómo elegir un nuevo bucket de Amazon S3 de destino, consulte [Configuración del acceso a las copias de seguridad del registro de transacciones](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).
+  No puede especificar la clave KMS cuando utilice el procedimiento `rds_tlog_backup_copy_to_S3` almacenado si la instancia de RDS no está habilitada para el cifrado de almacenamiento. 
+  No se admite la copia de varias cuentas. El rol de IAM utilizado para copiar solo permitirá el acceso de escritura a los buckets de Amazon S3 dentro de la cuenta del propietario de la instancia de base de datos. 
+  Solo se pueden ejecutar dos tareas simultáneas de cualquier tipo en una instancia de base de datos de RDS para SQL Server. 
+  Solo se puede ejecutar una tarea de copia para una única base de datos en un momento dado. Si desea copiar las copias de seguridad del registro de transacciones de varias bases de datos de la instancia de base de datos, utilice una tarea de copia independiente para cada base de datos. 
+  Si copia una copia de seguridad del registro de transacciones que ya existe con el mismo nombre en el bucket de Amazon S3, se sobrescribirá la copia de seguridad del registro de transacciones existente. 
+  Solo puede ejecutar los procedimientos almacenados que se proporcionan con acceso a las copias de seguridad del registro de transacciones en la instancia de base de datos principal. No puede ejecutar estos procedimientos almacenados en una réplica de lectura de RDS para SQL Server ni en una instancia secundaria de un clúster de base de datos Multi-AZ. 
+  Si la instancia de base de datos de RDS para SQL Server se reinicia mientras se ejecuta el procedimiento`rds_tlog_backup_copy_to_S3` almacenado, la tarea se reiniciará automáticamente desde el principio cuando la instancia de base de datos vuelva a estar en línea. Se sobrescribirán todas las copias de seguridad del registro de transacciones que se hayan copiado al bucket de Amazon S3 mientras se ejecutaba la tarea antes del reinicio. 
+ Las bases de datos del sistema Microsoft SQL Server y la base de datos `RDSAdmin` no se pueden configurar para acceder a las copias de seguridad del registro de transacciones.
+  No se admite la copia a buckets cifrados por SSE-KMS. 

# Configuración del acceso a las copias de seguridad del registro de transacciones
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling"></a>

Para configurar el acceso a las copias de seguridad del registro de transacciones, complete la lista de requisitos de la sección [Requisitos](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements) y, a continuación, ejecute el procedimiento `rds_tlog_copy_setup` almacenado. El procedimiento habilitará el acceso a la función de copias de seguridad del registro de transacciones en el nivel de instancia de base de datos. No tiene que ejecutarlo para cada base de datos individual de la instancia de base de datos. 

**importante**  
Se debe conceder al usuario de la base de datos el rol `db_owner` dentro de SQL Server en cada base de datos para configurar y utilizar la función de acceso a las copias de seguridad del registro de transacciones.

**Example de uso:**  

```
exec msdb.dbo.rds_tlog_copy_setup
@target_s3_arn='arn:aws:s3:::amzn-s3-demo-bucket/myfolder';
```

El siguiente parámetro es obligatorio:
+ `@target_s3_arn`: ARN del bucket de Amazon S3 de destino en el que se copian los archivos de copias de seguridad del registro de transacciones.

**Example de configuración de un bucket de destino de Amazon S3:**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket/mytestdb1';
```

Para validar la configuración, ejecute el procedimiento`rds_show_configuration` almacenado.

**Example de validación de la configuración:**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

Para modificar el acceso a las copias de seguridad del registro de transacciones para que apunten a un bucket de Amazon S3 diferente, puede ver el valor actual del bucket de Amazon S3 y volver a ejecutar el procedimiento `rds_tlog_copy_setup` almacenado con un nuevo valor para `@target_s3_arn`.

**Example de visualización del bucket de Amazon S3 existente configurado para acceder a las copias de seguridad del registro de transacciones**  

```
exec rdsadmin.dbo.rds_show_configuration @name='target_s3_arn_for_tlog_copy';
```

**Example de actualización de un nuevo bucket de Amazon S3 de destino**  

```
exec msdb.dbo.rds_tlog_copy_setup @target_s3_arn='arn:aws:s3:::amzn-s3-demo-logging-bucket1/mynewfolder';
```

# Publicación de las copias de seguridad del registro de transacciones disponibles
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Listing"></a>

Con RDS para SQL Server, las bases de datos configuradas para utilizar el modelo de recuperación completo y una retención de copias de seguridad de instancias de base de datos establecida en uno o más días tienen habilitadas automáticamente las copias de seguridad del registro de transacciones. Al habilitar el acceso a las copias de seguridad del registro de transacciones, tendrá a su disposición durante siete días esas copias de seguridad del registro de transacciones para que pueda copiarlas en su bucket de Amazon S3.

Una vez que haya habilitado el acceso a las copias de seguridad del registro de transacciones, puede empezar a utilizarlas para enumerar y copiar los archivos de copia de seguridad del registro de transacciones disponibles.

**Enumerar las copias de seguridad del registro de transacciones**

Para mostrar todas las copias de seguridad del registro de transacciones disponibles para una base de datos individual, llame a la función `rds_fn_list_tlog_backup_metadata`. Puede utilizar una cláusula `ORDER BY` o `WHERE` para llamar a la función.

**Example de listado y filtrado de los archivos de copia de seguridad del registro de transacciones disponibles**  

```
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename');
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE rds_backup_seq_id = 3507;
SELECT * from msdb.dbo.rds_fn_list_tlog_backup_metadata('mydatabasename') WHERE backup_file_time_utc > '2022-09-15 20:44:01' ORDER BY backup_file_time_utc DESC;
```

![\[Resultado de rds_fn_list_tlog_backup_metadata\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_func.png)


La función `rds_fn_list_tlog_backup_metadata` devuelve lo siguiente:


****  

| Nombre de la columna | Tipo de datos: | Descripción | 
| --- | --- | --- | 
| `db_name` | sysname | Nombre de la base de datos proporcionado para enumerar las copias de seguridad del registro de transacciones. | 
| `db_id` | int | Identificador interno de la base de datos para el parámetro de entrada `db_name`. | 
| `family_guid` | uniqueidentifier | Identificador único de la base de datos original en el momento de la creación. Este valor no cambia cuando se restaura la base de datos, incluso con un nombre de base de datos diferente. | 
| `rds_backup_seq_id` | int | Identificador que RDS utiliza internamente para mantener un número de secuencia para cada archivo de copia de seguridad del registro de transacciones. | 
| `backup_file_epoch` | bigint | Época en que se generó un archivo de copia de seguridad de transacciones. | 
| `backup_file_time_utc` | datetime | Valor convertido en hora UTC para el valor `backup_file_epoch`. | 
| `starting_lsn` | numeric(25,0) | Número de secuencia de registro del primer registro o del más antiguo de un archivo de copia de seguridad del registro de transacciones. | 
| `ending_lsn` | numeric(25,0) | Número de secuencia de registro del último registro o del siguiente de un archivo de copia de seguridad del registro de transacciones. | 
| `is_log_chain_broken` | bit | Valor booleano que indica si la cadena de registro está interrumpida entre el archivo de copia de seguridad del registro de transacciones actual y el archivo de copia de seguridad del registro de transacciones anterior. | 
| `file_size_bytes` | bigint | Tamaño del conjunto de copias de seguridad transaccional en bytes. | 
| `Error` | varchar(4000) | Mensaje de error si la función `rds_fn_list_tlog_backup_metadata` lanza una excepción. NULL si no hay excepciones. | 

# Copia de las copias de seguridad del registro de transacciones
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

Para copiar un conjunto de copias de seguridad del registro de transacciones disponibles para una base de datos individual en su bucket de Amazon S3, ejecute el procedimiento `rds_tlog_backup_copy_to_S3` almacenado. El procedimiento `rds_tlog_backup_copy_to_S3` almacenado iniciará una nueva tarea para copiar las copias de seguridad del registro de transacciones. 

**nota**  
El procedimiento `rds_tlog_backup_copy_to_S3` almacenado copiará las copias de seguridad del registro de transacciones sin validarlas con el atributo `is_log_chain_broken`. Por este motivo, debe confirmar manualmente una cadena de registros ininterrumpida antes de ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. Para obtener más información, consulte [Validación de la cadena de registros de copias de seguridad del registro de transacciones](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain).

**Example de uso del procedimiento `rds_tlog_backup_copy_to_S3` almacenado**  

```
exec msdb.dbo.rds_tlog_backup_copy_to_S3
	@db_name='mydatabasename',
	[@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'],	
	[@backup_file_start_time='2022-09-01 01:00:15'],
	[@backup_file_end_time='2022-09-01 21:30:45'],
	[@starting_lsn=149000000112100001],
	[@ending_lsn=149000000120400001],
	[@rds_backup_starting_seq_id=5],
	[@rds_backup_ending_seq_id=10];
```

Están disponibles los siguientes parámetros de entrada:


****  

| Parámetro | Descripción | 
| --- | --- | 
| `@db_name` | Nombre de la base de datos proporcionado para copiar las copias de seguridad del registro de transacciones. | 
| `@kms_key_arn` |  Una clave de KMS administrada por el cliente. Si cifra su instancia de base de datos con una clave de KMS administrada de AWS, debe crear una clave administrada por el cliente. Si cifra la instancia de base de datos con una clave administrada por el cliente, puede utilizar el mismo ARN de clave de KMS. | 
| `@backup_file_start_time` | La marca de tiempo UTC proporcionada en la columna `[backup_file_time_utc]` de la función `rds_fn_list_tlog_backup_metadata`. | 
| `@backup_file_end_time` | La marca de tiempo UTC proporcionada en la columna `[backup_file_time_utc]` de la función `rds_fn_list_tlog_backup_metadata`. | 
| `@starting_lsn` | Número de secuencia de registro (LSN) proporcionado en la columna `[starting_lsn]` de la función `rds_fn_list_tlog_backup_metadata`. | 
| `@ending_lsn` | Número de secuencia de registro (LSN) proporcionado en la columna `[ending_lsn]` de la función `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_starting_seq_id` | ID de secuencia proporcionado en la columna `[rds_backup_seq_id]` de la función `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_ending_seq_id` | ID de secuencia proporcionado en la columna `[rds_backup_seq_id]` de la función `rds_fn_list_tlog_backup_metadata`. | 

Puede especificar un conjunto de parámetros de tiempo, LSN o ID de secuencia. Solo se requiere un conjunto de parámetros.

También puede especificar un único parámetro en cualquiera de los conjuntos. Por ejemplo, al proporcionar un valor únicamente para el parámetro `backup_file_end_time`, todos los archivos de copia de seguridad del registro de transacciones disponibles antes de esa fecha dentro del límite de siete días se copiarán a su bucket de Amazon S3. 

A continuación se muestran las combinaciones de parámetros de entrada válidas para el procedimiento `rds_tlog_backup_copy_to_S3` almacenado.


****  

| Parámetros proporcionados | Resultado esperado | 
| --- | --- | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3  <br />	@db_name = 'testdb1',<br />            @backup_file_start_time='2022-08-23 00:00:00',<br />            @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Copia las copias de seguridad del registro de transacciones de los últimos siete días y se encuentra en el rango proporcionado entre `backup_file_start_time` y `backup_file_end_time`. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones que se generaron entre «2021-08-23 00:00:00» y «2021-08-30 00:00:00».  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />           @db_name = 'testdb1',<br />           @backup_file_start_time='2022-08-23 00:00:00';</pre>  | Copia las copias de seguridad del registro de transacciones de los últimos siete días empezando por la `backup_file_start_time` proporcionada. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones desde «2021-08-23 00:00:00» hasta la última copia de seguridad del registro de transacciones.  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />          @db_name = 'testdb1',<br />          @backup_file_end_time='2022-08-30 00:00:00';</pre>  | Copia las copias de seguridad del registro de transacciones de los últimos siete días hasta la `backup_file_end_time` proporcionada. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones entre «2021-08-23 00:00:00» y «2021-08-30 00:00:00».  | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />         @db_name='testdb1',<br />         @starting_lsn =1490000000040007,<br />         @ending_lsn =  1490000000050009;</pre>  | Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días y que se encuentran en el rango proporcionado entre `starting_lsn` y `ending_lsn`. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones de los últimos siete días con un intervalo de LSN comprendido entre 1490000000040007 y 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días empezando por la `starting_lsn`. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones desde el LSN 1490000000040007 hasta la última copia de seguridad del registro de transacciones.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días hasta la `ending_lsn` proporcionada. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones empezando por los últimos siete días hasta el LSN 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000,<br />       @rds_backup_ending_seq_id= 5000;</pre>  |  Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días y que se encuentran en el rango proporcionado entre `rds_backup_starting_seq_id` y `rds_backup_ending_seq_id`. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones de los últimos siete días y dentro del rango de ID de secuencia de copia de seguridad de RDS proporcionado, empezando por seq\$1id 2000 y hasta seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000;</pre>  |  Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días empezando por la `rds_backup_starting_seq_id`. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones desde el seq\$1id 2000 hasta la última copia de seguridad del registro de transacciones.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  Copia las copias de seguridad del registro de transacciones disponibles en los últimos siete días hasta la `rds_backup_ending_seq_id` proporcionada. En este ejemplo, el procedimiento almacenado copiará las copias de seguridad del registro de transacciones empezando por los últimos siete días hasta el seq\$1id 5000.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_starting_seq_id= 2000;<br />      @rds_backup_ending_seq_id= 2000;</pre>  |  Copia una única copia de seguridad del registro de transacciones con el `rds_backup_starting_seq_id` proporcionado, si está disponible en los últimos siete días. En este ejemplo, el procedimiento almacenado copiará una única copia de seguridad del registro de transacciones que tenga un seq\$1id de 2000, si existe en los últimos siete días.   | 

## Validación de la cadena de registros de copias de seguridad del registro de transacciones
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 Las bases de datos configuradas para acceder a las copias de seguridad del registro de transacciones deben tener habilitada la retención automática de copias de seguridad. La retención automática de copias de seguridad establece las bases de datos de la instancia de base de datos en el modelo de recuperación `FULL`. Para permitir la restauración puntual de una base de datos, evite cambiar el modelo de recuperación de la base de datos, ya que puede provocar la interrupción de la cadena de registros. Se recomienda mantener la base de datos configurada en el modelo de recuperación `FULL`.

Para validar manualmente la cadena de registros antes de copiar las copias de seguridad del registro de transacciones, llame a la función `rds_fn_list_tlog_backup_metadata` y revise los valores de la columna `is_log_chain_broken`. Un valor de 1 indica que la cadena de registro se interrumpió entre la copia de seguridad del registro actual y la copia de seguridad del registro anterior.

El siguiente ejemplo muestra una cadena de registros rota en la salida del procedimiento almacenado `rds_fn_list_tlog_backup_metadata`. 

![\[Resultado de rds_fn_list_tlog_backup_metadata que muestra una cadena de registros rota.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


En una cadena de registros normal, el valor del número de secuencia de registro (LSN) de first\$1lsn para un un rds\$1sequence\$1id determinado debe coincidir con el valor de last\$1lsn del rds\$1sequence\$1id anterior. En la imagen, el rds\$1sequence\$1id de 45 tiene un valor first\$1lsn de 90987, que no coincide con el valor last\$1lsn de 90985 del rds\$1sequence\$1id anterior de 44.

Para obtener más información sobre la arquitectura del registro de transacciones de SQL Server y los números de secuencia de registro, consulte la [Arquitectura lógica del registro de transacciones](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch) en la documentación de Microsoft SQL Server.

# Estructura de archivos y carpetas del bucket de Amazon S3
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.S3namingConvention"></a>

Las copias de seguridad del registro de transacciones tienen la siguiente estructura y convención de nomenclatura estándar dentro de un bucket de Amazon S3:
+ Se crea una nueva carpeta en la ruta `target_s3_arn` de cada base de datos con la estructura de nomenclatura como `{db_id}.{family_guid}`.
+ Dentro de la carpeta, las copias de seguridad del registro de transacciones tienen una estructura de nombre de archivo del tipo `{db_id}.{family_guid}.{rds_backup_seq_id}.{backup_file_epoch}`.
+ Puede ver los detalles de `family_guid,db_id,rds_backup_seq_id and backup_file_epoch` con la función `rds_fn_list_tlog_backup_metadata`.

En el siguiente ejemplo, se muestra la estructura de archivos y carpetas de un conjunto de copias de seguridad del registro de transacciones en un bucket de Amazon S3.

![\[Estructura de buckets de Amazon S3 con acceso a los registros de transacciones\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_s3.png)


# Seguimiento del estado de las tareas
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus"></a>

 Para realizar un seguimiento del estado de las tareas de copia, llame al procedimiento almacenado `rds_task_status`. Si no proporciona ningún parámetro, el procedimiento almacenado devuelve el estado de todas las tareas. 

**Example de uso:**  

```
exec msdb.dbo.rds_task_status
  @db_name='database_name',
  @task_id=ID_number;
```

Los siguientes parámetros son opcionales:
+ `@db_name`: nombre de la base de datos para la que se desea mostrar el estado de una tarea.
+ `@task_id`: ID de la tarea cuyo estado se desea mostrar.

**Example de enumeración del estado de un ID de tarea específica:**  

```
exec msdb.dbo.rds_task_status @task_id=5;
```

**Example de enumeración del estado de una tarea y una base de datos específicas:**  

```
exec msdb.dbo.rds_task_status@db_name='my_database',@task_id=5;
```

**Example de enumeración de todas las tareas y sus estados en una base de datos específica:**  

```
exec msdb.dbo.rds_task_status @db_name='my_database';
```

**Example de enumeración de todas las tareas y sus estados en la instancia de base de datos actual:**  

```
exec msdb.dbo.rds_task_status;
```

# Cancelación de una tarea
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.CancelTask"></a>

Para cancelar una tarea de ejecución, llame al procedimiento almacenado `rds_cancel_task`.

**Example de uso:**  

```
exec msdb.dbo.rds_cancel_task @task_id=ID_number;
```

El siguiente parámetro es obligatorio:
+ `@task_id`: ID de la tarea que se va a cancelar. Puede ver el ID de la tarea llamando al procedimiento almacenado `rds_task_status`.

Para obtener más información acerca de cómo ver y cancelar las tareas en ejecución, consulte [Importación y exportación de bases de datos de SQL Server por copias de seguridad y restauración nativas](SQLServer.Procedural.Importing.md).

# Solución de problemas del acceso a las copias de seguridad del registro de transacciones
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

A continuación se indican los problemas que se puede encontrar al utilizar los procedimientos almacenados para acceder a las copias de seguridad del registro de transacciones.


****  

| Procedimiento almacenado | Mensaje de error | Problema | Sugerencias para la solución de problemas | 
| --- | --- | --- | --- | 
| rds\$1tlog\$1copy\$1setup | Las copias de seguridad están deshabilitadas en esta instancia de base de datos. Habilite las copias de seguridad de instancias de base de datos con una retención de al menos 1 e inténtelo de nuevo. | Las copias de seguridad automatizadas no están habilitadas para la instancia de base de datos. |  La retención de copias de seguridad de instancias de base de datos debe estar habilitada con una retención de al menos un día. Para obtener más información sobre cómo habilitar las copias de seguridad automatizadas y configurar una retención de copias de seguridad, consulte [Backup retention period](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1copy\$1setup | Error al ejecutar el procedimiento almacenado rds\$1tlog\$1copy\$1setup. Vuelva a conectarse al punto de conexión de RDS e inténtelo de nuevo. | Se ha producido un error interno. | Vuelva a conectarse al punto de conexión de RDS y vuelva a ejecutar el procedimiento almacenado `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | No se admite la ejecución del procedimiento almacenado rds\$1tlog\$1backup\$1copy\$1setup dentro de una transacción. Compruebe que la sesión no tenga transacciones abiertas e inténtelo de nuevo.  | El procedimiento almacenado se ha intentado dentro de una transacción utilizando `BEGIN` y `END`. | Evite utilizar`BEGIN` y `END` cuando ejecute el procedimiento almacenado `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | El nombre del bucket de S3 para el parámetro de entrada `@target_s3_arn` debe contener al menos un carácter que no sea un espacio.  | Se ha proporcionado un valor incorrecto para el parámetro de entrada `@target_s3_arn`. | Asegúrese de que el parámetro de entrada `@target_s3_arn` especifique el ARN completo del bucket de Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | La opción `SQLSERVER_BACKUP_RESTORE` no está habilitada o está en proceso de habilitarse. Habilite la opción o vuelva a intentarlo más tarde.  | La opción `SQLSERVER_BACKUP_RESTORE` no está habilitada en la instancia de base de datos o simplemente estaba habilitada y pendiente de activación interna. | Habilite la opción `SQLSERVER_BACKUP_RESTORE` tal y como se especifica en la sección Requisitos. Espere unos minutos y vuelva a ejecutar el procedimiento almacenado `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | El ARN S3 de destino para el parámetro de entrada `@target_s3_arn` no puede estar vacío ni ser nulo.  | Se ha proporcionado un valor `NULL` para el parámetro de entrada `@target_s3_arn` o no se ha proporcionado el valor. | Asegúrese de que el parámetro de entrada `@target_s3_arn` especifique el ARN completo del bucket de Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | El ARN de S3 de destino para el parámetro de entrada `@target_s3_arn` debe empezar por arn:aws.  | El parámetro de entrada `@target_s3_arn` se ha proporcionado sin `arn:aws` en la parte delantera. | Asegúrese de que el parámetro de entrada `@target_s3_arn` especifique el ARN completo del bucket de Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | El ARN S3 de destino ya está configurado en el valor proporcionado.  | El procedimiento almacenado `rds_tlog_copy_setup` se ha ejecutado anteriormente y se ha configurado con un ARN de bucket de Amazon S3. | Para modificar el valor del bucket de Amazon S3 para acceder a las copias de seguridad del registro de transacciones, proporcione otro `target S3 ARN`. | 
| rds\$1tlog\$1copy\$1setup | No se pueden generar las credenciales para habilitar el acceso a las copias de seguridad del registro de transacciones. Confirme el ARN de la ruta de S3 proporcionada con `rds_tlog_copy_setup` e inténtelo de nuevo más tarde.  | Se ha producido un error no especificado al generar las credenciales para permitir el acceso a las copias de seguridad del registro de transacciones. | Revise la configuración e inténtelo de nuevo.  | 
| rds\$1tlog\$1copy\$1setup | No puede ejecutar el procedimiento almacenado rds\$1tlog\$1copy\$1setup mientras haya tareas pendientes. Espere a que se completen las tareas pendientes e inténtelo de nuevo.  | Solo se pueden ejecutar dos tareas a la vez. Hay tareas pendientes de finalización. | Visualice las tareas pendientes y espere a que se completen. Para obtener más información sobre monitorear el estado de las tareas, consulte [Seguimiento del estado de las tareas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Ya se ha emitido una tarea de copia del archivo de copia de seguridad de T-log para la base de datos: %s con el ID de tarea: %d, inténtelo de nuevo más tarde.  | Solo se puede ejecutar una tarea de copia para una base de datos determinada en un momento dado. Hay tareas de copia pendientes que todavía no han finalizado. | Visualice las tareas pendientes y espere a que se completen. Para obtener más información sobre monitorear el estado de las tareas, consulte [Seguimiento del estado de las tareas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Debe proporcionarse al menos uno de estos tres conjuntos de parámetros. SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | No se ha propocionado ninguno de los tres conjuntos de parámetros o a uno de ellos le falta un parámetro obligatorio. | Puede especificar el parámetro de tiempo, el LSN o el ID de secuencia. Se requiere un conjunto de estos tres conjuntos de parámetros. Para obtener más información acerca de los parámetros requeridos, consulte [Copia de las copias de seguridad del registro de transacciones](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Las copias de seguridad están deshabilitadas en su instancia. Habilite las copias de seguridad e inténtelo de nuevo más adelante. | Las copias de seguridad automatizadas no están habilitadas para la instancia de base de datos. |  Para obtener más información sobre cómo habilitar las copias de seguridad automatizadas y configurar una retención de copias de seguridad, consulte [Backup retention period](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No se encuentra la base de datos %s dada. | El valor proporcionado para el parámetro de entrada `@db_name` no coincide con el nombre de la base de datos de la instancia de base de datos. | Utilice el nombre de la base de datos correcto. Para enumerar todas las bases de datos por nombre, ejecute `SELECT * from sys.databases`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No se puede ejecutar el procedimiento almacenado rds\$1tlog\$1backup\$1copy\$1to\$1S3 para las bases de datos del sistema SQL Server o la base de datos rdsadmin.  | El valor proporcionado para el parámetro de entrada `@db_name` coincide con el nombre de la base de datos del sistema SQL Server o con la base de datos RDSAdmin. | No se permite el uso de las siguientes bases de datos para acceder a las copias de seguridad del registro de transacciones: `master, model, msdb, tempdb, RDSAdmin.`  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | El nombre de la base de datos del parámetro de entrada @db\$1name no puede estar vacío ni ser nulo.  | El valor proporcionado para el parámetro de entrada `@db_name` estaba vacío o `NULL`. | Utilice el nombre de la base de datos correcto. Para enumerar todas las bases de datos por nombre, ejecute `SELECT * from sys.databases`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | El período de retención de la copia de seguridad de la instancia de base de datos se debe establecer en al menos 1 para ejecutar el procedimiento almacenado rds\$1tlog\$1backup\$1copy\$1setup.  | Las copias de seguridad automatizadas no están habilitadas para la instancia de base de datos. | Para obtener más información sobre cómo habilitar las copias de seguridad automatizadas y configurar una retención de copias de seguridad, consulte [Backup retention period](USER_WorkingWithAutomatedBackups.BackupRetention.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Error al ejecutar el procedimiento almacenado rds\$1tlog\$1backup\$1copy\$1to\$1S3. Vuelva a conectarse al punto de conexión de RDS e inténtelo de nuevo.  | Se ha producido un error interno. | Vuelva a conectarse al punto de conexión de RDS y vuelva a ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Solo se puede proporcionar uno de estos tres conjuntos de parámetros. SET-1:(@backup\$1file\$1start\$1time, @backup\$1file\$1end\$1time) \$1 SET-2:(@starting\$1lsn, @ending\$1lsn) \$1 SET-3:(@rds\$1backup\$1starting\$1seq\$1id, @rds\$1backup\$1ending\$1seq\$1id)  | Se han proporcionado varios conjuntos de parámetros. | Puede especificar el parámetro de tiempo, el LSN o el ID de secuencia. Se requiere un conjunto de estos tres conjuntos de parámetros. Para obtener más información acerca de los parámetros requeridos, consulte [Copia de las copias de seguridad del registro de transacciones](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No se admite la ejecución del procedimiento almacenado rds\$1tlog\$1backup\$1copy\$1to\$1S3 dentro de una transacción. Compruebe que la sesión no tenga transacciones abiertas e inténtelo de nuevo.  | El procedimiento almacenado se ha intentado dentro de una transacción utilizando `BEGIN` y `END`. | Evite utilizar`BEGIN` y `END` cuando ejecute el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Los parámetros proporcionados están fuera del período de retención del registro de copia de seguridad de transacciones. Para ver una lista de los archivos de copia de seguridad del registro de transacciones disponibles, ejecute la función rds\$1fn\$1list\$1tlog\$1backup\$1metadata.  | No hay copias de seguridad del registro de transacciones disponibles para los parámetros de entrada proporcionados que se ajusten a la ventana de retención de copias. | Vuelva a intentarlo con un conjunto de parámetros válido. Para obtener más información acerca de los parámetros requeridos, consulte [Copia de las copias de seguridad del registro de transacciones](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Se ha producido un error de permisos al procesar la solicitud. Asegúrese de que el bucket esté en la misma cuenta y región que la instancia de base de datos y confirme los permisos de la política del bucket de S3 con la plantilla de la documentación pública.  | Se ha detectado un problema con el bucket de S3 proporcionado o con sus permisos de política. | Confirme que la configuración de acceso a las copias de seguridad del registro de transacciones es correcta. Para obtener más información sobre los requisitos de configuración de su bucket de S3, consulte [Requisitos](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No está permitido ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3` en una instancia de réplica de lectura de RDS.  | Se ha intentado realizar el procedimiento almacenado en una instancia de réplica de lectura de RDS. | Conecte con la instancia de base de datos principal de RDS para ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | El LSN para el parámetro de entrada `@starting_lsn` debe ser inferior a `@ending_lsn`.  | El valor proporcionado para el parámetro de entrada `@starting_lsn` era mayor que el valor proporcionado para el parámetro de entrada `@ending_lsn`. | Asegúrese de que el valor proporcionado para el parámetro de entrada `@starting_lsn` sea inferior al valor proporcionado para el parámetro de entrada `@ending_lsn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | El procedimiento almacenado `rds_tlog_backup_copy_to_S3` solo lo pueden realizar los miembros del rol `db_owner` en la base de datos de origen.  | No se ha otorgado el rol `db_owner` a la cuenta que intenta ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3` en el `db_name` proporcionado. | Asegúrese de que la cuenta que ejecuta el procedimiento almacenado esté autorizada con el rol `db_owner` para el `db_name` proporcionado. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | El ID de secuencia para el parámetro de entrada`@rds_backup_starting_seq_id` debe ser menor o igual que `@rds_backup_ending_seq_id`.  | El valor proporcionado para el parámetro de entrada `@rds_backup_starting_seq_id` era mayor que el valor proporcionado para el parámetro de entrada `@rds_backup_ending_seq_id`. | Asegúrese de que el valor proporcionado para el parámetro de entrada `@rds_backup_starting_seq_id` sea inferior al valor proporcionado para el parámetro de entrada `@rds_backup_ending_seq_id`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | La opción SQLSERVER\$1BACKUP\$1RESTORE no está habilitada o está en proceso de habilitarse. Habilite la opción o vuelva a intentarlo más tarde.  | La opción `SQLSERVER_BACKUP_RESTORE` no está habilitada en la instancia de base de datos o simplemente estaba habilitada y pendiente de activación interna. | Habilite la opción `SQLSERVER_BACKUP_RESTORE` tal y como se especifica en la sección Requisitos. Espere unos minutos y vuelva a ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | La hora de inicio del parámetro de entrada `@backup_file_start_time` debe ser inferior a `@backup_file_end_time`.  | El valor proporcionado para el parámetro de entrada `@backup_file_start_time` era mayor que el valor proporcionado para el parámetro de entrada `@backup_file_end_time`. | Asegúrese de que el valor proporcionado para el parámetro de entrada `@backup_file_start_time` sea inferior al valor proporcionado para el parámetro de entrada `@backup_file_end_time`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No hemos podido procesar la solicitud por falta de acceso. Compruebe la configuración y los permisos de la función.  | Puede que haya un problema con los permisos del bucket de Amazon S3 o que el bucket de Amazon S3 proporcionad o esté en otra cuenta o región. | Asegúrese de que los permisos de la política de bucket de Amazon S3 estén concedidos para poder acceder a RDS. Compruebe que el bucket de Amazon S3 esté en la misma cuenta y región que la instancia de base de datos. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | No puede proporcionar un ARN de clave KMS como parámetro de entrada para el procedimiento almacenado para las instancias que no estén cifradas para almacenamiento.  | Si el cifrado de almacenamiento no está habilitado en la instancia de base de datos, no se deberá proporcionar el parámetro de entrada `@kms_key_arn`. | No proporcione ningún parámetro de entrada para `@kms_key_arn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Debe proporcionar un ARN de clave KMS como parámetro de entrada para el procedimiento almacenado para almacenar instancias cifradas.  | Si el cifrado de almacenamiento está habilitado en la instancia de base de datos, se deberá proporcionar el parámetro de entrada `@kms_key_arn`. | Proporcione un parámetro de entrada para `@kms_key_arn` con un valor que coincida con el ARN del bucket de Amazon S3 para usarlo en las copias de seguridad del registro de transacciones. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Debe ejecutar el procedimiento almacenado `rds_tlog_copy_setup` y configurar `@target_s3_arn`, antes de ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`.  | El acceso al procedimiento de configuración de las copias de seguridad del registro de transacciones no se ha completado antes de intentar ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. | Debe ejecutar el procedimiento almacenado `rds_tlog_copy_setup` antes de ejecutar el procedimiento almacenado `rds_tlog_backup_copy_to_S3`. Para obtener más información sobre cómo ejecutar el procedimiento de configuración para acceder a las copias de seguridad del registro de transacciones, consulte [Configuración del acceso a las copias de seguridad del registro de transacciones](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).  | 