-
Deploy a new server running Debian 12.x. See Install BillMax. Request a new license key
making sure to let BillMax support know that this key is for your new Debian
host. Remember your choice for the Database Password (on the BillMax information
tab). You will need to supply this password later.
-
Note: You will need a license key prior to upgrading the BillMax database
schema.
Login into the new BillMax staff interface. Go to Copy and paste (save) the License Key.
-
As root and in the /root directory, run the following
command: diff -r /usr/local/billmax /opt/billmax/software | grep -v -E
'\.svn$|\.o$|\.d$' | grep -v -E
'/usr/local/billmax/(documents|efp|logs|tmp|uploadedfiles|cdrfiles|backups|prepaidcards|snapshots|importtools|uploadedfiles)'
> upgradedifferences.dat
-
Examine the results in upgradedifferences.dat. Any
pertinent changes will have to be done on the new server.
-
Stop mariadb, httpd and
edge on the CentOS 7® server. As
root execute: systemctl stop mariadb httpd bx_edge
-
On the CentOS 7® server, make a copy of the entire
database instance (this includes billmax as well as all other databases). As
root execute:
-
cd /var/lib
-
tar czf mysql.yyyy-mm-dd.tgz mysql (where
yyyy-mm-dd is the current date).
-
Restart mariadb, httpd and
edge on the CentOS 7® server. As
root execute: systemctl start mariadb httpd bx_edge. Do not
restart if this is your final data migration.
-
Copy the mysql.yyyy-mm-dd.tgz file to the Debian host:
scp mysql.yyyy-mm-dd.tgz admin@<Debian ip or
host name>:
-
Note: The rest of these steps are on the Debian server.
Stop mariadb. As root execute: systemctl stop
mariadb
-
Move the existing mysql instance out of the way. As root
execute: cd /var/lib; mv mysql mysql.original
-
Restore the database files from the CentOS 7® server. As
root execute:
-
cd /var/lib
-
tar xzf /home/admin/mysql.yyyy-mm-dd.tgz
-
Restart mariadb. As root execute: systemctl start
mariadb
-
Note: You will need the root password from the CentOS server for this step. You can
retrieve this password from
/usr/local/billmax/local/billmax.conf
(MYSQL_ADMIN_PASSWD setting).
Fix a few mariadb settings. Execute:
-
mysql -u root -p mysql
-
CREATE USER 'mariadb.sys';
-
ALTER USER root@localhost IDENTIFIED VIA
unix_socket;
-
FLUSH privileges;
-
quit
-
Run mariadb command for upgrading databases to a new
version. As root execute: mysql_upgrade --force
-
Restart mariadb. As root execute: systemctl restart
mariadb
-
Check the system log for any mariadb logs on startup:
journalctl -xeu mariadb
-
Restore license key. Copy the license key to the clipboard. Paste key when
prompted. As the billmax user execute:
/usr/local/billmax/bin/license_install
-
Note: Be sure you have tuned the database before converting it.
Convert BillMax tables to InnoDb and UTF8
character set. As the billmax user execute:
/usr/local/billmax/bin/convert2InnoDB -p 15
-
Update BillMax database schema and run upgrade scripts. You will be prompted to
enter the BillMax version that is running on the CentOS server. You can get this
value via the menu. Supply the full version string
(4.0.XXXXXX). As the billmax user cd
/usr/local/billmax/pkg and execute:
/usr/local/billmax/pkg/upgrade_db_only.pl
-
Verify that the database has no errors. As the billmax user execute:
/usr/local/billmax/bin/dbck
-
Make sure that the nightly processes are not configured to run. Go to and disable all active batch groups. If performing the final
migration, re-enable the same batch process groups. This process ensures that the
crontab is updated properly.
-
While testing, you should change credit card
processor to the dummy processor called ‘Loopback’. Set
the State value for all active Credit Card and Bank Account lists to
‘Not Active’. Set the State value for the
Loopback lists to ‘Active’. Also
you should disable printing and email by setting the appropriate commands
in the Global Options to /bin/true. These steps should not
be done for the final data migration.
-
Consider using BillMax test tools to run the system forward to test batch
processing. Contact support for details.
-
Copy the runtime files from your CentOS server to the Debian server. Run time
files include any data file, custom configuration files, provisioning scripts
and so on. The following commands copy the required (bare minimum) files.
Depending on your use, you may need additional files. For example, you will want
any customizations you have made like changes to templates, source files, etc.
On the CentOS server. As root:
-
cd /usr/local/billmax
-
tar czf runtime.yyyy-mm-dd.tgz backups documents efp local logs
portalv2/config/edge.php uploadedfiles (where
yyyy-mm-dd is the current date)
-
scp runtime.yyyy-mm-dd.tgz admin@<Debian ip or
host name>:
-
Redo any local customizations that were noted in
upgradeddifferences.dat.
-
On the Debian server as root:
-
Note: This step omits the local directory. For the local directory, extract
it separately to a work directory. Then selectively copy the needed
customized files.
cd /usr/local/billmax
-
tar xzf /home/admin/runtime.yyyy-mm-dd.tgz backups documents
efp logs portalv2/config/edge.php uploadfiles (where
yyyy-mm-dd is the current date)
-
Review, configure and test all subsystems (backups, email, printing,
provisioning, etc) that BillMax relies on.
-
Once satisfied that everything is working correctly and all subsystems are
configured and tested, schedule the final data migration. Repeat steps 3-18 but
do not enable processing on the CentOS server. If everything goes to plan, be
sure to disable all services on the CentOS server. Make DNS changes as needed,
etc.