La Página de Códigos o Juego de Caracteres (Encoding) representa el juego de caracteres que se consideran válidos y cómo se almacenan (su representación binaria), lo cual a su vez depende de cada idioma, y por ello en la mayoría de los casos se acaban utilizando juegos de caracteres UNICODE para permitir almacenar texto en diferentes idiomas, pagando el precio de un mayor espacio de almacenamiento (dos, tres, y hasta cuatro bytes por carácter). La Intercalación (Collation o Collate) representa las reglas a seguir en las comparaciones, ordenaciones y agrupaciones.
Durante la creación de nuestra Instancia de PosgreSQL, al utilizar el comando initdb, podemos especificar estos valores, una tarea importante ya que una vez se ha creado la Instancia de PostgreSQL no se va a poder cambiar, lo que implica que tendríamos que volver a crear de nuevo la Instancia (re-work).
Si nos encontramos con una Instancia de PostgreSQL con unos valores de Página de Códigos y/o Intercalación incorrectos que deseamos cambiar, deberemos hacer un Backup Lógico (pg_dump), reconstruir nuestra Instancia de PostgreSQL con las opciones correctas (initdb), y recuperar los Backup Lógicos realizados (ej: pg_restore).
A continuación se muestra una secuencia de comandos de ejemplo, con un sentido principalmente didáctico:
su - postgres
pg_dumpall -v > dumpall.dump
service postgresql-9.2 stop
mv /opt/PostgresqlData/data /opt/PostgresqlData/dataold
/usr/pgsql-9.2/bin/initdb -D /opt/PostgresqlData/data --locale es_ES.UTF-8
service postgresql-9.2 start
psql -f dumpall.dump
service postgresql-9.2 stop
mv /opt/PostgresqlData/data/pg_hba.conf /opt/PostgresqlData/data/pg_hba.conf.original
mv /opt/PostgresqlData/data/postgresql.conf /opt/PostgresqlData/data/postgresql.conf.original
cp /opt/PostgresqlData/dataold/pg_hba.conf /opt/PostgresqlData/data
cp /opt/PostgresqlData/dataold/postgresql.conf /opt/PostgresqlData/data
service postgresql-9.2 start |
Poco más por hoy. Como siempre, confío que la lectura sea de interés.
|