mysql集群

Mysql -- 读写分离

社会主义新天地 提交于 2020-01-28 20:02:28
文章目录 一、Mysql 读写分离原理 二、关于 Amoeba 三、配置实例 第一步:配置 Amoeba 服务器 第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许amoeba对它们进行访问) 第三步:在 amoeba 服务器上配置读写分离功能 第四步:客户端测试 四、总结 一、Mysql 读写分离原理 读写分离就是只在主服务器上写,只在从服务上读; 主数据库处理事务性查询,从数据库处理 select 查询; 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 二、关于 Amoeba (1)Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。 (2)Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、高可用性提供机制,而不是完全实现它们。需要结合使用MySQL的 Replication等机制来实现副本同步等功能。 三、配置实例 环境说明: 准备三台 Mysql服务器(一台为主服务器,其余两台为从服务器); 一台 Amoeba,用来实现读写分离,写的操作交给主服务器,读的操作发给两台从服务器; 实验验证:在客户机上执行写的操作,在主

MySQL Cluster 7.3.3 官方版本下载

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 15:16:56
MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。 目前官方已经发布MySQL Cluster 7.3.3,远哥将下载地址发布给大家,省得大家去找了: Red Hat Enterprise Linux 6 / Oracle Linux 6 / CentOS Linux 6(64位) http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar Windows(32位和64位) http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-win32.msi http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-winx64.msi MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster

Mysql读写分离3

亡梦爱人 提交于 2020-01-27 03:32:24
主从复制 常用命令: service mysqld start 数据库启动 service iptables stop 数据库停止 mysql –u root 数据库登录 概念 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复制,即MYSQL replication。 在上面的模型中,MYSQL-A就是主服务器,即master,MYSQL-B就是从服务器,即slave。 日志系统A,其实它是MYSQL的日志类型中的二进制日志,也就是专门用来保存修改数据库表的所有动作,即bin log。【注意MYSQL会在执行语句之后,释放锁之前,写入二进制日志,确保事务安全】 日志系统B,并不是二进制日志,由于它是从MYSQL-A的二进制日志复制过来的,并不是自己的数据库变化产生的,有点接力的感觉,称为中继日志,即relay log。 可以发现,通过上面的机制,可以保证MYSQL-A和MYSQL-B的数据库数据一致,但是时间上肯定有延迟,即MYSQL-B的数据是滞后的。 【即便不考虑什么网络的因素

MySQL数据库优化

好久不见. 提交于 2020-01-26 19:35:02
一、MySQL 会遇到的问题:   1、 高并发的读写效率低问题 ---- 解决方案:集群,分布式。   2、 海量数据的读写效率低问题 ----- 解决方案:分表,分库。   3、 高可用和高扩展 ---- 解决方案:动态扩展服务器、防止单点故障、容灾。 二、关系型数据库优化:(原则: 先单机,后多机。 )   2.1 单机 优化方案 :     1.慢SQL的定义--> 分析慢SQL -- 解决慢SQL。         2. 表的设计、索引、引擎的优化。   3. 分表(垂直分表、水平分表)、分区、分库 的优化。    4. 缓存做集群。     5.SQL语句优化      2.2 多机优化方案 (分为多个数据库):     1. 读写分离(要保证 主从同步 ):        28 原则:如果有10个数据库,则 2 个专门做增删改的数据库, 8 个专门做查询的数据库。     2. 缓存做集群 三、定位慢SQL     3.1 查看数据库状态:     3.1.1 查看运行时间: show status like ‘uptime’;     3.1.2 CRUD 执行次数:       Show status like ‘Com_%’;       Show status like ‘Com_update%’       Show status like ‘Com

MySQL 索引总结

别等时光非礼了梦想. 提交于 2020-01-26 15:56:02
1、索引是做什么的? 想象一下,你面前有本词典,数据就是书的正文内容,你就是那个cpu,而索引,则是书的目录 索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。 表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。 大多数MySQL索引(PRIMARY KEY、UNIQUE、INDEX和FULLTEXT)在B树中存储。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。 2、索引越多越好? 大多数情况下索引能大幅度提高查询效率,但: 数据的变更(增删改)都需要维护索引,因此更多的索引意味着更多的维护成本 更多的索引意味着也需要更多的空间 (一本100页的书,却有50页目录?) 过小的表,建索引可能会更慢 (读个2页的宣传手册,你还先去找目录?) 3、索引的字段类型问题 text类型,也可建索引(需指定长度) myisam存储引擎索引键长度综合不能超过1000字节 用来筛选的值尽量保持和索引列同样的数据类型 尽量减少like,但不是绝对不可用,"xxxx%" 是可以用到索引的, 想象一下,你在看一本成语词典,目录是按成语拼音顺序建立,查询需求是,你想找以 "一"字开头的成语("一%"),和你想找包含一字的成语("%一%")

mysql的简介及体系结构

こ雲淡風輕ζ 提交于 2020-01-25 22:08:30
mysql的简介介绍 1、什么是mysql? mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的一款产品,由C和C++语言编写,可移植性高。支持 在多种操作系统上安装,最常见有AIX,linux,window。mysql因为开源免费,所以受到了目前互联网行业的欢迎。 以mysql作为数据库,linux系统作为操作系统,apache或者nginx作为web服务器,perl/php/python作为服务端的脚 本解释器,就可以搭建起一个免费的网站。被业界称为LNMP或者LAMP 2、mysql体系结构 连接者 :不同语言的代码程序和mysql的交互(SQL交互) 1、 连接池 管理、缓冲用户的连接,线程处理等需要缓存的需求 2、 管理服务和工具组件 系统管理和控制工具,例如备份恢复、Mysql复制、集群等 3、 sql接口 接受用户的SQL命令,并且返回用户需要查询的结果 4、 查询解析器 SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构) 5、 查询优化器 SQL语句在查询之前会使用查询优化器对查询进行优化 select id,name from user where age = 40; a、这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行age过滤 b、这个select查询先根据id和name进行属性投影

MySQL——MHA高可用群集架构

心不动则不痛 提交于 2020-01-25 10:46:37
MHA高可用配置及故障切换 文章目录 MHA高可用配置及故障切换 前言 一、MHA特点 二、MHA的组成 三、 传统的Mysql主从架构存在的问题 四、MHA示例 1) 安装MySQL数据库 2) 配置MySQL一主两从 主服务器配置 从服务器配置 3) 安装MHA软件 4) 配置无密码认证 5) 配置MySQL MHA高可用 6) 模拟master故障切换 前言 MHA目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀MySQL故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。 一、MHA特点 自动故障切换过程中,MHA视图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢似乎 使用MySQL 5.5的半同步复制,可以大大降低数据丢失的风险 二、MHA的组成 MHA Manager(管理节点) MHA Node(数据节点) MHA Manager可以单独部署在一台独立的机器上管理多个master

mha的搭建步骤(一主一从架构)

青春壹個敷衍的年華 提交于 2020-01-24 20:28:10
所需脚本文件到这里下载:http://note.youdao.com/share/web/file.html?id=ae8b11a61f7a8aa7b52aac3fcf0c4b83&type=note 环境: centos 6.5 x64 192.168.0.32 # master 192.168.0.33 #管理节点和从节点 slave VIP: 192.168.0.62 iptables打开 mysql端口 selinx关闭: shell > vim /etc/selinux/config SELINUX=disabled 1.安装 mysql 5.5.x以上的版本 (如果是 5.6以上的版本,不建议开启 GTID复制 ),并搭建好双主复制,复制用户: repl,复制用户密码: 123456 主从复制搭建好后,从库执行下面两个命令 (不要加入到 my.cnf中,因为从库随时可能被提升为 master) mysql -e 'set global read_only=1;set global relay_log_purge=0;' 如果是刚刚初始化安装完成的 mysql,建议进行安全清理: mysql > delete from mysql.user where user!='root' or host !='localhost'; mysql > truncate table

企业——MYSQL高可用之MHA

谁说我不能喝 提交于 2020-01-24 20:25:50
1.原理: --从崩溃的master报错二进制日志事件(binlog events) --识别含有最新更新的slave --应用差异的relay log到 其他的slave --应用从master保存的二进制日志事件 --提升一个slave为新的master --使其他的slave连接到新的master进行复制        MHA软件由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 在MHA自动故障切换过程中

MySQL开发规范

只愿长相守 提交于 2020-01-24 15:25:01
MySQL开发规范 基于阿里数据库设计规范扩展而来 : https://yq.aliyun.com/articles/709387 参考,58到家MySQL军规升级版 : https://www.jianshu.com/p/c077581693fb 基础规范 表存储引擎必须使用InnoDB MySQL常见的三种存储引擎(storage_engine) : InnoDB、MyISAM、MEMORY 存储引擎就是指 表的类型以及表在计算机上的存储方式 通过“SHOW ENGINES”语句来查看 MySQL中的存储引擎 特性 innoDB MyISAM Memory 事务安全 支持 无 无 存储限制 64T 有 有 空间使用 高 低 低 内存使用 高 低 高 插入数据的速度 低 高 高 读取数据的速度 低 高 高 对外键的支持 支持 无 无 全文索引 不支持 支持 InnoDB存储引擎 InnoDB给MySQL的表提供了 事务处理 、 回滚 、 崩溃修复能力 和 多版本并发控制 的事务安全 InnoDB存储引擎总支持 AUTO_INCREMENT 。自动增长列的值不能为空,并且值必须唯一。MySQL中规定自增列必须为主键 InnoDB还支持 外键(FOREIGN KEY) 。外键所在的表叫做子表,外键所依赖(REFERENCES)的表叫做父表,父表中被子表外键关联的字段必须为主键。