

# Tutorial: Restaurar um cluster de banco de dados por meio de um snapshot do cluster de banco de dados usando a AWS CLI
<a name="tut-restore-cluster.CLI"></a>

Neste tutorial, você vai restaurar um cluster de banco de dados por meio de um snapshot do cluster de banco de dados usando a AWS CLI. A restauração de um cluster de banco de dados de um snapshot usando a AWS CLI acontece em duas etapas:

1. [Restaurar o cluster de banco de dados](#tut-restore-cluster.CLI.restore) usando o comando [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html)

1. [Criar a instância de banco de dados primária (gravadora)](#tut-restore-cluster.CLI.create) usando o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)

## Restaurar o cluster de banco de dados
<a name="tut-restore-cluster.CLI.restore"></a>

Use o comando `restore-db-cluster-from-snapshot`. São necessárias as seguintes opções:
+ `--db-cluster-identifier`: o nome do cluster de banco de dados restaurado.
+ `--snapshot-identifier`: o nome do snapshot de banco de dados do qual deseja restaurar.
+ `--engine`: o mecanismo de banco de dados do cluster de banco de dados restaurado. Deve ser compatível com o mecanismo de banco de dados do cluster de banco de dados de origem.

  As opções são as seguintes:
  + `aurora-mysql`: compatível com Aurora MySQL 5.7 e 8.0.
  + `aurora-postgresql`: compatível com Aurora PostgreSQL.

  Neste exemplo, usamos `aurora-mysql`.
+ `--engine-version`: a versão do cluster de banco de dados restaurado. Neste exemplo, usamos uma versão compatível com MySQL 8.0.

O exemplo a seguir restaura um cluster de banco de dados compatível com o Aurora MySQL 8.0 chamado `my-new-80-cluster` de um snapshot de cluster de banco de dados denominado `my-57-cluster-snapshot`.

**Como restaurar o cluster de banco de dados**
+ Use um dos seguintes comandos.

  Para Linux, macOS ou Unix:

  ```
  aws rds restore-db-cluster-from-snapshot \
      --db-cluster-identifier {{my-new-80-cluster}} \
      --snapshot-identifier {{my-57-cluster-snapshot}} \
      --engine aurora-mysql \
      --engine-version {{8.0.mysql_aurora.3.02.0}}
  ```

  Para Windows:

  ```
  aws rds restore-db-cluster-from-snapshot ^
      --db-cluster-identifier {{my-new-80-cluster}} ^
      --snapshot-identifier {{my-57-cluster-snapshot}} ^
      --engine aurora-mysql ^
      --engine-version {{8.0.mysql_aurora.3.02.0}}
  ```

A saída será semelhante à seguinte.

```
{
    "DBCluster": {
        "AllocatedStorage": 1,
        "AvailabilityZones": [
            "eu-central-1b",
            "eu-central-1c",
            "eu-central-1a"
        ],
        "BackupRetentionPeriod": 14,
        "DatabaseName": "",
        "DBClusterIdentifier": "my-new-80-cluster",
        "DBClusterParameterGroup": "default.aurora-mysql8.0",
        "DBSubnetGroup": "default",
        "Status": "creating",
        "Endpoint": "my-new-80-cluster.cluster-############.eu-central-1.rds.amazonaws.com",
        "ReaderEndpoint": "my-new-80-cluster.cluster-ro-############.eu-central-1.rds.amazonaws.com",
        "MultiAZ": false,
        "Engine": "aurora-mysql",
        "EngineVersion": "8.0.mysql_aurora.3.02.0",
        "Port": 3306,
        "MasterUsername": "admin",
        "PreferredBackupWindow": "01:55-02:25",
        "PreferredMaintenanceWindow": "thu:21:14-thu:21:44",
        "ReadReplicaIdentifiers": [],
        "DBClusterMembers": [],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-########",
                "Status": "active"
            }
        ],
        "HostedZoneId": "Z1RLNU0EXAMPLE",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:eu-central-1:123456789012:key/#######-5ccc-49cc-8aaa-############",
        "DbClusterResourceId": "cluster-ZZ12345678ITSJUSTANEXAMPLE",
        "DBClusterArn": "arn:aws:rds:eu-central-1:123456789012:cluster:my-new-80-cluster",
        "AssociatedRoles": [],
        "IAMDatabaseAuthenticationEnabled": false,
        "ClusterCreateTime": "2022-07-05T20:45:42.171000+00:00",
        "EngineMode": "provisioned",
        "DeletionProtection": false,
        "HttpEndpointEnabled": false,
        "CopyTagsToSnapshot": false,
        "CrossAccountClone": false,
        "DomainMemberships": [],
        "TagList": []
    }
}
```

## Criar a instância de banco de dados primária (gravadora)
<a name="tut-restore-cluster.CLI.create"></a>

Para criar a instância de banco de dados primária (gravadora), use o comando `create-db-instance`. São necessárias as seguintes opções:
+ `--db-cluster-identifier`: o nome do cluster de banco de dados restaurado.
+ `--db-instance-identifier`: o nome da instância de banco de dados primária.
+ `--db-instance-class`: o nome da classe da instância de banco de dados primária. Neste exemplo, usamos `db.t3.medium`.
**nota**  
Recomendamos usar as classes de instância de banco de dados T somente para servidores de desenvolvimento e teste, ou outros servidores que não sejam de produção. Para obter mais detalhes sobre as classes de instâncias T, consulte [Tipos de classe de instância de banco de dados](Concepts.DBInstanceClass.Types.md).
+ `--engine`: o mecanismo de banco de dados da instância de banco de dados primária. Ele deve ser o mesmo mecanismo de banco de dados usado pelo cluster de banco de dados restaurado.

  As opções são as seguintes:
  + `aurora-mysql`: compatível com Aurora MySQL 5.7 e 8.0.
  + `aurora-postgresql`: compatível com Aurora PostgreSQL.

  Neste exemplo, usamos `aurora-mysql`.

O exemplo a seguir cria uma instância de banco de dados primária (gravadora) chamada `my-new-80-cluster-instance` no cluster de banco de dados restaurado compatível com o Aurora MySQL 8.0 denominado `my-new-80-cluster`.

**Como criar a instância de banco de dados primária**
+ Use um dos seguintes comandos.

  Para Linux, macOS ou Unix:

  ```
  aws rds create-db-instance \
      --db-cluster-identifier my-new-80-cluster \
      --db-instance-identifier {{my-new-80-cluster-instance}} \
      --db-instance-class {{db.t3.medium}} \
      --engine aurora-mysql
  ```

  Para Windows:

  ```
  aws rds create-db-instance ^
      --db-cluster-identifier my-new-80-cluster ^
      --db-instance-identifier {{my-new-80-cluster-instance}} ^
      --db-instance-class {{db.t3.medium}} ^
      --engine aurora-mysql
  ```

A saída será semelhante à seguinte.

```
{
    "DBInstance": {
        "DBInstanceIdentifier": "my-new-80-cluster-instance",
        "DBInstanceClass": "db.t3.medium",
        "Engine": "aurora-mysql",
        "DBInstanceStatus": "creating",
        "MasterUsername": "admin",
        "AllocatedStorage": 1,
        "PreferredBackupWindow": "01:55-02:25",
        "BackupRetentionPeriod": 14,
        "DBSecurityGroups": [],
        "VpcSecurityGroups": [
            {
                "VpcSecurityGroupId": "sg-########",
                "Status": "active"
            }
        ],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.aurora-mysql8.0",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "DBSubnetGroup": {
            "DBSubnetGroupName": "default",
            "DBSubnetGroupDescription": "default",
            "VpcId": "vpc-2305ca49",
            "SubnetGroupStatus": "Complete",
            "Subnets": [
                {
                    "SubnetIdentifier": "subnet-########",
                    "SubnetAvailabilityZone": {
                        "Name": "eu-central-1a"
                    },
                    "SubnetOutpost": {},
                    "SubnetStatus": "Active"
                },
                {
                    "SubnetIdentifier": "subnet-########",
                    "SubnetAvailabilityZone": {
                        "Name": "eu-central-1b"
                    },
                    "SubnetOutpost": {},
                    "SubnetStatus": "Active"
                },
                {
                    "SubnetIdentifier": "subnet-########",
                    "SubnetAvailabilityZone": {
                        "Name": "eu-central-1c"
                    },
                    "SubnetOutpost": {},
                    "SubnetStatus": "Active"
                }
            ]
        },
        "PreferredMaintenanceWindow": "sat:02:41-sat:03:11",
        "PendingModifiedValues": {},
        "MultiAZ": false,
        "EngineVersion": "8.0.mysql_aurora.3.02.0",
        "AutoMinorVersionUpgrade": true,
        "ReadReplicaDBInstanceIdentifiers": [],
        "LicenseModel": "general-public-license",
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "default:aurora-mysql-8-0",
                "Status": "in-sync"
            }
        ],
        "PubliclyAccessible": false,
        "StorageType": "aurora",
        "DbInstancePort": 0,
        "DBClusterIdentifier": "my-new-80-cluster",
        "StorageEncrypted": true,
        "KmsKeyId": "arn:aws:kms:eu-central-1:534026745191:key/#######-5ccc-49cc-8aaa-############",
        "DbiResourceId": "db-5C6UT5PU0YETANOTHEREXAMPLE",
        "CACertificateIdentifier": "rds-ca-2019",
        "DomainMemberships": [],
        "CopyTagsToSnapshot": false,
        "MonitoringInterval": 0,
        "PromotionTier": 1,
        "DBInstanceArn": "arn:aws:rds:eu-central-1:123456789012:db:my-new-80-cluster-instance",
        "IAMDatabaseAuthenticationEnabled": false,
        "PerformanceInsightsEnabled": false,
        "DeletionProtection": false,
        "AssociatedRoles": [],
        "TagList": []
    }
}
```