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.
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
-
No Console de gerenciamento do IAM
, escolha Policies (Políticas) no painel de navegação. -
Crie uma nova política e use a guia Visual editor (Editor visual) para as etapas a seguir.
-
Para Service (Serviço), insira
S3
e escolha o serviço do S3. -
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 emD:\S3\
-
PutObject
– necessário para fazer upload de arquivos deD:\S3\
no S3 -
ListMultipartUploadParts
– necessário para fazer upload de arquivos deD:\S3\
no S3 -
AbortMultipartUpload
– necessário para fazer upload de arquivos deD:\S3\
no S3
-
-
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 de
DOC-EXAMPLE-BUCKET
, defina o ARN comoarn:aws:s3:::
.DOC-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.
-
-
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
-
No Console de gerenciamento do IAM
, escolha Roles (Funções) no painel de navegação. -
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.
-
-
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.
-
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:
-
Crie uma política do IAM que conceda ao Amazon RDS acesso a um bucket do S3.
-
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.
-
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 emD:\S3\
-
PutObject
– necessário para fazer upload de arquivos deD:\S3\
no S3 -
ListMultipartUploadParts
– necessário para fazer upload de arquivos deD:\S3\
no S3 -
AbortMultipartUpload
– necessário para fazer upload de arquivos deD:\S3\
no S3
-
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 chamadoDOC-EXAMPLE-BUCKET
.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:::DOC-EXAMPLE-BUCKET
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/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:::
DOC-EXAMPLE-BUCKET
" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/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 -
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.
Para criar 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.jsonexemplo 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
eaws: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 valoraws:SourceAccount
e a conta no valoraws: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
pelo ARN da política que você anotou em uma etapa anterior.your-policy-arn
Para Linux, macOS ou Unix:
aws iam attach-role-policy \ --policy-arn
your-policy-arn
\ --role-namerds-s3-integration-role
Para Windows:
aws iam attach-role-policy ^ --policy-arn
your-policy-arn
^ --role-namerds-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
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
Escolha o nome da instância de banco de dados do RDS for SQL Server para exibir seus detalhes.
-
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).
-
Em Feature (Recurso), escolha S3_INTEGRATION.
-
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-arnyour-role-arn
Para Windows:
aws rds add-role-to-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Substitua
pelo ARN da função que você anotou em uma etapa anterior.your-role-arn
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:::
. O Amazon S3 não exige um número de conta ou região da AWS nos ARNs.DOC-EXAMPLE-BUCKET
/file_name
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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obrigatório |
O ARN do S3 do arquivo para download, por exemplo: |
|
NVARCHAR |
– |
Optional |
O caminho do arquivo para a instância do RDS: Se não especificado, o caminho será |
|
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:::
DOC-EXAMPLE-BUCKET
/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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obrigatório |
O ARN do S3 do arquivo a ser criado no S3, por exemplo: |
|
NVARCHAR |
– |
Obrigatório |
O caminho de arquivo do arquivo para fazer upload no S3. Caminhos relativos e absolutos têm suporte. |
|
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:::DOC-EXAMPLE-BUCKET
/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 |
---|---|---|---|---|
|
NVARCHAR |
– |
Obrigatório |
O caminho de arquivo do arquivo a ser excluído. Caminhos relativos e absolutos têm suporte. |
|
INT |
0 |
Optional |
Para excluir um diretório, este sinalizador deve ser incluído e definido como
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 |
---|---|
|
O ID da tarefa. |
|
Para a integração do S3, as tarefas podem ter os seguintes tipos de tarefa:
|
|
Não aplicável a tarefas de integração do S3. |
|
O progresso da tarefa em porcentagem. |
|
A quantidade de tempo gasta na tarefa, em minutos. |
|
O status da tarefa. Os possíveis status são os seguintes:
|
|
Informações adicionais sobre a tarefa. Se um erro ocorrer durante o processamento, essa coluna conterá informações sobre o erro. |
|
A data e hora em que o status da tarefa foi atualizado pela última vez. |
|
A data e hora em que a tarefa foi criada. |
|
O ARN do objeto do S3 baixado ou carregado. |
|
Não aplicável a tarefas de integração do S3. |
|
Não aplicável a tarefas de integração do S3. |
|
O caminho de arquivo na instância de banco de dados do RDS |
|
Uma opção que indica se um arquivo existente foi substituído. |
|
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
-
Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/
. -
Escolha o nome da instância de banco de dados do RDS for SQL Server para exibir seus detalhes.
-
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.
-
Escolha 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-arnyour-role-arn
Para Windows:
aws rds remove-role-from-db-instance ^ --db-instance-identifier
mydbinstance
^ --feature-name S3_INTEGRATION ^ --role-arnyour-role-arn
Substitua
pelo ARN adequado da função do IAM para a opçãoyour-role-arn
--feature-name
.