

# Acesso aos backups de logs de transações com o RDS para SQL Server
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess"></a>

Com acesso aos backup de logs de transações do RDS para SQL Server, é possível listar os arquivos de log de transações de um banco de dados e copiá-los em um bucket de destino do Amazon S3. Ao copiar backups de logs de transações em um bucket do Amazon S3, você pode usá-los em combinação com backups de banco de dados completos e diferenciais para realizar restaurações do banco de dados a um ponto anterior no tempo. Use procedimentos armazenados no RDS para configurar o acesso aos backups de logs de transações, listar os backups de logs de transações disponíveis e copiá-los em seu bucket do Amazon S3.

O acesso aos backups de logs de transações fornece os seguintes recursos e benefícios:
+ Listar e visualizar os metadados dos backups de logs de transações disponíveis de um banco de dados em uma instância de banco de dados do RDS para SQL Server.
+ Copiar os backups de logs de transações disponíveis do RDS para SQL Server em um bucket de destino do Amazon S3.
+ Executar restaurações a um ponto anterior no tempo de bancos de dados sem a necessidade de restaurar uma instância de banco de dados inteira. Para obter informações sobre como restaurar uma instância de banco de dados, consulte [Restaurar uma instância de banco de dados para um momento especificado no Amazon RDS](USER_PIT.md).

## Disponibilidade e suporte
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Availability"></a>

O acesso aos backups de logs de transações é compatível em todas as regiões.da AWS. O acesso a backups de logs de transações está disponível para todas as edições e versões do Microsoft SQL Server compatíveis com o Amazon RDS. 

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

Os requisitos a seguir devem ser atendidos antes de ativar o acesso aos backups de logs de transações: 
+  Os backups automatizados devem ser ativados na instância de banco de dados e a retenção do backup deve ser definida como um valor de um ou mais dias. Para ter mais informações sobre como ativar backups automatizados e configurar uma política de retenção, consulte [Ativar backups automáticos](USER_WorkingWithAutomatedBackups.Enabling.md). 
+ Um bucket do Amazon S3 deve existir na mesma conta e região da instância de banco de dados de origem. Antes de ativar o acesso aos backups de logs de transações, selecione um bucket existente do Amazon S3 ou [crie um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html) para usar em seus arquivos de backup de logs de transações.
+ Uma política de permissões de bucket do Amazon S3 deve ser configurada da seguinte forma para que o Amazon RDS copie arquivos de log de transações nela:

  1. Defina a propriedade da conta do objeto no bucket como **Bucket Owner Preferred** (Propriedade do bucket preferencial).

  1. Adicione a política a seguir. Não haverá nenhuma política por padrão, então use as listas de controle de acesso (ACL) do bucket para editar a política do bucket e adicioná-la.

  

  O exemplo a seguir usa um ARN para especificar um recurso. Recomendamos usar as chaves de contexto de condição global `SourceArn` e `SourceAccount` em relacionamentos de confiança baseados em recursos a fim de limitar as permissões do serviço a um recurso específico. Para ter mais informações sobre como trabalhar com ARNs, consulte [Amazon resource names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) (Nomes de recursos da Amazon (ARNs)) e [Nomes de recurso da Amazon (ARNs) no Amazon RDS](USER_Tagging.ARN.md).

    
**Example de uma política de permissões do Amazon S3 para acesso a backups de logs de transações**  

------
#### [ 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}"
                  }
              }
          }
      ]
  }
  ```

------
+ Um AWS Identity and Access Management (perfil do IAM) para acessar o bucket do Amazon S3. Se você já tiver uma função do IAM, você pode usá-la. Você pode optar por criar uma nova função do IAM ao adicionar a opção `SQLSERVER_BACKUP_RESTORE` usando o Console de gerenciamento da AWS. Você também pode criar uma nova manualmente. Para ter mais informações sobre como criar e configurar um perfil do IAM com `SQLSERVER_BACKUP_RESTORE`, consulte [Criar manualmente uma função do IAM para backup e restauração nativos](SQLServer.Procedural.Importing.Native.Enabling.md#SQLServer.Procedural.Importing.Native.Enabling.IAM).
+ A opção `SQLSERVER_BACKUP_RESTORE` deve ser adicionada a um grupo de opções em sua instância de banco de dados. Para ter mais informações sobre a adição da opção `SQLSERVER_BACKUP_RESTORE`, consulte [Suporte para backup e restauração nativos no SQL Server](Appendix.SQLServer.Options.BackupRestore.md).
**nota**  
Se sua instância de banco de dados tiver a criptografia de armazenamento habilitada, será necessário fornecer as ações e a chave do AWS KMS (KMS) no perfil do IAM indicado no grupo nativo de opções de backup e restauração.

  Opcionalmente, se você pretende usar o procedimento armazenado `rds_restore_log` para realizar restaurações do banco de dados a um ponto anterior no tempo, recomendamos usar o mesmo caminho do Amazon S3 para o grupo nativo de opções de backup e restauração e acesso aos backups de logs de transações. Esse método garante que, quando o Amazon RDS assume a função do grupo de opções para realizar as funções de log de restauração, ele tenha acesso para recuperar backups de logs de transações do mesmo caminho do Amazon S3.
+ Se a instância de banco de dados for criptografada, independentemente do tipo de criptografia (chave gerenciada pela AWS ou chave gerenciada pelo cliente), você deverá fornecer uma chave do KMS gerenciada pelo cliente no perfil do IAM e no procedimento armazenado `rds_tlog_backup_copy_to_S3`. 

## Limitações e recomendações
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Limitations"></a>

O acesso aos backups de logs de transações tem as seguintes limitações e recomendações:
+  Você pode listar e copiar até os últimos sete dias de backups de logs de transações para qualquer instância de banco de dados que tenha a retenção de backup configurada entre um a 35 dias. 
+  Um bucket do Amazon S3 utilizado para acessar backups de logs de transações deve existir na mesma conta e região da instância de banco de dados de origem. Não há suporte à cópia entre contas e regiões. 
+  Somente um bucket do Amazon S3 pode ser configurado como destino para copiar backups de logs de transações. Você pode selecionar um novo bucket de destino do Amazon S3 com o procedimento armazenado `rds_tlog_copy_setup`. Para ter mais informações sobre como selecionar um novo bucket de destino do Amazon S3, consulte [Configurar o acesso aos backups de logs de transações](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).
+  Você não poderá especificar a chave do KMS ao usar o procedimento armazenado `rds_tlog_backup_copy_to_S3` se sua instância do RDS não estiver ativada para criptografia de armazenamento. 
+  A cópia de várias contas não é compatível. O perfil do IAM utilizado para cópia só permitirá o acesso de gravação aos buckets do Amazon S3 na conta do proprietário da instância de banco de dados. 
+  Somente duas tarefas simultâneas de qualquer tipo podem ser executadas em uma instância de banco de dados do RDS para SQL Server. 
+  Somente uma tarefa de cópia pode ser executada em um único banco de dados em um determinado momento. Se você quiser copiar backups de logs de transações para vários bancos de dados na instância de banco de dados, utilize uma tarefa de cópia separada para cada banco de dados. 
+  Se você copiar um backup de logs de transações que já existe com o mesmo nome no bucket do Amazon S3, o backup de logs de transações existente será substituído. 
+  Você só pode executar os procedimentos armazenados que são fornecidos com acesso aos backups de logs de transações na instância de banco de dados primária. Não é possível executar esses procedimentos armazenados em uma réplica de leitura do RDS para SQL Server nem em uma instância secundária de um cluster de banco de dados multi-AZ. 
+  Se a instância de banco de dados do RDS para SQL Server for reinicializada enquanto o procedimento armazenado `rds_tlog_backup_copy_to_S3` estiver em execução, a tarefa será reiniciada automaticamente desde o início, quando a instância de banco de dados estiver on-line novamente. Todos os backups de logs de transações que tenha sido copiado no bucket do Amazon S3 enquanto a tarefa estiver em execução antes da reinicialização serão substituídos. 
+ Os bancos de dados do sistema Microsoft SQL Server e o banco de dados `RDSAdmin` não podem ser configurados para acesso aos backups de logs de transações.
+  A cópia em buckets criptografados pela SSE-KMS não é compatível. 

# Configurar o acesso aos backups de logs de transações
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling"></a>

Para configurar o acesso aos backups de logs de transações, complete a lista de requisitos na seção [Requisitos](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements) e, depois, execute o procedimento armazenado `rds_tlog_copy_setup`. O procedimento permitirá o acesso ao recurso de backups de logs de transações em nível de instância de banco de dados. Você não precisa executá-lo para cada banco de dados individual na instância de banco de dados. 

**Importante**  
O usuário do banco de dados deve receber a função `db_owner` no SQL Server em cada banco de dados para configurar e usar o recurso de acesso aos backups de logs de transações.

**Example uso:**  

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

O seguinte parâmetro é obrigatório:
+ `@target_s3_arn`: o ARN do bucket de destino do Amazon S3 no qual copiar arquivos de backup de logs de transações.

**Example de definir um bucket de destino do Amazon S3:**  

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

Para validar a configuração, chame o procedimento armazenado `rds_show_configuration`.

**Example de validar a configuração:**  

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

Para modificar o acesso aos backups de logs de transações para apontar para um bucket diferente do Amazon S3, você pode visualizar o valor atual do bucket do Amazon S3 e executar novamente o procedimento armazenado `rds_tlog_copy_setup` utilizando um novo valor para o `@target_s3_arn`.

**Example de visualizar o bucket existente do Amazon S3 configurado para acesso aos backups de logs de transações**  

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

**Example de atualização para um novo bucket de destino do Amazon S3**  

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

# Listar os backups de logs de transações disponíveis
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Listing"></a>

Com o RDS para SQL Server, os bancos de dados configurados para usar o modelo de recuperação completo e uma retenção de backup de instância de banco de dados definida para um ou mais dias têm os backups de logs de transações ativados automaticamente. Ao permitir o acesso aos backups de logs de transações, eles ficam disponíveis por até sete dias para você copiar em seu bucket do Amazon S3.

Depois de ativar o acesso aos backups de logs de transações, você pode começar a usá-lo para listar e copiar os arquivos de backup de logs de transações disponíveis.

**Listar backups de logs de transações**

Para listar todos os backups de logs de transações disponíveis para um banco de dados individual, chame a função `rds_fn_list_tlog_backup_metadata`. Você pode utilizar uma cláusula `ORDER BY` ou `WHERE` ao chamar a função.

**Example de listar e filtrar os arquivos de backup de logs de transações disponíveis**  

```
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;
```

![\[Saída de rds_fn_list_tlog_backup_metadata\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_func.png)


A função `rds_fn_list_tlog_backup_metadata` retorna o seguinte resultado:


****  

| Nome da coluna | Tipo de dados | Descrição | 
| --- | --- | --- | 
| `db_name` | sysname | O nome do banco de dados fornecido para listar os backups de logs de transações. | 
| `db_id` | int | O identificador interno do banco de dados para o parâmetro de entrada `db_name`. | 
| `family_guid` | uniqueidentifier | O ID exclusivo do banco de dados original na criação. Esse valor permanece o mesmo quando o banco de dados é restaurado, mesmo com um nome de banco de dados diferente. | 
| `rds_backup_seq_id` | int | O ID que o RDS utiliza internamente para manter um número de sequência de cada arquivo de backup de logs de transações. | 
| `backup_file_epoch` | bigint | A época em que um arquivo de backup de transações foi gerado. | 
| `backup_file_time_utc` | datetime | O valor UTC convertido em tempo para o valor `backup_file_epoch`. | 
| `starting_lsn` | numérico (25,0) | O número de sequência de logs do primeiro registro de log ou do mais antigo de um arquivo de backup de logs de transações. | 
| `ending_lsn` | numérico (25,0) | O número de sequência de logs do último ou do próximo registro de log de um arquivo de backup de logs de transações. | 
| `is_log_chain_broken` | bit | Um valor booliano que indica se a cadeia de logs está rompida entre o arquivo de backup de logs de transações atual e o anterior. | 
| `file_size_bytes` | bigint | O tamanho do conjunto de backup transacional em bytes. | 
| `Error` | varchar(4000) | Mensagem de erro se a função `rds_fn_list_tlog_backup_metadata` gerar uma exceção. NULL se não houver exceções. | 

# Copiar backups de logs de transações
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

Para copiar um conjunto de backups de logs de transações disponíveis para um banco de dados individual em seu bucket do Amazon S3, chame o procedimento armazenado `rds_tlog_backup_copy_to_S3`. O procedimento armazenado `rds_tlog_backup_copy_to_S3` iniciará uma nova tarefa para copiar os backups de logs de transações. 

**nota**  
O procedimento armazenado `rds_tlog_backup_copy_to_S3` copiará os backups de logs de transações sem validação em relação ao atributo `is_log_chain_broken`. Por esse motivo, você deve confirmar manualmente uma cadeia de logs ininterrupta antes de executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`. Para obter mais explicações, consulte [Validar a cadeia de logs de backup de logs de transações](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain).

**Example uso do procedimento armazenado `rds_tlog_backup_copy_to_S3`**  

```
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];
```

Os seguintes parâmetros de entrada estão disponíveis:


****  

| Parameter | Descrição | 
| --- | --- | 
| `@db_name` | O nome do banco de dados do qual copiar backups de logs de transações | 
| `@kms_key_arn` |  Uma chave do KMS gerenciada pelo cliente. Se você criptografar a instância de banco de dados com uma chave do KMS gerenciada pela AWS, será necessário criar uma chave gerenciada pelo cliente. Se criptografar a instância de banco de dados com uma chave gerenciada pelo cliente, você poderá usar o mesmo ARN da chave do KMS. | 
| `@backup_file_start_time` | O carimbo de data e hora UTC conforme fornecido na coluna `[backup_file_time_utc]` da função `rds_fn_list_tlog_backup_metadata`. | 
| `@backup_file_end_time` | O carimbo de data e hora UTC conforme fornecido na coluna `[backup_file_time_utc]` da função `rds_fn_list_tlog_backup_metadata`. | 
| `@starting_lsn` | O número de sequência de logs (LSN) conforme fornecido na coluna `[starting_lsn]` da função `rds_fn_list_tlog_backup_metadata` | 
| `@ending_lsn` | O número de sequência de logs (LSN) conforme fornecido na coluna `[ending_lsn]` da função `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_starting_seq_id` | O ID de sequência conforme fornecido na coluna `[rds_backup_seq_id]` da função `rds_fn_list_tlog_backup_metadata`. | 
| `@rds_backup_ending_seq_id` | O ID de sequência conforme fornecido na coluna `[rds_backup_seq_id]` da função `rds_fn_list_tlog_backup_metadata`. | 

Você pode especificar um conjunto de parâmetros de hora, LSN ou ID de sequência. Somente um conjunto de parâmetros é necessário.

Você também pode especificar apenas um único parâmetro em qualquer um dos conjuntos. Por exemplo, ao fornecer um valor somente para o parâmetro `backup_file_end_time`, todos os arquivos de backup de logs de transações disponíveis antes desse período dentro do limite de sete dias serão copiados em seu bucket do Amazon S3. 

Veja a seguir as combinações válidas de parâmetros de entrada para o procedimento armazenado `rds_tlog_backup_copy_to_S3`.


****  

| Parâmetros fornecidos | 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 os backups de logs de transações dos últimos sete dias e existentes entre o intervalo fornecido de`backup_file_start_time` e `backup_file_end_time`. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações que foram gerados entre “2022-08-23 00:00:00” e “2022-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 os backups de logs de transações dos últimos sete dias e a partir do `backup_file_start_time` fornecido. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações de “2022-08-23 00:00:00” até o último backup de logs de transações.  | 
|  <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 os backups de logs de transações dos últimos sete dias até o `backup_file_end_time` fornecido. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações que foram gerados de “2022-08-23 00:00:00” até “2022-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 os backups de logs de transações disponíveis dos últimos sete dias e entre o intervalo fornecido do `starting_lsn` e `ending_lsn`. Neste exemplo, o procedimento armazenado copiará backups de logs de transações dos últimos sete dias com um intervalo de LSN entre 1490000000040007 e 1490000000050009.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  Copia os backups de logs de transações disponíveis dos últimos sete dias, a partir do `starting_lsn` fornecido. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações do LSN 1490000000040007 até o último backup de logs de transações.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  Copia os backups de logs de transações disponíveis dos últimos sete dias, até o `ending_lsn` fornecido. Neste exemplo, o procedimento armazenado copiará backups de logs de transações a partir dos últimos sete dias até o 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 os backups de logs de transações disponíveis dos últimos sete dias e existentes entre o intervalo fornecido de `rds_backup_starting_seq_id` e `rds_backup_ending_seq_id`. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações dos últimos sete dias e dentro do intervalo de ID da sequência de backup do rds fornecido, começando de seq\$1id 2000 até 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 os backups de logs de transações disponíveis dos últimos sete dias, a partir do `rds_backup_starting_seq_id` fornecido. Neste exemplo, o procedimento armazenado copiará os backups de logs de transações de seq\$1id 2000 até o último backup de logs de transações.   | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  Copia os backups de logs de transações disponíveis dos últimos sete dias, até o `rds_backup_ending_seq_id` fornecido. Neste exemplo, o procedimento armazenado copiará backups de logs de transações a partir dos últimos sete dias, até 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 um único backup de logs de transações com o `rds_backup_starting_seq_id` fornecido, se disponível nos últimos sete dias. Neste exemplo, o procedimento armazenado copiará um único backup de logs de transações que tenha um seq\$1id de 2000, se houver nos últimos sete dias.   | 

## Validar a cadeia de logs de backup de logs de transações
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 Os bancos de dados configurados para acesso aos backups de logs de transações devem ter a retenção automatizada de backup ativada. A retenção automatizada de backup define os bancos de dados na instância de banco de dados de acordo com o modelo de recuperação `FULL`. Para ser compatível com a restauração a um ponto anterior no tempo de um banco de dados, evite alterar o modelo de recuperação do banco de dados, o que pode ocasionar uma cadeia de registros interrompida. Recomendamos manter o banco de dados definido como o modelo de recuperação `FULL`.

Para validar manualmente a cadeia de logs antes de copiar os backups de logs de transações, chame a função `rds_fn_list_tlog_backup_metadata` e revise os valores na coluna `is_log_chain_broken`. Um valor de “1" indica que a cadeia de logs foi interrompida entre o backup de logs atual e o backup de logs anterior.

O exemplo a seguir mostra uma cadeia de logs interrompida na saída do procedimento armazenado `rds_fn_list_tlog_backup_metadata`. 

![\[Saída de rds_fn_list_tlog_backup_metadata mostrando uma cadeia de logs interrompida.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


Em uma cadeia de logs normal, o valor do número de sequência de log (LSN) para first\$1lsn para determinado rds\$1sequence\$1id deve corresponder ao valor de last\$1lsn no rds\$1sequence\$1id anterior. Na imagem, o rds\$1sequence\$1id de 45 tem um valor first\$1lsn 90987, que não corresponde ao valor last\$1lsn de 90985 do rds\$1sequence\$1id 44 anterior.

Para ter mais informações sobre a arquitetura de logs de transações e os números de sequência de log do SQL Server, consulte [Transaction Log Logical Architecture](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch) (Arquitetura lógica do log de transações) na documentação do Microsoft SQL Server.

# Estrutura de arquivos e pastas do bucket do Amazon S3
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.S3namingConvention"></a>

Os backups de logs de transações têm a seguinte estrutura padrão e convenção de nomenclatura em um bucket do Amazon S3:
+ Uma nova pasta é criada no caminho `target_s3_arn` de cada banco de dados com a estrutura de nomenclatura `{db_id}.{family_guid}`.
+ Dentro da pasta, os backups de logs de transações têm uma estrutura de nome de arquivo `{db_id}.{family_guid}.{rds_backup_seq_id}.{backup_file_epoch}`.
+ Você pode ver os detalhes de `family_guid,db_id,rds_backup_seq_id and backup_file_epoch` da função `rds_fn_list_tlog_backup_metadata`.

O exemplo a seguir mostra a estrutura de pastas e arquivos de um conjunto de backups de logs de transações em um bucket do Amazon S3.

![\[Estrutura de buckets do Amazon S3 com acesso aos logs de transações\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_s3.png)


# Acompanhar o status de tarefas
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus"></a>

 Para acompanhar o status de suas tarefas de cópia, chame o procedimento armazenado `rds_task_status`. Se você não fornecer nenhum parâmetro, o procedimento armazenado retornará o status de todas as tarefas. 

**Example uso:**  

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

Os seguintes parâmetros são opcionais:
+ `@db_name` – o nome do banco de dados do qual o status será exibido.
+ `@task_id` – o nome do ID da tarefa do qual o status será exibido.

**Example de listagem do status de um ID de tarefa específico:**  

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

**Example de listagem do status de uma tarefa e banco de dados específicos:**  

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

**Example de listagem de todas as tarefas e seus status de um banco de dados específico:**  

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

**Example de listagem de todas as tarefas e seus status na instância de banco de dados atual**  

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

# Cancelar uma tarefa
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.CancelTask"></a>

Para cancelar uma tarefa em execução, chame o procedimento armazenado `rds_cancel_task`.

**Example uso:**  

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

O seguinte parâmetro é obrigatório:
+ `@task_id` – o ID da tarefa a ser cancelada. Você pode visualizar o ID da tarefa chamando o procedimento armazenado `rds_task_status`.

Para ter mais informações sobre como visualizar e cancelar tarefas em execução, consulte [Importar e exportar bancos de dados do SQL Server usando backup e restauração nativos](SQLServer.Procedural.Importing.md).

# Solução de problemas de acesso aos backups de logs de transações
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Troubleshooting"></a>

Os problemas a seguir podem ocorrer ao usar os procedimentos armazenados para acesso aos backups de logs de transações.


****  

| Procedimento armazenado | Mensagem de erro | Problema | Sugestões de solução de problemas | 
| --- | --- | --- | --- | 
| rds\$1tlog\$1copy\$1setup | Os backups estão desativados nessa instância de banco de dados. Ative backups de instâncias de banco de dados com uma retenção de pelo menos “1" e tente novamente. | Backups automatizados não estão ativados para a instância de banco de dados. |  A retenção de backup da instância de banco de dados deve ser ativada com uma retenção de pelo menos um dia. Para ter mais informações sobre como ativar backups automatizados e configurar a retenção de backups, consulte [Período de retenção de backup](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1copy\$1setup | Erro ao executar o procedimento armazenado rds\$1tlog\$1copy\$1setup. Reconecte-se ao endpoint do RDS e tente novamente. | Ocorreu um erro interno. | Reconecte-se ao endpoint do RDS e execute o procedimento armazenado `rds_tlog_copy_setup` novamente. | 
| rds\$1tlog\$1copy\$1setup | A execução do procedimento armazenado rds\$1tlog\$1backup\$1copy\$1setup em uma transação não é compatível. Verifique se a sessão não tem transações abertas e tente novamente.  | Houve uma tentativa de realizar o procedimento armazenado em uma transação com o uso de `BEGIN` e `END`. | Evite utilizar `BEGIN` e `END` ao executar o procedimento armazenado `rds_tlog_copy_setup`. | 
| rds\$1tlog\$1copy\$1setup | O nome do bucket do S3 para o parâmetro de entrada`@target_s3_arn` deve conter pelo menos um caractere diferente de um espaço.  | Um valor incorreto foi fornecido para o parâmetro de entrada `@target_s3_arn`. | O parâmetro de entrada `@target_s3_arn` deve especificar o ARN completo do bucket do Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | A opção `SQLSERVER_BACKUP_RESTORE` não está ativada ou está em processo de ativação. Ative a opção ou tente novamente mais tarde.  | A opção `SQLSERVER_BACKUP_RESTORE` não está ativada na instância de banco de dados ou estava apenas ativada e com a ativação interna pendente. | Ative a opção `SQLSERVER_BACKUP_RESTORE` conforme especificado na seção Requirements (Requisitos). Aguarde alguns minutos e execute o procedimento armazenado `rds_tlog_copy_setup` novamente. | 
| rds\$1tlog\$1copy\$1setup | O arn de destino do S3 para o parâmetro de entrada `@target_s3_arn` não pode estar em branco nem ser nulo.  | Um valor `NULL` foi fornecido para o parâmetro de entrada `@target_s3_arn` ou o valor não foi fornecido. | O parâmetro de entrada `@target_s3_arn` deve especificar o ARN completo do bucket do Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | O arn de destino do S3 para o parâmetro de entrada `@target_s3_arn` deve começar com arn:aws.  | O parâmetro de entrada `@target_s3_arn` foi fornecido sem `arn:aws` na frente. | O parâmetro de entrada `@target_s3_arn` deve especificar o ARN completo do bucket do Amazon S3. | 
| rds\$1tlog\$1copy\$1setup | O ARN de destino do S3 já está definido com o valor fornecido.  | O procedimento armazenado `rds_tlog_copy_setup` foi executado anteriormente e configurado com um ARN do bucket do Amazon S3. | Para modificar o valor do bucket do Amazon S3 para acesso aos backups de logs de transações, forneça um `target S3 ARN` diferente. | 
| rds\$1tlog\$1copy\$1setup | Não é possível gerar credenciais para ativar o acesso aos backups de logs de transações. Confirme o ARN do caminho do S3 fornecido com `rds_tlog_copy_setup` e tente novamente mais tarde.  | Houve um erro não especificado ao gerar credenciais para permitir o acesso aos backups de logs de transações. | Revise a configuração e tente novamente.  | 
| rds\$1tlog\$1copy\$1setup | Você não pode executar o procedimento armazenado rds\$1tlog\$1copy\$1setup enquanto houver tarefas pendentes. Aguarde até que as tarefas pendentes sejam concluídas e tente novamente.  | Somente duas tarefas podem ser executadas por vez. Há tarefas pendentes aguardando conclusão. | Visualize as tarefas pendentes e aguarde a conclusão delas. Para ter mais informações sobre monitoramento do status da tarefa, consulte [Acompanhar o status de tarefas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Uma tarefa de cópia de arquivos de backup T-log já foi emitida para o banco de dados: %s com ID da tarefa: %d, tente novamente mais tarde.  | Somente uma tarefa de cópia pode ser executada em um único banco de dados em um determinado momento. Há uma tarefa de cópia pendente aguardando conclusão. | Visualize as tarefas pendentes e aguarde a conclusão delas. Para ter mais informações sobre monitoramento do status da tarefa, consulte [Acompanhar o status de tarefas](USER.SQLServer.AddlFeat.TransactionLogAccess.TrackTaskStatus.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Pelo menos um destes três conjuntos de parâmetros deve ser fornecido. 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)  | Nenhum dos três conjuntos de parâmetros foi fornecido, ou um conjunto de parâmetros fornecido não tem um parâmetro obrigatório. | Você pode especificar parâmetros de hora, lsn ou ID de sequência. É necessário um destes três conjuntos de parâmetros. Para ter mais informações sobre os parâmetros obrigatórios, consulte [Copiar backups de logs de transações](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Os backups estão desativados em sua instância. Ative os backups e tente novamente em algum momento. | Backups automatizados não estão ativados para a instância de banco de dados. |  Para ter mais informações sobre como ativar backups automatizados e configurar a retenção de backups, consulte [Período de retenção de backup](USER_WorkingWithAutomatedBackups.BackupRetention.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Não é possível encontrar o banco de dados %s fornecido.  | O valor fornecido para o parâmetro de entrada `@db_name` não corresponde ao nome do banco de dados na instância de banco de dados. | Utilize o nome de banco de dados correto. Para listar todos os bancos de dados por nome, execute `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Não é possível executar o procedimento armazenado rds\$1tlog\$1backup\$1copy\$1to\$1S3 para bancos de dados do sistema do SQL Server nem para o banco de dados rdsadmin.  | O valor fornecido para o parâmetro de entrada `@db_name` corresponde ao nome do banco de dados do sistema do SQL Server ou ao banco de dados RDSAdmin. | Os seguintes bancos de dados não podem ser usados com acesso aos backups de logs de transações: `master, model, msdb, tempdb, RDSAdmin.`  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | O nome do banco de dados do parâmetro de entrada @db\$1name não pode estar em branco nem ser nulo.  | Um valor fornecido para o parâmetro de entrada `@db_name` estava em branco ou `NULL`. | Utilize o nome de banco de dados correto. Para listar todos os bancos de dados por nome, execute `SELECT * from sys.databases` | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | O período de retenção do backup da instância de banco de dados deve ser definido como pelo menos 1 para executar o procedimento armazenado rds\$1tlog\$1backup\$1copy\$1setup.  | Backups automatizados não estão ativados para a instância de banco de dados. | Para ter mais informações sobre como ativar backups automatizados e configurar a retenção de backups, consulte [Período de retenção de backup](USER_WorkingWithAutomatedBackups.BackupRetention.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Erro ao executar o procedimento armazenado rds\$1tlog\$1backup\$1copy\$1to\$1S3. Reconecte-se ao endpoint do RDS e tente novamente.  | Ocorreu um erro interno. | Reconecte-se ao endpoint do RDS e execute o procedimento armazenado `rds_tlog_backup_copy_to_S3` novamente. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Somente um destes três conjuntos de parâmetros deve ser fornecido. 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)  | Vários conjuntos de parâmetros foram fornecidos. | Você pode especificar parâmetros de hora, lsn ou ID de sequência. É necessário um destes três conjuntos de parâmetros. Para ter mais informações sobre os parâmetros obrigatórios, consulte [Copiar backups de logs de transações](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md).  | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | A execução do procedimento armazenado rds\$1tlog\$1backup\$1copy\$1to\$1S3 em uma transação não é compatível. Verifique se a sessão não tem transações abertas e tente novamente.  | Houve uma tentativa de realizar o procedimento armazenado em uma transação com o uso de `BEGIN` e `END`. | Evite utilizar `BEGIN` e `END` ao executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Os parâmetros fornecidos estão fora do período de retenção de logs de backup de transações. Para listar os arquivos de backup de logs de transações disponíveis, execute a função rds\$1fn\$1list\$1tlog\$1backup\$1metadata.  | Não há backups de logs transacionais disponíveis para os parâmetros de entrada fornecidos que se encaixem na janela de retenção de cópias. | Tente novamente com um conjunto válido de parâmetros. Para ter mais informações sobre os parâmetros obrigatórios, consulte [Copiar backups de logs de transações](USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.md). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Houve um erro de permissão no processamento da solicitação. O bucket deve estar na mesma conta e região da instância de banco de dados e confirme as permissões da política de bucket do S3 em relação ao modelo na documentação pública.  | Foi detectado um problema com o bucket do S3 fornecido ou com suas permissões de política. | Confirme se sua configuração de acesso aos backups de logs de transações está correta. Para ter mais informações sobre os requisitos de configuração para seu bucket do S3, consulte [Requisitos](USER.SQLServer.AddlFeat.TransactionLogAccess.md#USER.SQLServer.AddlFeat.TransactionLogAccess.Requirements). | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Não é permitido executar o procedimento armazenado `rds_tlog_backup_copy_to_S3` em uma instância de réplica de leitura do RDS.  | Houve uma tentativa de realizar o procedimento armazenado em uma instância de réplica de leitura do RDS. | Conecte-se à instância de banco de dados primária do RDS para executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | O LSN para o parâmetro de entrada `@starting_lsn` deve ser menor que `@ending_lsn`.  | O valor fornecido para o parâmetro de entrada `@starting_lsn` foi maior do que o valor fornecido para o parâmetro de entrada `@ending_lsn`. | O valor fornecido para o parâmetro de entrada `@starting_lsn` foi menor do que o valor fornecido para o parâmetro de entrada `@ending_lsn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | O procedimento armazenado `rds_tlog_backup_copy_to_S3` só pode ser executado pelos membros da função `db_owner` no banco de dados de origem.  | A função `db_owner` não foi concedida para a conta que está tentando executar o procedimento armazenado `rds_tlog_backup_copy_to_S3` no `db_name` fornecido. | A conta que executa o procedimento armazenado deve ter permissão com a função `db_owner` para o `db_name` fornecido. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | O ID de sequência do parâmetro de entrada `@rds_backup_starting_seq_id` deve ser menor ou igual a `@rds_backup_ending_seq_id`.  | O valor fornecido para o parâmetro de entrada `@rds_backup_starting_seq_id` foi maior do que o valor fornecido para o parâmetro de entrada `@rds_backup_ending_seq_id`. | O valor fornecido para o parâmetro de entrada `@rds_backup_starting_seq_id` foi menor do que o valor fornecido para o parâmetro de entrada `@rds_backup_ending_seq_id`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | A opção SQLSERVER\$1BACKUP\$1RESTORE não está ativada ou está em processo de ativação. Ative a opção ou tente novamente mais tarde.  | A opção `SQLSERVER_BACKUP_RESTORE` não está ativada na instância de banco de dados ou estava apenas ativada e com a ativação interna pendente. | Ative a opção `SQLSERVER_BACKUP_RESTORE` conforme especificado na seção Requirements (Requisitos). Aguarde alguns minutos e execute o procedimento armazenado `rds_tlog_backup_copy_to_S3` novamente. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | A hora de início do parâmetro de entrada `@backup_file_start_time` deve ser menor do que `@backup_file_end_time`.  | O valor fornecido para o parâmetro de entrada `@backup_file_start_time` foi maior do que o valor fornecido para o parâmetro de entrada `@backup_file_end_time`. | O valor fornecido para o parâmetro de entrada `@backup_file_start_time` foi menor do que o valor fornecido para o parâmetro de entrada `@backup_file_end_time`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Não conseguimos processar a solicitação devido à falta de acesso. Confira sua configuração e permissões para o recurso.  | Pode haver um problema com as permissões do bucket do Amazon S3, ou o bucket do Amazon S3 fornecido está em outra conta ou região. | As permissões da política de bucket do Amazon S3 devem ter permissão para permitir o acesso ao RDS. Um bucket do Amazon S3 deve existir na mesma conta e região da instância de banco de dados. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Você não pode fornecer um ARN de chave do KMS como parâmetro de entrada para o procedimento armazenado para instâncias que não são criptografadas para armazenamento.  | Quando a criptografia de armazenamento não está ativada na instância de banco de dados, o parâmetro de entrada `@kms_key_arn` não deve ser fornecido. | Não forneça um parâmetro de entrada para `@kms_key_arn`. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Você deve fornecer um ARN de chave do KMS como parâmetro de entrada para o procedimento armazenado para instâncias criptografadas para armazenamento.  | Quando a criptografia de armazenamento está ativada na instância de banco de dados, o parâmetro de entrada `@kms_key_arn` deve ser fornecido. | Forneça um parâmetro de entrada para `@kms_key_arn` com um valor que corresponda ao ARN do bucket do Amazon S3 a ser usado para backups de logs de transações. | 
| rds\$1tlog\$1backup\$1copy\$1to\$1S3 | Você deve executar o procedimento armazenado `rds_tlog_copy_setup` e definir o `@target_s3_arn` antes de executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`.  | O procedimento de configuração do acesso aos backups de logs de transações não foi concluído antes da tentativa de executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`. | Execute o procedimento armazenado `rds_tlog_copy_setup` antes de executar o procedimento armazenado `rds_tlog_backup_copy_to_S3`. Para ter mais informações sobre como executar o procedimento de configuração para acesso aos backups de logs de transações, consulte [Configurar o acesso aos backups de logs de transações](USER.SQLServer.AddlFeat.TransactionLogAccess.Enabling.md).  | 