Eligiendo que restaurar en Postgresql
marcelo publicó esto el 22/01/10 en Bases de Datos. Un comentarioCuando se trabajan con grandes volúmenes de datos restaurar suele ser un trabajo que demanda muchas horas,para resolver esto Postgresql creo una manera sencilla de editar los dumps que lo veremos en este Post.
Como en todo proceso de backup lo primero que existe es el dump de la base, por ejemplo:
#pg_dump -U postgres -Fc -f archivo_dump.txt baseDonde el archivo_dump.txt es el resultante del proceso.
Ahora bien si ese archivo (archivo_dump.txt) contiene tablas de unos miles de registros no hay problema,pero la cosa se complica cuando trabajamos con tablas de millones de registros y a su vez índices asociados a estas;es un hecho que demandara un tiempo importante de restauración. En mi caso en particular con tablas de miles de millones de registros el tiempo aproximado de restauración es de 18 a 24 horas.
Ahora bien como resuelvo que restaurar y que no del archivo: archivo_dump.txt, veamos el siguiente ejemplo. Primero creo un archivo legible para la raza humana de la siguiente manera:
#pg_restore -l archivo_dump.txt > archivo.listaEl resultado del archivo.lista sera algo como lo siguiente:
; Archive created at Fri Jan 22 22:28:36 2010 ; dbname: ipcorp ; TOC Entries: 74 ; Compression: 0 ; Dump Version: 1.4-0 ; Format: CUSTOM ; ; ; Selected TOC Entries: ; 2; 145344 TABLE species postgres 3; 145344 ACL species 4; 145359 TABLE nt_header postgres 5; 145359 ACL nt_header 6; 145402 TABLE species_records postgres 7; 145402 ACL species_records 8; 145416 TABLE ss_old postgres
Las primeras lineas son una serie de referencias acerca del nombre de la base de datos, fecha del dump, mas abajo encontramos números de linea asociados a tablas, funciones e índices; esto ultimo puede ser comentado mediante “;” o también se puede eliminarlos directamente.
Entonces una vez que tenemos nuestro archivo de lista modificado con los elementos que realmente nos interesa, restauramos de la siguiente manera:
# pg_restore -Fc -d base -L archivo.lista < file_dump.txt
[...] http://www.ipcorp.com.ar/blog/?p=589 AKPC_IDS += "3240,"; [...]