Tutorial: Ripristino di un cluster database Amazon Autora da uno snapshot cluster DB - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Ripristino di un cluster database Amazon Autora da uno snapshot cluster DB

Quando si utilizza Amazon Aurora è normale avere un'istanza database utilizzata occasionalmente ma che non serve a tempo pieno. Ad esempio, potrebbe essere necessario utilizzare un cluster database per conservare i dati di un report che viene eseguito solo trimestralmente. Per risparmiare denaro su tale scenario, è possibile acquisire uno snapshot cluster DB del cluster database al termine del report. Eliminare quindi il cluster database e ripristinarlo quando è necessario caricare nuovi dati ed eseguire il report durante il trimestre successivo.

Quando si ripristina un cluster database, si fornisce il nome dello snapshot cluster DB da cui eseguire il ripristino. Quindi si fornisce un nome per il nuovo cluster database creato dall’operazione di ripristino. Per ulteriori informazioni sul ripristino di cluster database da snapshot, consulta Ripristino da uno snapshot cluster database.

In questo tutorial, il cluster database ripristinato viene anche aggiornato da Aurora MySQL versione 2 (compatibile con MySQL 5.7) ad Aurora MySQL versione 3 (compatibile con MySQL 8.0).

Ripristino di un cluster database da uno snapshot cluster DB mediante la console di Amazon RDS

Quando si ripristina un cluster di database da uno snapshot utilizzando la AWS Management Console, viene anche creata l'istanza database (di scrittura) primaria.

Nota

Mentre l'istanza database primaria è in corso di creazione, viene visualizzata come istanza di lettura, ma al termine è un'istanza di scrittura.

Per ripristinare un cluster database da una snapshot cluster DB
  1. Accedi alla AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, selezionare Snapshots (Snapshot).

  3. Scegliere lo snapshot cluster database da cui eseguire il ripristino.

  4. Per Actions (Operazioni), selezionare Restore Snapshot (Ripristina snapshot).

    Opzione Restore snapshot (Ripristina snapshot) nel menu Actions (Operazioni) nella console RDS

    Viene visualizzata la pagina Restore snapshot (Ripristina snapshot).

  5. In DB instance settings (Impostazioni dell'istanza database), effettua le seguenti operazioni:

    1. Usa l'impostazione predefinita per DB engine (Motore database).

    2. Per Available versions (Versioni disponibili), scegli una versione compatibile con MySQL-8.0, ad esempio Aurora MySQL 3.02.0 (compatibile con MySQL 8.0.23).

    Pagina Restore snapshot (Ripristina snapshot)
  6. In Settings (Impostazioni), per DB instance identifier (Identificatore cluster DB) inserisci il nome univoco da usare per il cluster database ripristinato, ad esempio my-80-cluster.

  7. Sotto Connectivity (Connettività), utilizza le impostazioni di default per quanto segue:

    • Virtual Private Cloud (VPC) (Cloud privato virtuale (VPC)

    • DB subnet group (Gruppo di sottoreti DB)

    • Accesso pubblico

    • VPC security group (firewall) (Gruppo di sicurezza VPC (firewall)

  8. Scegli la DB instance class (Classe di istanza database).

    Per questo tutorial, scegli Burstable classes (includes t classes) (Classi espandibili (include le classi t) e quindi seleziona db.t3.medium.

    Nota

    Consigliamo di utilizzare le classi di istanza database T solo per i server di sviluppo e test o altri server non di produzione. Per ulteriori informazioni sulle classi di istanza T, consulta Tipi di classi di istanza database.

    Configurazione dell'istanza
  9. Per Database authentication (Autenticazione database), utilizza l'impostazione predefinita.

  10. Per Encryption (Crittografia), utilizza le impostazioni di default.

    Se il cluster database di origine per lo snapshot è stato crittografato, anche il cluster database ripristinato viene crittografato. Non è possibile renderla non crittografato.

  11. Espandi Additional configuration (Configurazione aggiuntiva) nella parte inferiore della pagina.

    Configurazione aggiuntiva
  12. Effettua le scelte riportate di seguito:

    1. Per questo tutorial, utilizza il valore predefinito per DB cluster parameter group (Gruppo di parametri del cluster DB).

    2. Per questo tutorial, utilizza il valore predefinito per DB parameter group (Gruppo di parametri DB).

    3. Per Log exports (Esportazioni log), seleziona tutte le caselle di controllo.

    4. Per Deletion protection (Protezione da eliminazione), seleziona la casella di controllo Enable deletion protection (Abilita protezione da eliminazione).

  13. Selezionare Ripristina istanza database.

La pagina Databases (Database) visualizza il cluster database ripristinato, con uno stato Creating.

Cluster database ripristinato nella pagina Databases (Database)

Mentre l'istanza database primaria è in corso di creazione, viene visualizzata come istanza di lettura, ma al termine è un'istanza di scrittura.

Ripristino di un cluster database da uno snapshot cluster DB mediante la AWS CLI

Il ripristino di un cluster database da uno snapshot mediante la AWS CLI comprende due passaggi:

Ripristino del cluster database

Si utilizza il comando restore-db-cluster-from-snapshot. Sono richieste le seguenti opzioni:

  • --db-cluster-identifier: il nome del cluster database ripristinato.

  • --snapshot-identifier: il nome dello snapshot DB da cui eseguire il ripristino.

  • --engine: il motore di database del cluster database ripristinato. Deve essere compatibile con il motore di database del cluster database di origine.

    Le scelte sono le seguenti:

    • aurora-mysql: compatibile con Aurora MySQL 5.7 e 8.0.

    • aurora-postgresql: compatibile con Aurora PostgreSQL.

    In questo esempio viene utilizzato aurora-mysql.

  • --engine-version: la versione del cluster database ripristinato. In questo esempio, si utilizza una versione compatibile con MySQL-8.0.

Nell'esempio seguente viene ripristinato un cluster database compatibile con Aurora MySQL 8.0 denominato my-new-80-cluster da uno snapshot cluster DB denominato my-57-cluster-snapshot.

Per ripristinare il cluster database
  • Utilizzare uno dei seguenti comandi.

    Per LinuxmacOS, oUnix:

    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

    Per 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

L'output è simile a quello riportato di seguito.

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

Creazione dell'istanza database (scrittura) primaria

Per creare l'istanza database (scrittura) primaria, si utilizza il comando create-db-instance. Sono richieste le seguenti opzioni:

  • --db-cluster-identifier: il nome del cluster database ripristinato.

  • --db-instance-identifier: il nome dell'istanza database primaria.

  • --db-instance-class: la classe istanza dell'istanza database primaria. In questo esempio viene utilizzato db.t3.medium.

    Nota

    Consigliamo di utilizzare le classi di istanza database T solo per i server di sviluppo e test o altri server non di produzione. Per ulteriori informazioni sulle classi di istanza T, consulta Tipi di classi di istanza database.

  • --engine- il motore di database dell'istanza database primaria. Deve essere identico a quello utilizzato dal cluster database ripristinato.

    Le scelte sono le seguenti:

    • aurora-mysql: compatibile con Aurora MySQL 5.7 e 8.0.

    • aurora-postgresql: compatibile con Aurora PostgreSQL.

    In questo esempio viene utilizzato aurora-mysql.

Nell'esempio seguente viene creata un'istanza database (scrittura) primaria denominata my-new-80-cluster-instance nel cluster database compatibile con Aurora MySQL 8.0 denominato my-new-80-cluster.

Per creare l'istanza database primaria
  • Utilizzare uno dei seguenti comandi.

    Per LinuxmacOS, oUnix:

    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

    Per 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

L'output è simile a quello riportato di seguito.

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