- 浏览: 395448 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (760)
- 股票日志 (26)
- Selenium (0)
- selenium 2 环境的搭建 (1)
- 并发 (7)
- 框架开发 (1)
- 动态代理 (2)
- Struts2 (2)
- POI (2)
- jdk (3)
- maven (31)
- spring (35)
- mysql (31)
- 工作机会 (3)
- xtream (1)
- oracle dbms_metadata GET_DDL (0)
- SSI (1)
- DB (61)
- powermock (4)
- java 基础 (25)
- 多线程 (11)
- 高手 (2)
- java 底层 (2)
- 专业网站 (1)
- 开发联想 (1)
- 开发联想 (1)
- bat文件 (2)
- 清queue 语句 (1)
- 清queue 语句 (1)
- jquery (7)
- html5 (1)
- Jenkins (10)
- Linux (17)
- 工作issue (2)
- tomcat log (3)
- jvm (23)
- 项目细节 (0)
- oracle (41)
- 泛型 (3)
- 新知识点 (1)
- 数据库ddl 语句 (0)
- AQ (2)
- jms (0)
- 网络资源 (6)
- github (6)
- Easymock (1)
- Dom 解析XML (1)
- windows命令 (2)
- java (7)
- 正则表达式 (5)
- sequence (1)
- oracle 表meta信息 (1)
- 小工具技巧 (1)
- 辅助工具 (1)
- Junit (1)
- 泛型 generic (2)
- Java程序设计 (1)
- cglib (2)
- 架构师之路 (1)
- 数据库连接池 (5)
- c3p0 (1)
- eclipse使用 (1)
- oracle sql plus (1)
- 码农人生 (3)
- SVN (15)
- sqlplus (2)
- jsoup (1)
- 网络爬虫 (2)
- 新技能 (1)
- zookeeper (4)
- hadoop (1)
- SVNKIT (1)
- 从工具到知识点的整理 (1)
- log4j (13)
- 读文件 (0)
- 转义字符 (1)
- command (1)
- web service (3)
- 锁 (1)
- shell 脚本 (1)
- 遇到的错误 (2)
- tomcat (14)
- 房产 (5)
- bootstrap jquery ui (1)
- easyui (2)
- 个人征信 (1)
- 读写分离 (1)
- 备份 (1)
- rmi (6)
- webservice (1)
- JMX (4)
- 内存管理 (3)
- java设计 (1)
- timer (1)
- lock (2)
- concurrent (2)
- collection (1)
- tns (1)
- java基础 (15)
- File (1)
- 本机资源 (1)
- bat (1)
- windows (4)
- 数据结构 (3)
- 代码安全 (1)
- 作用域 (1)
- 图 (2)
- jvm内存结构 (1)
- 计算机思想 (1)
- quartz (6)
- Mongo DB (2)
- Nosql (4)
- sql (5)
- 第三方Java 工具 jar 项目 (2)
- drools (1)
- java swing (2)
- 调用console (1)
- runtime (1)
- process (1)
- swing (2)
- grouplayout (1)
- dubbo (0)
- bootstrap (0)
- nodejs (2)
- SVN hooks (1)
- jdbc (3)
- jdbc error (1)
- precedure (1)
- partition_key (1)
- active mq (1)
- blob (2)
- Eclipse (6)
- web server (1)
- bootstrapt (2)
- struts (1)
- ajax (1)
- js call back (1)
- 思想境界拓展 (1)
- JIRA (1)
- log (1)
- jaxb (3)
- xml java互相转换 (1)
- 装修 (2)
- 互联网 (2)
- threadlocal (3)
- mybatis (22)
- xstream (1)
- 排序 (1)
- 股票资源 (1)
- RPC (2)
- NIO (3)
- http client (6)
- 他人博客 (1)
- 代理服务器 (1)
- 网络 (2)
- web (1)
- 股票 (5)
- deadlock (1)
- JConsole (2)
- activemq (3)
- oralce (1)
- 游标 (1)
- 12月13日道富内部培训 (0)
- grant (1)
- 速查 (2)
- classloader (4)
- netty (4)
- 设计模式 (2)
- 缓存 (2)
- ehcache (2)
- framework (1)
- 内存分析 (2)
- dump (1)
- memory (2)
- 多高线程,并发 (1)
- hbase (2)
- 分布式系统 (1)
- socket (3)
- socket (1)
- 面试问题 (1)
- jetty (2)
- http (2)
- 源码 (1)
- 日志 (2)
- jni (1)
- 编码约定 (1)
- memorycache (1)
- redis (13)
- 杂谈 (1)
- drool (1)
- blockingqueue (1)
- ScheduledExecutorService (1)
- 网页爬虫 (1)
- httpclient (4)
- httpparser (1)
- map (1)
- 单例 (1)
- synchronized (2)
- thread (1)
- job (1)
- hashcode (1)
- copyonwriteArrayList (2)
- 录制声音 (1)
- java 标准 (2)
- SSL/TLS (1)
- itext (1)
- pdf (1)
- 钻石 (2)
- sonar (1)
- unicode (1)
- 编码 (4)
- html (1)
- SecurityManager (1)
- 坑 (1)
- Restful (2)
- svn hook (1)
- concurrentHashMap (1)
- 垃圾回收 (1)
- vbs (8)
- visual svn (2)
- power shell (1)
- wmi (3)
- mof (2)
- c# (1)
- concurrency (1)
- 劳动法 (1)
- 三国志游戏 (2)
- 三国 (1)
- 洪榕 (2)
- 金融投资知识 (1)
- motan (1)
- tkmybatis mapper (1)
- 工商注册信息查询 (1)
- consul (1)
- 支付业务知识 (2)
- 数据库备份 (1)
- 字段设计 (1)
- 字段 (1)
- dba (1)
- 插件 (2)
- PropEdit插件 (1)
- web工程 (1)
- 银行业知识 (2)
- 国内托管银行 (1)
- 数据库 (1)
- 事务 (2)
- git (18)
- component-scan (1)
- 私人 (0)
- db2 (14)
- alias (1)
- 住房 (1)
- 户口 (1)
- fastjson (1)
- test (6)
- RSA (2)
- 密钥 (1)
- putty (1)
- sftp (1)
- 加密 (1)
- 公钥私钥 (3)
- markdown (1)
- sweet (1)
- sourcetree (1)
- 好工具 (1)
- cmd (1)
- scp (1)
- notepad++ (1)
- ssh免密登录 (1)
- https (1)
- ssl (2)
- js (2)
- h2 (1)
- 内存 (2)
- 浏览器 (1)
- js特效 (1)
- io (1)
- 乱码 (1)
- 小工具 (1)
- 每周技术任务 (1)
- mongodb (7)
- 内存泄漏 (1)
- 码云 (2)
- 如何搭建java 视频服务器 tomcat (1)
- 资源 (1)
- 书 (1)
- 四色建模法 (1)
- 建模 (1)
- 配置 (1)
- 职位 (1)
- nginx (1)
- excel (1)
- log4j2 (2)
- 做菜 (1)
- jmap (1)
- jspwiki (1)
- activiti (1)
- 工作流引擎 (1)
- 安卓 (1)
- acitviti 例子 (1)
- 二维码 (1)
- 工作流 (1)
- powerdesign (2)
- 软件设计 (1)
- 乐观锁 (1)
- 王者荣耀 (1)
- session (2)
- token (5)
- cookie (4)
- springboot (24)
- jwt (2)
- 项目路径 (1)
- magicbook (1)
- requestType (1)
- json (2)
- swagger (1)
- eolinker (1)
- springdata (1)
- springmvc (1)
- controlleradvice (1)
- profile (1)
- 银行四要素 (1)
- 支付人员资源 (1)
- 支付渠道 (1)
- yaml (1)
- 中文编码 (1)
- mongo (2)
- serializable (1)
- 序列化 (1)
- zyd (1)
- unittest (1)
- 工具 (1)
- Something (1)
- 通达信 (1)
- protobuf (1)
- 算法 (1)
- springcloud (2)
- hikari (1)
- rocketmq (7)
- cachecloud (1)
- serfj (1)
- axure (1)
- lombok (1)
- 分布式锁 (1)
- 线程 (2)
- 同步代码块 (1)
- cobar (1)
- mq (1)
- rabbitmq (1)
- 定时执行 (1)
- 支付系统 (3)
- 唱歌 (1)
- elasticjob (1)
- 定时任务 (1)
- 界面 (1)
- flink (2)
- 大数据 (1)
- 接私活 (0)
- 内部培训 (2)
最新评论
-
dannyhz:
做股票从短线 试水,然后 慢慢发现 波段和 中期的故事可挖, ...
搭台唱戏 -
dannyhz:
http://developer.51cto.com/art/ ...
如何自己开发框架 它的注意点是什么
MySQL Replication, 主从和双主配置
MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场合。与之对应的另一个技术是同步的MySQL Cluster,但因为比较复杂,使用者较少。
下图是MySQL官方给出了使用Replication的场景:
Replication原理
Mysql 的 Replication 是一个异步的复制过程,从一个MySQL节点(称之为Master)复制到另一个MySQL节点(称之Slave)。在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(SQL 线程和 I/O 线程)在 Slave 端,另外一个线程(I/O 线程)在 Master 端。
要实现 MySQL 的 Replication ,首先必须打开 Master 端的 Binary Log,因为整个复制过程实际上就是 Slave 从 Master 端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。
看上去MySQL的Replication原理非常简单,总结一下:
* 每个从仅可以设置一个主。
* 主在执行sql之后,记录二进制log文件(bin-log)。
* 从连接主,并从主获取binlog,存于本地relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。
从这几条Replication原理来看,可以有这些推论:
* 主从间的数据库不是实时同步,就算网络连接正常,也存在瞬间,主从数据不一致。
* 如果主从的网络断开,从会在网络正常后,批量同步。
* 如果对从进行修改数据,那么很可能从在执行主的bin-log时出现错误而停止同步,这个是很危险的操作。所以一般情况下,非常小心的修改从上的数据。
* 一个衍生的配置是双主,互为主从配置,只要双方的修改不冲突,可以工作良好。
* 如果需要多主的话,可以用环形配置,这样任意一个节点的修改都可以同步到所有节点。
主从设置
因为原理比较简单,所以Replication从MySQL 3就支持,并在所有平台下可以工作,多个MySQL节点甚至可以不同平台,不同版本,不同局域网。做Replication配置包括用户和my.ini(linux下为my.cnf)两处设置。
首先在主MySQL节点上,为slave创建一个用户:
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'192.168.1.10' IDENTIFIED BY 'slave';
实际上,为支持主从动态同步,或者手动切换,一般都是在所有主从节点上创建好这个用户。然后就是MySQL本身的配置了,这需要修改my.cnf或者my.ini文件。在mysqld这一节下面增加:
server-id=1
auto-increment-increment=2
auto-increment-offset=1
log-bin
binlog-do-db=mstest
binlog_format=mixed
master-host=192.168.1.62
master-user=slave
master-password=slave
replicate-do-db=mstest
上面这两段设置,前一段是为主而设置,后一段是为从设置的。也就是说在两个MySQL节点上,各加一段就好。binlog-do-db和replicate-do-db就是设置相应的需要做同步的数据库了,auto-increment-increment和auto-increment-offset是为了支持双主而设置的(参考下一节),在只做主从的时候,也可以不设置。
双主的设置
从原理论来看MySQL也支持双主的设置,即两个MySQL节点互为主备,不过虽然理论上,双主只要数据不冲突就可以工作的很好,但实际情况中还是很容发生数据冲突的,比如在同步完成之前,双方都修改同一条记录。因此在实际中,最好不要让两边同时修改。即逻辑上仍按照主从的方式工作。但双主的设置仍然是有意义的,因为这样做之后,切换主备会变的很简单。因为在出现故障后,如果之前配置了双主,则直接切换主备会很容易。
双主在设置时,只需将上面的一段设置复制一份,分别写入两个MySQL节点的配置文件,但要修改相应的server-id,auto-increment-offset和master-host。auto-increment-offset就是为了让双主同时在一张表中进行添加操作时不会出现id冲突,所以在两个节点上auto-increment-offset设置为不同的值就好。 另:不要忘了,在两个节点上都为对方创建用户。 应用层的负载均衡 本文只介绍了MySQL自身的Repilication配置,在上面的图中也可以看出,有了Replication,还需要应用层(或者中间件)做一个负载均衡,这样才能最大程度发挥MySQL Replication的优势,这些将在以后探讨。
发表评论
-
根据字段查询含有这个字段的表
2019-04-02 16:12 317select schema_name, TABLE_NAME, ... -
mysql 加索引的 inner join ,left join, right join 比较
2018-10-15 16:25 551三表 mysql 加索引 引用 https://blog.cs ... -
show 方法 mysql
2018-09-28 20:43 405引用 show index from table_name; ... -
mysql 命令
2018-09-27 13:45 314引用C:\Users\admin>mysql -h10. ... -
mysql时间 比较时间差函数
2018-08-21 21:09 410引用 mysql中计算两个日期的时间差函数TIMESTAMP ... -
mysql 时间 format
2018-08-06 17:29 366引用 SELECT DATE_FORMAT('2017-09- ... -
根据status来分组
2018-07-18 18:42 337引用 根据 apply_status 的值 来分类 ... -
mysql 本地服务器 让其他机器能访问
2018-05-23 00:14 355引用 C:\Program Files (x86)\MySQ ... -
group_concat 汇总的拼接字段好方法
2018-04-11 13:47 586select * from fm_voucher_detail ... -
mysql 对日期的写法 mybatis
2018-03-20 15:43 1316引用 字段截日期来等于 传入的日期类型 Date(ar.pa ... -
mysql count 各种情况 case when
2018-03-20 15:34 954select a.num , a.success ... -
mysql 根据sql查询
2018-03-19 11:59 399引用 根据日期查 select * from fm_acc ... -
mysql 的 序列的实现
2018-03-12 13:58 430http://blog.csdn.net/maidou_201 ... -
mysql 三种插入方式 insert ignore replace into ON DUPLICATEKEY UPDATE
2017-12-05 15:22 0http://blog.csdn.net/liuabc0719 ... -
mysql实现merge into
2017-12-05 15:20 3162http://blog.itpub.net/29989552/ ... -
mysql 单表极限
2017-12-05 15:08 676引用 账户流水表 mysql> select coun ... -
mysql千万级数据库插入速度和读取速度的调整记录
2017-12-05 14:59 764引用 http://www.111cn.net/d ... -
MySQL的内存表
2017-12-05 14:33 342引用 “内存表”顾名 ... -
处理数据库百万级数据的注意点
2017-12-05 14:31 635引用 最近的项目需 ... -
mongodb客户端
2017-10-02 13:25 433D:\Lib\dev_tool\MongoVUE 1.5.3
相关推荐
MySQL 5.7 双主互备、高可用与读写分离是数据库系统设计中的重要概念,用于确保数据的稳定性和服务的连续性。在这个实战演练中,我们将深入探讨如何配置和实现这些特性,以及如何结合 keepalived 来增强系统的可用性...
Mycat是一款开源的数据库中间件,它可以实现对多个MySQL实例的连接管理和负载均衡,支持SQL路由等功能,进而实现读写分离。 ##### 启用Mycat读写分离 完成MySQL主从配置后,下一步是启用Mycat的读写分离机制。这...
### MySQL主从同步与读写分离配置详解 #### 一、实验目的 在现代的生产环境中,单一的MySQL服务器往往无法满足对数据处理的安全性、高可用性和高并发的需求。因此,采用**主从同步(Master-Slave Replication)**...
MySQL 读写分离与主从复制 MySQL 读写分离是指在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理 select 查询,达到提高数据库整体读写性能的目的。主数据库另外一个功能就是负责将事务性查询导致的...
### MySQL Replication 主从复制与读写分离配置详解 #### 一、背景介绍 MySQL replication是一种数据复制技术,主要用于实现数据库的高可用性、负载均衡和数据备份等场景。通过搭建主从复制环境,可以实现在多台...
MySQL数据库在许多业务环境中是核心组件,为了保证数据的安全性和服务的连续性,通常需要实现主备高可用和双活架构。Nginx作为一个流行的反向代理服务器,可以通过配置实现对MySQL主备集群的负载均衡,提高系统的...
本文将详细介绍如何利用Mycat这一开源数据库中间件实现MySQL数据库的主从读写分离,并通过具体的配置步骤及示例进行说明。 #### 二、Mycat简介 Mycat是一款开源的数据库连接池产品,它位于Java应用程序和数据库...
以下是实现MySQL读写分离的具体步骤: 1. **搭建MySQL主从环境**: - 在两台主机(host1和host2)上安装相同版本的MySQL(例如5.0.45)。 - 在master节点上,配置日志二进制文件(log-bin),设置server-id,并...
MySQL的主从复制(Master-Slave Replication)和读写分离(Read-Write Separation)是实现这一目标的常用方法。这里我们将探讨如何配置MySQL主从复制,以及使用Amoeba或MySQL-Proxy进行读写分离。 首先,让我们了解...
4. 主从复制:MySQL的主从复制功能是实现读写分离、数据备份和高可用性的重要工具。主服务器记录所有的数据更改,并将这些更改作为二进制日志文件保存在本地。从服务器通过读取这些二进制日志文件来复制数据更改,使...
- **主服务器故障**:模拟主服务器故障情况,停止主服务器的MySQL服务,验证读写分离功能是否正常工作。 ##### 3.2 方案二:自动主从切换 - **配置**:与方案一相似,但两个节点都配置为`writeHost`。 - `...
采用MySQL Replication+ MySQL Proxy+Heartbeat实现MySQL读写分离HA 双Master都安装MySQL Proxy和Heartbeat(也可以单独安装MySQL Proxy,Heartbeat跟MySQL Proxy装在一起),多个Slave跟每个Master进行多主单从...
MySQL的主从复制是数据库高可用性和负载均衡的一种常见实现方式,它允许数据从一个主服务器(Master)同步到一个或多个从服务器(Slave)。这种架构可以实现读写分离,提高系统的读取性能,因为大部分应用程序的读...
MySQL 读写分离是一种常见的数据库优化策略,它将数据库的读操作和写操作分配到不同的服务器上,以提高系统的并发处理能力和响应速度。在大型应用系统中,由于大量的读操作通常远超过写操作,这种分离可以显著提升...
### MySQL的读写分离与主从复制 #### 一、背景与需求 在现代Web应用中,数据库往往面临着巨大的读写压力。对于大部分应用程序来说,读取数据的需求远远大于写入数据的需求,即所谓的“读多写少”。为了提高系统的...
实现读写分离的一个关键技术点是MySQL的主从复制功能。以下是基于MySQL 5.5及以上版本的主从配置示例。 ##### 4.1 主数据库服务器配置 在MySQL的配置文件`my.ini`(Windows系统)或`my.cnf`(Linux系统)中进行以下...
### Mycat+MySQL Galera 读写分离验证安装手册知识点详解 #### 一、Mycat与MySQL Galera概述 **Mycat**是中国开源社区第一个成熟可用的数据库中间件项目,它支持读写分离、分库分表等功能,能够为用户隐藏底层...
这种方式可以实现数据的热备援、读写分离、负载均衡等功能。 1. 案例 1:MySQL 一主一从 在这个案例中,我们将配置一个 MySQL 主服务器和一个从服务器。主服务器的 IP 地址为 192.168.4.51,从服务器的 IP 地址为 ...