Domanda

Sto cercando un modo per rapidamente "clonare" un database da 1 server PostgreSQL ad un altro.

Supponendo ...

  • Ho un server PostgreSQL in esecuzione su HostA, che serve 2 database
  • Ho 2 dispositivi montati su HostA, ciascun dispositivo memorizza i dati per uno dei database (cioè 1 database => 1 tablespace => 1 dispositivo)
  • Sono in grado di ottenere un punto di "sicuro" in tempo snapshot attraverso un metodo accurato
  • Sono in grado di coerenza e sicuro produrre un clone di uno dei 2 dispositivi utilizzati (potrei anche assumere sia la base di dati sempre e solo ricevere legge)
  • I padroni di casa sono coinvolti CentOS 5.4

E 'possibile ospitare un secondo server PostgreSQL su HostB, montare uno dei dispositivi clonati e ottenere il database corrispondente al "pop" in esistenza? (Un po 'come quando si copiano i file della tabella MyISAM in MySQL).

Se questo è possibile, qual è il meccanismo (vale a dire quello DDL dovrei guardare in o comandi PG)?

E 'importante per me essere in grado di muoversi singoli database in modo isolato gli uni degli altri. Ma se questo non è possibile, sarebbe un simile lavoro di approccio a livello di server (cercando di clonare e respawn un server copiando il datadir verso un host con lo stesso PostgreSQL installazione)?

È stato utile?

Soluzione

Non facilmente, perché ci sono un certo numero di file che vengono condivisi tra i database che significa che ogni database nella stessa installazione dipende da questo.

Si può fare a livello di server, oppure a livello di cluster, ma non a livello di singolo database. Basta essere sicuri di copiare / clone su tutta la directory dei dati e tutti gli spazi tabella esterni. Finché si può fare il clone atomicamente (sullo stesso file system o con un sistema in grado di fare cloni atomiche attraverso file system), che non hanno nemmeno bisogno di fermarsi il database sul hostA per farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top