MySQL复制的基本概念和实现
MySQL的复制的概念是完成水平扩展的架构
MySQL性能方面的扩展方式有scale on(向上扩展,垂直扩展)
scale out(向外扩展,水平扩展)
MySQL保存二进制日志:
statement:基于语句模式
row:基于行模式
mixed:混合模式
MySQL复制默认为异步工作模式
SLAVE:IO thread:向主服务请求二进制日志中的事件
SQL thread:从中继日志读取事件并在本地执行
MASTER:binlog dump:将IO thread请求的事件发送给对方
工作架构:
从服务器:有且只能有一个主服务器
MariaDB-10:支持多主模型,多源复制(multi-source replication)
一主多从:
读写分离:主从模型下,让前端分发器能识别读/写,并且按需调度至目标主机
读写分离的中间件有amoba:变形虫
mysql-proxy:不稳定
双主模型:master-master
1.必须设定双方的的自动增长属性,以避免冲突
auto_increment_increment = #
设定起始值
auto_increment_offset = 2
设定步长
2.数据不一致:
功用:均衡读请求:写请求双方一样
示例:主从复制的配置
版本
1.双方的MySQL要一致
2.如果不一致:主的要低于从的
从哪儿开始复制:
1.都从0开始
2.主服务器已经运行一段时间,并且存在不小的数据集,把主服务器备份,然后再从服务器恢复,从主服务器上备份处的位置开始复制
配置过程:
主服务器:
1.改server-id
2.启用二进制日志
3.创建有复制权限的账号
grant replication slave,replication client on *.* to 'uername'@'hostname' identified by 'password'
flush privileges
从服务器:
1.给server-id
2.启用中继日志
relay-log = /mydata/relaylogs/slave-bin
3.连接主服务器
连接主服务器命令:change master to
| MASTER_HOST = 'host_name' 主服务器地址
| MASTER_USER = 'user_name' 以那个用户的身份复制
| MASTER_PASSWORD = 'password'密码
| MASTER_PORT = port_num端口
4.启动复制线程
START SLAVE;
MySQL复制的基本概念和实现的更多相关文章
- MySQL复制环境(主从/主主)部署总结性梳理
Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...
- MySQL复制进阶
Ⅰ.背景 搭建MySQL复制环境非常简单 你的系统是否也是像我之前那么搭建的呢? 那么,你的复制系统是否出现过以下的情况呢? 复制报错,例如:1062,1032 主从数据不一致 Ⅱ.真正高可靠复制环境 ...
- MySQL 复制 - 性能与扩展性的基石 1:概述及其原理
1. 复制概述 MySQL 内置的复制功能是构建基于 MySQL 的大规模.高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步. 接下来,我们将从复制概述及原理.复制的配置. ...
- MySQL复制相关技术的简单总结
MySQL有很多种复制,至少从概念上来看,传统的主从复制,半同步复制,GTID复制,多线程复制,以及组复制(MGR).咋一看起来很多,各种各样的复制,其实从原理上看,各种复制的原理并无太大的异同.每一 ...
- 深入MySQL复制(一)
本文非常详细地介绍MySQL复制相关的内容,包括基本概念.复制原理.如何配置不同类型的复制(传统复制)等等.在此文章之后,还有几篇文章分别介绍GTID复制.半同步复制.实现MySQL的动静分离,以及M ...
- 深入MySQL复制(二):基于GTID复制
相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...
- 涂抹mysql笔记-mysql复制特性
<>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到 ...
- Mysql主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录
Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一 ...
- MySQL复制以及调优
一. 简介 MySQL自带复制方案,带来好处有: 数据备份. 负载均衡. 分布式数据. 概念介绍: 主机(master):被复制的数据库. 从机(slave):复制主机数据的数据库. 复制步骤: (1 ...
随机推荐
- JS图片加载失败显示默认图片
代码如下: <div id='photo<%# Container.DataItemIndex+1%>' style="position: absolute; displa ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C/C++代码(二)
如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数: double add(double x, double y) { return x + y; } 现在我想要在Matlab中使用它,比 ...
- APP store 审核注意点
磨刀不误砍柴工.作为手机应用开发者,你需要向应用商店提交应用审核,迅速通过审核可以让你抢占先机.对苹果iOS应用开发者来说尤其如此.苹果应用商店的审核近乎吹毛求疵,下面这些清单可以让你知道苹果会在哪些 ...
- 面向对象之prototype,__proto__
var person = function(name) { this.name = name }; person.prototype.getName = function() { return thi ...
- php的预定义数组
PHP预定义变量数组 1.$_SERVER 变量由Web服务器设定或者直接与当前的脚本的执行环境相关联 $_SERVER超级全局变量包含由web服务器创建的信息,它提供了服务器和客户配置及当前请求环境 ...
- JS获取客户端Mac和IP
JS获取硬件信息是通过ActiveX进行获取的,因此只能IE浏览器支持,火狐不支持 而且必须降低浏览器安全级别,因此不到万不得以一般不会采用这种方式 <html> <head> ...
- hdu 2051
ps:这道题是题目坑爹了...题目说不考虑n=0的...但其实要考虑...醉了 中文意思:输入一个10进制的数,输出他的二进制数 代码: #include "stdio.h"int ...
- 无法为表空间 ***中的段创建 INITIAL 区
这是由于表空间不足引起的. 具体错误: 解决方案:扩展表空间
- loadrunner录制时弹出invalid application path!please check if application exists对话框
问题:oadrunner录制时弹出invalid application path!please check if application exists对话框 原因:IE浏览器地址不对,需要手动重新选 ...
- linux命令:ls
1.介绍: ls是linux日常操作中用的最多命令,是list的缩写,默认按名称排序列出当前目录和文件,ls --help可以查看帮助. 2.命令格式: ls [OPTION] [FILE] 3.命令 ...