Excerpts from Sergio Gabriel Rodriguez's message of jue sep 15 10:23:14 -0300 2011: > Hola lista, > > tengo un servidor donde periódicamente restauro diferentes bases de > datos para realizar pruebas, estas bases utilizan large objects, luego > de varias restauraciones los loid de la pg_largeobject se incrementan > y según tengo entendido los OID son de 4 bytes y llegado el limite > comienzan a duplicarse, que sucede en este caso, tengo que reiniciar > los OID con pg_resetxlog y restaurar de nuevo todas las bases? que > pasaría ante una situación similar en producción?
No pasa nada. Al crear un nuevo LO, el sistema te asignará el siguiente OID que no esté en uso en el catálogo de large objects. Por ej. si el contador va en 500 y está ocupado el 501 y el 502, automáticamente se hará el salto y te asignará el 503. No notarás la diferencia. Lo único crítico sería si ocuparas todo el espectro de OIDs desde 0 hasta 2^32-1, pero creo que los problemas de performance para cuando llegue ese momento serían peores ;-) (Nota: esta característica apareció en 8.2 o algo así. En versiones anteriores, tendrías que haber hecho un bucle en la aplicación hasta que obtuviera un OID válido, porque el sistema te habría mandado un error al tratar de insertar un OID duplicado). > tengo alguna forma de saber por consulta al catálogo cual es el > próximo OID a asignar? No, pero podrías saberlo con pg_controldata. -- Álvaro Herrera <alvhe...@alvh.no-ip.org> - 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