Migrar Cluster PostgreSQL de un Server a otro Server

En esta entrada describimos paso a paso cómo debemos realizar una migración de data, usuario, esquemas, etc. de una base de datos de un servidor a otro. La migración se realiza en   servidores Debian Lenny, con PostgreSQL 8.3.10.

Las características de la migración son para una DB con codificación LATIN1 si es UTF-8 solo deben obviar la conversión de codificación que se realiza.

Esquema del cluster a migrar.

List of databases
Name                 |  Owner   | Encoding
——————–+———-+———–
db2                            | postgres | LATIN1
postgres                   | postgres | SQL_ASCII
db3                            | postgres | LATIN1
db1                            | postgres | LATIN1
template0                | postgres | SQL_ASCII
template1                 | postgres | SQL_ASCII
test                            | postgres | SQL_ASCII
(8 rows)

Con el usuario postgres copiamos todas las Bases de Datos:
$ pg_dump -f db1.sql -C db1
$ pg_dump -f db2.sql -C db2
$ pg_dump -f db3.sql -C db3
$ pg_dump -f test.sql -C test

Copiamos los usuarios del cluster:
$ pg_dumpall -g > ucluster.sql

Nuevo servidor.

Creamos el cluster:

$ initdb –pgdata=$PGDATA –locale=C –encoding=SQL_ASCII

Otras locales pueden ser según nuestro server:
–locale=es_CO.UTF-8 | es_ES
–locale=C -> ingles

Arrancamos postgreSQL:

$ pg_ctl -D $PGDATA -l $PGLOG start

Ingresamos al CLI de postgreSQL:

$ psql
Welcome to psql 8.3.10, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

Listamos las bases de datos que existen en el nuevo cluster:
postgres=# \l
List of databases
Name       |  Owner   | Encoding
———–+———-+———–
postgres    | postgres | SQL_ASCII
template0 | postgres | SQL_ASCII
template1  | postgres | SQL_ASCII
(3 rows)

Podemos modificar la contraseña del usuario postgres si éste es el caso:
postgres=# ALTER USER postgres with PASSWORD ‘postgres’;
ALTER ROLE

Creamos las bases de datos en el nuevo cluster:
postgres=# CREATE DATABASE db2 with owner=postgres encoding=’UTF8′;
CREATE DATABASE
postgres=# CREATE DATABASE db1 with owner=postgres encoding=’UTF8′;
CREATE DATABASE
postgres=# CREATE DATABASE db3 with owner=postgres encoding=’UTF8′;
CREATE DATABASE
postgres=# CREATE DATABASE test with owner=postgres encoding=’SQL_ASCII’;
CREATE DATABASE
postgres=# \l
List of databases
Name       |  Owner   | Encoding
———–+———-+———–
db2             | postgres | UTF8
postgres    | postgres | SQL_ASCII
db3             | postgres | UTF8
db1             | postgres | UTF8
template0 | postgres | SQL_ASCII
template1  | postgres | SQL_ASCII
test             | postgres | SQL_ASCII
(7 rows)

Cambiamos la codificación de nuestras bases de datos a LATIN1:
postgres=# UPDATE pg_database SET encoding=8 where datname=’db1′;
UPDATE 1
postgres=# UPDATE pg_database SET encoding=8 where datname=’db2′;
UPDATE 1
postgres=# UPDATE pg_database SET encoding=8 where datname=’db3′;
UPDATE 1
postgres=# \l
List of databases
Name       |  Owner   | Encoding
———–+———-+———–
db2             | postgres | LATIN1
postgres    | postgres | SQL_ASCII
db3             | postgres | LATIN1
db1             | postgres | LATIN1
template0 | postgres | SQL_ASCII
template1  | postgres | SQL_ASCII
test             | postgres | SQL_ASCII
(7 rows)

postgres=# \q

Copiamos la data a las nuevas bases de datos:

$ psql test < test.sql
$ psql db2 < db2.sql
$ psql db3 < db3.sql
$ psql db1 < db1.sql

Espero que les sea de mucha ayuda.

Saludos,

Jolth

Anuncios

Un pensamiento en “Migrar Cluster PostgreSQL de un Server a otro Server

  1. Pingback: Migrar Cluster PostgreSQL de un Server a otro Server « DbRunas – Noticias y Recursos sobre Bases de Datos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s