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.
Tópicos
- Pré-requisitos para integrar o RDS for SQL Server com o S3
- Habilitação da integração do RDS for SQL Server com o S3
- Transferência de arquivos entre o RDS for SQL Server e o Amazon S3
- Listar arquivos na instância de banco de dados do RDS
- Excluir arquivos na instância de banco de dados do RDS
- Monitorar o status de uma tarefa de transferência de arquivo
- Cancelar uma tarefa
- Limitações Multi-AZ para a integração do S3
- Desabilitação da integração do RDS for SQL Server com o S3
Para obter mais informações sobre como trabalhar com arquivos no Amazon S3, consulte Conceitos básicos do Amazon Simple Storage Service.
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 horário do último failover do Amazon RDS para SQL Server.
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 |