RE: Actualizar 8.0.1 a 8.0.3

From: "Dario" <dario_d_s(at)unitech(dot)com(dot)ar>
To: "Miguel" <mmiranda(at)123(dot)com(dot)sv>, "Mario Gonzalez" <gonzalemario(at)gmail(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Actualizar 8.0.1 a 8.0.3
Date: 2005-10-20 17:50:07
Message-ID: MHEDJHCKDNOEHJKHIOCJIENHCIAA.dario_d_s@unitech.com.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

No me expliqué bien.

lo dump y restore era lo mismo que "dump, initdb y reload" (load me vino de
otro motor). Tenés que hacer un dump, borrar todo el directorio (el initdb
lo hace) y restore. (por lo menos eso entendí). Si vas a hacer el dump,
hacete un dumpall con el parámetro para generar los script de creación de
usuarios.

también podías instalar la nueva versión y después modificar las tablas de
sistema de cada base como índica el link (abajo lo pegué y traduje) sin
necesidad de hacer el dump y restore.

Respecto a los cambios que hace el 8.0.3, algunos son de seguridad, o sea
que al funcionamiento no hace nada, por lo menos ese cambio específico de
acceso a las funciones de parte de usuarios no privilegiados (salvo que
hallas aprovechado ese error para hacer algo). Esa actualizacion de
seguridad... mmm... depende, si accedes a la base con un único usuario y la
seguridad la manejas desde la aplicación, tal vez no te mueva la aguja.

veloz traducción (se que dice 7.4.8, pero es el mismo procedimiento)
http://www.postgresql.org/docs/8.0/static/release-7-4-8.html

Si se prefiere no realizar un initdb, se debe realizar el siguiente
procedimiento alternativo.
Validándose como super usuario de la base de datos, se debe ejecutar:

BEGIN;
UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
WHERE pronamespace = 11 AND pronargs = 5
AND proargtypes[2] = 'cstring'::regtype;
-- El comando debería reportar 90 registros actualizados;
-- Si no coincide el resultado, se debe realizar un ROLLBACK e investigar la
causa en lugar de realizar un COMMIT.
COMMIT;

Seguidamente, si se tiene instalado contrib/tsearch2, ejecutar

BEGIN;
UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
WHERE oid IN (
'dex_init(text)'::regprocedure,
'snb_en_init(text)'::regprocedure,
'snb_ru_init(text)'::regprocedure,
'spell_init(text)'::regprocedure,
'syn_init(text)'::regprocedure
);
-- El comando debería reportar 5 registros actualizados;
-- Si no coincide el resultado, se debe realizar un ROLLBACK e investigar la
causa en lugar de realizar un COMMIT;

Si el este comando falla con un mensaje similar a "function "dex_init(text)"
does not exist", entonces o tsearch2 no está instalado en la base de datos
actual, o ya se había realizado el update.

Los procedimientos anteriores deben ser llevados a cabo en cada base de
datos de la instalación, incluyendo template1, e, idealmente, template0 . Si
no se corrigen las base de datos 'template', cualquier base creada (basada
en estos templates) contendrían los mismos errores. La base template1 puede
ser corregida de la misma manera que cualquira de las otras bases de datos,
pero para corregir la base template0 se debe ejecutar (desde cualquier base
de datos).

UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';

A continuación, conectarse a la template0 y realizar los procedimientos de
correción antes mencionados. Para finalizar:
-- re-freeze template0:
VACUUM FREEZE;
-- y protegerla contra posibles alteraciones:
UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';

y se fini

-----Mensaje original-----
De: pgsql-es-ayuda-owner(at)postgresql(dot)org
[mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org]En nombre de Miguel
Enviado el: jueves, 20 de octubre de 2005 11:57
Para: Mario Gonzalez
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Actualizar 8.0.1 a 8.0.3

On 19/10/05, dario_d_s(at)unitech(dot)com(dot)ar <dario_d_s(at)unitech(dot)com(dot)ar> wrote:

>>Estimado:
>> Usualmente cuando se actualiza la sub sub versión (de 8.0._1_ a
8.0._3_) no debe hacerse mucho más (no uso gentoo, lo hice con rpms y
funciona lo más bien). Pero en este caso en particular de la actualizaciòn
8.0.3, sería necesario que hagas un dump y restore para poder aplicar
correctamente la versiòn (lo dijo Tom en la lista en inglés). Buscá el
change log de la versión 8.0.3. Si no lo hacés, tenés que arreglarlo a mano.
http://www.postgresql.org/docs/8.0/static/release-8-0-3.html para màs datos.
>> Como tenés que parar el motor, a lo mejor podés hacer un backup en frio
antes del update de versión. Con eso si llega a pasar algo volvés para atras
cualquier cambio.
>>
Gracias por tus sugerencias, no habia encontrado ese link antes, por lo
que lei ahi me pone un poco nervioso el procedimiento
dump/initdb/reload, es mas, no entiendo exactamente que es lo que
deberia hacer, tomare tu sugerencia del backup en frio y probare con el
tradicional dump/restore

Mario Gonzalez wrote:

>>No he visto aun las diferencias entre la 8.0_1 y la 8.0_3 y
>>quizas no sean muchas. De manera de que si tu estas bien con la base
>>de datos actual y no necesitas otras funcionallidades, bueno, yo me
>>quedaria con la primera y no realizaria el update.
>>
Tambien me parece acertada tu sugerencia, yo pensaba actualizar porque
esa es la version que viene con el ultimo Gentoo, en estricto rigor con
la base de datos actual estoy tranquilo, pero aprovechando si se puede
mejor estoy con la ultima version, por si acaso algun bug no descubierto
todavia en las versiones anteriores.
Saludos

---------------------------(fin del mensaje)---------------------------
TIP 4: No hagas 'kill -9' a postmaster

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2005-10-20 18:15:30 RE: Migracion de SQL Server 2000 a PostgreSQL
Previous Message Julio Misael Gutierrez 2005-10-20 16:29:23 Re: Migracion de SQL Server 2000 a PostgreSQL