REDCap Replication
Requirements
This is the minimal set of access privileges required to preform this tasks
- Access to Mysql account with administrative privilege in to running mysql setup tasks
- Access to Azure account with asset/resource provisioning privileges
- Access to Azure account with REDCap key Vault secrets read/list privileges
- Command line access to REDCap VM or RIS compute cluster
- Access to RIS I2 storage1 allocation with read/write privileges
Part 1) Preparation for mysql replication
Confirm primary server is configured for replication
-
verify primary server parameters
-
wildcard table ignore
-
binary logging is on
-
binary log expiration
-
Time zone
-
-
validate and if needed create a replication user on primary server
Take full backup of Primary server
From either a VM with network connectivity or the RIS compute cluster run the following commands:
RIS compute getting started Guide
command line MySQL using RIS compute
time mysqldump -h <primary sever> -u <admin user> -p --source-data=2 --single-transaction --quick <database name> > /storage1/fs1/I2/Active/rdc2_etl/REDCap/backups/redcap_<enviroment>_<database name>_<function>_(date +%F).sql
Example:
time mysqldump -h 10.24.96.139 -u i2adminv8qa -p --source-data=2 --single-transaction --quick redcap_appq32m1 > /storage1/fs1/I2/Active/rdc2_etl/REDCap/backups/redcap_qa_redcap_appq32m1_replication_(date +%F).sql
Create secondary server
Update Secondary server
Notes
Azure refence for data-in replication
Setup replication between on-prem instance and azure
Azure refence for data-in replication
Source database host: 10.39.196.157
destination database host: 10.24.96.134
Application host: 10.24.96.154
Source database: redcap_prod
destination database: redcap_prod
- Create backup from secondary v7 on prem redcap_prod db
time mysqldump --no-create-db --routines --quick -B redcap_prod -u-p --master-data=2 --single-transaction > /backups/dbp14m2/mysqldump_redcap_prod_$(date +%F).sql - Sync redcap_prod db to azure prod
time scp /backups/dbp14m2/mysqldump_redcap_prod_2023-09-20.sql@10.24.96.154:/mnt/austore/
time mysql -h 10.24.96.135 -u azureadmin -p -D redcap_prod < /mnt/austore/mysqldump_redcap_prod_2023-09-20.sql - Create replication user on secondary v7 on prem redcap_prod db
CREATE USER 'sync_user'@'%' IDENTIFIED BY '';
GRANT REPLICATION SLAVE ON . TO ' sync_user'@'%'; - Set filters to only replicate recap_prod database
Azure Portal->ICS - Redcap->i2-redcap7-migration-rg->i2-redcap-migr-mysql->Server Parammter->replicate_wild_ignore_table:
https://portal.azure.com/#@gowustl.onmicrosoft.com/resource/subscriptions/66fc3882-1a21-4787-9351-af5aa8eb3563/resourceGroups/i2-redcap7-migration-rg/providers/Microsoft.DBforMySQL/flexibleServers/i2-redcap-migr-mysql/serverParameters
mysql.%,information_schema.%,performance_schema.%,sys.%,redcap_appo27m1.%,redcap_appp60m1.% - Configure replication on azure flex server
CALL mysql.az_replication_change_master('10.39.196.157', 'sync_user', '', 3306, 'bp14m2_mysql-bin.005876', 475494453, '');
CALL mysql.az_replication_start;
SHOW SLAVE STATUS\G