Configurazione di Cloud SQL e del server esterno per la replica

In questa pagina viene descritto come configurare il server esterno per la replica Cloud SQL, creare un'istanza di rappresentazione dell'origine su Cloud SQL e di replicare i dati in Cloud SQL. Devi seguire tutti i passaggi su questa pagina prima di procedere con i passaggi di replica.

Un'alternativa alla procedura descritta in questa pagina è la Database Migration Service, che offre replica continua o migrazione dei database una tantum da un ambiente a Cloud SQL.

Prima di iniziare

Terminologia

  • Server esterno. Il server PostgreSQL esterno a Cloud SQL da cui vuoi replicare i dati. È denominata anche fonte o il server di database esterno. Può essere un altro Cloud SQL o qualsiasi altro server di database, come server on-premise, Amazon Relational Database Service (RDS) e così via.

  • Istanza di rappresentazione dell'origine. Simulazione di un'istanza Cloud SQL che rappresenta il server esterno alla replica di Cloud SQL. È visibile nella console Google Cloud e ha l'aspetto di una un'istanza Cloud SQL, ma non contiene dati, richiede configurazione o manutenzione, né influire sulla fatturazione.

  • Replica Cloud SQL. L'istanza Cloud SQL che replica dal server esterno. Chiamato anche primario esterno di lettura.

  • Account utente di replica. L'account utente PostgreSQL sulla piattaforma con autorizzazioni sufficienti per consentire la replica tra un server esterno e la replica Cloud SQL.

  • Importazione gestita. La procedura di importazione dei dati direttamente dall'istanza il server web alla replica Cloud SQL. In questa situazione, Cloud SQL si connette al server esterno utilizzando l'account utente di replica esegue il dump direttamente sul server esterno per importare i dati replica Cloud SQL.

Configura un progetto Google Cloud

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva l'API Cloud SQL Admin.

    Abilita l'API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva l'API Cloud SQL Admin.

    Abilita l'API

  8. Assicurati di avere i ruoli Amministratore Cloud SQL, Amministratore Storage e con i ruoli di Visualizzatore Compute per il tuo account utente.

    Vai alla pagina IAM

Installa Google Cloud SDK

Per configurare la replica, installa Google Cloud SDK per il server esterno. Ti consigliamo di installare l'SDK a meno che non sia già installato altrove.

Configura il server esterno per la replica

Cloud SQL supporta migrazioni continue dai database di origine ai e i database di destinazione Cloud SQL.

I database di origine supportati per PostgreSQL includono:

  • PostgreSQL 9.4 autogestito (on-premise o su qualsiasi VM cloud che controlli completamente), 9.5, 9.6, 10, 11, 12, 13, 14, 15 e 16
  • Amazon RDS 9.6.10 e versioni successive, 10.5 e versioni successive, 11.1 e versioni successive, 12, 13, 14, 15 e 16
  • Amazon Aurora 10.11 e versioni successive, 11.6 e versioni successive, 12.4 e versioni successive, 13.3 e versioni successive, 14, 15 e 16
  • Cloud SQL 9.6, 10, 11, 12, 13, 14, 15 e 16

Per configurare l'origine è necessario configurare sia l'istanza di origine e i database di origine sottostanti.

Elenco di controllo per il server esterno

Se la replica Cloud SQL è abilitata con un indirizzo IP privato perché l'indirizzo IP privato in uscita non è statico, configura firewall del server esterno per consentire intervallo IP interno allocato per l'accesso privato ai servizi della rete VPC che Cloud SQL utilizzata dalla replica come rete privata.

Il firewall del server di database di origine deve essere configurato in modo da consentire l'intera intervallo IP interno allocato per la connessione privata ai servizi della rete VPC che l'istanza di destinazione Cloud SQL utilizza come Campo privateNetwork delle sue impostazioni ipConfiguration.

Per trovare l'intervallo IP interno:

  1. Nella console Google Cloud, vai alla pagina Reti VPC.

    Vai alla pagina Reti VPC

  2. Seleziona la rete VPC che vuoi utilizzare.

  3. Fai clic sulla scheda Connessione privata ai servizi.

Configura l'istanza di origine

Per configurare l'istanza di origine, segui questi passaggi:

  1. Se l'istanza di origine non include il database postgres, a crearlo.
  2. Installa pacchetto pglogical sull'istanza di origine.
  3. Imposta i seguenti parametri in base alle esigenze.

    Se l'istanza PostgreSQL di origine è Amazon RDS, includi questi parametri in un nuovo gruppo di parametri e collegarlo all'istanza.

    • Se l'origine è Cloud SQL, imposta cloudsql.logical_decoding e cloudsql.enable_pglogical flag a on.

      Per abilitare i flag in Cloud SQL, consulta Configurazione dei flag di database.

    • Imposta shared_preload_libraries per includere pglogical utilizzando il seguente comando:

      ALTER SYSTEM SET shared_preload_libraries = 'pglogical';
            
    • Imposta wal_level su logical utilizzando il seguente comando:

          ALTER SYSTEM SET wal_level = 'logical';
          

      Se l'istanza PostgreSQL di origine è Amazon RDS, per abilitare i log WAL in il livello logical, imposta il rds.logical_replication su 1.

    • Imposta wal_sender_timeout su 0 utilizzando il seguente comando:

      ALTER SYSTEM SET wal_sender_timeout = 0;

      Il valore 0 disattiva il meccanismo di timeout utilizzato per e termina le connessioni di replica inattive.

    • Imposta max_replication_slots al numero massimo di slot di replica che l'istanza di origine può assistenza in tempo reale. Utilizza il seguente comando, dopo aver sostituito # con il numero:

      ALTER SYSTEM SET max_replication_slots = #;

      Cloud SQL richiede uno slot per ogni database di cui viene eseguita la migrazione. Specifica almeno il numero di abbonamenti previsto per la connessione, con alcuni riserva per la sincronizzazione della tabella.

      Ad esempio, se l'istanza di origine ha 5 database e 2 migrazioni vengono creati job per l'origine, il numero di slot di replica deve essere almeno 5 * 2 = 10, oltre al numero di slot di replica che già utilizzi.

    • Imposta max_wal_senders almeno allo stesso livello di max_replication_slots, oltre al il numero di mittenti già utilizzati nella tua istanza. Usa il seguente comando: sostituendo # con il numero totale di processi del mittente WAL in esecuzione contemporaneamente:

      ALTER SYSTEM SET max_wal_senders = #;

      Ad esempio, se il parametro max_replication_slots è impostato a 10 e stai già utilizzando 2 mittenti, poi il numero di processi del mittente WAL eseguiti contemporaneamente sarebbe 10 + 2 = 12.

    • Imposta max_worker_processes almeno al numero di database nell'istanza di origine, oltre a il numero di processi worker già utilizzati nella tua istanza. Utilizza la seguente comando, dopo aver sostituito # con il numero totale:

      ALTER SYSTEM SET max_worker_processes = #;
  4. I parametri che hai impostato in questo passaggio si applicano a un server di database PostgreSQL in esecuzione. Puoi anche creare questi modifiche permanenti includendole nel file postgresql.conf.

  5. Se la replica Cloud SQL utilizzerà un IP privato, configura firewall del server esterno per consentire l'intervallo IP interno allocato per il accesso privato ai servizi della rete VPC della replica.
  6. Per applicare le modifiche alla configurazione, riavvia l'istanza di origine.

Abilita il monitoraggio del ritardo di replica per le versioni PostgreSQL precedenti alla 9.6

Se stai eseguendo la migrazione da una versione di PostgreSQL precedente alla 9.6, la metrica del ritardo di replica non è disponibile per impostazione predefinita. Puoi utilizzare uno dei tre alternative per monitorare questa metrica e garantire tempi di inattività minimi durante la promozione nel database:

  • Opzione 1: abilita il server esterno Cloud SQL per monitorare la replica ritardando la concessione dell'accesso a una query specifica. L'utilizzo di un utente con SUPERUSER, esegui queste operazioni:

    1. Definisci la seguente funzione per consentire al server esterno di la query per il ritardo di replica.

      CREATE OR REPLACE FUNCTION pg_stat_replication_user()
      RETURNS TABLE (
      pid               integer                  ,
      usesysid          oid                      ,
      username          name                    ,
      application_name  text                     ,
      client_addr       inet                     ,
      client_hostname   text                     ,
      client_port       integer                  ,
      backend_start     timestamp with time zone ,
      backend_xmin      xid                      ,
      state             text                     ,
      sent_location     pg_lsn                   ,
      write_location    pg_lsn                   ,
      flush_location    pg_lsn                   ,
      replay_location   pg_lsn                   ,
      sync_priority     integer                  ,
      sync_state        text
      )
      LANGUAGE SQL
      SECURITY DEFINER
      AS $$
       SELECT *
       FROM pg_catalog.pg_stat_replication;
      $$;
      
    2. Concedi l'autorizzazione EXECUTE all'utente eseguendo l'operazione seguenti comandi:

      1. REVOKE EXECUTE ON FUNCTION pg_stat_replication_user() FROM public;
      2. GRANT EXECUTE ON FUNCTION pg_stat_replication_user() to {replication_user};
  • Opzione 2: concedi il privilegio SUPERUSER direttamente all'utente utilizzata per la connessione all'istanza di origine. Ciò consente al server esterno di leggere direttamente il ritardo di replica.

  • Opzione 3: monitora il ritardo di replica in modo indipendente utilizzando il metodo seguente query:

        SELECT current_timestamp, application_name,
        pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.sent_location) AS sent_location_lag,
        pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.write_location) AS write_location_lag,
        pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.flush_location) AS flush_location_lag,
        pg_xlog_location_diff(pg_current_xlog_location(), pg_stat_replication.replay_location) AS replay_location_lag
        FROM pg_stat_replication
        WHERE application_name like 'cloudsql%';
      

    In questa opzione, Cloud SQL non riflette la metrica del ritardo di replica nei grafici o nelle risposte dell'API.

Configura i database di origine

Il server esterno Cloud SQL esegue la migrazione di tutti i database nell'origine diversa da questa:

  • Per le origini on-premise: database modello template0 e template1
  • Per le origini Amazon RDS: template0, template1 e rdsadmin
  • Per le origini Cloud SQL: database modello template0 e template1

Esegui le operazioni seguenti su ogni database non incluso nell'istanza di origine nell'elenco precedente:

  1. Per installare l'estensione pglogical, esegui questo comando su ogni database sull'istanza di origine:

    CREATE EXTENSION IF NOT EXISTS pglogical

    Per le tabelle che non hanno chiavi primarie, Cloud SQL supporta migrazione dello snapshot iniziale e delle istruzioni INSERT durante la fase CDC (Change Data Capture). Esegui la migrazione di UPDATE e DELETE istruzioni manualmente.

  2. Connettiti all'istanza ed esegui i comandi seguenti per impostare i privilegi l'utente su ciascuno dei database di cui è stata eseguita la migrazione, nonché i valori predefiniti postgres database.

    L'utente che utilizzi per connetterti all'istanza di origine è configurato come utente nella pagina Profili di connessione. Puoi creare un nuovo utente o riutilizzarne uno esistente.

    • Su tutti gli schemi di ogni database di cui eseguire la migrazione, ad eccezione delle informazioni schema e schemi che iniziano con pg_, esegui questo comando:

      GRANT USAGE on SCHEMA schema to username;
      GRANT SELECT on ALL SEQUENCES in SCHEMA schema to username;
      GRANT SELECT on ALL TABLES in SCHEMA schema to username;
    • Esegui questo comando su ogni database da migrare:

      GRANT USAGE on SCHEMA pglogical to PUBLIC;
    • Per recuperare le informazioni sulla replica dai database di origine,su tutti i database, esegui questo comando:

      GRANT SELECT on ALL TABLES in SCHEMA pglogical to username;
    • Se l'origine è Amazon RDS, esegui questo comando:

      GRANT rds_replication to username;

      In caso contrario, esegui questo comando:

      ALTER USER username with REPLICATION;

configura un'istanza di rappresentazione dell'origine

L'istanza di rappresentazione dell'origine fa riferimento al server esterno. it contiene solo i dati della richiesta dal server esterno. Crea i dati della richiesta e utilizzarlo in un comando curl che crea l'istanza di rappresentazione di origine in Cloud SQL.

Crea i dati della richiesta

I dati della richiesta contengono informazioni di base sul server esterno in formato JSON. I dati della richiesta possono essere configurati Replica Cloud SQL su una rete pubblica o privata e deve contenere queste informazioni:

source.json

    {
      "name": "SOURCE_NAME",
      "region": "REGION",
      "databaseVersion": "DATABASE_VERSION",
      "onPremisesConfiguration": {
        "hostPort": "SOURCE_HOST",
        "username": "USERNAME",
        "password": "PASSWORD",
        "caCertificate": "SOURCE_CERT",
        "clientCertificate": "CLIENT_CERT",
        "clientKey": "CLIENT_KEY"
      }
    }

esempio di importazione gestita

// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TSL

{
  "name": "cloudsql-source-instance",
  "region": "us-central1",
  "databaseVersion": "POSTGRES_9_6",
  "onPremisesConfiguration": {
    "hostPort": "192.0.2.0:3306",
    "username": "replicationUser",
    "password": "486#@%*@"
  }
}
Proprietà Descrizione
SOURCE_NAME Il nome dell'istanza di rappresentazione dell'origine per creare.
REGION La regione in cui vuoi che vengano di origine della rappresentazione di origine.
DATABASE_VERSION La versione del database in esecuzione a un server esterno. Le opzioni sono POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, POSTGRES_15 o POSTGRES_16.
SOURCE HOST L'indirizzo e la porta IPv4 per server esterno o l'indirizzo DNS del server esterno. Se il server esterno è ospitato su Cloud SQL, la porta è 5432.
USERNAME L'account utente di replica sull'istanza o server web.
PASSWORD La password per l'account utente di replica.
BUCKET Il nome del bucket che contiene il file di dump. Includi solo se stai configurando la replica con di un file di dump esistente in un bucket Cloud Storage.
DUMP_FILE Un file nel bucket che contiene i dati dal server esterno.
CLIENT_CA_CERT Il certificato CA sul server esterno. Includi solo se viene utilizzato SSL/TLS nella a un server esterno.
CLIENT_CERT Il certificato client sul server esterno. Obbligatorio solo per l'autenticazione client-server. Includi solo se viene utilizzato SSL/TLS nella a un server esterno.
CLIENT_KEY Il file della chiave privata per il client sul server esterno. Obbligatorie solo per l'autenticazione server-client. Includi solo se viene utilizzato SSL/TLS nella a un server esterno.

crea un'istanza di rappresentazione dell'origine

Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta di origine.

Quindi, per creare l'istanza di rappresentazione dell'origine in Cloud SQL, apri una nel terminale ed esegui questi comandi:

curl

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data @JSON_PATH \
         -X POST \
         https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances

esempio

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./source.json \
     -X POST \
     https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Proprietà Descrizione
PROJECT_ID L'ID del tuo progetto in Google Cloud.
JSON_PATH Il percorso del file JSON che contiene l'oggetto richiedere dati per il server esterno.

Aggiorna un'istanza di rappresentazione dell'origine

Se aggiorni i dati della richiesta dall'esterno puoi aggiornare l'istanza di rappresentazione dell'origine esistente in utilizzano i valori modificati.

Modifica i dati della richiesta

Aggiorna i dati della richiesta in modo da includere tutti i campi che sono stati modificati. Sono inclusi i campi hostPort, username, password, caCertificate, clientCertificate e clientKey. Dopo aver aggiornato i dati della richiesta, utilizzali in una curl per aggiornare l'istanza in Cloud SQL.

L'esempio seguente mostra l'aggiornamento di username e password con un nome utente e una password diversi:

source.json

    {
      "name": "SOURCE_NAME",
      "region": "REGION",
      "databaseVersion": "DATABASE_VERSION",
      "onPremisesConfiguration": {
        "username": "NEW_USERNAME",
        "password": "NEW_PASSWORD"
      }
    }

esempio di importazione gestita

// example of source.json for external server that
// - initiates replication from a Cloud SQL managed import
// - doesn't use SSL/TSL

{
  "name": "cloudsql-source-instance",
  "region": "us-central1",
  "databaseVersion": "POSTGRES_9_6",
  "onPremisesConfiguration": {
    "username": "newReplicationUser",
    "password": "525#@%*@"
  }
}
Proprietà Descrizione
SOURCE_NAME Il nome dell'istanza di rappresentazione dell'origine.
REGION La regione in cui un'istanza di rappresentazione di origine.
DATABASE_VERSION La versione del database in esecuzione a un server esterno. Le opzioni sono POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, POSTGRES_15 o POSTGRES_16.
NEW_USERNAME Il nuovo account utente di replica sull'esterno o server web.
NEW_PASSWORD La password del nuovo account.

Modifica un'istanza di rappresentazione dell'origine

Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta modificata.

Quindi, per modificare l'istanza di rappresentazione dell'origine in Cloud SQL, apri una nel terminale ed esegui questi comandi:

curl

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data @JSON_PATH \
         -X PATCH \
         https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/SOURCE_NAME

esempio

gcloud auth login
ACCESS_TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
     --header 'Content-Type: application/json' \
     --data @./source.json \
     -X PATCH \
     https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances/cloudsql-source-instance
Proprietà Descrizione
PROJECT_ID L'ID del tuo progetto in Google Cloud.
JSON_PATH Il percorso del file JSON che contiene l'oggetto richiedere dati per il server esterno.
SOURCE_NAME Il nome dell'istanza di rappresentazione dell'origine.

configura una replica Cloud SQL

La replica Cloud SQL contiene infine i dati il server esterno. In questo passaggio creerai la richiesta dati e usarli in un comando curl che crea la replica di Cloud SQL in Cloud SQL.

Crea i dati della richiesta

I dati della richiesta contengono informazioni di base sui tuoi e la replica Cloud SQL in formato JSON. I dati della richiesta possono essere configurato per una replica Cloud SQL su una rete pubblica o privata e deve contenere queste informazioni:

replica.json

    {
        "settings": {
            "tier": "TIER",
            "dataDiskSizeGb": "DISK_SIZE",
            "ipConfiguration": {
                "ipv4Enabled": "PUBLIC_IP_STATUS",
                "privateNetwork": "projects/PROJECT_ID/global/networks/NETWORK_NAME"
             },
             "availabilityType": "AVAILABILITY_TYPE"
        },
        "masterInstanceName": "SOURCE_REPRESENTATION_INSTANCE_NAME",
        "region": "SOURCE_REGION",
        "databaseVersion": "DATABASE_VERSION",
        "name": "REPLICA_NAME"
    }

esempio

    {
        "settings": {
            "tier": "db-custom-4-15360",
            "dataDiskSizeGb": "100"
        },
        "masterInstanceName": "source-instance",
        "region": "us-central1",
        "databaseVersion": "POSTGRES_14",
        "name": "replica-instance"
    }
Proprietà Descrizione
TIER Il tipo di macchina su cui ospitare la tua replica in esecuzione in un'istanza Compute Engine. Se non sai quale tipo di macchina utilizzare, iniziano con db-custom-2-7680. Puoi ne modificare le dimensioni e altri valori supportati in un secondo momento, se necessario.
DISK_SIZE La dimensione dello spazio di archiviazione della replica Cloud SQL, in GB.
PUBLIC_IP_STATUS Determina se l'istanza è a un indirizzo IP pubblico. Per impostazione predefinita, di questa proprietà è true. Per disattivare l'assegnazione di un indirizzo IP pubblico per replica, imposta il valore su false. Se il tuo progetto ha l'organizzazione constraints/sql.restrictPublicIp norme per creare l'istanza Cloud SQL devi impostare il valore dell'attributo ipv4Enabled in false. Per ulteriori informazioni sulla disattivazione dell'assegnazione degli indirizzi IP pubblici, vedi Disabilita l'IP pubblico.
PROJECT_ID Se la replica Cloud SQL si trova su una rete privata, quindi includi la proprietà privateNetwork nel replica.json file. Per PROJECT_ID, specifica l'ID del tuo progetto in Google Cloud.
NETWORK_NAME Il nome della rete privata da utilizzare con replica Cloud SQL.
AVAILABILITY_TYPE Il tipo di disponibilità di Cloud SQL replica. Per impostazione predefinita, il valore è ZONAL. Per rendere sull'alta disponibilità della replica, imposta il valore su REGIONAL. A sui valori consentiti, consulta SqlAvailabilityType.
Dopo aver creato una replica ad alta disponibilità del server esterna, non puoi modificarla in una replica non ad alta disponibilità. Questo è vero anche al contrario. Non puoi modificare una replica non ad alta disponibilità del server esterno su una replica ad alta disponibilità.
Il failover manuale potrebbe causare problemi se si tenta di eseguire la migrazione quando l'istanza i dati iniziali o quelli temporanei tempo di inattività se l'istanza è già in fase di replica dall'origine. Controlla il stato della replica.
SOURCE_REPRESENTATION_INSTANCE_NAME Il nome della fonte un'istanza di rappresentazione.
SOURCE_REGION La regione assegnata alla rappresentazione di origine in esecuzione in un'istanza Compute Engine.
DATABASE_VERSION La versione del database da utilizzare con replica Cloud SQL. Le opzioni per questa versione sono POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, POSTGRES_15 o POSTGRES_16. Abbina la versione del database in esecuzione sul tuo server esterno server o imposta il valore su un valore non superiore a solo per una versione successiva.
REPLICA_NAME Il nome della replica Cloud SQL da creare.

crea la replica Cloud SQL

Prima di iniziare questo passaggio, crea un file JSON contenente i dati della richiesta di replica. Quindi, per creare una replica Cloud SQL, apri un terminale Cloud Shell ed esegui questi comandi:

curl

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data @JSON_PATH \
         -X POST \
         https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances

esempio

    gcloud auth login
    ACCESS_TOKEN="$(gcloud auth print-access-token)"
    curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \
         --header 'Content-Type: application/json' \
         --data @./replica.json \
         -X POST \
         https://sqladmin.googleapis.com/sql/v1beta4/projects/MyProject/instances
Proprietà Descrizione
PROJECT_ID L'ID del tuo progetto in Google Cloud, deve essere uguale a quello dell'istanza di origine.
JSON_PATH Il percorso del file JSON che contiene la richiesta per la replica Cloud SQL.

Verificare la configurazione

Per assicurarti che le istanze siano configurate correttamente, vai a Pagina Istanze Cloud SQL.

Dovresti vedere l'istanza di rappresentazione dell'origine e Cloud SQL replica, in una scheda simile alla seguente:

ID istanza Tipo IP pubblico
(-) rappresentazione-origine-istanza Primario esterno al database 10.68.48.3:5432
istanza-replica Replica di lettura database 34.66.48.59

Assicurati inoltre di avere l'autorizzazione cloudsql.instances.migrate per la replica di Cloud SQL. Questa autorizzazione è inclusa in cloudsql.admin o cloudsql.editor ruoli IAM.

Aggiungi utenti alla replica Cloud SQL

Non puoi importare account utente di database dal server esterno, ma puoi crearle su una replica Cloud SQL. Esegui questa operazione prima di eseguire la replica dal server esterno.

Ottieni l'indirizzo IP in uscita della replica Cloud SQL

Puoi utilizzare l'indirizzo IP in uscita della replica Cloud SQL per creare connessione sicura tra il server esterno e replica Cloud SQL. Non ti verrà addebitato alcun costo per questo indirizzo IP.

Console

Per ottenere l'indirizzo IP in uscita per la replica, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Accanto all'indirizzo IP pubblico della replica Cloud SQL, tieni premuto il puntatore sopra la descrizione comando Ulteriori informazioni e recupera l'indirizzo IP in uscita.

    Tieni presente che l'indirizzo IP in uscita non è l'indirizzo IP visualizzato nell'elenco principale della replica nella console Google Cloud.

gcloud

Per ottenere l'indirizzo IP in uscita per la replica, esegui questo comando:

gcloud sql instances describe REPLICA_NAME --format="default(ipAddresses)"
Proprietà Descrizione
REPLICA_NAME Il nome della replica Cloud SQL di cui vuoi recuperare l'indirizzo IP pubblico in uscita.

Consenti connessioni in entrata sul server esterno

La replica Cloud SQL deve connettersi al server esterno affinché la replica venga completata correttamente. Devi configurare il firewall di rete per per accettare connessioni dal server esterno Indirizzo IP in uscita della replica Cloud SQL se si applicano le seguenti condizioni:

  • Il server esterno è protetto da un firewall o da un'altra rete delle risorse.
  • La replica Cloud SQL utilizza un IP pubblico.

Per connetterti alla replica Cloud SQL, utilizza il protocollo all'indirizzo IP principale. Questo indirizzo IP viene visualizzato nella console Google Cloud.

Aggiorna l'istanza di rappresentazione dell'origine per consentire la replica nella replica Cloud SQL

Dopo aver configurato l'istanza di rappresentazione dell'origine per Cloud SQL potrebbe essere necessario aggiornare l'istanza di rappresentazione dell'origine. Ad esempio, richiedono un aggiornamento delle configurazioni:

  • L'host, la porta o l'IP del server esterno cambia.
  • Vuoi utilizzare un altro utente di replica PostgreSQL.
  • La password dell'utente della replica PostgreSQL cambia.
  • I certificati SSL utilizzati per connettersi in modo sicuro una modifica al server esterno.

Esegui il seed della replica Cloud SQL

Per il caricamento iniziale dei dati dal server esterno in Cloud SQL utilizza un'importazione gestita. Utilizza un servizio che estrae i dati e lo importa direttamente nell'istanza Cloud SQL. Per ulteriori informazioni, vedi Utilizzo di un'importazione gestita per configurare la replica da database esterni.

Monitora replica

Quando la replica Cloud SQL termina il caricamento iniziale dei dati, si connette il server esterno e applica tutti gli aggiornamenti apportati dopo l'esportazione operativa. Verifica lo stato della replica.

È importante controllare lo stato della replica prima di promuovere su un'istanza autonoma. Se il processo di replica non va a buon fine completato, una replica promossa non ha tutte le modifiche a un server esterno.

Se il ritardo di replica non tende verso 0, adottare le misure necessarie per risolvere il problema. Ti consigliamo di controllare le seguenti metriche: /postgresql/external_sync/initial_sync_complete, postgresql/external_sync/max_replica_byte_lag e database/replication/state. Visualizza l'elenco delle metriche di Cloud SQL.

Una volta che la replica di Cloud SQL ha messo in contatto il server esterno non esiste un ritardo di replica sulla replica Cloud SQL, connettiti al tuo per configurare un database. Esegui i comandi appropriati del database per assicurarti che i contenuti rispetto al server esterno. Mantieni i tuoi dati server web fino al completamento delle convalide necessarie.

Configura una replica a cascata

Dopo la migrazione, puoi creare repliche di lettura a cascata sotto la replica Cloud SQL prima che promuove la replica Cloud SQL.

Per creare una replica a cascata, esegui questi comandi:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic sulla scheda Repliche per la replica che agirà da padre per la replica che vuoi creare.
  3. Fai clic su Crea replica.
  4. Nella pagina Crea replica di lettura, aggiorna l'ID istanza ed eventuali altre opzioni di configurazione, incluso il nome, regione e zona.
  5. Fai clic su Crea.

    Cloud SQL crea una replica. Tornerai alla pagina dell'istanza e la replica principale.

  6. Segui i passaggi 4-6 per ogni nuova replica a cascata che vuoi creare.

gcloud

  1. Crea la nuova replica specificando la replica Cloud SQL come istanza principale tramite il flag --master-instance-name:

    gcloud sql instances create REPLICA_NAME \
          --master-instance-name=PARENT_REPLICA_NAME \
    
    Sostituisci quanto segue:
      .
    • REPLICA_NAME: l'ID univoco della replica che stai creando
    • PARENT_REPLICA_NAME: il nome della replica Cloud SQL
  2. Dopo aver creato la replica, puoi vedere che le modifiche apportate all'istanza principale vengono replicate in tutte le repliche nella catena di repliche a cascata.

curl

  1. Per creare una replica nella replica padre, modifica il seguente esempio di codice JSON e salvalo in un file denominato request.json:

    {
      "masterInstanceName": "EXTERNAL_SERVER_REPLICA_NAME",
      "project": "PROJECT_ID",
      "name": "REPLICA_NAME",
      "region": "REPLICA_REGION",
      "settings":
        {
          "tier": "MACHINE_TYPE",
        }
    }
    
  2. Esegui questo comando:
    curl -X POST
    -H "Authorization: Bearer "$(gcloud auth print-access-token)
    -H "Content-Type: application/json; charset=utf-8"
    -d @request.json
    "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances"
    

Promuovi la replica

Promuovi la tua replica seguendo questi passaggi:

  1. Promuovi la replica a istanza principale.
  2. Aggiungi repliche di lettura all'istanza.
  3. (Facoltativo) Configura la tua istanza per l'alta disponibilità. Per evitare tempi di inattività aggiuntivi, puoi abilitare l'alta disponibilità durante la configurazione di una replica impostando AVAILABILITY_TYPE su REGIONAL.

Passaggi successivi