Consejos tecnológicos: ¿Cómo hago una copia de seguridad y restauro la base de datos Postgres?

Karan Singh

19 jun 2013

Correo electrónico

1 min read

Consejos tecnológicos: ¿Cómo hago una copia de seguridad y restauro la base de datos Postgres?

Puntos clave

    • Las copias de seguridad de PostgreSQL pueden dirigirse a una sola tabla, una sola base de datos o todas las bases de datos según sus necesidades.

    • pg_dump crea un archivo de texto SQL que contiene DDL y los datos necesarios para recrear la tabla o base de datos objetivo.

    • pg_dumpall respalda todas las bases de datos en la instancia de Postgres.

    • La restauración se realiza con psql, que ejecuta el volcado de SQL de nuevo en la base de datos objetivo.

    • Las restauraciones a nivel de tabla requieren asegurarse de que la tabla no exista ya para evitar conflictos.

    • Al respaldar tablas individuales, tenga en cuenta las dependencias relacionales.

    • Los volcados se pueden hacer desde instancias locales y restaurarse en instancias remotas de Postgres.

    • Las copias de seguridad incluyen comandos CREATE, ALTER y COPY dependiendo de lo que se esté exportando.

    • Una estrategia de respaldo adecuada depende de entender las relaciones de las tablas, el uso de esquemas y los entornos de implementación.

    • Siempre asegúrese de la integridad de los datos tomando copias de seguridad que incluyan tablas referenciadas cuando sea necesario.

Destacados de Q&A

  • ¿Qué hace realmente pg_dump?

    pg_dump genera un archivo SQL basado en texto que contiene el conjunto completo de comandos necesarios para recrear una tabla o base de datos exactamente como existía en el momento de la copia de seguridad.

  • ¿Puedo hacer una copia de seguridad de solo una tabla en lugar de una base de datos completa?

    Sí. Use pg_dump --table TABLENAME para exportar una tabla específica. Si existen tablas con el mismo nombre a través de esquemas, use --schema para especificar la correcta.

  • ¿Debería preocuparme por las tablas relacionadas al hacer una copia de seguridad de una sola tabla?

    Absolutamente. PostgreSQL es relacional, por lo que otras tablas podrían referenciar la que estás respaldando. Si restauras solo una tabla sin las relacionadas, podrías romper la integridad referencial.

  • ¿Cómo hago una copia de seguridad de una base de datos completa?

    Ejecuta un comando como:

    pg_dump -U <user> <database> -f <output.sql>

    Esto exporta todas las tablas, definiciones de esquema, índices y datos de esa base de datos.

  • ¿Qué hace pg_dumpall?

    pg_dumpall respalda todas las bases de datos en el servidor en un solo archivo SQL. Es útil cuando se migra o se toma una instantánea de una instancia completa de Postgres.

  • ¿Puedo restaurar una tabla en una base de datos existente?

    Sí. Use psql -U <user> -f <file.sql> <database>.

    Pero asegúrese de que la tabla no exista ya, de lo contrario, obtendrá errores de "ya existe" durante la restauración.

  • ¿Qué ocurre durante una restauración completa de la base de datos?

    El archivo de restauración se ejecuta:

    • CREATE TABLE

    • ALTER TABLE

    • COPY (para los datos de la tabla)
      devolviendo la base de datos a su estado exacto en el momento del volcado.

  • ¿Puedo restaurar en un servidor diferente al que hice la copia de seguridad?

    Sí. Los dumps son portátiles. Puedes hacer una copia de seguridad local y restaurarla en una instancia remota de Postgres, siempre que las versiones sean compatibles.

  • ¿Afecta pg_dump a la base de datos en funcionamiento?

    No. Funciona a través de consultas SQL y no bloquea toda la base de datos. Captura de manera segura una instantánea consistente.

  • ¿Cómo restauro todas las bases de datos desde un archivo pg_dumpall?

    Uso:

    psql -U <user> -f all_dump.sql

    Esto recrea cada base de datos encontrada en el volcado.

Primero, un descargo de responsabilidad. Esta publicación ofrece una guía general sobre cómo realizar una copia de seguridad de una tabla de Postgres Database. Los ejemplos proporcionados no se refieren a ninguna tabla o base de datos específica. Si estás intentando hacer una copia de seguridad de una tabla específica, también deberías respaldar las tablas que se refieren a las tablas originales. Como Postgres es una base de datos relacional, siempre habrá referencias entre varias tablas.

Este es un documento sobre 'cómo hacerlo' que solo proporciona comandos de ejemplo, cómo se hace realmente depende únicamente de la persona que lo haga y de los casos de uso específicos. Siempre mantén la integridad de los datos que estás intentando respaldar. Realizar una copia de seguridad de toda la base de datos siempre es una opción segura, pero al respaldar tablas específicas se debe tener cuidado.

Primero, un descargo de responsabilidad. Esta publicación ofrece una guía general sobre cómo realizar una copia de seguridad de una tabla de Postgres Database. Los ejemplos proporcionados no se refieren a ninguna tabla o base de datos específica. Si estás intentando hacer una copia de seguridad de una tabla específica, también deberías respaldar las tablas que se refieren a las tablas originales. Como Postgres es una base de datos relacional, siempre habrá referencias entre varias tablas.

Este es un documento sobre 'cómo hacerlo' que solo proporciona comandos de ejemplo, cómo se hace realmente depende únicamente de la persona que lo haga y de los casos de uso específicos. Siempre mantén la integridad de los datos que estás intentando respaldar. Realizar una copia de seguridad de toda la base de datos siempre es una opción segura, pero al respaldar tablas específicas se debe tener cuidado.

Primero, un descargo de responsabilidad. Esta publicación ofrece una guía general sobre cómo realizar una copia de seguridad de una tabla de Postgres Database. Los ejemplos proporcionados no se refieren a ninguna tabla o base de datos específica. Si estás intentando hacer una copia de seguridad de una tabla específica, también deberías respaldar las tablas que se refieren a las tablas originales. Como Postgres es una base de datos relacional, siempre habrá referencias entre varias tablas.

Este es un documento sobre 'cómo hacerlo' que solo proporciona comandos de ejemplo, cómo se hace realmente depende únicamente de la persona que lo haga y de los casos de uso específicos. Siempre mantén la integridad de los datos que estás intentando respaldar. Realizar una copia de seguridad de toda la base de datos siempre es una opción segura, pero al respaldar tablas específicas se debe tener cuidado.

SQL-dump/pg_dump:

La idea detrás del método SQL-dump es generar un archivo de texto con comandos SQL que, cuando se devuelvan al servidor, recrearán la base de datos en el mismo estado en que estaba en el momento del volcado. PostgreSQL proporciona el programa utilitario pg_dump para este propósito.

pg_dump es una herramienta efectiva y completa para realizar copias de seguridad de bases de datos Postgres y usar esas copias para restaurar la base de datos postgres. Sin embargo, no está restringido solo a la Base de Datos. Podemos usar pg_dump para respaldar tablas y luego usar eso para restaurar tablas individuales también. Usando pg_dump puedes respaldar la base de datos local y restaurarla en una base de datos remota.

La idea detrás del método SQL-dump es generar un archivo de texto con comandos SQL que, cuando se devuelvan al servidor, recrearán la base de datos en el mismo estado en que estaba en el momento del volcado. PostgreSQL proporciona el programa utilitario pg_dump para este propósito.

pg_dump es una herramienta efectiva y completa para realizar copias de seguridad de bases de datos Postgres y usar esas copias para restaurar la base de datos postgres. Sin embargo, no está restringido solo a la Base de Datos. Podemos usar pg_dump para respaldar tablas y luego usar eso para restaurar tablas individuales también. Usando pg_dump puedes respaldar la base de datos local y restaurarla en una base de datos remota.

La idea detrás del método SQL-dump es generar un archivo de texto con comandos SQL que, cuando se devuelvan al servidor, recrearán la base de datos en el mismo estado en que estaba en el momento del volcado. PostgreSQL proporciona el programa utilitario pg_dump para este propósito.

pg_dump es una herramienta efectiva y completa para realizar copias de seguridad de bases de datos Postgres y usar esas copias para restaurar la base de datos postgres. Sin embargo, no está restringido solo a la Base de Datos. Podemos usar pg_dump para respaldar tablas y luego usar eso para restaurar tablas individuales también. Usando pg_dump puedes respaldar la base de datos local y restaurarla en una base de datos remota.

Cómo hacer una copia de seguridad de la base de datos Postgres:

Respaldo de una Tabla Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

El comando anterior es un ejemplo de cómo respaldar una tabla específica de una base de datos Postgres. Usando el comando anterior estamos respaldando la tabla 'orgs' en el esquema 'maincontrol'  de la base de datos 'pe' al archivo ms_table.sql. Para respaldar una tabla específica, use la opción –table TABLENAME en el comando pg_dump. Si hay tablas con los mismos nombres en diferentes esquemas, use la opción –schema SCHEMANAME.

  1. Respaldo de una base de datos Postgres específica:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este es un ejemplo de cómo respaldar una base de datos Postgres específica. Usando el comando anterior estamos respaldando la base de datos para Message Central 'pe' al archivo pe_dump.sql. El archivo de respaldo contiene los comandos create table, alter table y copy para todas las tablas en la base de datos 'pe'.

  2. Respaldo de todas las Bases de Datos Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Puede respaldar todas las bases de datos usando el comando pg_dumpall. El comando anterior creará un volcado de todas las bases de datos que residen en la instancia de Postgres que se ejecuta en un servidor determinado. Para listar todas las bases de datos que han sido respaldadas, use el comando grep “^[\]connect” all.sql.

Respaldo de una Tabla Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

El comando anterior es un ejemplo de cómo respaldar una tabla específica de una base de datos Postgres. Usando el comando anterior estamos respaldando la tabla 'orgs' en el esquema 'maincontrol'  de la base de datos 'pe' al archivo ms_table.sql. Para respaldar una tabla específica, use la opción –table TABLENAME en el comando pg_dump. Si hay tablas con los mismos nombres en diferentes esquemas, use la opción –schema SCHEMANAME.

  1. Respaldo de una base de datos Postgres específica:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este es un ejemplo de cómo respaldar una base de datos Postgres específica. Usando el comando anterior estamos respaldando la base de datos para Message Central 'pe' al archivo pe_dump.sql. El archivo de respaldo contiene los comandos create table, alter table y copy para todas las tablas en la base de datos 'pe'.

  2. Respaldo de todas las Bases de Datos Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Puede respaldar todas las bases de datos usando el comando pg_dumpall. El comando anterior creará un volcado de todas las bases de datos que residen en la instancia de Postgres que se ejecuta en un servidor determinado. Para listar todas las bases de datos que han sido respaldadas, use el comando grep “^[\]connect” all.sql.

Respaldo de una Tabla Postgres:

$ /opt/msys/3rdParty/bin/pg_dump–table maincontrol.orgs -U ecuser pe -f ms_table.sql

El comando anterior es un ejemplo de cómo respaldar una tabla específica de una base de datos Postgres. Usando el comando anterior estamos respaldando la tabla 'orgs' en el esquema 'maincontrol'  de la base de datos 'pe' al archivo ms_table.sql. Para respaldar una tabla específica, use la opción –table TABLENAME en el comando pg_dump. Si hay tablas con los mismos nombres en diferentes esquemas, use la opción –schema SCHEMANAME.

  1. Respaldo de una base de datos Postgres específica:

    $ /opt/msys/3rdParty/bin/pg_dump -U ecuser pe -f pe_dump.sql

    Este es un ejemplo de cómo respaldar una base de datos Postgres específica. Usando el comando anterior estamos respaldando la base de datos para Message Central 'pe' al archivo pe_dump.sql. El archivo de respaldo contiene los comandos create table, alter table y copy para todas las tablas en la base de datos 'pe'.

  2. Respaldo de todas las Bases de Datos Postgres:

    $ /opt/msys/3rdParty/bin/pg_dumpall -U ecuser> all_dump.sql

    Puede respaldar todas las bases de datos usando el comando pg_dumpall. El comando anterior creará un volcado de todas las bases de datos que residen en la instancia de Postgres que se ejecuta en un servidor determinado. Para listar todas las bases de datos que han sido respaldadas, use el comando grep “^[\]connect” all.sql.

Cómo Restaurar la Base de Datos Postgres

  1. Restaurar una tabla Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    El comando anterior instalará la tabla que fue respaldada en el archivo ms_table.sql en la base de datos ‘pe’. Asegúrese de que esta tabla no exista ya, o verá una serie de errores de ‘ya existe’. Este comando crea la tabla y exporta todos los datos a la tabla recién creada.

  2. Restaurar una Base de Datos postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Similar a la restauración de la tabla, podemos usar el comando anterior para restaurar la base de datos completa. Aquí estamos restaurando la base de datos ‘pe’ usando el archivo pe_dump.sql que creamos mientras respaldábamos la base de datos en la sección de Backup anteriormente.

  3. Restaurar todas las Bases de Datos :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todas las bases de datos usando el comando anterior. ‘all_dump.sql’ fue el archivo que se creó usando pg_dumpall. El comando anterior nos dará todas las bases de datos Postgres en el estado exacto en el que estaban cuando se tomó un volcado del servidor de base de datos original.

  1. Restaurar una tabla Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    El comando anterior instalará la tabla que fue respaldada en el archivo ms_table.sql en la base de datos ‘pe’. Asegúrese de que esta tabla no exista ya, o verá una serie de errores de ‘ya existe’. Este comando crea la tabla y exporta todos los datos a la tabla recién creada.

  2. Restaurar una Base de Datos postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Similar a la restauración de la tabla, podemos usar el comando anterior para restaurar la base de datos completa. Aquí estamos restaurando la base de datos ‘pe’ usando el archivo pe_dump.sql que creamos mientras respaldábamos la base de datos en la sección de Backup anteriormente.

  3. Restaurar todas las Bases de Datos :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todas las bases de datos usando el comando anterior. ‘all_dump.sql’ fue el archivo que se creó usando pg_dumpall. El comando anterior nos dará todas las bases de datos Postgres en el estado exacto en el que estaban cuando se tomó un volcado del servidor de base de datos original.

  1. Restaurar una tabla Postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -f ms_table.sql pe

    El comando anterior instalará la tabla que fue respaldada en el archivo ms_table.sql en la base de datos ‘pe’. Asegúrese de que esta tabla no exista ya, o verá una serie de errores de ‘ya existe’. Este comando crea la tabla y exporta todos los datos a la tabla recién creada.

  2. Restaurar una Base de Datos postgres :

    $ /opt/msys/3rdParty/bin/psql -U ecuser -d pe -f pe_dump.sql

    Similar a la restauración de la tabla, podemos usar el comando anterior para restaurar la base de datos completa. Aquí estamos restaurando la base de datos ‘pe’ usando el archivo pe_dump.sql que creamos mientras respaldábamos la base de datos en la sección de Backup anteriormente.

  3. Restaurar todas las Bases de Datos :

    $ /opt/msys/3rdParty/bin/psql -u ecuser -f all_dump.sql

    Restaure todas las bases de datos usando el comando anterior. ‘all_dump.sql’ fue el archivo que se creó usando pg_dumpall. El comando anterior nos dará todas las bases de datos Postgres en el estado exacto en el que estaban cuando se tomó un volcado del servidor de base de datos original.

Otras noticias

Leer más de esta categoría

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird

A person is standing at a desk while typing on a laptop.

La plataforma completa AI-native que escala con tu negocio.

© 2025 Bird