Un servidor de base de datos dentro dun sistema Linux instala por defecto o directorio onde se atopa a información dentro de /var/lib/postgresql/XX, sendo XX a versión de PostgreSQL correspondente. O problema deste método é que hai que ter a precaución de xerar as copias de seguridade con regularidade, ou de mover o directorio de traballo manualmente a outro que máis conveña. O método aquí proposto é unha alternativa á opción por defecto do noso sistema Linux local. Esta opción ten en conta a vantaxe que hoxe en día ten o baixo custo do espazo nun disco duro na rede. A idea é montar unha máquina virtual co único propósito de que sexa a nosa base de datos en PostgreSQL e que se poida copiar na rede como se dun arquivo se tratara, sendo moito máis doado a formación de copias de seguridade.
Instalación dunha máquina virtual
O primeiro paso e montar unha máquina virtual dentro de VirtualBox. Neste caso empregaremos Linux Debian na súa versión estable actual Buster. A configuración básica do sistema será a que se colla por defecto ao iniciar o proceso, excepto no caso do disco duro. Neste caso modificaremos o tamaño do disco duro para a máquina virtual tendo en conta o uso que se lle dará ao mesmo. O tipo de disco duro que se empregará será o VHD, dado que este permite que se poida montar dentro do noso sistema Linux local sen moita dificultade.
A instalación do sistema Debian será o máis básico que haxa, así que cando nos pregunte no «tasksel» as opcións que queremos instalar, descomentámolas todas excepto as de «Sistema estandard»
Unha vez rematado o proceso e xerados os usuarios que nos estimemos oportuno, debemos instalar os paquetes necesarios para a nosa máquina SQL. Executamos:
apt-get update apt-get install postgresql postgresql-contrib postgresql-client postgresql-doc
Unha vez rematado o proceso temos a nosa máquina virtual co sistema PostgreSQL instalada
Configuración
Agora debemos configurar o noso sistema virtualbox/debian para que se poida acceder dende o noso sistema local. Para elo, dentro do sistema como ROOT, executamos:
su postgres
psql
Agora estamos dentro do sistema PostgreSQL. Xeramos un usuario e unha base de datos:
CREATE USER usuario WITH PASSWORD 'contrasinal';
CREATE DATABASE virtualbox OWNER usuario;
Xeraremos tantas bases de datos como consideremos oportunas para os usuarios que desexemos. Agora modificamos os seguintes arquivos:
pg_hba.conf: Engadimos as seguintes liñas
host all all 0.0.0.0/0 md5
host all all ::/0 md5
Deste xeito calquera consulta que fagamos ao servidor, pero como neste caso é dentro da nosa rede local, os riscos non son elevados. Se queremos aumentar o grao de seguridade, debemos indicar as direccións IP completas.
postgresql.conf: Engadimos a seguinte liña
listen_addresses = '*'
Igual que no caso anterior, se queremos incrementar a nosa seguridade, debemos indicar as direccións IP completas
Unha vez rematado isto, dende o noso sistema local Linux, podemos facer unha consulta á base de datos que temos montada en virtualbox. Dita máquina virtual podemos configurala para que arranque automáticamente cada vez que arrancamos o sistema, sen necesidade de facelo á man. Isto nun próximo artigo.
Opcións adicionais
Para un mellor traballo coa nosa máquina virtual pode ser necesario instalar un par de paquetes a maiores dentro do sistema PostgreSQL/Linux en virtualbox.
Conectarse dende o servidor local vía ssh e poder comunicarnos co sistema instalado en virtualbox:
apt-get install openssh-server
Ter máis ferramentas de análise en configuración dentro de virtualbox, como pode ser ifconfig que nos permite ver cal é a IP da nosa máquina virtual e outras cousas máis:
apt-get install net-tools
Tamén podemos activar o noso usuario como administrador da base de datos. Para ilo só debemos cambiarlle os privilexios mediante:
ALTER USER usuario WITH SUPERUSER;
Activar PostGIS na base de datos
PostGIS é unha extensión para as bases de datos relacionais PostgreSQL de tipo espacial. Isto engádelle á base de datos suporte para obxectos xeográficos que permiten facer consultas executando código SQL. Para lograr isto, hai que instalar os paquetes dentro do noso sistema Debian:
apt-get install postgis
Posteriormente debemos executar código SQL para activar a extensión na base de datos:
-- Enable PostGIS (as of 3.0 contains just geometry/geography)
CREATE EXTENSION postgis;
-- Enable raster support (for 3+)
CREATE EXTENSION postgis_raster;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D -- and other geoprocessing algorithms -- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;