The BOSH director is not compatible with newer versions of MariaDB, including 10.5. Additionally, Tanzu Application Service (TAS) has some compatibility issues with MariaDB 10.2+, so we are requiring customers to move to MySQL for the long-term.
For the procedure to migrate Tanzu Application Service (TAS), please refer to the following article: AWS MariaDB 10.1 to MySQL 5.7 “downtime” upgrade instructions using mysqldump.
This procedure was tested using mysql and mysqldump clients packaged on Ops Manager 2.10.7. For the best experience, use the following versions of these clients:
This is a low impact migration. Processes that use the BOSH Director, such as HealthWatch and On-Demand-Brokered Services, will not be able to perform BOSH deployments until the process is complete. Since BOSH is not a runtime dependency of TAS itself, there will be no platform impact. The resurrector will not work until the process is complete.
To summarize, during the migration the following processes won’t be working:
om staged-director-config | bosh interpolate - --path /properties-configuration/director_configuration/external_database_options/database
bosh tasksb. SSH into the BOSH Director.
sudo su -d. Stop all processes
monit stop alle. wait for all monit jobs to stop
sudo shutdown nowg. Monitor the VM either in IaaS (until it is in a powered off state) or until the VM stops responding to ping.
4. SSH to Ops Manager VM where you can find the mysql and mysqldump clients.
To validate row count for your tables, run the following command:
~$ mysql -h <MY TARGET DB HOSTNAME> -u <MY SOURCE DB ADMIN USERNAME> -p -e "SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '<DATABASE NAME>';"
Note: You can run this command at the end of the migration to confirm it was successful. The counts might be slightly different because of how the counts are approximated. To get a precise count for a table t
in the database db
, then run the command: SELECT COUNT(*) FROM db.t;
5. Dump the source MariaDB database:
mysqldump \ --single-transaction \ -h <MY SOURCE DB HOSTNAME> \ -u <MY SOURCE DB ADMIN USERNAME> \ -p \ --databases <DB NAME FROM PREVIOUS STEP> > /tmp/DirectorDB_dump.sql
mysql \ -h <MY TARGET DB HOSTNAME> \ -u <MY TARGET DB ADMIN USERNAME> \ -p \ <DB NAME FROM PREVIOUS STEP> < /tmp/DirectorDB_dump.sql
om curl -s -p /api/v0/staged/infrastructure/locked -x PUT --data '{"locked" : "false"}'
properties-configuration: director_configuration: external_database_options: host: <MY TARGET DB HOSTNAME>
om configure-director -c update-hostname.yml
om apply-changes --skip-deploy-products
om curl -s -p /api/v0/staged/infrastructure/locked -x PUT --data '{"locked" : "true"}