Copia de seguridad, restauración y carga de datos en PostgreSQL y MySQL
Escrito por
el .
planeta-codigo
programacion
Enlace permanente
Comentarios
Siempre es recomedable tener una copia de seguridad de algo tan importante como suelen ser los datos en una base de datos. Esa copia de seguridad sirve para en caso de desastre restaurar la mayor parte de los datos, también sirven para restaurarlos en otras máquinas diferentes a la principal. Tanto PostgreSQL como MySQL tienen comandos para hacer copias de seguridad y restaurarlas, también tiene opciones para cargar datos de forma masiva de forma rápida y más eficiente que con sentencias SQL.
Los datos contenidos en las bases de datos relacionales son de los más importante en una aplicación. Hacer copias de seguridad o volcados de forma regular es indispensable para poder restaurar los datos en caso de desastre en el servidor. Las bases de datos proporcionan herramientas para hacer estas copias de seguridad y restaurado tanto de los datos como del esquema de las bases de datos. Las copias de seguridad y restaurado también nos sirven para disponer en nuestro entorno de desarrollo de una base de datos con datos reales con los que probar la aplicación.
En la base de datos PosgreSQL disponemos de los comandos pg_dump para hacer la copia de seguridad o extraer el esquema y los datos y el comando pg_restore para cargarlos en un nuevo servidor u otro esquema. En MySQL disponemos de los comandos mysqldump y depende de como hagamos las copias de seguridad mysqlimport.
PostgreSQL
Los comandos básicos para hacer la copia de seguridad y restauración en PostgreSQL de una base de datos completa son lo siguientes:
|
|
PosgreSQL usando un formato de copia de seguridad personalizado con la opción -Fc permite restaurar posteriormente partes de la base de datos, por ejemplo, una tabla o un índice en concreto.
|
|
También es posible separar la definición y los datos de las copias de seguridad con las opciones –schema-only y –data-only.
|
|
Como las bases de datos pueden llegar a ser de varias decenas de GiB generar las copias de seguridad comprimidas que reducirán su tamaño notablemente. Los volcados con la opción -Fc ya está comprimidos con lo que esto solo es necesario si generamos volcados en archivos .sql.
|
|
MySQL
En MySQL los comandos de copia de seguridad y restauración son similares.
|
|
Con la opción –extended-insert la importación posterior del volcado será algo más rápida al incluir sentencias insert con múltiples datos de vez de un insert por cada fila.
|
|
También es posible separar los datos de la definición del esquema con las opciones –no-data y –no-create-info.
|
|
Para generar y restaurar copias de seguridad comprimidas se debe usar el comando gzip y gunzip.
|
|
Carga masiva de datos
Si se desean cargar datos de una fuente externa de forma masiva a una base de datos PostgreSQL o MySQL en vez de generar un archivo con varios cientos de miles las sentencias insert es mejor generar un archivo en formato csv o txt con algunos delimitadores y usar el comando COPY en PostgreSQL o el comando LOAD DATA en MySQL complemento de SELECT … INTO. Estos comandos están diseñados para cargar datos de forma masiva en la base de datos con lo que la importación será mucho más rápida.
En ambos casos las exportaciones e importaciones soportan archivos en formato texto y csv con la posibilidad de personalizar los caracteres separadores de las columnas y las columnas en las que importar los datos.
|
|
|
|