

# Importar e exportar bancos de dados do SQL Server usando backup e restauração nativos
<a name="SQLServer.Procedural.Importing"></a>

O Amazon RDS suporta backup e restauração nativos para bancos de dados do Microsoft SQL Server usando arquivos de backup completo (arquivos .bak). Ao usar o RDS, acesse arquivos armazenados no Amazon S3, em vez de usar o sistema de arquivos local no servidor de banco de dados.

Por exemplo, crie um backup completo no servidor local, armazene-o no S3 e o restaure em uma instância de banco de dados do Amazon RDS existente. Também faça backups do RDS, armazene-os no S3 e os restaure sempre que quiser.

O backup e a restauração nativos estão disponíveis em todas as regiões da AWS para as instâncias de banco de dados Mono-AZ e multi-AZ, incluindo instâncias de banco de dados multi-AZ com réplicas de leitura. O backup e a restauração nativos estão disponíveis para todas as edições do Microsoft SQL Server compatíveis com o Amazon RDS.

O diagrama a seguir mostra os cenários compatíveis.

![Arquitetura de backup e restauração nativos](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/SQL-bak-file.png)


Usar arquivos .bak nativos para fazer backup e restaurar bancos de dados costuma ser a maneira mais rápida de se fazer backup e restauração de bancos de dados. Há muitas vantagens adicionais em se usar o backup e a restauração nativos. Por exemplo, você pode fazer o seguinte:
+ Migrar bancos de dados para ou de Amazon RDS.
+ Movimentação de bancos de dados entre instâncias de banco de dados do RDS for SQL Server.
+ Migrar dados, esquemas, procedimentos armazenados, disparadores e outros códigos de banco de dados dentro de um arquivo .bak.
+ Fazer backup e restauração de bancos de dados únicos, em vez de instâncias de banco de dados inteiras.
+ Criar cópias de bancos de dados para desenvolvimento, testes, treinamento e demonstrações.
+ Armazenar e transferir arquivos de backup com o Amazon S3, para uma camada adicional de proteção para recuperação de desastres.
+ Crie backups nativos de bancos de dados com Transparent Data Encryption (TDE) ativada e restaure esses backups em bancos de dados on-premises. Para obter mais informações, consulte [Suporte para criptografia de dados transparente no SQL Server](Appendix.SQLServer.Options.TDE.md).
+ Restaure backups nativos de bancos de dados on-premises que têm o TDE ativado para instâncias de banco de dados do RDS para SQL Server. Para obter mais informações, consulte [Suporte para criptografia de dados transparente no SQL Server](Appendix.SQLServer.Options.TDE.md).

**Contents**
+ [Limitações e recomendações](#SQLServer.Procedural.Importing.Native.Limitations)
+ [Configurar o backup e a restauração nativos](SQLServer.Procedural.Importing.Native.Enabling.md)
  + [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)
+ [Usar o backup e restauração nativos](SQLServer.Procedural.Importing.Native.Using.md)
  + [Realização de backup de um banco de dados](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Backup)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Syntax)
    + [Exemplos](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Backup.Examples)
  + [Restaurar um banco de dados](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Restore)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Syntax)
    + [Exemplos](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Examples)
  + [Restaurar um log](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Syntax)
    + [Exemplos](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Restore.Log.Examples)
  + [Concluir uma restauração de banco de dados](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Finish.Restore.Syntax)
  + [Como trabalhar com bancos de dados parcialmente restaurados](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Partially.Restored)
    + [Descartando um banco de dados parcialmente restaurado](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Drop.Partially.Restored)
    + [Restauração de snapshot e comportamento de recuperação em um ponto anterior no tempo para bancos de dados parcialmente restaurados](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Snapshot.Restore)
  + [Cancelar uma tarefa](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Using.Cancel)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Cancel.Syntax)
  + [Acompanhar o status de tarefas](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking)
    + [Usage](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Syntax)
    + [Exemplos](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Examples)
    + [Resposta](SQLServer.Procedural.Importing.Native.Using.md#SQLServer.Procedural.Importing.Native.Tracking.Response)
+ [Compactar arquivos de backup](SQLServer.Procedural.Importing.Native.Compression.md)
+ [Solução de problemas](SQLServer.Procedural.Importing.Native.Troubleshooting.md)
+ [Importar e exportar dados do SQL Server usando outros métodos](SQLServer.Procedural.Importing.Snapshots.md)
  + [Importar dados para o RDS para SQL Server usando um snapshot](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Importing.Procedure)
    + [Importar os dados](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.Import)
      + [Assistente para gerar e publicar scripts](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ScriptWizard)
      + [Assistente de importação e exportação](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.ImportExportWizard)
      + [Cópia em massa](SQLServer.Procedural.Importing.Snapshots.md#ImportData.SQLServer.MgmtStudio.BulkCopy)
  + [Exportar dados do RDS para SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting)
    + [Assistente de importação e exportação do SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSIEW)
    + [Utilitário bcp e Assistente para gerar e publicar scripts do SQL Server](SQLServer.Procedural.Importing.Snapshots.md#SQLServer.Procedural.Exporting.SSGPSW)
+ [Usar o utilitário BCP do Linux para importar e exportar dados](SQLServer.Procedural.Importing.BCP.Linux.md)
  + [Pré-requisitos](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Prerequisites)
  + [Instalar ferramentas de linha de comandos do SQL Server no Linux](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Installing)
  + [Exportar dados do RDS para SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting)
    + [Sintaxe básica de exportação](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Basic)
    + [Exemplo de exportação](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Exporting.Example)
  + [Importar dados para o RDS para SQL Server](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing)
    + [Sintaxe básica de importação](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Basic)
    + [Exemplo de importação](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Importing.Example)
  + [Opções comuns do BCP](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Options)
  + [Práticas recomendadas e considerações](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.BestPractices)
  + [Solução de problemas comuns do](SQLServer.Procedural.Importing.BCP.Linux.md#SQLServer.Procedural.Importing.BCP.Linux.Troubleshooting)

## Limitações e recomendações
<a name="SQLServer.Procedural.Importing.Native.Limitations"></a>

A seguir estão algumas limitações para o uso de backup e restauração nativos: 
+ Você não pode fazer backup ou restaurar de um bucket do Amazon S3 em uma região da AWS diferente de sua instância de banco de dados do Amazon RDS.
+ Não é possível restaurar um banco de dados com o mesmo nome de um banco de dados já existente. Os nomes de banco de dados são exclusivos.
+ Recomendamos que não restaure backups de um fuso horário em um fuso horário diferente. Se você restaurar backups de um fuso horário em outro fuso horário, deverá auditar as consultas e aplicativos para verificar os efeitos da alteração do fuso horário.
+ O RDS para Microsoft SQL Server tem um limite de tamanho de 5 TB por arquivo. Para backups nativos de bancos de dados maiores, você pode usar o backup de vários arquivos.
+ O tamanho máximo do banco de dados que pode ser feito backup no S3 depende da memória, CPU, E/S e recursos de rede disponíveis na instância de banco de dados. Quanto maior o banco de dados, mais memória o agente de backup consome.
+ Não é possível fazer backup ou restaurar mais de 10 arquivos de backup ao mesmo tempo.
+ Um backup diferencial baseia-se no último backup completo. Para que os backups diferenciais funcionem, você não pode obter um snapshot entre o último backup completo e o backup diferencial. Se desejar um backup diferencial, mas houver um snapshot manual ou automatizado, faça outro backup completo antes de continuar com o backup diferencial.
+ Restaurações diferenciais e de log não são compatíveis com bancos de dados com arquivos que têm seu file\_guid (identificador exclusivo) definido como `NULL`.
+ Você pode executar até duas tarefas de backup ou restauração ao mesmo tempo.
+ Não é possível executar backups de log nativo do SQL Server no Amazon RDS.
+ O RDS oferece suporte a restaurações nativas de bancos de dados de até 64 TiB. Restaurações nativas de bancos de dados no SQL Server Express Edition estão limitadas a 10 GB.
+ Não é possível fazer backup de um banco de dados durante a janela de manutenção, nem enquanto o Amazon RDS estiver no processo de tirar um snapshot do banco de dados. Se uma tarefa nativa de backup se sobrepor à janela diária de backup do RDS, a tarefa nativa de backup será cancelada.
+ Em instâncias de banco de dados multi-AZ, você só pode restaurar de forma nativa os bancos de dados com backup feito no modelo de recuperação completo.
+ Não há suporte para a chamada dos procedimentos do RDS para backup/restauração dentro de uma transação.
+ Use uma AWS KMS key de criptografia simétrica para criptografar seus backups. O Amazon RDS não oferece suporte para chaves do KMS assimétricas. Para obter mais informações, consulte [Criar chaves do KMS simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor da AWS Key Management Service*.
+ Os arquivos de backup nativo são criptografados com a chave do KMS especificada usando o modo de criptografia "Encryption-Only". Ao restaurar arquivos de backup criptografados, saiba que eles foram criptografados com o modo de criptografia "Encryption-Only".
+ Não é possível restaurar um banco de dados que contenha um grupo de arquivos FILESTREAM.
+ A criptografia do lado do servidor do Amazon S3 com o AWS KMS (SSE-KMS) é aceita por meio da configuração de criptografia padrão do bucket do S3 quando você transmite o `@enable_bucket_default_encryption=1` para o procedimento armazenado de backup. Por padrão, a restauração aceita a criptografia do lado do servidor do objeto do S3.

  Quando você fornece uma chave do KMS a um procedimento armazenado, quaisquer restaurações e backups nativos são criptografados e descriptografados no lado do cliente com a chave do KMS. A AWS armazena os backups no bucket do S3 com SSE-S3 quando `@enable_bucket_default_encryption=0` ou com a chave padrão configurada do seu bucket do S3 quando `@enable_bucket_default_encryption=1`.
+ Quando você usa pontos de acesso do S3, o ponto de acesso não pode ser configurado para usar uma VPC interna do RDS.
+ Para obter o melhor desempenho, recomendamos usar buckets de diretório ou pontos de acesso para buckets de diretório, caso estejam disponíveis na sua região.

Se o banco de dados estiver offline enquanto o arquivo de backup for criado, copiado e restaurado, recomendamos que você use o backup e a restauração nativos para migrar seu banco de dados para o RDS. Se o banco de dados on-premises não puder ficar offline, recomendamos que você use o AWS Database Migration Service para migrar seu banco de dados para o Amazon RDS. Para obter mais informações, consulte [O que é o AWS Database Migration Service?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 

O backup e a restauração nativos não se destinam a substituir os recursos de recuperação de dados do recurso de cópia de snapshot entre regiões. Recomendamos que você use uma cópia do snapshot para copiar o snapshot do banco de dados em outra região da AWS para recuperação de desastres entre regiões no Amazon RDS. Para obter mais informações, consulte [Copiar um snapshot de banco de dados para o Amazon RDS](USER_CopySnapshot.md).