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