Uprading Enswitch Without Waiting For CDRs
The following process allows Enswitch upgrades which have changes to CDRs to take place without an outage whilst changes to the CDR tables are being done.
1) Customer disables CDR archiving cron job.
2) Customer renames cdrs to cdrs_old:
RENAME TABLE cdrs TO cdrs_old; RENAME TABLE cdrcosts TO cdrcosts_old; RENAME TABLE cdrcost_taxes TO cdrcost_taxes_old; RENAME TABLE cdrs_archive TO cdrs_archive_old;
3) Customer creates new cdrs table like cdrs_old:
CREATE TABLE cdrs LIKE cdrs_old; CREATE TABLE cdrcosts LIKE cdrcosts_old; CREATE TABLE cdrcost_taxes LIKE cdrcost_taxes_old; CREATE TABLE cdrs_archive LIKE cdrs_archive_old;
4) Engineer runs Enswitch upgrade.
5) Customer does post-upgrade testing. Once testing is completed successfully, continue with the next steps.
6) Customer does "slave stop" on primary database server.
7) Customer manually runs changes (see /opt/enswitch/current/install/upgrades/database/) to cdrs_old table on backup database server.
8) Customer renames cdrs table to cdrs_new on backup database server:
RENAME TABLE cdrs TO cdrs_new; RENAME TABLE cdrcosts TO cdrcosts_new; RENAME TABLE cdrcost_taxes TO cdrcost_taxes_new; RENAME TABLE cdrs_archive TO cdrs_archive_new;
8) Customer renames cdrs_old to cdrs on backup database server:
RENAME TABLE cdrs_old TO cdrs; RENAME TABLE cdrcosts_old TO cdrcosts; RENAME TABLE cdrcost_taxes_old TO cdrcost_taxes; RENAME TABLE cdrs_archive_old TO cdrs_archive;
10) Customer copies data from cdrs_new to cdrs on backup database server:
INSERT INTO cdrs SELECT * FROM cdrs_new; INSERT INTO cdrcosts SELECT * FROM cdrcosts_new; INSERT INTO cdrcost_taxes SELECT * FROM cdrcost_taxes_new; INSERT INTO cdrs_archive SELECT * FROM cdrs_archive_new;
11) Customer drops cdrs_new table on backup database server:
DROP TABLE cdrs_new; DROP TABLE cdrcosts_new; DROP TABLE cdrcost_taxes_new; DROP TABLE cdrs_archive_new;
12) Customer fails over service to backup database server.
13) Customer does slave start on primary database server.
14) When replication on primary has caught up to backup database server, customer fails service back to primary server.
15) Customer does post-upgrade testing.
16) Customer re-enables CDR archiving cron job.