MYSQL数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中,实现mysql数据库的热备份。要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于3.2,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。。
MYSQL版本:5.6.26;
主服务IP:192.168.136.128;
从服务IP:192.168.136.129。
开始前请确保两台服务现有数据一致。如果是通过文件COPY方式来同步数据的,注意修改auto.cnf下的UUID,否则会出错。
主服务器配置步骤
1.修改my.cnf配置文件
log_bin
#mysql的复制机制是基于binlog的复制机制。通过配置此项可以定义日志名称,默认是本机域名localhost。
server_id = 1
#数据库的id根据需要进行设置,主从服务器必须不同。
#binlog-do-db = ... 记录日志的数据库,多个用逗号分隔。
#binlog-ignore-db = .... 不记录日志的数据库。
2.重启mysql
3.查看主服务状态
mysql> FLUSHS TABLE WITH READ LOCK;--锁表
mysql> show master status\G;
*************************** 1. row ***************************
File: localhost-bin.000001
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
mysql> UNLOCK TABLES;
如果出现以上状态信息,表明主服务器配置成功。此时需要记住File、Position对应的值以便后用。
4.允许从服务的热备请求
mysql> grant replication slave on *.* to 'root'@'192.168.136.129' identified by '.';
从服务器配置步骤
1.修改my.cnf配置文件
server_id = 2
#数据库的id根据需要进行设置,主从服务器必须不同。
2.重启mysql
3.设置热备请求
mysql>stop slave;
mysql>change master to master_host='192.168.136.128',master_user='root',master_password='.',master_log_file='localhost-bin.000001',master_log_pos=120;
mysql>start slave;
master_log_file对应上文记录的File值,master_log_pos对应上文记录的Position值。注意Mysql版本从5.1.7以后开始就不支持“master-host”类似的参数了。如果是5.1.7以前的版本,可以参考下面的my.cnf配置:
master-host=172.25.42.83
#主服务器的IP地址或者域名
master-port=3306
#主数据库的端口号
master-user=user
#同步数据库的用户
master-password=passwd
#同步数据库的密码
master-connect-retry=60
#如果从服务器发现主服务器断掉,重新连接的时间差
4.查看从服务器状态
mysql> show slave status\G;
*************************** 1. row ***************************
……
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
……
1 row in set (0.00 sec)
若看到以上两个信息就表示主从热备配置完成。
Best Wishes For You!