The setup with
all services on one
server
includes having the datamart in the same PostgreSQL instance as TeamForge as well as running it
on
a separate instance. In either case, you can move
the
PostgreSQL datamart from its own instance to a separate box in the dedicated database server
mode.
-
Stop TeamForge on the
app box.
If you have a distributed setup, stop TeamForge on all other servers as well.
- /etc/init.d/collabnet
stop
-
Create
a
dump of the PostgreSQL
datamart.
- su - postgres -c 'pg_dump -C -p <database-port >
<reports-database-name >
<path-to-dump-file>
-
Create a new datamart instance using the
datamart-pgsql-setup.sh or
use
the following commands
on
the database
server.
-
su - postgres
-
initdb -D /var/lib/pgsql/9.6/reports
-
Set the REPORTS_DATABASE_PORT
token in
site-options.conf
file.
Note: The port should use the same value as specified in
postgresql.conf as specified in the previous step.
The recommended value is
5632.
-
Provision
services.
Note:
TeamForge 17.4 (and later) installer expects the system locale to be
LANG=en_US.UTF-8. TeamForge "provision" command fails otherwise.
-
Restore the datamart into the new instance.
-
/opt/collabnet/teamforge/runtime/scripts/db.py -a restore -t reporting -f
<dump-location>
-
Copy the
postgresql-9.6 script from runtime scripts and replace
/etc/init.d/postgresql-9.6
-
Restore the datamart from the database box.
-
su - postgres -c 'psql -p <reports-database-port>
<path-to-dump-file>
Note: Restart the
PostgreSQL
service. If any warning messages are displayed, kill the service and start
again.
-
Start the
PostgreSQL service
on
the database
server.
- teamforge start -s
postgres
-
Start the services on all the servers.
-
Check your old reports for data accuracy.
-
Permanently remove the old datamart from the TeamForge instance.
- su - postgres -c 'dropdb <datamart-name> -p
<database-port>'