Integrar uma instância de banco de dados do Amazon RDS for SQL Server ao Amazon S3 - Amazon Relational Database Service

Integrar uma instância de banco de dados do Amazon RDS for SQL Server ao Amazon S3

É possível transferir arquivos entre uma instância de banco de dados do Amazon RDS for SQL Server e um bucket do Amazon S3. Ao fazer isso, é possível usar o Amazon S3 com os recursos do SQL Server, como BULK INSERT. Por exemplo, é possível baixar .csv, .xml, .txt e outros arquivos do Amazon S3 no host da instância de banco de dados de D:\S3\ para o banco de dados. Todos os arquivos são armazenados em D:\S3\ na instância de banco de dados.

As limitações a seguir se aplicam a:

  • Os arquivos na pasta D:\S3 são excluídos na réplica em espera após um failover em instâncias Multi-AZ. Para obter mais informações, consulte Limitações Multi-AZ para a integração do S3.

  • A instância de banco de dados e o bucket do S3 devem estar na mesma região da AWS.

  • Se você executar mais de uma tarefa de integração do S3 por vez, as tarefas serão executadas sequencialmente, não em paralelo.

    nota

    As tarefas de integração do S3 compartilham a mesma fila que as tarefas nativas de backup e restauração. É possível ter no máximo duas tarefas em andamento a qualquer momento nesta fila. Portanto, duas tarefas nativas de backup e restauração em execução bloquearão todas as tarefas de integração do S3.

  • É necessário habilitar novamente o recurso de integração do S3 em instâncias restauradas. A integração do S3 não é propagada da instância de origem para a instância restaurada. Os arquivos em D:\S3 são excluídos em uma instância restaurada.

  • O download na instância de banco de dados é limitado a 100 arquivos. Em outras palavras, não pode haver mais de 100 arquivos em D:\S3\.

  • Somente arquivos sem extensões de arquivo ou com as seguintes extensões de arquivo são aceitos para download: .abf, .asdatabase, .bcp, .configsettings, .csv, .dat, .deploymentoptions, .deploymenttargets, .fmt, .info, .ispac, .lst, .tbl, .txt, .xml e .xmla.

  • O bucket do S3 deve ter o mesmo proprietário da função do AWS Identity and Access Management (IAM) relacionada. Portanto, a integração do S3 entre contas não tem suporte.

  • O bucket do S3 não pode ser aberto ao público.

  • O tamanho do arquivo para uploads do RDS para o S3 é limitado a 50 GB por arquivo.

  • O tamanho do arquivo para downloads do S3 para o RDS é limitado ao máximo aceito pelo S3.

Para obter mais informações sobre como trabalhar com arquivos no Amazon S3, consulte Conceitos básicos do Amazon Simple Storage Service.

Pré-requisitos para integrar o RDS for SQL Server com o S3

Antes de começar, encontre e crie o bucket do S3 que você deseja usar. Além disso, adicione permissões para que a instância de banco de dados do RDS possa acessar o bucket do S3. Para configurar esse acesso, crie uma política do IAM e uma função do IAM.

Como criar uma política do IAM para acesso ao Amazon S3
  1. No Console de gerenciamento do IAM, escolha Policies (Políticas) no painel de navegação.

  2. Crie uma nova política e use a guia Visual editor (Editor visual) para as etapas a seguir.

  3. Para Service (Serviço), insira S3 e escolha o serviço do S3.

  4. Para Actions (Ações), escolha o seguinte para conceder o acesso que a instância de banco de dados exige:

    • ListAllMyBuckets – obrigatório

    • ListBucket – obrigatório

    • GetBucketACL – obrigatório

    • GetBucketLocation – obrigatório

    • GetObject – necessário para baixar arquivos do S3 em D:\S3\

    • PutObject – necessário para fazer upload de arquivos de D:\S3\ no S3

    • ListMultipartUploadParts – necessário para fazer upload de arquivos de D:\S3\ no S3

    • AbortMultipartUpload – necessário para fazer upload de arquivos de D:\S3\ no S3

  5. Para Resources (Recursos), as opções exibidas dependem de quais ações são escolhidas na etapa anterior. É possível ver opções para bucket, object (objeto) ou os dois. Para cada um deles, adicione o nome de recurso da Amazon (ARN) adequado.

    Em bucket, adicione o ARN do bucket que você deseja usar. Por exemplo, se o bucket for chamado example-bucket, defina o ARN como arn:aws:s3:::example-bucket.

    Em object (objeto), insira o ARN do bucket e escolha uma das seguintes opções:

    • Para conceder acesso a todos os arquivos no bucket especificado, escolha Any (Qualquer um) para Bucket name (Nome do bucket) e Object name (Nome do objeto).

    • Para conceder acesso a pastas ou arquivos específicos no bucket, forneça os ARNs dos objetos e buckets específicos que você deseja que o SQL Server acesse.

  6. Siga as instruções no console até terminar a criação da política.

    O conteúdo anterior é um guia resumido para configurar uma política. Para instruções mais detalhadas sobre como criar políticas do IAM, consulte Criar políticas do IAM no Guia do usuário do IAM.

Como criar uma função do IAM que usa a política do IAM do procedimento anterior
  1. No Console de gerenciamento do IAM, escolha Roles (Funções) no painel de navegação.

  2. Crie uma nova função do IAM e escolha as seguintes opções à medida que elas forem exibidas no console:

    • Produto da AWS

    • RDS

    • RDS – adicionar função ao banco de dados

    Escolha Next:Permissions (Próximo: permissões) na parte inferior.

  3. Para Attach permissions policies (Anexar políticas de permissões), insira o nome da política do IAM criada anteriormente. Depois disso, escolha essa política na lista.

  4. Siga as instruções no console até terminar a criação da função.

    O anterior é um guia resumido para configurar uma função. Se quiser informações mais detalhadas sobre como criar funções, consulte Funções do IAM no Guia do usuário do IAM.

Para conceder acesso do Amazon RDS a um bucket do Simple Storage Service (Simple Storage Service (Amazon S3)), use o seguinte processo:

  1. Crie uma política do IAM que conceda ao Amazon RDS acesso a um bucket do S3.

  2. Crie uma função do IAM que o Amazon RDS possa assumir em seu nome para acessar seus buckets do S3.

    Para ter mais informações, consulte Criar um perfil para delegar permissões a um usuário do IAM no Guia do usuário do IAM.

  3. Anexe a política do IAM que você criou ao perfil do IAM que você criou.

Para criar a política do IAM

Inclua as ações adequadas para conceder o acesso que a instância de banco de dados exige:

  • ListAllMyBuckets – obrigatório

  • ListBucket – obrigatório

  • GetBucketACL – obrigatório

  • GetBucketLocation – obrigatório

  • GetObject – necessário para baixar arquivos do S3 em D:\S3\

  • PutObject – necessário para fazer upload de arquivos de D:\S3\ no S3

  • ListMultipartUploadParts – necessário para fazer upload de arquivos de D:\S3\ no S3

  • AbortMultipartUpload – necessário para fazer upload de arquivos de D:\S3\ no S3

  1. O comando da AWS CLI a seguir cria uma política do IAM denominada rds-s3-integration-policy com essas opções. Ele concede acesso a um bucket denominado bucket_name.

    Para Linux, macOS ou Unix:

    aws iam create-policy \ --policy-name rds-s3-integration-policy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*" } ] }'

    Para Windows:

    Altere os finais de linha para os que são compatíveis com a interface (^, em vez de \). Além disso, no Windows, é necessário inserir um caractere de escape em todas as aspas duplas com um \. Para evitar a necessidade de inserir um caractere de escape em aspas no JSON, é possível salvá-lo em um arquivo e passá-lo como um parâmetro.

    Primeiro, crie o arquivo policy.json com a seguinte política de permissão:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::bucket_name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::bucket_name/key_prefix/*" } ] }

    Depois disso, use o seguinte comando para criar a política:

    aws iam create-policy ^ --policy-name rds-s3-integration-policy ^ --policy-document file://file_path/assume_role_policy.json
  2. Após a criação da política, observe o nome de recurso da Amazon (ARN) da política. O ARN é necessário para uma etapa subsequente.

Como criar o perfil do IAM
  • O comando da AWS CLI a seguir cria a função do IAM rds-s3-integration-role para essa finalidade.

    Para Linux, macOS ou Unix:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    Para Windows:

    Altere os finais de linha para os que são compatíveis com a interface (^, em vez de \). Além disso, no Windows, é necessário inserir um caractere de escape em todas as aspas duplas com um \. Para evitar a necessidade de inserir um caractere de escape em aspas no JSON, é possível salvá-lo em um arquivo e passá-lo como um parâmetro.

    Primeiro, crie o arquivo assume_role_policy.json com a seguinte política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

    Depois disso, use o comando a seguir para criar a função do IAM:

    aws iam create-role ^ --role-name rds-s3-integration-role ^ --assume-role-policy-document file://file_path/assume_role_policy.json
    exemplo de usar a chave de contexto de condição global para criar a função do IAM

    Recomendamos usar as chaves de contexto de condição global aws:SourceArn e aws:SourceAccount em políticas baseadas em recursos para limitar as permissões do serviço a um recurso específico. Essa é a maneira mais eficiente de se proteger contra o problema "confused deputy".

    Você pode usar as duas chaves de contexto de condição global e fazer com que o valor aws:SourceArn contenha o ID da conta. Nesses casos, verifique se o valor aws:SourceAccount e a conta no valor aws:SourceArn usa o mesmo ID de conta quando eles são usados na mesma instrução de política.

    • Use aws:SourceArn se quiser acesso entre serviços para um único recurso.

    • Use aws:SourceAccount se você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

    Na política, certifique-se de usar a chave de contexto de condição global aws:SourceArn com o nome do recurso da Amazon (ARN) completo dos recursos acessando a função. Para integração do S3, certifique-se de incluir os ARNs de instância de banco de dados, conforme mostrado no exemplo a seguir.

    Para Linux, macOS ou Unix:

    aws iam create-role \ --role-name rds-s3-integration-role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }'

    Para Windows:

    Adicione as chaves de contexto de condição globais à assume_role_policy.json.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn":"arn:aws:rds:Region:my_account_ID:db:db_instance_identifier" } } } ] }
Para anexar a política do IAM à função do IAM
  • O seguinte comando da AWS CLI anexa a política à função denominada rds-s3-integration-role. Substitua your-policy-arn pelo ARN da política que você anotou em uma etapa anterior.

    Para Linux, macOS ou Unix:

    aws iam attach-role-policy \ --policy-arn your-policy-arn \ --role-name rds-s3-integration-role

    Para Windows:

    aws iam attach-role-policy ^ --policy-arn your-policy-arn ^ --role-name rds-s3-integration-role

Habilitação da integração do RDS for SQL Server com o S3

Na seção a seguir, é possível saber como habilitar a integração do Amazon S3 com o Amazon RDS for SQL Server. Para trabalhar com a integração do S3, a instância do banco de dados deve ser associada à função do IAM criada anteriormente para que você possa usar o parâmetro de nome do recurso S3_INTEGRATION.

nota

Para adicionar uma função do IAM a uma instância de banco de dados, o status da instância de banco de dados deve ser available (disponível).

Para associar uma função do IAM à sua instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. Escolha o nome da instância de banco de dados do RDS for SQL Server para exibir seus detalhes.

  3. Na guia Connectivity & security (Conectividade e segurança), na seção Manage IAM roles (Gerenciar funções do IAM), escolha a função do IAM a ser adicionada para Add IAM roles to this instance (Adicionar funções do IAM a essa instância).

  4. Em Feature (Recurso), escolha S3_INTEGRATION.

    
								Adicionar a função S3_INTEGRATION
  5. Escolha Add role (adicionar função).

Para adicionar a função do IAM à instância de banco de dados do RDS for SQL Server
  • O seguinte comando da AWS CLI adiciona a função do IAM a uma instância de banco de dados do RDS for SQL Server chamada mydbinstance.

    exemplo

    Para Linux, macOS ou Unix:

    aws rds add-role-to-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    Para Windows:

    aws rds add-role-to-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    Substitua your-role-arn pelo ARN da função que você anotou em uma etapa anterior. S3_INTEGRATION deve ser especificado para a opção --feature-name.

Transferência de arquivos entre o RDS for SQL Server e o Amazon S3

É possível usar os procedimentos armazenados do Amazon RDS para baixar e carregar arquivos entre o Amazon S3 e a instância de banco de dados do RDS. Também é possível usar os procedimentos armazenados do Amazon RDS para listar e excluir arquivos na instância do RDS.

Os arquivos que você baixa e carrega no S3 são armazenados na pasta D:\S3. Essa é a única pasta que pode ser usada para acessar seus arquivos. É possível organizar seus arquivos em subpastas, que são criadas para você ao incluir a pasta de destino durante o download.

Alguns dos procedimentos armazenados exigem que você forneça um nome de recurso da Amazon (ARN) ao bucket e arquivo do S3. O formato do ARN é arn:aws:s3:::bucket_name/file_name. O Amazon S3 não exige um número de conta ou região da AWS nos ARNs.

As tarefas de integração do S3 são executadas sequencialmente e compartilham a mesma fila como tarefas nativas de restauração e backup nativos. É possível ter no máximo duas tarefas em andamento a qualquer momento nesta fila. Pode demorar até cinco minutos para que o processamento da tarefa comece.

Baixar arquivos de um bucket do Amazon S3 em uma instância de banco de dados SQL Server

Para baixar arquivos de um bucket do S3 bucket em uma instância de banco de dados do RDS for SQL Server, use o procedimento armazenado do Amazon RDS msdb.dbo.rds_download_from_s3 com os parâmetros a seguir.

Nome do parâmetro Tipo de dados Padrão Obrigatório Descrição

@s3_arn_of_file

NVARCHAR

Obrigatório

O ARN do S3 do arquivo para download, por exemplo: arn:aws:s3:::bucket_name/mydata.csv

@rds_file_path

NVARCHAR

Optional

O caminho do arquivo para a instância do RDS: Se não especificado, o caminho será D:\S3\<filename in s3>. O RDS oferece suporte a caminhos absolutos e relativos. Se você deseja criar uma subpasta, inclua-a no caminho do arquivo.

@overwrite_file

INT

0

Optional

Substitua o arquivo existente:

0 = não substituir

1 = substituir

É possível baixar arquivos sem uma extensão de arquivo e arquivos com as seguintes extensões: .bcp, .csv, .dat, .fmt, .info, .lst, .tbl, .txt e .xml.

nota

Arquivos com a extensão .ispac são têm suporte para download quando o SQL Server Integration Services está habilitado. Para obter mais informações sobre como habilitar o SSIS, consulte SQL Server Integration Services.

Arquivos com as seguintes extensões têm suporte para download quando o SQL Server Analysis Services está habilitado: .abf, .asdatabase, .configsettings, .deploymentoptions, .deploymenttargets e .xmla. Para obter mais informações sobre como habilitar o SSAS, consulte SQL Server Analysis Services.

O exemplo a seguir mostra o procedimento armazenado para baixar arquivos do S3.

exec msdb.dbo.rds_download_from_s3 @s3_arn_of_file='arn:aws:s3:::bucket_name/bulk_data.csv', @rds_file_path='D:\S3\seed_data\data.csv', @overwrite_file=1;

A operação de exemplo rds_download_from_s3 cria uma pasta chamada seed_data em D:\S3\, se a pasta não existir ainda. Depois disso, o exemplo baixa o arquivo de origem bulk_data.csv do S3 para um novo arquivo chamado data.csv na instância de banco de dados. Se o arquivo existia anteriormente, ele será substituído porque o parâmetro @overwrite_file está definido como 1.

Fazer upload de arquivos de uma instância de banco de dados SQL Server para um bucket do Amazon S3

Para fazer upload de arquivos de uma instância de banco de dados do RDS for SQL Server para um bucket do S3, use o procedimento armazenado do Amazon RDS msdb.dbo.rds_upload_to_s3 com os parâmetros a seguir.

Nome do parâmetro Tipo de dados Padrão Obrigatório Descrição

@s3_arn_of_file

NVARCHAR

Obrigatório

O ARN do S3 do arquivo a ser criado no S3, por exemplo: arn:aws:s3:::bucket_name/mydata.csv

@rds_file_path

NVARCHAR

Obrigatório

O caminho de arquivo do arquivo para fazer upload no S3. Caminhos relativos e absolutos têm suporte.

@overwrite_file

INT

Optional

Substitua o arquivo existente:

0 = não substituir

1 = substituir

O exemplo a seguir faz upload do arquivo chamado data.csv do local especificado em D:\S3\seed_data\ para um arquivo new_data.csv no bucket do S3 especificado pelo ARN.

exec msdb.dbo.rds_upload_to_s3 @rds_file_path='D:\S3\seed_data\data.csv', @s3_arn_of_file='arn:aws:s3:::bucket_name/new_data.csv', @overwrite_file=1;

Se o arquivo existia antes no S3, ele será substituído porque o parâmetro @overwrite_file está definido como 1.

Listar arquivos na instância de banco de dados do RDS

Para listar os arquivos disponíveis na instância de banco de dados, use a função e o procedimento armazenado. Primeiro, execute o seguinte procedimento armazenado para coletar detalhes de arquivo dos arquivos em D:\S3\.

exec msdb.dbo.rds_gather_file_details;

O procedimento armazenado retorna o ID da tarefa. Assim como outras tarefas, esse procedimento armazenado é executado de forma assíncrona. Assim que o status da tarefa for SUCCESS, é possível usar o ID da tarefa na função rds_fn_list_file_details para listar os diretórios e arquivos existentes em D:\S3\, conforme mostrado a seguir.

SELECT * FROM msdb.dbo.rds_fn_list_file_details(TASK_ID);

A função rds_fn_list_file_details exibe uma tabela com as colunas a seguir.

Parâmetro de saída Descrição
filepath Caminho absoluto do arquivo (por exemplo, D:\S3\mydata.csv)
size_in_bytes Tamanho do arquivo (em bytes)
last_modified_utc A data e a hora da última modificação em formato UTC
is_directory Opção que indica se o item é um diretório (true/false)

Excluir arquivos na instância de banco de dados do RDS

Para excluir os arquivos disponíveis na instância de banco de dados, use o procedimento armazenado do Amazon RDS msdb.dbo.rds_delete_from_filesystem com os seguintes parâmetros.

Nome do parâmetro Tipo de dados Padrão Obrigatório Descrição

@rds_file_path

NVARCHAR

Obrigatório

O caminho de arquivo do arquivo a ser excluído. Caminhos relativos e absolutos têm suporte.

@force_delete

INT

0

Optional

Para excluir um diretório, este sinalizador deve ser incluído e definido como 1.

1 = excluir um diretório

Este parâmetro será ignorado se você estiver excluindo um arquivo.

Para excluir um diretório, o @rds_file_path deve terminar com uma barra invertida (\), e @force_delete deve ser definido como 1.

O exemplo a seguir exclui o arquivo D:\S3\delete_me.txt.

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\delete_me.txt';

O exemplo a seguir exclui o diretório D:\S3\example_folder\.

exec msdb.dbo.rds_delete_from_filesystem @rds_file_path='D:\S3\example_folder\', @force_delete=1;

Monitorar o status de uma tarefa de transferência de arquivo

Para rastrear o status da tarefa de integração do S3, chame a função rds_fn_task_status. Ela leva dois parâmetros. O primeiro parâmetro sempre deve ser NULL porque não se aplica à integração do S3. O segundo parâmetro aceita um ID de tarefa.

Para ver uma lista de todas as tarefas, defina o primeiro parâmetro como NULL e o segundo parâmetro como 0, conforme mostrado no seguinte exemplo.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,0);

Para obter uma tarefa específica, defina o primeiro parâmetro como NULL e o segundo parâmetro como o ID da tarefa, conforme mostrado no exemplo a seguir.

SELECT * FROM msdb.dbo.rds_fn_task_status(NULL,42);

A função rds_fn_task_status retorna as informações a seguir.

Parâmetro de saída

Descrição

task_id

O ID da tarefa.

task_type

Para a integração do S3, as tarefas podem ter os seguintes tipos de tarefa:

  • DOWNLOAD_FROM_S3

  • UPLOAD_TO_S3

  • LIST_FILES_ON_DISK

  • DELETE_FILES_ON_DISK

database_name

Não aplicável a tarefas de integração do S3.

% complete

O progresso da tarefa em porcentagem.

duration(mins)

A quantidade de tempo gasta na tarefa, em minutos.

lifecycle

O status da tarefa. Os possíveis status são os seguintes:

  • CREATED – Após chamar um dos procedimentos armazenados de integração do S3, uma tarefa será criada, e o status será definido como CREATED.

  • IN_PROGRESS – Após iniciar uma tarefa, o status será definido como IN_PROGRESS. Pode demorar até 5 minutos para que o status mude de CREATED para IN_PROGRESS.

  • SUCCESS – Após concluir uma tarefa, o status será definido como SUCCESS.

  • ERROR – Se uma tarefa falhar, o status será definido como ERROR. Para obter mais informações sobre o erro, consulte a coluna task_info.

  • CANCEL_REQUESTED – Após chamar rds_cancel_task, o status da tarefa será definido como CANCEL_REQUESTED.

  • CANCELLED – após uma tarefa ter sido cancelada com sucesso, o status da tarefa será definido como CANCELLED.

task_info

Informações adicionais sobre a tarefa. Se um erro ocorrer durante o processamento, essa coluna conterá informações sobre o erro.

last_updated

A data e hora em que o status da tarefa foi atualizado pela última vez.

created_at

A data e hora em que a tarefa foi criada.

S3_object_arn

O ARN do objeto do S3 baixado ou carregado.

overwrite_S3_backup_file

Não aplicável a tarefas de integração do S3.

KMS_master_key_arn

Não aplicável a tarefas de integração do S3.

filepath

O caminho de arquivo na instância de banco de dados do RDS

overwrite_file

Uma opção que indica se um arquivo existente foi substituído.

task_metadata

Não aplicável a tarefas de integração do S3.

Cancelar uma tarefa

Para cancelar tarefas de integração do S3, use o procedimento armazenado msdb.dbo.rds_cancel_task com o parâmetro task_id. Tarefas de listagem e exclusão que estão em progresso não podem ser canceladas. O exemplo a seguir mostra uma solicitação para cancelar uma tarefa.

exec msdb.dbo.rds_cancel_task @task_id = 1234;

Para obter uma visão geral de todas as tarefas e seus IDs de tarefa, use a função rds_fn_task_status conforme descrito em Monitorar o status de uma tarefa de transferência de arquivo.

Limitações Multi-AZ para a integração do S3

Em instâncias Multi-AZ, os arquivos na pasta D:\S3 são excluídos na réplica em espera após um failover. Um failover pode ser planejado, por exemplo, durante modificações de instâncias de banco de dados, como alterar a classe de instância ou atualizar a versão do mecanismo. Ou um failover pode ser não planejado, durante uma interrupção do principal.

nota

Não recomendamos usar a pasta D:\S3 para armazenamento de arquivos. A prática recomendada é carregar arquivos criados no Amazon S3 para torná-los duráveis e baixar arquivos quando precisar importar dados.

Para determinar o último tempo de failover, é possível usar o procedimento msdb.dbo.rds_failover_time armazenado. Para obter mais informações, consulte Determinar o último tempo de failover.

exemplo de nenhum failover recente

Este exemplo mostra a saída quando não há nenhum failover recente nos logs de erros. Nenhum failover aconteceu desde 29-04-2020 23:59:00.01.

Portanto, todos os arquivos baixados após esse horário que não foram excluídos usando o procedimento rds_delete_from_filesystem armazenado ainda estão acessíveis no host atual. Arquivos baixados antes desse horário também podem estar disponíveis.

errorlog_available_from recent_failover_time

29-04-2020 23:59:00.0100000

nulo

exemplo de failover recente

Este exemplo mostra a saída quando há um failover nos logs de erros. O failover mais recente foi em 05-05-2020 18:57:51.89.

Todos os arquivos baixados após esse horário que não foram excluídos usando o procedimento rds_delete_from_filesystem armazenado ainda estão acessíveis no host atual.

errorlog_available_from recent_failover_time

29-04-2020 23:59:00.0100000

05-05-2020 18:57:51.8900000

Desabilitação da integração do RDS for SQL Server com o S3

A seguir, é possível saber como desabilitar a integração do Amazon S3 com o Amazon RDS for SQL Server. Os arquivos em D:\S3\ não são excluídos ao desabilitar a integração do S3.

nota

Para remover uma função do IAM de uma instância de banco de dados, o status da instância de banco de dados deve ser available.

Como desassociar uma função do IAM da instância de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. Escolha o nome da instância de banco de dados do RDS for SQL Server para exibir seus detalhes.

  3. Na guia Connectivity & security (Conectividade e segurança), na seção Manage IAM roles (Gerenciar funções do IAM), escolha a função do IAM a ser removida.

  4. Escolha Delete (Excluir).

Para remover a função do IAM da instância de banco de dados do RDS for SQL Server
  • O seguinte comando da AWS CLI remove a função do IAM de uma instância de banco de dados do RDS for SQL Server chamada mydbinstance.

    Para Linux, macOS ou Unix:

    aws rds remove-role-from-db-instance \ --db-instance-identifier mydbinstance \ --feature-name S3_INTEGRATION \ --role-arn your-role-arn

    Para Windows:

    aws rds remove-role-from-db-instance ^ --db-instance-identifier mydbinstance ^ --feature-name S3_INTEGRATION ^ --role-arn your-role-arn

    Substitua your-role-arn pelo ARN adequado da função do IAM para a opção --feature-name.