There are many questions that address the issue of failover and Im a bit overwhelmed which is why I am asking about my specific situation here.
my setup is as follows:
I have three servers running ubuntu linux 16.04. all three have their own fixed IP's.
In august one of the servers will be hosting a website with a large backend mysql database. Users (on the order of 500-1000) will be continuously logging entries in the database mostly during the day hours say 8am-8pm. Administrators will be querying the database for various statistics.
the website and database need to be operational at all times so Id like to use a second server to mirror everything on the first and take over should the first go down (failover). I can use the third if needed to monitor the response of the two.
I don't really know where to begin. My main questions are
How to keep a large mysql database synced on two separate machines? the database will be large (perhaps 5-10Gb) so it will take time to output and rebuild the database from the .sql file. If disaster strikes im ok losing 10 minutes of logging and uptime but not hours to rebuild the database on the other server from the sql file.
How to have the second server take over if the first goes down? Do I monitor the activity of the two with a third server and switch IPs if the primary server goes down? If so some detailed steps would be appreciated. Ive seen this questions address with jargon like "heartbeats" and "virtual IPs" which is a little too abstract for me. I need as much detail as possible and if this is beyond my expertise I need to find that out so I can let my boss know in time.
thanks for assistance