Excerpts from Hellmuth Vargas's message of jue dic 01 00:22:25 -0300 2011: > buenas noches lista > > resulta que tengo una serie de cluster de postgres que queremos unificar en > un unico cluster. Todos los cluster tiene una base de datos con nombres de > schemas diferentes entre si por lo tanto en principio podria crearse una > unica base donde podrian convivir todos los schemas y no deberia tene > problema, generamos tanto un dump como archivo de sentencia SQL, empezamos > a restaurar los archivos y en principio no molesta con el primero y > segundo pero con el tercero y cuarto al momento que va a restaurar los lob > genera el siguiente error: > > > pg_restore: *** aborted because of error > pg_restore: [archiver] could not create large object 21709: ERROR: > duplicate key value violates unique constraint > "pg_largeobject_metadata_oid_index"DETAIL: Key (oid)=(21709) already > exists.pg_restore: *** aborted because of error > segun creo es un problema del diccionario de datos al registrar los > lob...Que puedo hacer? les agradezco sus comentarios y tiempo > buenas noches lista
¿Resolviste este problema? Que yo sepa, pg_dump/pg_restore no tiene ningún mecanismo para modificar los OIDs de large objects. Sería complicado de todas formas. Creo que lo único que te podría sugerir sería cambiar las referencias en las bases de datos de origen, de manera que te asegures que los conjuntos de OIDs en cada servidor sean todos disjuntos. Luego haces nuevamente el dump en cada uno y así los restore deberían funcionar. Hacer esos cambios no debe ser trivial; para no tener que hacer UPDATEs masivos de las referencias a los LOs, supongo que lo que yo haría sería ponerlos todos en una tabla en un solo servidor (lo oid, int servidor) y luego buscar los que tienen conflictos, y a partir de eso construir UPDATEs que cambien las referencias y hacer un lo_copy() o algo así para crear un nuevo objeto con el nuevo OID; algo así: http://archives.postgresql.org/pgsql-general/2003-04/msg00018.php suerte -- Álvaro Herrera <[email protected]> - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
