Cloud Computing Makes MySQL Replication Easier
The Cloud Zone is brought to you in partnership with Iron.io. Discover how Microservices have transformed the way developers are building and deploying applications in the era of modern cloud infrastructure.
Creating a new slave to support your system expansion is not easier: copying large data files over the LAN, recovering replication, etc.
Fortunately, virtualization and SAN help us do it easier and faster.
Lucky us, Cloud Computing make it even easier.
- Select an existing slave that can be reboot w/o affecting the service.
- Take the slave out of the production environment.
- Stop the MySQL slave and perform a read lock: SLAVE STOP;FLUSH TABLES WITH READ LOCK;
- Create an AMI based on this instance using AWS console or API.
- Recover the instance upon AMI creation completion and get the slave back to production: UNLOCK TABLES;SLAVE START;SHOW SLAVE STATUS\G
- Create a new slave based on the AMI
- Launch a new slave using the AWS console or API.
- Change the server's /etc/my.cnf file to fit a new slave instance:
- Change the server-id=N value to a new numeric value.
- Set relay-log='server-relay-bin' to the original slave server relay log name. (if you want to make it even easier, configure in the first slave's my.cnf relay-log=mysqld-relay-bin, and you'll be able to avoid this step).
- Restart the MySQL instance: sudo /etc/init.d/mysql restart
- Recover the MySQL: UNLOCK TABLES;SLAVE START;SHOW SLAVE STATUS\G
- Add this new slave to the production environment.