The DGE databases are located in the directory <TRAVERSE_HOME>/database/mysql/<DB_NAME>
with each table for that database represented by a file with the extension .MYD
. Traverse comes with a utility to create a fast snapshot by locking all the databases and then directly saving the raw databases.
Note: Remember to replace <TRAVERSE_HOME>
in the commands below. Also use the correct name of your backup file where backup-mm-dd-yy,hh-mm.tar.gz
appears in the gunzip
command below.
Backing up the DGE Database
To back up the DGE database on a UNIX platform, create a backup snapshot with the following commands:
cd <TRAVERSE_HOME>
utils/db_backup.sh
This creates a new snapshot as a tar/gzip archive in <TRAVERSE_HOME>/database/backup
.
Restoring the DGE Database
To restore the DGE database from a snapshot created by db_backup.sh, you will must restore the .MYD
and .FRM
files from the snapshot archive in <TRAVERSE_HOME>/database/backup
, and then rebuild the database indexes with the following steps:
cd <TRAVERSE_HOME>
etc/traverse.init stop
mv database/mysql/aggregateddatadb database/mysql/aggregateddatadb.OLD
gunzip -c database/backup/backup-mm-dd-yy,hh-mm.tar.gz | tar xvf - database/mysql/backup_dge
etc/dgedb.init start restore
apps/mysql/bin/mysql --defaults-file=etc/mysql.conf --skip-column-names -u root --password= --batch -e 'show tables;' backup_dge > /tmp/names.txt
apps/mysql/bin/mysql --defaults-file=etc/mysql.conf -u root --password= --execute "CREATE DATABASE aggregateddatadb;"
for i in `cat /tmp/names.txt`; do apps/mysql/bin/mysql --defaults-file=etc/mysql.conf -u root --password= --execute "RESTORE TABLE $i FROM '<TRAVERSE_HOME>/database/mysql/backup_dge'" aggregateddatadb; done
etc/dgedb.init stop
rm -rf database/mysql/backup_dge
etc/traverse.init start
Repairing the MySQL DGE Database
Occasionally, because of an unexpected shutdown or a process such as an antivirus program scanning the database directories, database tables might become corrupt. To repair the DGE database tables, shut down Traverse and execute the following commands to rebuild the indexes:
cd <TRAVERSE_HOME>
etc/traverse.init stop
utils/db_repair.sh
If the db_repair.sh
script cannot be executed or fails to repair the database (because the extent of damage is too severe), you can manually repair the database as follows:
cd <TRAVERSE_HOME>
rm -f database/mysql/aggregateddatadb/*.TMD
apps/mysql/bin/myisamchk --defaults-file=etc/mysql.conf -r database/mysql/aggregateddatadb/*.MYI
If the -r
option fails to repair the database tables, try using the -o
option to perform a slower but more effective repair method on the affected tables.
Optimizing the MySQL DGE Database Indexes
In some cases, the database indexes for MySQL can become inefficient and can benefit from some optimization. Generally, this is not needed. However, if the database performance suffers and it is not caused by slow disk I/O, lack of memory, or other typical causes, performing an index optimization can improve performance. To optimize the indexes, use the following commands:
cd <TRAVERSE_HOME>
utils/db_optimize.sh