Maria Antonieta: 2017-03-23 0:35 GMT+01:00 Maria Antonieta Ramirez <marami...@ulsaneza.edu.mx>: > Me interesa la parte de como restaurar por partes, me pueden decir donde > puedo leer mas acerca de esto, para aprender a hacerlo porfavor.
Primero, tu uso del top posting, especialmente con un mensaje cualqueira como origen, hace casi imposible saber a que parte del hilo te refieres. En cuanto a localizacion de info, todo lo que te digo viene documentado en las paginas del pg_dump/pg_restore, que estan dentro de "postgresql client applications" en el manual. Dicho esto, yo recuerdo haber dicho algo de restaurar por partes. Me explico un poco mas. Cuando haces un backup (con pg_dump) de una instancia de postgres al restaurarla lo que haces es basicamente ejecutar un script SQL gigante. El pg_dump sin parametros, en formato texto, lo que hace es montarte directamente ese script. Las unicas ventajas que (IMO) tiene ese metodo es que se puede comprimir algo mas ( aunque yo jamas he encontrado un caso en el que mereciese la pena por eso ) y que puede contener en un solo archivo varias bases de datos y las definiciones globales ( usuarios y roles ) del servidor. Cuando yo tengo que hacer una migracion lo que hago es primero volcar en formato texto las variables globales ( pg_dumpall -g, como te indicaba Jaime ). Esto te da un script SQL pequeño que es facil de arreglar si tienes que cambiar algo aprovechando la migracion o arreglar algo por diferencias extremas de versiones. Tras ello vuelco cada base de datos en formato custom, pg_dump -Fc. Este formato es similar a un tar con elementos comprimidos en el interior, o a un zip, pero especifico para postgres. Este formato te hace lo mismo que el de texto, ya que un pg_restore sin mas de un dump te da el mismo script sql que un pg_dump a script. Pero el pg_restore puede hacer mas cosas. Una de ellas es conectar a la BD que le digas y mandar el sql alli sin pasar por disco, evidentemente. Otra es listarte lo que hay dentro del backup ( pg_restore -l ) que es lo que yo uso para restaurar por partes. Esa opcion te da un listado comentado de lo que hay dentro del arhivo en el orden en que lo va a procesar. Es como un script de control de restauracion. La cosa es que ese listado lo puedes mandar con la opcion -L de vuelta al pg_restore, lo que no es muy interesante. Pero tambien puedes editarlo, trozearlo, reordenarlo o borrar cachos y usarlos despues. Yo he usado eso, p.e., para resolver un problema de roles. El backup iba bien hasta que llegaba a una tabla que tenia un problema de encodings, si no recuerdo mal. Lo que hacia era partir la lista del -l en dos cachos, ejecutar el primero, pasar un pequeño trozo de sql que hice para arreglar las cosas y despues pasar el segundo. Tambien lo he usado para reordenar un par de tablas. Primero restauraba ese par de tablas en un server auxiliar y las reorganizaba y hacia un backup de esas dos. Luego editaba el listado para restaurar hasta esas tablas del original, en medio restauraba las tablas reorganizadas de la copia, y detras restauraba lo que venia detras de las tablas originales. Y otra cosa para lo que lo uso mucho es para las particiones. Nosotros tenemos mucho dato en tablas particionadas por fechas ( de insercion mas o menos ). Cuando restauro una de estas puedo editar el listado para restaurar las tablas maestras de las particiones y la particion actual, poner el sistema en servicio ( degradado por que no se puede consultar el historico, pero es util ) y despues voy restaurando las particiones de historico ( de hecho uno de los tipos de reorganizaciones que he hecho como te contaba arriba es particionar tablas que no lo estaban ). Basicamente lo de ir por partes es parecido a editar el archivo sql gigante, pero mas comodo cuando el volumen de datos es grande. Francisco Olarte. - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda