Questo tutorial mostra due modi per clonare un database MySQL in esecuzione su Compute Engine. Un metodo utilizza snapshot dei dischi permanenti. L'altro metodo utilizza l'esportazione e l'importazione native di MySQL, trasferendo il file di esportazione utilizzando Cloud Storage. Cloud Storage è il Google Cloud servizio di archiviazione di oggetti. Offre un modo semplice, sicuro, duraturo e ad alta disponibilità per archiviare i file.
La clonazione è il processo di copia di un database su un altro server. La copia è indipendente dal database di origine e viene conservata come snapshot in un determinato momento. Puoi utilizzare un database clonato per vari scopi senza caricare il server di produzione o rischiare l'integrità dei dati di produzione. Ecco alcune di queste finalità:
- Eseguire query di analisi.
- Test di carico o di integrazione delle tue app.
- Estrazione dei dati per il popolamento dei data warehouse.
- Eseguire esperimenti sui dati.
Ogni metodo di clonazione descritto in questo tutorial presenta vantaggi e svantaggi. Il metodo ideale per te dipende dalla tua situazione. La tabella seguente evidenzia alcuni problemi chiave.
Problema | Metodo 1: snapshot dei dischi | Metodo 2: esportazione e importazione tramite Cloud Storage |
---|---|---|
Spazio su disco aggiuntivo necessario sulle istanze MySQL | Non è richiesto spazio su disco aggiuntivo | Spazio aggiuntivo necessario per archiviare il file di esportazione durante la creazione e il ripristino |
Carico aggiuntivo sulle istanze MySQL di origine durante la clonazione | Nessun carico aggiuntivo | Carico aggiuntivo su CPU e I/O durante la creazione e il caricamento del file di esportazione |
Durata della clonazione | Relativamente veloce per database di grandi dimensioni | Relativamente lento per database di grandi dimensioni |
Può eseguire la clonazione da istanze MySQL esterne a Google Cloud | No | Sì |
complessità | Una sequenza complessa di comandi per il collegamento di dischi clonati | Un insieme di comandi relativamente semplici per la clonazione |
Può sfruttare i sistemi di backup esistenti | Sì, se il sistema di backup utilizza gli snapshot del disco Google Cloud | Sì, se il sistema di backup esporta i file in Cloud Storage |
Granularità della clonazione | Può clonare solo interi dischi | Può clonare solo il database specificato |
Coerenza dei dati | Coerenti al momento dello snapshot | Coerenti al momento dell'esportazione |
Può utilizzare Cloud SQL come origine | No | Sì, se viene utilizzata la stessa versione |
Può utilizzare Cloud SQL come destinazione | No | Sì |
Questo tutorial presuppone che tu abbia familiarità con la riga di comando Linux e con l'amministrazione del database MySQL.
Obiettivi
- Scopri come eseguire un database MySQL su Google Cloud.
- Scopri come creare un database di prova su un disco secondario.
- Scopri come clonare un database MySQL utilizzando gli snapshot dei dischi Compute Engine.
- Scopri come clonare un database MySQL trasferendo un file di esportazione utilizzando Cloud Storage.
- Scopri come clonare un database MySQL in Cloud SQL trasferendo un file di esportazione utilizzando Cloud Storage.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Abilita l'API Compute Engine. Attiva l'API
Configurazione dell'ambiente
Per completare questo tutorial, devi configurare il tuo ambiente di calcolo con quanto segue:
- Un'istanza MySQL su Compute Engine (denominata
mysql-prod
) per rappresentare il tuo server di database di produzione. - Un disco aggiuntivo (denominato
mysql-prod-data
) collegato al server di produzione per l'archiviazione del database di produzione. - Una copia del
database
Employees
importata inmysql-prod
per simulare il database di produzione che vuoi clonare. - Un'istanza MySQL su Compute Engine (denominata
mysql-test
) per rappresentare il server del database di test. Clona il database su questo server.
Il seguente diagramma illustra questa architettura.
Crea l'istanza VM di produzione
Per simulare un ambiente di produzione, configura un'istanza VM Compute Engine che esegue MySQL su Debian Linux.
L'istanza VM per questo tutorial utilizza due dischi: uno da 50 GB per il sistema operativo e gli account utente e uno da 100 GB per l'archiviazione del database.
In Compute Engine, l'utilizzo di dischi separati non offre vantaggi in termini di prestazioni. Le prestazioni del disco sono determinate dalla capacità di archiviazione totale di tutti i dischi collegati a un'istanza e dal numero totale di vCPU nell'istanza VM. Pertanto, il database e il file di log possono trovarsi sullo stesso disco.
Apri Cloud Shell.
Imposta la zona che preferisci:
ZONE=us-east1-b REGION=us-east1 gcloud config set compute/zone "${ZONE}"
Crea un'istanza Compute Engine:
gcloud compute instances create mysql-prod \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --boot-disk-size=50GB \ --boot-disk-device-name=mysql-prod \ --create-disk="mode=rw,size=100,type=pd-standard,name=mysql-prod-data,device-name=mysql-prod-data"
Questo comando concede all'istanza l'accesso completo alle API, crea un disco secondario da 100 GB e lo collega all'istanza. Google Cloud Ignora l'avviso relativo alle prestazioni del disco perché per questo tutorial non sono necessarie prestazioni elevate.
Configura il disco aggiuntivo
Il secondo disco collegato all'istanza di produzione è destinato allo stoccaggio del database di produzione. Questo disco è vuoto, quindi devi partizionarlo, formattarlo e montarlo.
Nella console Google Cloud, vai alla pagina Istanze VM.
Assicurati che accanto al nome dell'istanza
mysql-prod
sia visualizzato un segno di spunta verdecheck, a indicare che l'istanza è pronta.Fai clic sul pulsante SSH accanto all'istanza
mysql-prod
. Il browser apre una connessione di terminale all'istanza.Nella finestra del terminale, viene visualizzato un elenco dei dischi collegati all'istanza:
lsblk
L'output è il seguente:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part / sdb 8:16 0 100G 0 disk
Il disco denominato
sdb
(100 GB) è il disco dati.Formatta il disco
sdb
e crea una singola partizione con un file system ext4:sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard \ /dev/sdb
Crea la directory dei dati MySQL che fungerà da punto di montaggio per il disco dati:
sudo mkdir -p /var/lib/mysql
Per montare automaticamente il disco nel punto di montaggio che hai creato, aggiungi una voce al file
/etc/fstab
:echo "UUID=`sudo blkid -s UUID -o value /dev/sdb` /var/lib/mysql ext4 discard,defaults,nofail 0 2" \ | sudo tee -a /etc/fstab
Monta il disco:
sudo mount -av
Rimuovi tutti i file dal disco di dati in modo che possa essere utilizzato da MySQL come directory di dati:
sudo rm -rf /var/lib/mysql/*
Installa il server MySQL
Devi scaricare e installare MySQL Community Edition. La directory dei dati MySQL viene creata sul disco aggiuntivo.
Nella sessione SSH connessa a
mysql-prod
, scarica e installa il package di configurazione di MySQL:wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Quando ti viene richiesto, seleziona l'opzione MySQL Server e cluster, quindi mysql-5.7.
Nell'elenco, seleziona l'opzione Ok per completare la configurazione del package.
Aggiorna la cache del repository e installa i pacchetti mysql-community:
sudo apt-get update sudo apt-get install -y mysql-community-server mysql-community-client
Quando viene visualizzato l'avviso che la directory dei dati esiste già, seleziona Ok.
Quando ti viene chiesto di fornire una password di root, crea e inserisci una password. Prendi nota della password o conservala temporaneamente in un luogo sicuro.
Scarica e installa il database di esempio
Nella sessione SSH connessa all'istanza
mysql-prod
, installa git:sudo apt-get install -y git
Clona il repository GitHub contenente gli script di database
Employees
:git clone https://github.com/datacharmer/test_db.git
Cambia la directory impostandola su quella dello script del database
Employees
:cd test_db
Esegui lo script di creazione del database
Employees
:mysql -u root -p -q < employees.sql
Quando richiesto, inserisci la password root che hai creato in precedenza.
Per verificare che il database di esempio sia funzionale, puoi eseguire una query che conteggia il numero di righe nella tabella
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando richiesto, inserisci la password root che hai creato in precedenza.
L'output è il seguente:
+----------+ | count(*) | +----------+ | 300024 | +----------+
Crea l'istanza VM di test
In questa sezione, crei un'istanza VM MySQL denominata mysql-test
come destinazione per il database clonato. La configurazione di questa istanza è identica a quella dell'istanza di produzione. Tuttavia, non crei un secondo
disco di dati, ma lo colleghi più avanti in questo tutorial.
Apri Cloud Shell.
Crea l'istanza MySQL di test:
gcloud compute instances create mysql-test \ --machine-type=n1-standard-2 \ --scopes=cloud-platform \ --boot-disk-size=50GB \ --boot-disk-device-name=mysql-test
Puoi ignorare l'avviso relativo alle prestazioni del disco perché per questo tutorial non sono necessarie prestazioni elevate.
Installa il server MySQL sull'istanza VM di test
Devi anche scaricare e installare MySQL Community Edition sull'istanza VM mysql-test
.
Nella sessione SSH connessa a
mysql-test
, scarica e installa il pacchetto di configurazione MySQL:wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
Quando ti viene richiesto, seleziona l'opzione MySQL Server e cluster, quindi mysql-5.7.
Nell'elenco, seleziona l'opzione Ok per completare la configurazione del package.
Aggiorna la cache del repository e installa i pacchetti mysql-community:
sudo apt-get update sudo apt-get install -y mysql-community-server mysql-community-client
Quando ti viene chiesto di fornire una password di root, crea e inserisci una password. Prendi nota della password o conservala temporaneamente in un luogo sicuro.
Clonazione del database utilizzando gli snapshot dei dischi di Compute Engine
Un modo per clonare un database MySQL in esecuzione su Compute Engine è memorizzare il database su un disco di dati separato e utilizzare gli snapshot dei dischi permanenti per creare un clone del disco.
Gli snapshot dei dischi permanenti ti consentono di ottenere una copia point-in-time dei dati sul disco. La pianificazione degli snapshot dei dischi è un modo per eseguire automaticamente il backup dei dati.
In questa sezione del tutorial, esegui le seguenti operazioni:
- Acquisisci uno snapshot del disco di dati del server di produzione.
- Crea un nuovo disco dallo snapshot.
- Monta il nuovo disco sul server di test.
- Riavvia il server MySQL nell'istanza di test in modo che utilizzi il nuovo disco come disco di dati.
Il seguente diagramma mostra come viene clonato un database utilizzando gli snapshot dei dischi.
Crea lo snapshot del disco
Apri Cloud Shell.
Crea uno snapshot del disco di dati nella stessa zona dell'istanza VM:
gcloud compute disks snapshot mysql-prod-data \ --snapshot-names=mysql-prod-data-snapshot \ --zone="${ZONE}"
Dopo alcuni minuti, lo snapshot viene creato.
Collega lo snapshot del disco all'istanza di test
Devi creare un nuovo disco dati dallo snapshot che hai creato e poi collegarlo all'istanza mysql-test
.
Apri Cloud Shell.
Crea un nuovo disco permanente utilizzando lo snapshot del disco di produzione per i relativi contenuti:
gcloud beta compute disks create mysql-test-data \ --size=100GB \ --source-snapshot=mysql-prod-data-snapshot \ --zone="${ZONE}"
Collega il nuovo disco all'istanza
mysql-test
con autorizzazioni di lettura/scrittura:gcloud compute instances attach-disk mysql-test \ --disk=mysql-test-data --mode=rw
Monta il nuovo disco di dati su Linux
Per utilizzare il disco dati clonato come directory dei dati di MySQL, devi arrestare l'istanza MySQL e montare il disco.
Nella sessione SSH connessa a
mysql-test
, interrompi il servizio MySQL:sudo service mysql stop
Nella finestra del terminale, viene visualizzato un elenco dei dischi collegati all'istanza:
lsblk
L'output è il seguente:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk └─sda1 8:1 0 50G 0 part / sdb 8:16 0 100G 0 disk
Il disco denominato
sdb
(100 GB) è il disco dati.Monta il disco di dati MySQL nella directory dei dati MySQL:
sudo mount -o discard,defaults /dev/sdb /var/lib/mysql
Il montaggio di questo disco nasconde eventuali file di configurazione e spazi tabella di MySQL, sostituendoli con i contenuti del disco.
Con questo comando, il disco viene montato temporaneamente e non viene montato di nuovo al successivo avvio del sistema. Se vuoi montare il disco all'avvio del sistema, crea un'
fstab
voce. Per ulteriori informazioni, consulta la sezione Configurare il disco aggiuntivo all'inizio di questo tutorial.
Avvia MySQL nell'istanza di test
Nella sessione SSH connessa a
mysql-test
, avvia il servizio MySQL:sudo service mysql start
Per verificare che il database clonato sia funzionale, esegui una query che conteggia il numero di righe nella tabella
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando richiesto, inserisci la password root del server database
mysql-prod
. La password di root dell'istanza di produzione è obbligatoria perché l'intera directory dei dati MySQL è un clone della directory dei dati dell'istanzamysql-prod
, pertanto tutti i database, gli utenti del database e le relative password vengono copiati.+----------+ | count(*) | +----------+ | 300024 | +----------+
Il numero di righe è lo stesso dell'istanza
mysql-prod
.
Ora che hai visto come clonare un database utilizzando gli snapshot dei dischi permanenti, puoi provare a clonare un database utilizzando l'esportazione e l'importazione. Per completare il tutorial per questo secondo approccio, devi smontare il disco clonato.
Smonta il disco clonato
Per smontare il disco clonato creato utilizzando gli snapshot del disco, svolgi i seguenti passaggi:
Nella sessione SSH connessa all'istanza
mysql-test
, arresta il servizio MySQL:sudo service mysql stop
Smonta il disco di dati clonato dalla directory dei dati di MySQL:
sudo umount /var/lib/mysql
Riavvia il servizio MySQL:
sudo service mysql start
Clonazione mediante esportazione e importazione
Un secondo metodo per clonare un database MySQL in esecuzione su Compute Engine è utilizzare l'esportazione e l'importazione native di MySQL (utilizzando mysqldump
). Con questo approccio, trasferisci il file di esportazione utilizzando Cloud Storage.
Questa sezione del tutorial utilizza le risorse che hai creato nella sezione Clonazione del database utilizzando gli snapshot dei dischi di Compute Engine di questo tutorial. Se non hai completato questa sezione, devi farlo prima di continuare.
In questa sezione del tutorial, esegui le seguenti operazioni:
- Creare un bucket Cloud Storage.
- Esporta il database nell'istanza di produzione scrivendolo in Cloud Storage.
- Importa il file di esportazione nell'istanza di test leggendolo da Cloud Storage.
Il seguente diagramma mostra come viene clonato un database trasferendo un'esportazione utilizzando Cloud Storage.
Poiché ai sistemi esterni Google Cloud è possibile concedere l'accesso a Cloud Storage, puoi utilizzare questo approccio per clonare i database da istanze MySQL esterne.
Crea un bucket Cloud Storage
Devi creare un bucket Cloud Storage in cui archiviare i file di esportazione mentre li trasferisci dall'istanza mysql-prod
all'istanza mysql-test
.
Apri Cloud Shell.
Crea un bucket Cloud Storage nella stessa regione delle tue istanze VM:
gcloud storage buckets create "gs://$(gcloud config get-value project)-bucket" --location="${REGION}"
Esportare il database
Nel tuo ambiente di produzione, potresti già eseguire i backup utilizzando i file di esportazione mysqldump
. Puoi utilizzare questi backup come base per clonare il database.
In questo tutorial, crei un nuovo file di esportazione utilizzando mysqldump
, che non influisce sulle pianificazioni dei backup completi o incrementali esistenti.
Nella sessione SSH connessa all'istanza
mysql-prod
, esporta il databaseEmployees
trasmettendolo in streaming in un oggetto Cloud Storage nel bucket creato in precedenza:mysqldump --user=root -p --default-character-set=utf8mb4 --add-drop-database --verbose --hex_blob \ --databases employees |\ gcloud storage cp - "gs://$(gcloud config get-value project)-bucket/employees-dump.sql"
Quando richiesto, inserisci la password root del server di database
mysql-prod
.Utilizza il set di caratteri
utf8mb4
nell'esportazione per evitare problemi di codifica dei caratteri.L'opzione
--add-drop-database
viene utilizzata in modo che le istruzioniDROP DATABASE
eCREATE DATABASE
vengano incluse nell'esportazione.
Importa il file esportato
Nella sessione SSH connessa all'istanza
mysql-test
, riproduci in streaming il file esportato dal tuo bucket Cloud Storage nell'applicazione a riga di comandomysql
:gcloud storage cat "gs://$(gcloud config get-value project)-bucket/employees-dump.sql" |\ mysql --user=root -p --default-character-set=utf8mb4
Quando richiesto, inserisci la password root del server di database
mysql-test
.Utilizza il set di caratteri
utf8mb4
durante l'importazione per evitare problemi di codifica dei caratteri.Per verificare che il database clonato sia funzionale, esegui una query che conteggia il numero di righe nella tabella
employees
:mysql -u root -p -e "select count(*) from employees.employees;"
Quando richiesto, inserisci la password root del server di database
mysql-test
.+----------+ | count(*) | +----------+ | 300024 | +----------+
Il numero di righe è lo stesso dell'istanza
mysql-prod
.
Utilizzo di Cloud SQL come destinazione della clonazione
Se il database di destinazione è ospitato su Cloud SQL e il database di origine è su Compute Engine, l'unico meccanismo supportato per la clonazione è esportare il database in Cloud Storage e poi importarlo in Cloud SQL.
Come spiegato nella documentazione di Cloud SQL, Cloud SQL può importare il file esportato solo se non contiene trigger, stored procedure, viste o funzioni.
Se il tuo database si basa su uno di questi elementi, devi escluderli dall'esportazione utilizzando gli argomenti della riga di comando --skip-triggers
e --ignore-table [VIEW_NAME]
, quindi ricrearli manualmente dopo l'importazione.
Crea un'istanza Cloud SQL per MySQL
Apri Cloud Shell.
Crea un'istanza Cloud SQL per MySQL che esegue la stessa versione del database dell'istanza
mysql-prod
:gcloud sql instances create mysql-cloudsql \ --tier=db-n1-standard-2 --region=${REGION} --database-version MYSQL_5_7
Dopo alcuni minuti, il database Cloud SQL viene creato.
Reimposta la password dell'utente root su un valore noto:
gcloud sql users set-password root \ --host=% --instance=mysql-cloudsql --prompt-for-password
Quando ti viene chiesto di fornire una password di root, crea e inserisci una password. Prendi nota della password o conservala temporaneamente in un luogo sicuro.
Esportare il database
Per esportare il database in un formato adatto per l'importazione in Cloud SQL, devi escludere tutte le visualizzazioni nel database.
Nella sessione SSH connessa all'istanza
mysql-prod
, imposta una variabile di ambiente contenente un insieme di argomenti a riga di comando per il comandomysqldump
in modo che ignori le visualizzazioni nel databaseEmployees
:DATABASE_NAME=employees IGNORE_TABLES_ARGS="`mysql -u root -p -s -s -e \" SELECT CONCAT('--ignore-table ${DATABASE_NAME}.',TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA = '${DATABASE_NAME}'; \"`"
Quando richiesto, inserisci la password root del server di database
mysql-prod
.Visualizza i contenuti delle variabili per verificare che siano stati impostati correttamente:
echo "${IGNORE_TABLES_ARGS}"
--ignore-table employees.current_dept_emp --ignore-table employees.dept_emp_latest_date
Esporta il database
Employees
, escludendo gli attivatori e le visualizzazioni, trasmettendolo in streaming direttamente in un oggetto Cloud Storage nel bucket che hai creato in precedenza:mysqldump --user=root -p --default-character-set=utf8mb4 --add-drop-database --verbose \ --hex-blob --skip-triggers --set-gtid-purged=OFF \ $IGNORE_TABLES_ARGS \ --databases employees |\ gcloud storage cp - "gs://$(gcloud config get-value project)-bucket/employees-cloudsql-import.sql"
Quando richiesto, inserisci la password root del server di database
mysql-prod
.
Aggiorna le autorizzazioni degli oggetti
Le autorizzazioni corrette devono essere impostate sia sul bucket Cloud Storage sia sull'oggetto di esportazione in modo che l'account di servizio Cloud SQL possa leggerle.
Queste autorizzazioni vengono impostate automaticamente quando utilizzi la console Google Cloud per importare l'oggetto oppure possono essere impostate utilizzando i comandi gcloud
.
Apri Cloud Shell.
Imposta una variabile di ambiente contenente l'indirizzo dell'account di servizio della tua istanza Cloud SQL:
CLOUDSQL_SA="$(gcloud sql instances describe mysql-cloudsql --format='get(serviceAccountEmailAddress)')"
Aggiungi l'account di servizio alla policy IAM del bucket come lettore e scrittore:
gcloud storage buckets add-iam-policy-binding "gs://$(gcloud config get-value project)-bucket/" \ --member=user:"${CLOUDSQL_SA}" --role=roles/storage.objectUser
Importa il database esportato
Apri Cloud Shell.
Importa il file esportato nell'istanza Cloud SQL:
gcloud sql import sql mysql-cloudsql \ "gs://$(gcloud config get-value project)-bucket/employees-cloudsql-import.sql"
Quando richiesto, inserisci
y
.Per verificare che il database clonato sia funzionale, esegui una query che conteggia il numero di righe nella tabella
employees
:echo "select count(*) from employees.employees;" |\ gcloud sql connect mysql-cloudsql --user=root
Quando richiesto, inserisci la password root del server di database
mysql-cloudsql
.L'output è il seguente:
Connecting to database with SQL user [root].Enter password: count(*) 300024
Il numero di righe è lo stesso dell'istanza
mysql-prod
.
Informazioni aggiuntive per i sistemi di produzione
Utilizzo degli snapshot dei dischi
Per i backup fisici (ad esempio gli snapshot del disco), la documentazione di MySQL
consiglia
di mettere in pausa le scritture nel database prima di acquisire uno snapshot. A tale scopo, devi utilizzare il comando FLUSH TABLES WITH READ LOCK
. Al termine dello snapshot, puoi utilizzare UNLOCK TABLES
per riavviare le scritture.
Per i database che utilizzano tabelle InnoDB, ti consigliamo di acquisire lo snapshot direttamente senza prima eseguire il comando FLUSH TABLES WITH READ LOCK
. In questo modo, il database può continuare a funzionare senza effetti negativi, ma lo snapshot potrebbe essere in uno stato incoerente. Tuttavia, in questo caso, il motore InnoDB può ricostruire le tabelle in uno stato coerente all'avvio del clone.
Per i database che utilizzano tabelle MyISAM, l'esecuzione del comando FLUSH TABLES WITH READ LOCK
blocca tutte le scritture nelle tabelle, rendendo il database di sola lettura fino a quando non esegui il comando UNLOCK TABLES
.
Se acquisisci uno snapshot senza prima svuotare e bloccare le tabelle, c'è il rischio che il database appena clonato contenga dati incoerenti o che sia danneggiato.
Pertanto, per ottenere uno snapshot coerente dei database che utilizzano tabelle MyISAM, consigliamo di eseguire FLUSH TABLES WITH READ LOCK
su una replica di lettura e di acquisire uno snapshot della replica in modo che le prestazioni del database principale (master) non siano interessate.
Utilizzo del comando mysqldump
Per creare un file di esportazione coerente con il database di origine, il comando mysqldump
blocca tutte le tabelle durante l'operazione di esportazione. Ciò significa che le scritture nel database sono bloccate durante l'esportazione del database.
Ti consigliamo quindi di eseguire il comando mysqldump
su una replica di lettura del database principale in modo che il principale non venga bloccato.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, puoi eliminare il Google Cloud progetto che hai creato per questo tutorial.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
Scopri come monitorare le query lente in MySQL con Cloud Monitoring.
Esplora architetture di riferimento, diagrammi e best practice su Google Cloud. Consulta il nostro Cloud Architecture Center.