Configura un database PostgreSQL autogestito

Le sezioni seguenti descrivono come configurare un database PostgreSQL autogestito.

Abilita replica logica nel database

  1. Imposta il parametro wal_level nel database aggiungendo wal_level=logical al file postgresql.conf.

  2. Riavvia il server.

Crea una pubblicazione e uno slot di replica

  1. Accedi a una console PostgreSQL come super utente.

  2. Creare una pubblicazione. Ti consigliamo di creare una pubblicazione solo per le tabelle che vuoi replicare. In questo modo, Datastream può solo leggere i dati pertinenti e riduce il carico sul database e su Datastream:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLE SCHEMA1.TABLE1, SCHEMA2.TABLE2;

    Sostituisci quanto segue:

    • PUBLICATION_NAME: il nome della tua pubblicazione. Dovrai fornire questo nome quando crei un flusso nella procedura guidata di creazione dei flussi di Datastream.
    • SCHEMA: il nome dello schema che contiene la tabella.
    • TABLE: il nome della tabella che vuoi replicare.

    Puoi creare una pubblicazione per tutte le tabelle di uno schema. Questo approccio consente di replicare le modifiche per le tabelle nell'elenco specificato di schemi, incluse le tabelle che creerai in futuro:

    CREATE PUBLICATION PUBLICATION_NAME
    FOR TABLES IN SCHEMA1, SCHEMA2;

    Puoi anche creare una pubblicazione per tutte le tabelle del database. Tieni presente che questo approccio aumenta il carico sia sul database di origine sia su Datastream:

    CREATE PUBLICATION PUBLICATION_NAME FOR ALL TABLES;
    
  3. Crea uno slot di replica inserendo il seguente comando SQL:

    SELECT PG_CREATE_LOGICAL_REPLICATION_SLOT('REPLICATION_SLOT_NAME', 'pgoutput');

    Sostituisci quanto segue:

    • REPLICATION_SLOT_NAME: il nome dello slot di replica. Dovrai fornire questo nome quando crei un flusso nella procedura guidata di creazione dei flussi di Datastream.

Crea un utente Datastream

  1. Per creare un utente Datastream, inserisci i seguenti comandi SQL:

    CREATE USER USER_NAME WITH ENCRYPTED PASSWORD 'USER_PASSWORD';

    Sostituisci quanto segue:

    • USER_NAME: il nome dell'utente Datastream che vuoi creare.
    • USER_PASSWORD: la password di accesso per l'utente Datastream che vuoi creare.
  2. Concedi i privilegi seguenti all'utente che hai creato:

    ALTER ROLE USER_NAME WITH REPLICATION;
    GRANT SELECT ON ALL TABLES IN SCHEMA SCHEMA_NAME TO USER_NAME;
    GRANT USAGE ON SCHEMA SCHEMA_NAME TO USER_NAME;
    ALTER DEFAULT PRIVILEGES IN SCHEMA SCHEMA_NAME
      GRANT SELECT ON TABLES TO USER_NAME;
    

    Sostituisci quanto segue:

    • USER_NAME: l'utente a cui vuoi concedere i privilegi.
    • SCHEMA_NAME: il nome dello schema a cui vuoi concedere i privilegi.