

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# `AWSEC2-SQLServerDBRestore`
<a name="automation-awsec2-sqlserverdbrestore"></a>

**Descrição**

O runbook do `AWSEC2-SQLServerDBRestore` restaura os backups de banco de dados do Microsoft SQL Server armazenados no Amazon S3 para o SQL Server 2017 em execução em uma instância Linux do Amazon Elastic Compute Cloud (EC2). Você pode fornecer sua própria instância do EC2 executando o SQL Server 2017 para Linux. Se uma instância do EC2 não for fornecida, a automação será iniciado e configurado uma nova instância do EC2 Ubuntu 16.04 com o SQL Server 2017. A automação oferece suporte à restauração de backups de logs completos, diferenciais e transacionais. Essa automação aceita vários arquivos de backup de banco de dados e restaura automaticamente o backup válido mais recente de cada banco de dados nos arquivos fornecidos.

Para automatizar o backup e a restauração de um banco de dados SQL Server local em uma instância do EC2 executando o SQL Server 2017 Linux, você pode usar o AWS script -signed. PowerShell [https://awsec2-server-upgrade-prod.s3.us-west-1.amazonaws.com/MigrateSQLServerToEC2Linux.ps1](https://awsec2-server-upgrade-prod.s3.us-west-1.amazonaws.com/MigrateSQLServerToEC2Linux.ps1)

**Importante**  
Esse runbook redefine a senha do usuário SA do SQL Server sempre que o fluxo de trabalho é executado. Depois que a automação estiver concluída, você deverá definir sua própria senha de usuário SA novamente antes de se conectar à instância do SQL Server.

[Execute esta automação (console)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSEC2-SQLServerDBRestore)

**Tipo de documento**

Automação

**Proprietário**

Amazon

**Plataformas**

Linux

## Pré-requisitos
<a name="sql-server-db-restore-prerequisites"></a>

Para executar esta automação, você deve cumprir os seguintes pré-requisitos:
+ O usuário ou a função do IAM que executa esta automação deve ter uma política embutida anexada às permissões descritas em [Permissões obrigatórias do IAM](#sql-server-db-restore-policy).
+ Se você fornecer sua própria instância do EC2:
  + A instância do EC2 que você fornece deve ser uma instância Linux executando o Microsoft SQL Server 2017.
  + A instância do EC2 que você fornece deve ser configuradad com um perfil de instância do AWS Identity and Access Management (IAM) que tenha a política gerenciada `AmazonSSMManagedInstanceCore` anexada. Para obter mais informações, consulte [Criar um perfil de instância do IAM para o Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html).
  + O SSM Agent deve estar instalado na sua instância do EC2. Para obter mais informações, consulte [Instalar e configurar SSM Agent em instâncias EC2 do Linux](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html).
  + A instância do EC2 deve ter espaço em disco suficiente para fazer o download e a restauração dos backups do SQL Server.

## Limitações
<a name="sql-server-db-restore-limitations"></a>

Essa automação não é compatível com a restauração para o SQL Server em execução em instâncias do EC2 para Windows Server. Essa automação restaura apenas os backups de banco de dados compatíveis com o SQL Server para Linux 2017. Para obter mais informações, consulte [Edições e recursos compatíveis do SQL Server 2017 no Linux](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-editions-and-components-2017?view=sql-server-2017).

## Parâmetros
<a name="sql-server-db-restore-parameters"></a>

Essa automação tem os seguintes parâmetros:
+ **DatabaseNames**

  Tipo: string

  Descrição: (opcional) Uma lista separada por vírgulas dos nomes de bancos de dados a serem restaurados.
+ **DataDirectorySize**

  Tipo: string

  Descrição: (opcional) Tamanho do volume desejado (GiB) do diretório Data do SQL Server para a nova instância do EC2.

  Valor padrão: 100
+ **KeyPair**

  Tipo: string

  Descrição: (opcional) O par de chaves a ser usado ao criar a nova instância do EC2.
+ **IamInstanceProfileName**

  Tipo: string

  Descrição: (opcional) O perfil de instância do IAM a ser anexado à nova instância do EC2. O perfil de instância do IAM deve ter a política gerenciada pelo `AmazonSSMManagedInstanceCore` anexada.
+ **InstanceId**

  Tipo: string

  Descrição: (opcional) A instância executando o SQL Server 2017 no Linux. Se nenhum InstanceId for fornecido, a automação iniciará uma nova instância do EC2 usando a SQLServer edição InstanceType e fornecida.
+ **InstanceType**

  Tipo: string

  Descrição: (opcional) O tipo da instância do EC2 a ser executada.
+ **ISS3 PresignedUrl**

  Tipo: string

  Descrição: (opcional) Se S3Input for um URL do S3 pré-assinado, indique `yes`.

  Valor padrão: Não

  Valores válidos: sim \$1 não 
+ **LogDirectorySize**

  Tipo: string

  Descrição: (opcional) Tamanho do volume desejado (GiB) do diretório Log do SQL Server para a nova instância do EC2.

  Valor padrão: 100
+ **S3Input**

  Tipo: string

  Descrição: (Obrigatório) Nome do bucket do S3, lista separada por vírgula das chaves de objeto do S3 ou lista separada por vírgula do S3 pré-assinado URLs contendo os arquivos de backup SQL a serem restaurados.
+ **SQLServerEdição**

  Tipo: string

  Descrição: (opcional) A edição do SQL Server 2017 a ser instalada na instância do EC2 recém-criada.

  Valores permitidos: Standard \$1 Enterprise \$1 Web \$1 Express
+ **SubnetId**

  Tipo: string

  Descrição: (opcional) A sub-rede na qual executar a nova instância do EC2. A sub-rede deve ter conectividade de saída com os serviços. AWS Se um valor para não SubnetId for fornecido, a automação usará a sub-rede padrão.
+ **TempDbDirectorySize**

  Tipo: string

  Descrição: (opcional) Tamanho do volume desejado (GiB) do diretório TempDB do SQL Server para a nova instância do EC2.

  Valor padrão: 100

## Permissões obrigatórias do IAM
<a name="sql-server-db-restore-policy"></a>

O parâmetro `AutomationAssumeRole` requer as seguintes ações para usar o runbook com êxito.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags",
                "ec2:DescribeImages",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeInstances",
                "ec2:RebootInstances",
                "ec2:RunInstances",
                "ssm:DescribeInstanceInformation",
                "ssm:GetAutomationExecution",
                "ssm:ListCommandInvocations",
                "ssm:ListCommands",
                "ssm:SendCommand",
                "ssm:StartAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/ROLENAME"
        }
    ]
}
```

------

## Etapas do documento
<a name="sql-server-db-restore-steps"></a>

Para usar esta automação, siga as etapas que se aplicam ao seu tipo de instância:

**Para novas instâncias do EC2:**

1. `aws:executeAwsApi`: recupera o ID da AMI para o SQL Server 2017 no Ubuntu 16.04.

1. `aws:runInstances`: executa uma nova instância do EC2 para Linux.

1. `aws:waitForAwsResourceProperty`: aguarda até que a instância EC2 recém-criada esteja pronta.

1. `aws:executeAwsApi`: reinicializa a instância se ela não estiver pronta.

1. `aws:assertAwsResourceProperty`: verifica se o SSM Agent está instalado.

1. `aws:runCommand`- Execute o script de restauração do SQL Server em PowerShell.

**Para instâncias do EC2 existentes:**

1. `aws:waitForAwsResourceProperty`: verifica se a instância do EC2 está pronta

1. `aws:executeAwsApi`: reinicializa a instância se ela não estiver pronta.

1. `aws:assertAwsResourceProperty`: verifica se o SSM Agent está instalado.

1. `aws:runCommand`- Execute o script de restauração do SQL Server em PowerShell.

**Saídas**

getInstance. InstanceId

restoreToNewInstância.Saída

restoreToExistingInstância.Saída