Mover BD Postgres en openSUSE
Después de pelearme con la mucha información que hay en Internet, pero poco fiable y algo escasa para openSUSE, he conseguido hacerlo y que funcione, la última vez en relativamente poco tiempo. openSUSE tiene un buen instalador que nos deja el sistema funcionando con unos pocos clicks, pero a cambio cuesta saber donde esconde la información en la que se basa para hacer las cosas y poder modificarlas. La mayoría de las instrucciones que he encontrado para cambiar de sitio la base de datos no me funcionaron. Mezclando unas cosas con otras conseguí hacer lo que quería y encontrar un método rápido para el cambio. Planteamiento inicial: la partición que tengo para el sistema raíz está bastante ajustada y suelo utilizar otras particiones o discos mas generosas de espacio y más independientes en caso de fallos. La localización inicial (por defecto) de las bases de datos de postgres en openSUSE es "/var/lib/pgsql/data/". Este directorio es el directorio "home" para el usuario "postgres".
- Lo que hago es crear un directorio en la partición que me interese, por ejemplo "/srv/datos/postgreshome/" que está dentro de un disco con espacio suficiente montado en "/srv/datos/"
- Detengo el servicio postgresql : "sudo service postgresql stop"
- Inicio yast -> seguridad y usuarios -> Gestión de usuarios y grupos. En "Definir filtro" seleccionamos Usuarios del sistema y buscamos postgres -> editar -> pestaña detalles -> Directorio personal: "/srv/datos/postgreshome/". Aceptamos y salimos.
- A continuación en consola asignamos propietario al direcotrio "sudo chmod postgres:postgres /srv/datos/postgreshome/"
- Editamos bash.bashrc: "sudo nano /etc/bash.bashrc"
Añadimos las siguientes líneas
- #----------------------------------------------------------------------------
# añadido por simo
PGDATA=/srv/datos/postgreshome/data
PGLIB=/srv/datos/postgreshome/
export PGLIB PGDATA
#----------------------------------------------------------------------------
#
# End of /etc/bash.bashrc
- #----------------------------------------------------------------------------
- Nos logueamos como postgres: "sudo su - postgres"
- Configuramos el servicio: "initdb"
- Si ya teniamos creadas bases de datos o previamente configurado el servicio copiamos el contenido del antiguo directorio:
- exit
- sudo cp -af /var/lib/pgsql/data /srv/datos/postgreshome/
- Arrancamos el servicio: sudo service postgresql start
A funcionar.