mysql数据库备份-主从分离
原理:主从分离 【一般都是在同一机房中进行】
实现步骤:
1、确保主服务器打开二进制日志功能;
这样,主服务器一旦有数据变化,立即产生二进制日志;
2、从服务器也需要开启二进制日志和relay日志功能。
这样可以从主服务器读取binlog并产生relaylog
3、在主服务器建立一个从服务器账号,并授予读binlog的权限。
4、指定从服务对应的主服务器,开启从服务器。
主:
binlog-format=row/statement
statement:2进制记录执行语句,如update
row: 2进制记录的是磁盘变化;
mixed: 混合的,由系统根据语句,来决定。
update table set aa=xx where id=3 ;//语句长而磁盘变化少,建议row
update table set aa=xx;//语句短,但是影响上万行,磁盘变化大,易用
statement。
若想让系统自动帮我们识别,则建议用mixed,混合的,由系统根据语句来决定。
主服务器
mysql配置文件如下;
#给服务器起一个独特的id
server-id=201
#声明2进制日志的文件为mysql-bin.xxxx
log-bin=mysql-bin
#二进制日志的格式 mixed/row/statement
binlog-format=mixed
查看是否能充当主服务器:
show master status;
=========================================
从服务器mysql配置如下:
#给服务器起一个独特的id
server-id=202
#声明2进制日志的文件为mysql-bin.xxxx
log-bin=mysql-bin
#建议从服务器开启二进制日志,因为从服务器主要就是起到备份的功能。
#二进制可以看成最后的数据恢复方案。
#二进制日志的格式
relay-log=mysql-relay
查看是否能充当从服务器:
show slave status;
主服务器操作::
mysql>use mysql;
mysql>select host,user,password from user;
核心操作:
第一步:
mysql>use mysql;
第二步:
mysql>grant replication client,replication slave on *.* to
repl@’192.168.1.%’ identified by ‘repl’;
第三步:
mysql>flush privileges;
从服务器操作::
核心操作:
第一步:
mysql>use mysql;
第二步:
mysql>
change master to
master_host=’192.168.1.107′,
master_user=’repl’,
master_password=’repl’,
master_log_file=’mysql-bin.000001′,
master_log_pos=107;
第三步:
我们执行后看可打通呢?
mysql>show slave status;
第四步 启动从服务器功能:
mysql>start slave;