una tabla servidor registros otra instancia datos crear copiar database postgresql

database - tabla - Copiando la base de datos PostgreSQL a otro servidor



crear instancia postgresql windows (9)

Ejecute este comando con el nombre de la base de datos, desea realizar una copia de seguridad para tomar el volcado de la base de datos.

pg_dump -U {user-name} {source_db} -f {dumpfilename.sql} eg. pg_dump -U postgres mydbname -f mydbnamedump.sql

Ahora scp este archivo de volcado a la máquina remota donde desea copiar la base de datos.

eg. scp mydbnamedump.sql user01@remotemachineip:~/some/folder/

En la máquina remota, ejecute el comando siguiente en la carpeta ~ / some / para restaurar la base de datos.

psql -U {user-name} -d {desintation_db}-f {dumpfilename.sql} eg. psql -U postgres -d mynewdb -f mydbnamedump.sql

Estoy buscando copiar una base de datos PostgreSQL de producción a un servidor de desarrollo. ¿Cuál es la forma más rápida y fácil de hacer esto?


Luché bastante y, finalmente, el método que me permitió hacer que funcionara con Rails 4 era:

en tu antiguo servidor

sudo su - postgres pg_dump -c --inserts old_db_name > dump.sql

Tuve que usar el usuario de linux postgres para crear el volcado. También tuve que usar -c para forzar la creación de la base de datos en el nuevo servidor. --inserts le dice que use la sintaxis INSERT () que de otra manera no funcionaría para mí :(

entonces, en el nuevo servidor, simpy:

sudo su - postgres psql new_database_name < dump.sql

para transferir el archivo dump.sql entre el servidor, simplemente usé el "cat" para imprimir el contenido y luego "nano" para recrearlo copypasting el contenido.

Además, el ROL que estaba usando en las dos bases de datos era diferente, así que tuve que buscar y reemplazar todo el nombre del propietario en el volcado.


No es necesario crear un archivo intermedio. Tu puedes hacer

pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname

o

pg_dump -C -h remotehost -U remoteuser dbname | psql -h localhost -U localuser dbname

usando psql o pg_dump para conectarse a un host remoto.

Con una base de datos grande o una conexión lenta, descargar un archivo y transferir el archivo comprimido puede ser más rápido.

Como dijo Kornel, no es necesario volcar en un archivo intermedio, si desea trabajar comprimido puede usar un túnel comprimido

pg_dump -C dbname | bzip2 | ssh remoteuser@remotehost "bunzip2 | psql dbname"

o

pg_dump -C dbname | ssh -C remoteuser@remotehost "psql dbname"

Pero esta solución también requiere obtener una sesión en ambos extremos.


Permítame compartir un script de shell de Linux para copiar los datos de su tabla de un servidor a otro servidor PostgreSQL.

Referencia tomada de este blog:

Linux Bash Shell Script para la migración de datos entre servidores PostgreSQL:

#!/bin/bash psql / -X / -U user_name / -h host_name1 / -d database_name / -c "//copy tbl_Students to stdout" / | / psql / -X / -U user_name / -h host_name2 / -d database_name / -c "//copy tbl_Students from stdin"

Solo estoy migrando los datos; cree una tabla en blanco en su segundo servidor de base de datos de destino.

Este es un script de utilidad. Además, puede modificar el script para un uso genérico, por ejemplo, agregando parámetros para host_name, database_name, table_name y otros


Si está buscando migrar entre versiones (por ejemplo, actualizó postgres y tiene 9.1 en ejecución en localhost: 5432 y 9.3 en ejecución en localhost: 5434) puede ejecutar:

pg_dumpall -p 5432 -U myuser91 | psql -U myuser94 -d postgres -p 5434

Echa un vistazo a los documentos de migración .


Use pg_dump , y luego psql o pg_restore , dependiendo de si elige las opciones -Fp o -Fc para pg_dump.

Ejemplo de uso:

ssh production pg_dump -C -Fp -f dump.sql -U postgres some_database_name scp dump.sql development: rm dump.sql ssh development psql -U postgres -f dump.sql


pg_basebackup parece ser la mejor manera de hacerlo ahora, especialmente para grandes bases de datos.


pg_dump database_name_name > backup.sql su base de datos: pg_dump database_name_name > backup.sql

Importe su base de datos de nuevo: psql db_name < backup.sql


pg_dump the_db_name > the_backup.sql

Luego copie la copia de seguridad en su servidor de desarrollo, restaure con:

psql the_new_dev_db < the_backup.sql