mysql数据库主从复制部署笔记
主从复制是mysql中数据库实时同步的一个常用做法了,今天我来给各位介绍一下关于mysql数据库主从复制部署一个过程,希望此例子对各位同学参考参考。 数据库主从复制原理:
数据库的主从复制就是从master数据库复制到slave数据库,在master与slave之间实现整个复制需要三个线程来完成,其中两个在slave端一个在master端。
在master端必须打开binlog功能,因为从数据库需要获得主数据的完整的操作日志然后再自身上顺序的执行日志中的各种操作。 主要步骤:
、将slave的io线程连上master,请求获得指定日志文件的指定位置之后的操作日志的内容;
、master获得slave的io线程请求后,将请求中读取到的指定日志的指定位置之后的内容返回给slave端的io线程,其中包括binlog 的位置以及名称;
、slave端的io线程在接收到信息后,将接收到的日志内容写入slave端的relay log文件的末端,并将binlog的文件名和位置记录到master-info文件中,以便下一次请求时向master提出请求;
、slave的sql线程会检测到relay log中新增的一些日志内容并加以解析成为可执行的query语句在slave端执行,从而达到master与slave端的数据一致性。 配置方法:
MASTER
、编辑master的配置文件/etc/my.cnf,在[mysqld]中添加以下内容:
log-bin=mysql-bin #打开mysql的操作日志功能
binlog_format=mixed #主从复制模式,混合模式(MBR)默认的
binlog_cache_size=4M #设置binlog缓存大小
max_binlog_size=300M #设置binlog文件大小,如果不设置,默认是1.1GB
expire_logs_days= #bin-log在主库保存的天数,主库产生的bin-log并不会自动删除,需要手动删除 、在master上对从数据库进行授权,建立复制用户的专有账户
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘repl’@'%’ IDENTIFIED BY ‘repl’; 、对master的数据库进行备份
在备份master数据时要对master执行锁表操作:
mysql>FLUSH TABLES WITH READ LOCK;
Query OK, rows affected (0.00 sec)
mysql> reset master; //刷新数据库
Query OK, rows affected (0.00 sec)
在不退出该终端的情况下(否则锁表会失效),再次开启一个终端直接打包压缩数据文件或者使用mysqldump工具来导出数据:
#mysqldump -uroot -h 127.0.0.1 –opt -R XXXXXX > /data/mysql/backup/XXXXXX.sql
#cd/data/mysql/backup/ 、备份数据库到从数据库
#tar -czvf XXXXXX.tar.gz XXXXXX.sql
#scp XXXXXX.tar.gz root@10.7.70.42:/data/mysql/backup
可用相同的方法将数据库导入到其他的slave机器上,导入完成后在Master的命令终端上执行一下解锁命令:
mysql>UNLOCK TABLES;
mysql>show processlist;
mysql>show master statusG; #查看主服务器的bin-log 和id 、设置slave主机
编辑slave从数据库的/etc/my.cnf配置文件,前面的配置参数与主的一样,都是根据硬件内存进行参数调整:
#binlog_format=mixed
#required unique id between and ^ –
#defaults to if master-host is not set
#but will not function as a master if omitted
server-id= //slave 的编号 注意不要重复
read_only=
binlog_format=mixed
binlog_cache_size=4M //设置binlog缓存大小
max_binlog_size=300M //设置binlog文件最大体积 在slave主机上新建一个数据库,导入主数据库的数据:
mysql>create database XXX;
mysql>use XXX;
mysql>set names utf8;
mysql>source /XXXXXX/XXX.sql 设置从数据库的主master:
mysql>CHANGE MASTER TO MASTER_HOST=’XX.XX.XX.XX’, //主数据库的ip地址
->MASTER_USER=’repl’,
->MASTER_PASSWORD=’repl’,
->MASTER_LOG_FILE=’mysql-bin.′, //这里根据主服务器的binlog和id设置
->MASTER_LOG_POS=; //
设置完成后,开启slave服务: mysql> slave start;
Query OK, rows affected (0.00 sec)
mysql> show slave statusG; //显示slave的状态
从输出结果中若:Slave_IO_Running和Slave_SQL_Running如果都为Yes时,表示配置成功
在线添加多个从库:
原理:若直接在主数据库上再次添加从库会执行停止mysql 的服务进行锁表操作从而影响正常的工作流程,
故在线添加从数据库可以通过备份旧的从数据库达到数据库复制的目的。再次利用change master 可达到在线添加从数据库的目的。
mysql数据库主从复制部署笔记的更多相关文章
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- Mysql数据库主从复制搭建
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...
- MySQL 数据库主从复制架构
前文<MySQL 数据库事务与复制>分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面. 原生复 ...
- mysql数据库常用命令笔记
连接数据库:mysql -h localhost -u root -p 000000 退出:exit; \q; quit; SET foreign_key_checks = 0; 禁用外键 ...
- 怎样解决MySQL数据库主从复制延迟的问题---流行网站的解决办法(转载)
像Facebook.开心001.人人网.优酷.豆瓣.淘宝等高流量.高并发的网站,单点数据库很难支撑得住,WEB2.0类型的网站中使用MySQL的 居多,要么用MySQL自带的MySQL NDB Clu ...
- MySQL数据库主从复制
一.MySQ主从复制(主库写入数据,从库读取数据) MySql官方下载地址:http://dev.mysql.com/downloads/mysql/ MySql常用命令: 设置密码 UPDATE U ...
- mysql互为主从复制配置笔记
MySQL-master1:192.168.72.128 MySQL-master2:192.168.72.129 OS版本:CentOS 5.4MySQL版本:5.5.9(主从复制的master和s ...
- MySQL数据库主从复制实践
MySQL 主从(MySQL Replication),主要用于 MySQL 的实时备份.高可用HA.读写分离.在配置主从复制之前需要先准备 2 台 MySQL 服务器. 一.MySQL主从原 ...
随机推荐
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换
写在最前面:本文是我阅读了多篇相关文章后对它们进行分析重组整合而得,绝大部分内容非我所原创.在此向多位原创作者致敬!!!一.傅立叶变换的由来关于傅立叶变换,无论是书本还是在网上可以很容易找到关于傅立叶 ...
- java基础之 异常
Throwable是所有Java程序中错误处理的父类,有两种资类:Error和Exception. Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继 ...
- SharePoint 2013 Nintex Workflow 工作流帮助(十三)
博客地址 http://blog.csdn.net/foxdave 工作流动作 35. Delegate Workflow Task(User interaction分组) 该操作将委托未处理的工作流 ...
- About Closure
Closure被翻译为闭包,C++11引入了Lambda表达式支持Closure,JavaScript支持Closure,Objective C支持Blocks,他们都是Closure,名字各有不同, ...
- 转:115个Java面试题和答案——终极列表(上)
转自:http://www.importnew.com/10980.html 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的 ...
- ajax注释
//xmlHttpRequest,但是这个对象只是在火狐,google...//在中国用的最广泛的IE浏览器里面是没有这个对象的//在IE里面是用的一个控件来解决这个问题,ActiveXObject/ ...
- Java异常机制
Java异常分类 异常表明程序运行发生了意外,导致正常流程发生错误,例如数学上的除0,打开一个文件但此文件实际不存在,用户输入非法的参数等.在C语言中我们处理这类事件一般是将其与代码正常的流程放在一起 ...
- Android Bluetooth详解(Android英文文档相关译文)
一.Bluetooth Android平台包含了对Bluetooth协议栈的支持,允许机器通过Bluetooth设备进行无线数据交换.应用框架通过Android Bluetooth API访问Blue ...
- du -sh 目录名称 查看目录大小
du -sh 目录名称 查看目录大小 df -h 查看磁盘使用情况
- myEclipse使用有感
一.破解 使用myeclipse 10.0版本:然后破解:(之前我使用10.7破解成功了,但是发布有问题) 二.发布注意事项 1.清理发布目录, 不要有多个项目搅和 2.js相关, 注意清理浏览器缓存 ...