Move the datamart (dedicated database server mode)

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. However, note that the ability to run separate PostgreSQL instances for TeamForge database and datamart on the same server is being deprecated in TeamForge 17.11.

  1. Stop TeamForge. In a distributed setup, stop TeamForge on all the servers.
    If you are upgarding from TeamForge 16.7 or earlier releases:
    • /etc/init.d/collabnet stop
    If you are upgrading from TeamForge 16.10, 17.1, or 17.4 release:
    • /opt/collabnet/teamforge/bin/teamforge stop
    If you are upgrading from TeamForge 17.8 or later releases:
    • teamforge stop
  2. Create a dump of the PostgreSQL datamart.
    • su - postgres -c 'pg_dump -C -p <database-port > <reports-database-name > <path-to-dump-file>
  3. 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
  4. 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 default port is 5632.
  5. Provision services.
    • teamforge provision
    Note:

    TeamForge 17.4 (and later) installer expects the system locale to be LANG=en_US.UTF-8. TeamForge "provision" command fails otherwise.

  6. Restore the datamart into the new instance.
    • /opt/collabnet/teamforge/runtime/scripts/db.py -a restore -t reporting -f <dump-location>
  7. Copy the postgresql-9.6 script from runtime scripts and replace /etc/init.d/postgresql-9.6
  8. 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.
  9. Start the PostgreSQL service on the database server.
    • teamforge start -s postgres
  10. Start the services on all the servers.
    • teamforge start
  11. Check your old reports for data accuracy.
  12. Permanently remove the old datamart from the TeamForge instance.
    • su - postgres -c 'dropdb <datamart-name> -p <database-port>'