A utility is provided to migrate an existing xCAT database from SQLite to PostgreSQL. :
pgsqlsetup -i -V
While not recommended, if you wish to manually migrate your xCAT database, see the following documentation: Manually set up PostgreSQL
For service nodes, add the IP address of each service nodes to the postgres configuration file: /var/lib/pgsql/data/pg_hba.conf
If you had the following two service nodes: :
sn10, ip: 192.168.1.10 with netmask 255.255.255.0
sn11, ip: 192.168.1.11 with netmask 255.255.255.0
You would add the following to /var/lib/pgsql/data/pg_hba.conf
:
host all all 192.168.1.10/24 md5
host all all 192.168.1.11/24 md5
Restart PostgreSQL after editing the file: :
service postgresql restart
For more information about changing the pg_hab.conf
file and postgresql.conf
files, see the following documentation: Setup the PostgreSQL Configuration Files
Check the xcatdb have been switched to pgsql: :
lsxcatd -a Version 2.13.6 (git commit f8c0d11ff2c7c97d6e62389c0aafcdfa06cee1f6, built Mon Aug 7 07:15:47 EDT 2017) This is a Management Node cfgloc=Pg:dbname=xcatdb;host=10.3.5.100|xcatadm dbengine=Pg dbname=xcatdb dbhost=10.3.5.100 dbadmin=xcatadm
Check the current working directory: :
sudo -u postgres psql could not change directory to "/root" psql (9.2.18) Type "help" for help. postgres=# SHOW data_directory; data_directory --------------------- /var/lib/pgsql/data (1 row) postgres-# \q
Stop postgresql service and modify the configuration files: :
systemctl stop postgresql mkdir /install/pgsql_db rsync -av /var/lib/pgsql/ /install/pgsql_db/ cat /usr/lib/systemd/system/postgresql.service | grep -i PGDATA= Environment=PGDATA=**/install/pgsql_db/data/** cat /install/pgsql_db/data/postgresql.conf | grep data_directory #data_directory = 'ConfigDir' # use data in another directory **data_directory = '/install/pgsql_db/data/'**
Reload, start postgresql service and check the working directory: :
systemctl daemon-reload systemctl start postgresql sudo -u postgres psql psql (9.2.18) Type "help" for help. postgres=# SHOW data_directory; data_directory ------------------------ /install/pgsql_db/data (1 row) postgres=#