2016-06-16 21 views
8

Per testare la replica di streaming, vorrei creare una seconda istanza di Postgres sulla stessa macchina. L'idea è che se può essere fatto sul server di test, dovrebbe essere banale impostarlo sui due server di produzione.Creazione di istanze Postgres multiple sulla stessa macchina

Le istanze devono utilizzare diversi file di configurazione e diverse directory di dati. Ho provato a seguire le istruzioni qui http://ubuntuforums.org/showthread.php?t=1431697 ma non ho capito come ottenere Postgres per utilizzare un file di configurazione diverso. Se copio lo script di init, gli script sono solo alias della stessa istanza di Postgres.

Sto utilizzando Postgres 9.3 e le pagine della guida di Postgres dicono di specificare il file di configurazione sulla riga di comando postgres. Non sono sicuro di cosa significhi. Devo installare qualche client perché funzioni? Grazie.

+1

Basta eseguire 'initdb' puntandolo in una directory di dati diversi (e specificare una porta diversa) –

+0

'Initdb' è in grado di creare un cluster di database con un file di configurazione personalizzato? Sembra che io possa solo specificare dove verranno archiviati i dati. – npCompleteNoob

+0

'initdb' _creates_ il file di configurazione (nella directory dei dati) –

risposta

9

Suppongo che si possa lavorare usando le utilità postgresql.

Creare i cluster

$ initdb -D /path/to/datadb1 
$ initdb -D /path/to/datadb2 

eseguire le istanze di

$ pg_ctl -D /path/to/datadb1 -o "-p 5433" -l /path/to/logdb1 start 
$ pg_ctl -D /path/to/datadb2 -o "-p 5434" -l /path/to/logdb2 start 

test in streaming

Ora avete due istanze in esecuzione sulle porte 5433 e 5434. I file di configurazione per loro sono dentro data dir specificata da initdb. Modificali per la replica in streaming.
L'installazione di default rimane intatta in porto 5432.

+0

Se si desidera utilizzare un percorso di file di configurazione diverso, è possibile specificarlo nella stringa -o in base a [documentazione] (https://www.postgresql.org/ docs/corrente/static/runtime-config-file-locations.html). Qualcosa come '-o" config_file =/path/to/my/postgresql.conf "' (non testato!) – cachique

2

Su distribuzioni basate su Debian si può usare al posto di pg_createclusterinitdb:

$ pg_createcluster -u [user] -g [group] -d /path/to/data -l /path/to/log -p 5433 

anche pg_ctlcluster è un'alternativa a pg_ctl.

3

passaggi per creare nuovi Istanza server PostgreSQL 9,5

  1. Il comando di marcia rapida:

    initdb -D Instance_Directory_path -U username -W 
    

    (richiesta la password)

  2. Una volta creata la nuova directory dell'istanza. prompt dei comandi Esegui come amministratore

    pg_ctl register -N service_name -D Instance_Directory_path -o "-p port_no" 
    
  3. Dopo che il servizio è stato registrato, Start Server

    pg_ctl start -D Instance_Directory_path -o "-p port_no" 
    
Problemi correlati