Moving a database
In order to move the database to an infrastructure server, the following process must be followed:
Stopping Opsview Copied
You will need to stop Opsview Monitor to achieve a consistent snapshot of the database and, as such, in the example below, we show you how to stop Opsview Monitor.
Stop Opsview for a consistent snapshot of the database.
/opt/opsview/watchdog/bin/opsview-monit stop all
Backup your databases Copied
Here, we assume that you are undertaking a full database export. You may, of course, use any other application to back up your MySQL databases. You should be aware that if the new database server is located on a different architecture, that is, 32- or 64-bit, then you will need to export your database, as shown in the example below:
Run the below command as root making sure to include any extra databases you may have (for example, include jasperserver if it exists). This will create a full database export:
mysqldump -u root -p --default-character-set=utf8mb4 --add-drop-database --opt --databases opsview runtime odw dashboard notifications | sed 's/character_set_client = utf8 /character_set_client = utf8mb4 /' | gzip -c > databases.sql.gz
Backup access control Copied
You should also set up access controls with your new database server so that the Opsview Monitor master is allowed to connect. So, from the Opsview Monitor master run the command shown below, replacing the parameters as required. The host and port can be ommitted if running a local database:
/opt/opsview/coreutils/bin/db_mysql -t -h DBHOST -P DBPORT -u DBUSERNAME -p DBPASSWORD > opsview_access.sql
Reporting Copied
If you are migrating the jasperserver database that is used for the reporting module then export the database access controls as below, replacing the parameters as required:
/opt/opsview/jasper/bin/db_mysql -t -u DBUSERNAME -p DBPASSWORD > opsview_access_jasper.sql
Update the deployment configuration file Copied
Add the database configuration to opsview_deploy.yml
.
From /opt/opsview/deploy/etc
, update the opsview_deploy.yaml
.
For example:
# add the following lines:
database_hosts:
opsview-uk-db:
ip: 10.2.14.190
If you use a different administration user user than root
for the database, you can specify that using
user: admin
which should be underneath and indented to line up with the ip:
line.
For system upgraded from Opsview Monitor 5.4.2 Copied
From /opt/opsview/deploy/etc
, comment out the following from user_upgrade_vars.yml
.
#opsview_database_backend_nodes:
#- opsview-old-uk-master:
Run the following commands:
cd /opt/opsview/deploy/
./bin/opsview-deploy lib/playbooks/check-deploy.yml
./bin/opsview-deploy lib/playbooks/setup-hosts.yml
./bin/opsview-deploy lib/playbooks/setup-infrastructure.yml
Restore your databases Copied
On your new server, restore the databases, as shown in the example below. You should also verify that your character set for the new databases are the same, as your previous version, since you may experience issues when upgrading.
On your new server restore your databases.
gunzip -c databases.sql.gz | mysql -u root -p
Restore access control Copied
The file, opsview_access.sql
, now contains all the necessary access credentials, which should be transferred to the new database and imported as follows:
mysql -u root -p < opsview_access.sql
If migrating the reporting jasperserver database:
mysql -u root -p < opsview_access_jasper.sql
For additional security, you may want to restrict access to the Opsview Monitor master only.
Run the following commands:
host1:~# cd /opt/opsview/deploy/
# install and configure the opsview
host1:/opt/opsview/deploy# ./bin/opsview-deploy lib/playbooks/setup-opsview.yml