Tutorial: Restaurar um cluster de banco de dados do Amazon Aurora de um snapshot de cluster de banco de dados - Amazon Aurora

Tutorial: Restaurar um cluster de banco de dados do Amazon Aurora de um snapshot de cluster de banco de dados

Um cenário comum ao trabalhar com o Amazon Aurora é ter uma instância de banco de dados com a qual você trabalha ocasionalmente, mas que não precisa usar em tempo integral. Por exemplo, você pode usar um cluster de banco de dados para armazenar os dados de um relatório que você executa somente trimestralmente. Uma maneira de economizar dinheiro nesse cenário é obter um snapshot do cluster de banco de dados após a conclusão do relatório. Depois, você exclui o cluster de banco de dados e o restaura quando precisar carregar novos dados e executar o relatório durante o próximo trimestre.

Ao restaurar um cluster de banco de dados, você fornece o nome do snapshot do cluster de banco de dados do qual deseja restaurar. Depois, você fornece um nome para o novo cluster de banco de dados criado na operação de restauração. Para obter mais informações sobre a restauração de clusters de banco de dados de snapshots, consulte Restauração de um snapshot de um cluster de banco de dados.

Neste tutorial, também atualizamos o cluster de banco de dados restaurado do Aurora MySQL versão 2 (compatível com o MySQL 5.7) para o Aurora MySQL versão 3 (compatível com o MySQL 8.0).

Restaurar um cluster de banco de dados de um snapshot de cluster de banco de dados usando o console do Amazon RDS

Quando você restaura um cluster de banco de dados de um snapshot usando o AWS Management Console, a instância de banco de dados primária (gravadora) também é criada.

nota

Enquanto a instância de banco de dados primária está sendo criada, ela aparece como uma instância de leitura, mas se torna uma instância de gravação após a criação.

Para restaurar um cluster de banco de dados de um snapshot do cluster de banco de dados
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, selecione Snapshots.

  3. Escolha o snapshot do cluster de banco de dados a partir do qual você deseja restaurar.

  4. Em Actions (Ações), escolha Restore snapshot (Restaurar snapshot).

    Opção Restore snapshot (Restaurar snapshot) no menu Actions (Ações) no console do RDS

    A página Restore snapshot (Restaurar snapshot) é exibida.

  5. Em DB instance settings (Configurações da instância de banco de dados), faça o seguinte:

    1. Use a configuração padrão para DB engine (Mecanismo de banco de dados).

    2. Para Available versions (Versões disponíveis), escolha uma versão compatível com MySQL 8.0, como Aurora MySQL 3.02.0 (compatible with MySQL 8.0.23) [Aurora MySQL 3.02.0 (compatível com MySQL 8.0.23)].

    Restaurar a página de snapshot
  6. Em Settings (Configurações), para DB cluster identifier (Identificador de cluster de banco de dados), insira o nome exclusivo que você quer usar no cluster de banco de dados restaurado; por exemplo, my-80-cluster.

  7. Em Connectivity (Conectividade, use as configurações padrão para o seguinte:

    • Nuvem privada virtual (VPC)

    • DB subnet group (Grupo de subredes do banco de dados)

    • Acesso público

    • VPC security group (firewall) [Grupo de segurança da VPC (firewall)]

  8. Escolha a DB instance class (Classe da instância de banco de dados)

    Para este tutorial, escolha Burstable classes (includes t classes) [Classes com capacidade de intermitência (inclui classes t)], depois escolha 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.

    Configuração da instância
  9. Para Database authentication (Autenticação do banco de dados), use a configuração padrão.

  10. Para Encryption (Criptografia), use as configurações padrão.

    Se a fonte do cluster de banco de dados do snapshot tiver sido criptografado, o cluster de banco de dados restaurado também será criptografado. Não é possível fazer isso sem criptografia.

  11. Expanda Additional configuration (Configuração adicional) na parte inferior da página.

    Configuração adicional
  12. Faça as seguintes escolhas:

    1. Para este tutorial, use o valor padrão para DB cluster parameter group (Grupo de parâmetros do cluster de banco de dados).

    2. Para este tutorial, use o valor padrão para DB parameter group (Grupo de parâmetros do banco de dados).

    3. Para Log exports (Exportações de logs), marque todas as caixas de seleção.

    4. Para Deletion protection (Proteção contra exclusão), escolha Enable deletion protection (Habilitar proteção contra exclusão).

  13. Escolha Restore DB Instance.

A página Databases (Banco de dados) exibe o cluster de banco de dados restaurado, com um status de Creating.

Cluster de banco de dados restaurado na página Databases (Bancos de dados)

Enquanto a instância de banco de dados primária está sendo criada, ela aparece como uma instância de leitura, mas se torna uma instância de gravação após a criação.

Restaurar um cluster de banco de dados de um snapshot de 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:

Restaurar o cluster de banco de dados

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)

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.

  • --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": [] } }