您的位置:首页 > 数据库

配置master/slave主从数据库

2015-11-10 10:45 204 查看
/article/4858032.html
原理说的透彻
/article/4256926.html
来龙去脉的二进制日志以及常见问题处理和监控
http://www.diyoms.com/website/1318.html
centos5.6下mysql5.6主从环境安装配置实例
/article/4290369.html
A->B->C架构,mysqldump命令master-data参数 http://www.111cn.net/database/mysql/53744.htm MySQL主主互备 http://asmboy001.blog.51cto.com/340398/197750/ 实例解读mysqldump参数--master-data
生产环境master/slave主从数据库手动同步

主从配置需要注意的地方: (1).主DB server和从DB server数据库的版本一致
(2).主DB server和从DB server数据库数据一致[ 这里就会可以把主的备份在从上还原,也可以直接将主的数据目录拷贝到从的相应数据目录]
(3).主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一

1.主DB SERVER上的配置
(1).安装数据库
(2).修改数据库配置文件,指明server_id,开启二进制日志(log-bin)
(3).启动数据库,查看当前是哪个日志,position号是多少 (使用mysqldump --master-data=2可以跳过3和5)
(4).登陆数据库,授权用户[ip地址为从机IP地址,如果是双向主从,这里的还需要授权本机的IP地址(此时自己的IP地址就是从IP地址)]
(5).备份数据库[记得加锁和解锁]
(6).传送备份到从DB server上
(7).启动数据库
以下步骤,为单向主从搭建成功,想搭建双向主从需要的步骤:
(1).登陆数据库,指定主DB server的地址,用户,密码等信息[此步仅双向主从时,需要]
(2).开启同步,查看状态
2.从DB SERVER上的配置
(1).安装数据库
(2).修改数据库配置文件,指明server_id[如果是搭建双向主从的话,也要开启二进制日志(log-bin)]
(3).启动数据库,还原备份
(4).查看当前是哪个日志,position号是多少[单向主从此步不需要,双向主从需要]
(5).指定主DB server的地址,用户,密码等信息
(6).开启同步,查看状态==========================================================================

需求:master已经在运行,不可锁表更不可停用它,在线运行添加一个slave数据库。方法:基本配置网上查找,现在说说关键部分:如何同步数据操作

1、备份导出master主机上需要同步的数据库文件(会锁表请在用户少的时候执行)
[root@aeolus1 c_learn]# /usr/local/mysql/bin/mysqldump -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases hkqj_global hkqj_inside hkqj_ucenter > /data/master.sql
\\master-data参数在建立slave数据库的时候会经常用到,因为这是一个比较好用的参数,默认值为1,默认情况下,会包含change master to,这个语句包含file和position的记录始位置。master-data=2的时候,在mysqldump出来的文件包含CHANGE MASTER TO这个语句,处于被注释状态\\
过滤出change master to信息
[root@aeolus1 c_learn]# grep -i "change master to" master-data.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=107;

2、在slave从库上导入备份的文件,配置主库以及二进制日志
mysql> source /data/mysq.bak.sql;

mysql> stop slave;
mysql> reset slave;
mysql> change master to , master_host='172.21.63.105',master_user='repl',master_password='repl',
master_port=3306,
master_log_file='mysql-bin.000012',//此处与grep -i查询的一致
master_log_pos=107;//同上
以上命令是一行的,注释除外。
mysql> start slave
mysql> show slave status\G
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
从库默认不开启bin-log日志功能,除非做下级从库级联同步,才需开启从库的bin-log日志。
主库由于硬件故障,如何将从库提升为主库(一主多从)
(mysql slave)
(1) 确保从机没有再同步的SQL语句,即出现Has read all relay log再关闭从库IO_Threat进程
# mysql -uroot -p123456
> stop slave IO_THREAD
(2) 关闭从库slave服务,然后将其提升为主库
> stop slave
> reset master
(3) 更换从库IP为故障主库IP(配置方法略)
(4) 删除新的主库master.info和relay-log.info,防止下次重启还会按照从库启动
# cd /usr/local/mysql/log
# rm -rf master.info relay-log.info
(5) 重新配置从库连接主库的账号同步信息,以及在下级从库重新设置偏移量保持与新的主库一致即可

最后待主库硬件恢复,将其再设置为从库并更换为上述从库IP地址,完成主从切换。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: