mysql主从配置

MySQL主主同步方案

不羁的心 提交于 2019-12-01 19:52:19
MySQL 主主同步方案 l MySQL 主主 +Keepalived l MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用 mysql 主 主 方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加 mysql 入口,增加高可用。 不过多主需要考虑自增长 ID 问题,这个需要特别设置配置文件,比如双主,可以使用奇偶 ,总之,主之间设置自增长 ID 相互不冲突就能完美解决自增长 ID 冲突问题。 主主方案实现思路 1、 两台 mysql 都可读写,互为主备 。 默认只使用一台 masterA 负责数据的写入,另一台 masterB 备用 处于备用状态 ; 2、 masterA 是 masterB 的主库, masterB 又是 masterA 的主库,它们互为主从; 3、 两台主库之间做高可用 , 可以采用 keepalived 等方案 , 使用 VIP 对外提供服务; 4、 所有提供服务的从服务器与 masterB 进行主从同步(双主多从) ; 5、 建议采用高可用策略的时候, masterA 或 masterB 均不因宕机恢复后而抢占 VIP (非抢占模式); 这样做可以在一定程度上保证主库的高可用 , 在一台主库 down 掉之后 ,

Mycat读写分离(一主一从)

耗尽温柔 提交于 2019-12-01 19:33:22
Mycat读写分离(一主一从) 我们一共使用2个虚拟机,每个机器的作用如下: 主机名 IP 地址 任务角色 数据库 node1 192.168.1.121 Mycat, master MySQL node2 192.168.1.122 slave MySQL Mysql主服务器配置 第一步:修改/etc/my.cnf文件: 在[mysqld]段下添加: datadir=/var/lib/mysql 默认数据存储目录 server-id=1 主机唯一id log-bin=/var/lib/mysql/mysqlbin 启用二进制日志 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid binlog-do-db=boot_security 设置需要复制的数据库 binlog-ignore-db=mysql 设置不要复制的数据库 binlog_format=STATEMENT 设置logbin格式 第二步:重启mysql服务 systemctl mysqld restart 第三步:建立帐户并授权slave mysql> GRANT REPLICATION SLAVE ON *.* TO 'sendcode'@'%' IDENTIFIED BY '123456'; #一般不用root帐号,“%

Mysql规范50条

夙愿已清 提交于 2019-12-01 18:54:52
支付业务很大程度上依赖于数据库做支持,正确的设置数据库参数以及正确的使用数据库对非常重要,我这把 自己之前的一些心得贴出来,抛砖引玉,大家可以把自己的一些心得分享出来供大家参考学习。 一.数据库配置 1. innodb_flush_log_at_trx_commit,这个对支付业务来说是关键性的设置之一,可选的参数值有0,1,2, 支付需要设置成1. 2. 对交易以及记账部分来说,必须是innode引擎,以支持事务 3. 事务隔离级别,权衡安全性和效率,使用可重复读 4. innodb_lock_wait_timeout,这个是锁超时时间,不建议太大,怕引起雪崩 二.业务设计 1. 不用物理删除,即尽量避免用delete语句,drop命令等;通过软删除处理,即通过额外的字段标 2. 明记录的删除状态;虽然对写代码来讲有些麻烦,但实践证明是非常值得的 3. 在系统设计之初就要定好编码规范,对存入的数据做相应转换并做好escape处理 4. 除列表查询外,尽量用主键操作;核心交易系统中尽量避免非主键操作 5. 避免schema中1对多设计,概念简单,编码很难 6. 就mysql来说,尽量使用其最简单的功能,不用其高级功能如触发器,连表等 7. 就mysql来说,尽量不让其做计算功能,而是让业务层来实现计算逻辑 8. 当要锁多条记录时, 要考虑死锁的可能以及预防的措施 9.

mycat分库分表

て烟熏妆下的殇ゞ 提交于 2019-12-01 18:42:51
系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。 安装 Mycat官网: http://www.mycat.io/ 可以了解下Mycat的背景和应用情况,这样使用起来比较有信心。 Mycat下载地址: http://dl.mycat.io/ 官网有个文档,属于详细的介绍,初次入门,看起来比较花时间。 下载: 建议大家选择 1.6-RELEASE 版本,毕竟是比较稳定的版本。 安装: 根据不同的系统选择不同的版本。包括linux、windows、mac,作者考虑还是非常周全的,当然,也有源码版的。(ps:源码版的下载后,只要配置正确,就可以正常运行调试,这个赞一下。) Mycat的安装其实只要解压下载的目录就可以了,非常简单。 安装完成后,目录如下: 目录 说明 bin mycat命令,启动、重启、停止等 catlet catlet为Mycat的一个扩展功能 conf Mycat 配置信息,重点关注 lib Mycat引用的jar包,Mycat是java开发的 logs 日志文件,包括Mycat启动的日志和运行的日志。 配置

MYSQL 读写分离

帅比萌擦擦* 提交于 2019-12-01 17:04:36
基于mysql社区版5.7,使用软件:maxScale代理软件。 ​ 读写分流的好处在于当公司业务量达到一定量的时候,单机数据库实例负荷变得很大,如果在主从结构同步的结构基础上使用读写分离。将写操作分流到master节点实例,slave节点通过主从同步的设置也可以进行数据同步,将大量的查询操作转到slave从节点实例上。这样大大降低了主节点的负载,这样也提升了数据性能。 ​ 读写分离一般都有两种情况,第一种情况是来自软件开发的时候软件自己设计了读写分离的模式。第二种就是依靠软件来实现读写分离。maxScale就是通过解析SQL语句,实现了读写分离,应用程序不需要二次软件开发,大大降低了成本。 环境准备:maxScale:192.168.4.50 master1 192.168.4.53 slave1:192.168.4.54 slave2:192.168.4.55 首先检查备份环境是否主从是否正常 for i in 54 55 ;do ssh root@192.168.4.$i 'mysql -uroot -p1234 -e "show slave status \G" | grep IO_Running && mysql -uroot -p1234 -e "show slave status \G" | grep SQL_Running | head -1';done 看看应答

Mysql两阶段提交

旧街凉风 提交于 2019-12-01 16:55:57
在看Mysql相关内容的时候经常听到两阶段提交,那以前都是云里雾里的,通过学习丁奇老师的这篇文章彻底明白了其流程和含义。 提到两阶段提交,必须先说一下两个日志: redo log 和 binlog 重要的日志模块:redo log 数据在磁盘中是按照主键顺序存储的,在对数据进行更新操作(insert、update、delete)的时候,既要写数据又可能对其他数据进行移动,如果每次都写进磁盘是很耗性能的。 redo log 这里就用到的WAL技术,WAL的全称是 Write-Ahead Logging ,它的关键点是先写日志再写磁盘,并且 写日志是顺序写 速度很快。 具体来说,当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log ,并更新内存,这个时候更新就算是完成了。同时Innodb引擎会在适当的时候讲这个操作更新到磁盘里面。 Innodeb的redo log是固定大小的,比如可以配置为一组4个文件,每个文件的大小是1GB,那么总共可以记录4GB的操作,从头开始写,写到末尾就又会到开始循环。当然当大小不够的时候会讲数据刷新到磁盘(数据文件内)。 有了 redo log Innodb 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe . 重要的日志模块:binlog 前面提到的 redo log

mysql中间件研究(Atlas,cobar,TDDL)

孤街醉人 提交于 2019-12-01 16:17:27
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。 Altas架构: Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。 以下是一个可以参考的整体架构,LVS前端做负载均衡,两个Altas做HA,防止单点故障。 Altas的一些新特性: 1.主库宕机不影响读 主库宕机,Atlas自动将宕机的主库摘除,写操作会失败,读操作不受影响。从库宕机,Atlas自动将宕机的从库摘除,对应用没有影响。在mysql官方的proxy中主库宕机,从库亦不可用。 2.通过管理接口,简化管理工作,DB的上下线对应用完全透明

mysql中间件研究(Atlas,cobar,TDDL)【转】

﹥>﹥吖頭↗ 提交于 2019-12-01 16:17:08
mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,failover等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品,Atlas,cobar,tddl,让我们看看它们各自有些什么优点和新特性吧。 Atlas Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。 Altas架构: Atlas是一个位于应用程序与MySQL之间,它实现了MySQL的客户端与服务端协议,作为服务端与应用程序通讯,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节,同时为了降低MySQL负担,它还维护了连接池。 以下是一个可以参考的整体架构,LVS前端做负载均衡,两个Altas做HA,防止单点故障。 Altas的一些新特性: 1.主库宕机不影响读 主库宕机,Atlas自动将宕机的主库摘除,写操作会失败,读操作不受影响。从库宕机,Atlas自动将宕机的从库摘除,对应用没有影响。在mysql官方的proxy中主库宕机,从库亦不可用。 2.通过管理接口,简化管理工作,DB的上下线对应用完全透明

NoSQL开篇——为什么要使用NoSQL

风格不统一 提交于 2019-12-01 15:52:44
http://nosql-database.org/ NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的孙立先生,为大家分享他之于NoSQL方面的经验和体会。 非常荣幸能受邀在InfoQ开辟这样一个关于NoSQL的专栏,InfoQ是我非常尊重的一家技术媒体,同时我也希望借助InfoQ,在国内推动NoSQL的发展,希望跟我一样有兴趣的朋友加入进来。这次的NoSQL专栏系列将先整体介绍NoSQL,然后介绍如何把NoSQL运用到自己的项目中合适的场景中,还会适当地分析一些成功案例,希望有成功使用NoSQL经验的朋友给我提供一些线索和信息。 NoSQL 的分类 NoSQL仅仅是一个概念,NoSQL数据库根据数据的存储模型和特点分为很多种类。 类型 部分代表 特点 列存储 Hbase Cassandra Hypertable 顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。 文档存储 MongoDB CouchDB 文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。 key-value存储 Tokyo Cabinet

MySQL主主+Keepalived实现高可用

[亡魂溺海] 提交于 2019-12-01 15:32:47
在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用 mysql 主 主 方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加 mysql 入口,增加高可用。 不过多主需要考虑自增长 ID 问题,这个需要特别设置配置文件,比如双主,可以使用奇偶 , 总之,主之间设置自增长 ID 相互不冲突就能完美解决自增长 ID 冲突问题 主主方案实现思路 1、 两台 mysql 都可读写,互为主备 。 默认只使用一台 masterA 负责数据的写入,另一台 masterB 备用 处于备用状态 ; 2、 masterA 是 masterB 的主库, masterB 又是 masterA 的主库,它们互为主从; 3、 两台主库之间做高可用 , 可以采用 keepalived 等方案 , 使用 VIP 对外提供服务; 4 、 所有提供服务的从服务器与 masterB 进行主从同步(双主多从) ; 5 、 建议采用高可用策略的时候, masterA 或 masterB 均不因宕机恢复后而抢占 VIP (非抢占模式); 这样做可以在一定程度上保证主库的高可用 , 在一台主库 down 掉之后 , 可以在极短的时间内切换到另一台主库上 , 尽可能减少主库宕机对业务造成的影响,减少了主从同步给 生产 主库带来的压力; 实验步骤: