Procedimiento de actualización de PostgreSQL 9.1 a PostgreSQL 9.2 para ALDOS 1.4.

Por motivos de seguridad y sentido común, PostgreSQL se actualizará desde la versión 9.1 que incluía ALDOS 1.4 hacia la versión 9.2. Para ser sinceros el procedimiento correspondiente es un poco complejo, pero familiar para usuarios promedio de PostgreSQL. Si eres usuario de ALDOS y jamás has utilizado Postgres, puedes omitir el procedimiento a continuación. Si eres usuario de ALDOS y utilizas Postgresql, es Indispensable realizar todo lo siguiente al pie de la letra.

  1. Cambie a root:
    su -l
  2. Respalde todas las bases de datos:
    pg_dumpall -Upostgres -W > ~/respaldo_todo.sql
  3. Detenga Apache y otras aplicaciones o servicios que utilicen PostgreSQL.
  4. Detenga el servicio postgresql:
    service postgresql stop
  5. Respalde el direcotrio de datos actual:
    tar Jcf ~/respaldo-datos-pgsql-9.1.tar.xz /var/lib/pgsql/data
  6. Mueva el directorio de datos de PostgreSQL 9.1 a otra ruta:
    mv /var/lib/pgsql/data /var/lib/pgsql/data-9.1
  7. Actualice paquetes de ALDOS 1.4:
    yum -y update postgresql-*
  8. Instale el paquete postgresql-upgrade:
    yum -y install postgresql-upgrade
  9. Se requiere un directorio de datos nuevo y limpio, sin bases de datos, roles ni usuarios. Genere éste ejecutando lo siguiente:
    service postgresql initdb
  10. Cambie al usuario postgres:
    su -l postgres
  11. Configure de nuevo los archivos /var/lib/pgsql/data/pg_hba.conf y /var/lib/pgsql/data/postgresql.conf de acuerdo a lo que tengan /var/lib/pgsql/data-9.1/pg_hba.conf y /var/lib/pgsql/data-9.1/postgresql.conf. Utilice diff para determinar qué cambios hay que realizar. Ejemplo:
    diff /var/lib/pgsql/data-9.1/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf
    diff /var/lib/pgsql/data-9.1/postgresql.conf /var/lib/pgsql/data/postgresql.conf
    Por lo general sólo es necesario modificar el nuevo archivo /var/lib/pgsql/data/pg_hba.conf para definir password como el método de autenticación.
  12. Edite los archivos /var/lib/pgsql/data-9.1/pg_hba.conf y /var/lib/pgsql/data/pg_hba.conf:
    vi /var/lib/pgsql/data-9.1/pg_hba.conf
    vi /var/lib/pgsql/data/pg_hba.conf
  13. Mientras se hace la actualización, cambie el método para local a trust en ambos archivos:
    local     all      all        trust
  14. Salga del editor de texto.
  15. Ejecute pg_upgrade del siguiente modo:
    pg_upgrade -d /var/lib/pgsql/data-9.1 -D /var/lib/pgsql/data -b /usr/lib64/pgsql/postgresql-9.1/bin -B /usr/bin
  16. La salida debe ser similar a la siguiente:
    Performing Consistency Checks
    -----------------------------
    Checking current, bin, and data directories                 ok
    Checking cluster versions                                   ok
    Checking database user is a superuser                       ok
    Checking for prepared transactions                          ok
    Checking for reg* system oid user data types                ok
    Checking for contrib/isn with bigint-passing mismatch       ok
    Creating catalog dump                                       ok
    Checking for presence of required libraries                 ok
    Checking database user is a superuser                       ok
    Checking for prepared transactions                          ok

    | If pg_upgrade fails after this point, you must
    | re-initdb the new cluster before continuing.
    | You will also need to remove the ".old" suffix
    | from /var/lib/pgsql/data-9.0/global/pg_control.old.

    Performing Upgrade
    ------------------
    Adding ".old" suffix to old global/pg_control               ok
    Analyzing all rows in the new cluster                       ok
    Freezing all rows on the new cluster                        ok
    Deleting new commit clogs                                   ok
    Copying old commit clogs to new server                      ok
    Setting next transaction id for new cluster                 ok
    Resetting WAL archives                                      ok
    Setting frozenxid counters in new cluster                   ok
    Creating databases in the new cluster                       ok
    Adding support functions to new cluster                     ok
    Restoring database schema to new cluster                    ok
    Removing support functions from new cluster                 ok
    Restoring user relation files
                                                                ok
    Setting next oid for new cluster                            ok
    Creating script to delete old cluster                       ok

    Upgrade complete
    ----------------
    | Optimizer statistics are not transferred by pg_upgrade
    | so consider running:
    | vacuumdb --all --analyze-only
    | on the newly-upgraded cluster.

    | Running this script will delete the old cluster's data files:
    |    /var/lib/pgsql/delete_old_cluster.sh
  17. Si lo anterior tuvo éxito, edite el archivo /var/lib/pgsql/data/pg_hba.conf:
    vi /var/lib/pgsql/data/pg_hba.conf
  18. Cambie de vuelta el método para local de trust a password:
    local     all      all        password
  19. Regrese como root:
    exit
  20. Inicie de nuevo el servicio:
    service postgresql start
  21. Ingrese al intérprete de PosdgreSQL (psql) para establecer conexión con el servidor de bases de datos y para validar las credenciales de acceso del usuario postgres. Ejecute lo siguiente:
    psql -Upostgres -W
  22. Verifique que todas las bases de datos, roles y usuarios están presentes.
  23. Salga del intérprete de PostgreSQL.
  24. Elimine el directorio de datos de PostgreSQL 9.1:
    sh /var/lib/pgsql/delete_old_cluster.sh
  25. Cambie de nuevo al usuario postgres:
    su -l postgres
  26. El procedimiento con pg_upgrade omite actualizar las estadísticas del optimizador. Ejecute lo siguiente para realizar dicho procedimiento:
    vacuumdb --all --analyze-only
  27. Cierre la sesión del usuario postgres al terminar el procedimiento:
    exit
  28. Inicie de nuevo Apache y otras aplicaciones o servicios que utilizan PostgreSQL.
  29. ¡Felicidades! Usted ha actualizado exitosamente a PostgreSQL 9.2.

Comentarios (0)


Alcance Libre
http://www.alcancelibre.org/article.php/actualizacion-postgres-9-2-aldos-1-4