La migrazione di un carico di lavoro da un'altra piattaforma a Cloud SQL per PostgreSQL spesso comporta l'utilizzo della console Google Cloud per importare i dati da un file di dump SQL che esporti dal tuo ambiente precedente.
Questo tutorial mostra come creare le risorse Google Cloud di cui hai bisogno e poi importare un database SQL in un'istanza Cloud SQL per PostgreSQL. Il tutorial illustra le best practice per la migrazione a Cloud SQL per PostgreSQL, incluso l'utilizzo di una rete Virtual Private Cloud (VPC) con accesso privato ai servizi e l'attivazione dell'IP privato per l'istanza Cloud SQL.
Man mano che procedi con i passaggi, mantieni i valori predefiniti per le impostazioni, a meno che non sia specificato diversamente.
Obiettivi
- Scarica un file di dump SQL di esempio.
- Crea una nuova rete Virtual Private Cloud con accesso privato ai servizi.
- Crea un bucket Cloud Storage e carica un file di dump SQL.
- Crea un'istanza Cloud SQL per PostgreSQL configurata per l'IP privato.
- Creare un utente.
- Crea un database di destinazione.
- Importa dal file di dump a un nuovo database.
- Verifica che l'importazione del database sia riuscita visualizzando la struttura ed eseguendo una query.
Costi
In questo documento vengono utilizzati 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 l'addebito di ulteriori costi eliminando le risorse che hai creato. Per saperne di più, consulta Esegui la 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Se utilizzi un progetto esistente per questa guida, verifica di disporre delle autorizzazioni necessarie per completare la guida. Se hai creato un nuovo progetto, disponi già delle autorizzazioni necessarie.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud SQL, Cloud SQL Admin, Compute Engine, Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Amministratore Cloud SQL (
roles/cloudsql.admin) -
Storage Admin (
roles/storage.admin) -
Compute Network Admin (
roles/compute.networkAdmin) Nella console Google Cloud , vai alla pagina Reti VPC.
Fai clic su Crea rete VPC.
Nel campo del nome, inserisci
tutorial-network.In Modalità di creazione subnet, seleziona Personalizzata.
Nel campo del nome, inserisci
tutorial-subnet.Seleziona una regione vicina a te.
In Intervallo IPv4, inserisci
10.0.0.0/24.Per Accesso privato Google, seleziona On.
Fai clic su Fine.
Nella parte inferiore della pagina, fai clic su Crea.
- Nella schermata Reti VPC, fai clic su tutorial-network.
- Nella barra dei menu di tutorial-network, fai clic su Accesso privato ai servizi.
- Fai clic su Intervalli IP allocati per i servizi.
- Fai clic su Assegna intervallo IP.
- In Nome, inserisci
tutorial-range. - In Intervallo di indirizzi IP, seleziona Personalizzato.
- Nel campo Intervallo, inserisci
192.168.0.0/20. - Fai clic su Assegna.
- Nel sottomenu, fai clic su Connessioni private ai servizi.
- Fai clic su Crea connessione.
- Nel menu a discesa Allocazione assegnata, seleziona tutorial-range.
- Fai clic su Connetti. Dopo un minuto o due, la console Google Cloud mostra un messaggio che ti informa che hai creato correttamente una connessione privata.
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
- Fai clic su Crea.
- Per il nome del bucket, crea un nome univoco a livello globale composto da lettere minuscole, numeri e trattini. Potresti utilizzare un generatore di stringhe casuali, ad esempio random.org/strings, per generare il nome. Prendi nota del nome che scegli.
- Fai clic su Continua.
- In Tipo di località, seleziona Regione. Questa è l'opzione più economica.
- Scegli la stessa regione che hai scelto per la subnet. Se posizioni le risorseGoogle Cloud nella stessa regione, riduci la latenza, migliori la velocità, abbassi i costi di trasferimento dei dati e semplifichi il networking.
- Fai clic su Continua.
- Fai clic su Crea.
- Se viene visualizzata una finestra di dialogo, lascia selezionata l'opzione Applica la prevenzione dell'accesso pubblico in questo bucket e fai clic su Conferma.
- Nella scheda Oggetti, fai clic su Carica e poi su Carica file.
- Passa al file
countries-postgres.sqle selezionalo. - Fai clic su Apri. Cloud Storage carica il file di dump nel bucket.
- Vai alla pagina Istanze Cloud SQL nella console Google Cloud .
Vai alla pagina Istanze Cloud SQL - Fai clic su Crea istanza.
- Fai clic su Scegli PostgreSQL.
- Per Scegli una versione di Cloud SQL, scegli Enterprise.
- Per Preset versione, seleziona Sandbox.
- In ID istanza, inserisci
tutorial-instance. - Scegli e inserisci una password per l'account utente predefinito e salvala per un utilizzo futuro.
- Scegli la stessa regione che hai scelto per la subnet e il bucket.
- Per Disponibilità a livello di zona, seleziona Zona singola.
- Espandi Mostra opzioni di configurazione.
- Espandi Connessioni.
- Deseleziona IP pubblico.
- Seleziona IP privato.
- Nel menu a discesa Rete, seleziona tutorial-network. In questo modo, la nuova istanza Cloud SQL viene inserita nella rete privata che hai creato in precedenza.
- Fai clic su Crea istanza, quindi attendi l'inizializzazione e l'avvio dell'istanza. Il processo di inizializzazione può richiedere più di cinque minuti.
- Nel menu di navigazione SQL, fai clic su Utenti.
- Fai clic su Aggiungi account utente.
- Nel riquadro che si apre, seleziona Autenticazione integrata.
- Nel campo Nome utente, inserisci
tutorial-user. - Inserisci una password per il nuovo utente. Salva questa password per utilizzarla in futuro.
- Fai clic su Aggiungi.
- Nel menu di navigazione SQL, fai clic su Database.
- Fai clic su Crea database.
- In Nome database, digita
countries. - Fai clic su Crea.
- Nel menu di navigazione SQL, fai clic su Panoramica.
- Nella pagina di panoramica, fai clic su Importa.
- In Formato file, seleziona SQL.
- In Seleziona file di origine, scegli Seleziona file da Google Cloud Storage.
- Fai clic su Sfoglia
- Espandi il bucket di archiviazione che hai creato in precedenza.
- Fai clic su countries-postgres.sql.
- Fai clic su Seleziona.
- Nella sezione Destinazione, fai clic sul menu a discesa Database e poi seleziona Paesi.
- Fai clic su Importa.
- Nel menu di navigazione SQL, fai clic su Cloud SQL Studio. Viene visualizzata una finestra di dialogo di accesso.
- Nel menu a discesa Database, scegli paesi.
- Seleziona Autenticazione del database integrata.
- Nel menu a discesa Utente, seleziona tutorial-user.
- Nel campo Password, inserisci la password che hai scelto per l'utente nella sezione Aggiungi un utente.
- Fai clic su Authenticate (Autentica). Si apre Cloud SQL Studio.
- Nel riquadro Explorer, esamina il database
countriese verifica che contenga due tabelle:capitalsecountry_codes. - Fai clic su Query senza titolo per aprire l'editor query.
Incolla il seguente codice nell'editor di query:
SELECT "capitals"."country_capital", "country_codes"."country_name" FROM "capitals" JOIN "country_codes" ON "capitals"."alpha_2_code" = "country_codes"."alpha_2_code" ORDER BY "capitals"."country_capital";Fai clic su Esegui.
- Elimina il progetto che contiene le risorse
- Mantieni il progetto ed elimina le singole risorse.
- 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.
- Nel menu di navigazione SQL, fai clic su Panoramica.
- Fai clic su Modifica.
- Espandi la sezione Protezione dei dati.
- In Protezione da eliminazione dell'istanza, deseleziona tutte le opzioni.
- Fai clic su Salva. Al termine dell'operazione, l'opzione Elimina è selezionabile.
- Fai clic su Elimina. Viene visualizzata una finestra di dialogo.
- Nel campo ID istanza, inserisci
tutorial-instance. - Fai clic su Elimina.
- Nel menu di navigazione principale della console Google Cloud , vai a Cloud Storage > Bucket.
- Seleziona la casella accanto al nome del bucket che hai creato in precedenza.
- Fai clic su Elimina.
- Nella finestra di dialogo, conferma l'eliminazione digitando
DELETE, quindi fai clic su Elimina. - Nel menu di navigazione principale, vai a Reti VPC > Peering di reti VPC.
- Seleziona la casella accanto alla connessione di peering con la rete VPC tutorial-network.
- Fai clic su Elimina.
- Nella finestra di dialogo, conferma facendo clic su Elimina.
- Nel menu Rete VPC, fai clic su Reti VPC.
- Fai clic su tutorial-network per aprire la pagina dei dettagli.
- Fai clic su Elimina rete VPC.
- Nella finestra di dialogo, conferma l'eliminazione digitando
tutorial-networke poi facendo clic su Elimina. - Best practice per l'importazione e l'esportazione dei dati.
- Esportazione e importazione mediante file di dump SQL.
- Reti VPC
- Esplora architetture, diagrammi e best practice di riferimento su Google Cloud. Consulta il nostro Cloud Architecture Center.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare questo tutorial, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Ottenere un file di dump del database di esempio
Per questo tutorial, utilizzerai un piccolo database di esempio contenente codici paese e capitali del mondo.
Scarica il file SQL per il database countries nell'ambiente locale: countries-postgres.sql.
Crea una rete con accesso privato ai servizi
Prima di creare il resto delle risorse, crea una rete VPC su cui eseguire i servizi. L'accesso privato ai servizi consente di limitare l'accesso al tuo database Cloud SQL stabilendo una connessione privata tra la tua rete esterna e Cloud SQL per PostgreSQL utilizzando indirizzi IPv4 interni.
Al termine del processo di creazione della rete VPC, puoi configurare l'accesso privato ai servizi per la rete.
Crea un bucket Cloud Storage
Successivamente, crea un bucket Cloud Storage per archiviare il file di dump SQL che hai scaricato in precedenza. Lo strumento di importazione di Cloud SQL prevede che il file di dump si trovi in un bucket. Un bucket Cloud Storage deve avere un nome globalmente univoco.
Si apre la pagina Dettagli bucket del nuovo bucket con il riquadro Oggetti selezionato.
Carica il file di dump nel bucket
Carica nel bucket il file di dump SQL di esempio che hai scaricato in precedenza.
Crea un'istanza Cloud SQL
Crea un'istanza Cloud SQL nella console Google Cloud utilizzando le seguenti impostazioni. Per tutte le altre impostazioni, mantieni i valori predefiniti. Sebbene non sia necessario abilitare l'IP privato per il processo di importazione, l'utilizzo dell'IP privato per un carico di lavoro di produzione è una best practice.
Aggiungi un utente
Prima di poter leggere o scrivere in un database, devi creare un utente del database diverso dall'utente root.
Crea un database di destinazione
Il flusso di lavoro di importazione richiede di selezionare un database di destinazione in cui importare i dati, quindi devi creare un database vuoto.
Importa dal file di dump
Ora puoi importare il database countries utilizzando il file di dump countries-postgres.sql che hai caricato nel bucket Cloud Storage.
Al termine del processo di importazione e dopo l'importazione del database countries in Cloud SQL per PostgreSQL, viene visualizzato un messaggio di operazione riuscita.
Convalida i dati importati in Cloud SQL per PostgreSQL
Al termine dell'operazione di importazione, puoi verificare che il database sia stato importato connettendoti a esso utilizzando Cloud SQL Studio, esaminando l'elenco delle tabelle ed eseguendo una query di test sui dati.
Esegui l'autenticazione in Cloud SQL Studio
Con l'account utente creato in precedenza, connettiti al nuovo database utilizzando Cloud SQL Studio.
Visualizzare ed eseguire query sulle tabelle
Il riquadro dei risultati mostra un elenco alfabetico delle capitali del mondo e dei relativi paesi.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, esegui una delle seguenti operazioni:
Elimina il progetto
Elimina singole risorse
Se vuoi conservare il progetto, ma evitare addebiti, elimina l'istanza Cloud SQL, il bucket Cloud Storage e la rete VPC che hai creato durante il tutorial.
Elimina l'istanza Cloud SQL
Innanzitutto, disattiva la protezione da eliminazione e poi elimina l'istanza Cloud SQL del tutorial:
Elimina il bucket Cloud Storage
Poi, elimina il bucket di archiviazione e i relativi contenuti.
Elimina la rete VPC
Ora che hai eliminato le risorse nella tua rete VPC, puoi eliminare la rete. Prima di poter eliminare la rete VPC, devi eliminare la connessione di peering creata automaticamente quando hai creato la rete VPC.
Ora che la connessione in peering è stata rimossa, puoi eliminare la rete VPC.