Está en la página 1de 6

pg_dump

Nombre
pg_dump

-- Extrae una base de datos Postgres a un fichero de script

Synopsis
pg_dump [ base_de_datos ] pg_dump [ -h husped ] [ -p puerto ] [ -t tabla ] [ -a ] [ -c ] [ -d ] [ -D ] [ -n ] [ -N ] [ -o ] [ -s ] [ -u ] [ -v ] [ -x ] [ base_de_datos ]

Entrada
pg_dump

accepta los siguientes argumentos de la lnea de comando:

base_de_datos

Epecifca el nombre de la base de datos que se va a extraer. base_de_datos tiene como estndar el valor de la variable de entorno USER -a Vuelca slo los datos, no el esquema (las definiciones). -c Limpia el esquema antes de crearlo. -d Vuelca la data como propios insertos de cadenas. -D Vuelca la data como insertos con nombres de atributos -n

Suprime las dobles comillas de los identificadores, a menos que sean absolutamente necesarias. Esto puede causar problemas al cargar la misma si esta data volcada contiene palabras reservadas usadas por los identificadores. Esta era la conducta estndar en pg_dump pre-v6.4. -N Incluye comillas dobles en los identificadores. Este es el estndar. -o Vuelca los identificadores de objetos (OIDs) para cada tabla. -s Vuelca solo el esquema (las definiciones), no la data. -t tabla Vuelca la data para la tabla nicamnete. -u Usa autenticacin por medio de clave de acceso. Pide un nombre de usuario y clave de acceso. -v Epecifica el modo verbose(parlanchn) -x Evita el volcado de ACLs (comandos grant/revoke) y la informacin de propiedad de la tabla. tambin acepta los siguientes argumentos de lnea de comando para parmetros de conexin:
pg_dump

-h husped Especifica el nombre del husped de la mquina en la cual se est ejecutando el postmaster. El estndar es usar un socket de dominio local Unix en vez de una conexin IP..

-p puerto Especifica el puerto de Internet TCP/IP o extensin de archivo socket de dominio local Unix en el cual postmaster est esperando que se efecten conexiones. En nmero estndar de puerto es 5432, o el valor de la variable de ambiente PGPORT (si est establecida). -u Usa autenticacin con clave de acceso. Pide nombre_de_usuario y clave_de_acceso. Salida
pg_dump

crear un fichero o escribir a stdout.

La conexin con la base de datos 'template1' fall. connectDB() fall: Est el postmaster ejecutndose y acceptando conexiones en el 'Socket de UNIX' en el puerto 'puerto'?

no pudo unirse al proceso postmaster en el husped y puerto especificados. Si ve usted este mensaje, verifique que postmaster se este ejecutando en el husped indicado, y que usted especific el puerto correcto. Si su site usa algn sistema de autenticacin, verifique que usted tiene las credenciales de autenticacin requeridas.
pg_dump La conexin con la base de datos 'base_de_datos' fall. FATAL 1: SetUserId: el usuario 'nombre_de_usuario' no est en 'pg_shadow'

Usted no posee una entrada vlida en la relacin pg_shadow y no le ser permitido tener acceso a Postgres. Contacte a su administrador de Postgres.
dumpSequence(tabla): SELECT fall

Usted carece del permiso para leer la base de datos. Contacte a su administrador de site Postgres.
pg_dump

ejecuta internamente las directivas SELECT. Si tiene problemas ejecutando pg_dump, verifique que puede seleccionar la informacin de la base de datos mediante el uso de, por ejemplo, psql.

Descripcin

es un utilitario para volcar una base de datos Postgres en un fichero de script conteniendo comandos de consulta. Los ficheros de script son en formato de texto y pueden ser usados para reconstrur la base de datos, incluso en otras mquinas y con otras arquitecturas. pg_dump producir las consultas necesarias para regenerar todos los tipos definidos por el usuario, funciones, tablas, ndices, agregados, y operadores. Adicionalmente, toda la data es copiada en formato de texto el cual puede ser nuevamente copiado, tambin puede ser importado a herramientas para su edicin.
pg_dump

es til para verter el contenido de una base de datos que se vaya a mudar de una instalacin de Postgres a otra. Despus de ejecutar pg_dump, se debe examinar el script de salida a ver si contiene alguna advertencia, especialmente a la luz de las limitaciones citadas en la parte inferior.
pg_dump

Notas
tiene pocas limitaciones. Las limitaciones surgen principalmente de la dificultad para extraer ciertas meta-informaciones de los catlogos del sistema.
pg_dump

no entiende los ndices parciales. La razn es la misma citada anteriormente; los predicados de los ndices parciales se almacenan como planos. pg_dump no maneja objetos grandes. Los objetos grandes son ignorados y se debe lidiar con ellos de forma manual.
pg_dump

Uso
Para volcar una base de datos del mismo nombre que el usuario:
% pg_dump > db.out

Para volver a cargar esta base de datos:


% psql -e base_de_datos < db.out

Back up desde la lnea de comandos (usando mysqldump)

Si estas trabajando localmente, o tienes acceso telnet o al shell de tu servidor web, puedes hacer el back up de la base de datos MySql usando el comando 'mysqldump'. Este comando se conecta con la base de datos y crea un archivo SQL dump. El archivo dump contiene las consultas SQL necesarias para reconstruir la base. En un terminal escribimos: root@mylinux:~$ sudo mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql] Donde [uname] es tu usuario de la base de datos, [pass] es el password de tu base de datos (nota que no hay un espacio entre -p y el pass), [dbname] es el nombre de tu base de datos, [backupfile.sql] es el nombre del archivo backup de tu base de datos, y [--opt] son opciones de mysqldump. Por ejemplo, si quieres hacer el backup de una base llamada 'Usuarios' con el username 'root' y con el password 'mypass', y guardar este backup en un archivo llamado 'usuarios_backup.sql', debes escribir: root@mylinux:~$ sudo mysqldump -uroot -pmypass Usuarios > usuarios_backup.sql Este comando har un backup de la base de datos 'Usuarios' dentro de un archivo llamado 'usuarios_backup.sql' el cual contendr todas las consultas SQL necesarias para restaurar la base. Con el comando mysqldump tu puedes especificar tablas especificas dentro de una base las cuales quieres salvar. Por ejemplo, para hacer el backup de las tablas 'administradores' y 'clientes' de la base 'Usuarios', debes poner el nombre de cada tabla separada por un espacio, tal como se muestra: root@mylinux:~$ sudo mysqldump -uroot -pmypass Usuarios administradores clientes > usuarios_backup.sql A veces es necesario hacer el back up de mas de una base de datos a la vez. Para esto, tu puedes usar la opcin --databases seguida por el listado de bases que te gustara respaldar. El nombre de cada base esta separada por un espacio en blanco: root@mylinux:~$ sudo mysqldump -uroot -pmypass --databases Usuarios Articulos Imagenes > manydb_backup.sql Si quieres respaldar todas las bases de datos del servidor de una sola vez, debes usar la opcin -all-databases. Esta opcin le dice a MySql que haga un dump de todas las bases de datos almacenadas: root@mylinux:~$ sudo mysqldump -uroot -pmypass --all-databases > alldb_backup.sql El comando mysqldump tambin tiene algunas otras opciones tiles: --add-drop-table: Agrega una declaracin DROP TABLE antes de cada declaracin CREATE TABLE en el dump. --no-data: Respalda solo la estructura de la base de datos, no los contenidos. --add-locks: Agrega las declaraciones LOCK TABLES y UNLOCK TABLES. Back up de tu base de datos MySql con compresin Si tu base de datos MySql es demasiado grande, podras querer comprimir la salida del mysqldump. Para esto, debes utilizar el siguiente comando, para obtener el backup en un archivo gzip. root@mylinux:~$ sudo mysqldump -u[uname] -p[pass] [dbname] | gzip -9 > [backupfile.sql.gz] Si deseas extraer el archivo .gz, usa el siguiente comando: root@mylinux:~$ sudo gunzip [backupfile.sql.gz] Restaurando tu base de datos Ms arriba hicimos el backup de una base de datos llamada Usuarios dentro de un archivo usuarios_backup.sql. Para restaurar la base de datos Usuarios debes seguir los siguientes pasos:

#Crear una base de datos llamada apropiadamente en el nuevo servidor. #Cargar el archivo usando el siguiente comando mysql:

root@mylinux:~$ sudo mysql -u[uname] -p[pass] [db_to_restore] < [usuarios_backup.sql]

Para restaurar backups comprimidos puedes hacer lo siguiente: root@mylinux:~$ sudo gunzip < [backupfile.sql.gz] | mysql -u[uname] -p[pass] [dbname] Si necesitas restaurar una base de datos que ya existe, debers usar el comando mysqlimport. La sintxis para mysqlimport es la siguiente: root@mylinux:~$ sudo mysqlimport -u[uname] -p[pass] [dbname] [backupfile.sql]

También podría gustarte