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 in 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.

  1. Stop TeamForge on the app server. If you have a distributed setup, stop TeamForge on all other servers as well.
    • /etc/init.d/collabnet 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.3/reports
  4. Set the REPORTS_DATABASE_PORT 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.
  5. Recreate the [RUNTIME_DIR] on all the servers.
    • install.sh -r -d /opt/collabnet/teamforge
  6. Restore the datamart into the new instance.
    • [RUNTIME_DIR]/scripts/db.py -a restore -t reporting -f <dump-location>
  7. Copy the postgresql-9.3 script from runtime scripts and replace /etc/init.d/postgresql-9.3
  8. Restore the datamart from the database box.
    • su - postgres -c 'psql -p <reports-database-port> <path-to-dump-file>
    Note: Restart the Postgres service. If any warning messages are displayed, kill the service and start again.
  9. Start the PostgreSQL service on the database server.
    • /etc/init.d/postgresql-9.3 start
  10. Start the services on all servers.
    • /etc/init.d/collabnet start all
  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>'