mysql集群

MySQL数据库 介绍,安装,基本操作

雨燕双飞 提交于 2019-12-11 01:36:08
- 数据库介绍: 1.随意存放在一个文件中的数据,数据的格式千差万别   tank|123 jason:123 sean~123 2.软件开发目录规范   - Project:   - conf   - bin   - core   - db: 存放一个个的文件   1、2都是从本地读取的数据。 3.将所有数据存放到一个第三方的公共位置,同一个软件凡是需要操作数据的,就必须去这个共享的位置操作。   - 第三方的公共位置(数据库)   - 数据库集群: 将同一个数据库中的数据,复制到不同的服务器中。 4. MySQL数据: C ---> S架构软件   1) mysql数据库本质上就是一个基于网络通信的软件。   2) 所有基于网络通信的软件,底层都是socket。   - 服务端:     - 基于网络通信     - 收发消息   - 客户端:     - 基于网络通信     - 收发消息   - 所有语言若想操作数据库,拿到服务端ip和port,都必须遵循一套标准的解析指令 ---》 SQL语句 ***** 学习SQL语句 - DBMS: 数据库管理系统   - 关系型数据库: MySQL、Oracle、DB2、sql server、....     - 1) 表结构       - 需要哪些字段       - 字段是什么类型     - 2) 字段与字段类型      

关系型数据库——MySQL

感情迁移 提交于 2019-12-11 01:12:23
【MySQL架构图】 MySQL简要架构图如下图所示,引擎层以插件方式集成了不同的存储引擎,它们共用Server层对外提供服务。    连接器:用于连接管理,进行身份认证及权限相关的管理。(登录MySQL) 查询缓存区:执行查询语句时,先从缓存区查询。(该功能V8.0之后移除) 分析器:未命中缓存时,对SQL进行词法分析、语法分析。 优化器:按照MySQL认为的最优方案,生成执行计划。 执行器:执行SQL,并从存储引擎返回数据。 存储引擎:存储数据,提供读写接口 【MySQL存储引擎】 V5.5之前MySQL的默认存储引擎为MyISAM(ISAM:Indexed Sequential Access Method,即有索引的顺序访问方法。MyISAM是基于传统的ISAM优化而来) V5.5之后,MySQL的默认存储引擎便更改为InnoDB,主要是为支持数据库事务安全而设计。 # MyISAM vs InnoDB 锁:MyISAM支持表级锁;InnoDB支持行级锁(默认)。因此并发操作时,InnoDB的效率要更高。 性能:MyISAM执行大量select和insert操作时,效率更高;InnoDB执行大量update和insert操作时,效率更高。 外键:MyISAM不支持;InnoDB支持外键。 事务:MyISAM不支持事务操作;InnoDB支持数据库事务。 崩溃后安全恢复

MyCat:取代Cobar数据库中间件

£可爱£侵袭症+ 提交于 2019-12-10 15:46:40
Cobar 是阿里巴巴开源的一个数据库中间件,为了解决类似proxy这类的问题。目前同类型的有奇虎360开源的Atlas。类似的有基本在线上用起来很不爽,问题多多的比如MySQL Proxy和SQL Relay,基本可以忽略。 Cobar 下载: https://github.com/alibaba/cobar Atlas 下载: https://github.com/Qihoo360/Atlas =============================================================== MyCat:取代Cobar数据库中间件 什么是MyCAT?简单的说,MyCAT就是: 一个彻底开源的,面向企业应用开发的“大数据库集群” 支持事务、ACID、可以替代Mysql的加强版数据库 ? 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 ? 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server ? 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 ? 一个新颖的数据库中间件产品。 目标 低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。 关键特性 支持 SQL 92标准 支持Mysql集群,可以作为Proxy使用

Mysql-cobar集群安装部署手册

送分小仙女□ 提交于 2019-12-10 15:33:09
本文档以 mysql5.6.17-1 rhel 版本为例,介绍 mysql 一机多实例,以两台机器各两个实例,实现机器间的 mysql 实例主主复制功能。并将 4 个 mysql 实例纳入到 cobar 集群,实现 mysql 的分布式部署。部署结构图如下: 一. Mysql RPM 包多实例安装以及双主复制配置 1. 检测是否有历史版本存在,命令为: rpm –qa|grep –iE mysql ; 2. 卸载历史版本,命令为: rpm -e –nodeps 包名。包名为步骤一中所查询的结果; 3. 删除历史版本的文件和库,查找命令为: find / -name mysql ,然后利用 rm –rf “ 路径 ” 来删除; 4. 删除配置文件, my.cnf 一般存在于 /etc/my.conf 下面或者 /usr/bin 下面,需要手动删除。 5. Mysql RPM 包 5.6 以后会自动建立 mysql 用户组与用户,安装前可以卸载到原有的 mysql 用户,命令: userdel –rf mysql ; 6. Mysql 基本功能仅需要安装 MySQL-server-community.*.rpm 和 MySQL-client-community.*.rpm ,以 root 用户登录后, 执行 rpm –ivh “MySQL-*.rmp” 完成 mysql

Amoeba for mysql 读写分离

馋奶兔 提交于 2019-12-10 15:16:20
Amoeba(变形虫)项目 http://docs.hexnova.com/amoeba/ ,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在应用层访问MySQL的 时候充当SQL路由功能,专注于分布式数据库代理层(Database Proxy)开发。座落与 Client、DB Server(s)之间,对客户端透明。具有负载均衡、高可用性、SQL 过滤、读写分离、可路由相关的到目标数据库、可并发请求多台数据库合并结果。 通过Amoeba你能够完成多数据源的高可用、负载均衡、数据切片的功能,目前Amoeba已在很多 企业的生产线上面使用,但amoeba目前不支持事务。 环境:数据库master服务器 192.168.32.131 数据库slave服务器 192.168.32.132 amoeba for mysql 192.168.32.130 一、主从配置过程略(见上下文) 二、master 创建读写分离连接用户 mysql > grant all on *.* to 'proxy'@'192.168.32.130' identified by 'proxy'; #从服务器会自动同步 三、amoeba代理服务器 1、amoeba基于Java开发,首先安装jdk 官网最新jdk wget -c

索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!

强颜欢笑 提交于 2019-12-10 15:01:05
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结。自上上篇写了 手动搭建Redis集群和MySQL主从同步(非Docker) 和上篇写了 动手实现MySQL读写分离and故障转移 之后,索性这次把数据库中最核心的也是最难搞懂的内容,也就是索引,分享给大家。 这篇博客我会谈谈对于索引结构我自己的看法,以及分享如何从零开始一层一层向上最终理解索引结构。 从一个简单的表开始 create table user( id int primary key, age int, height int, weight int, name varchar(32) )engine = innoDb; 相信只要入门数据库的同学都可以理解这个语句,我们也将从这个最简单的表开始,一步步地理解MySQL的索引结构。 首先,我们往这个表中插入一些数据。 INSERT INTO user(id,age,height,weight,name)VALUES(2,1,2,7,'小吉'); INSERT INTO user(id,age,height,weight,name)VALUES(5,2,1,8,'小尼'); INSERT INTO user(id,age,height,weight,name)VALUES(1,4,3,1,'小泰'); INSERT INTO user(id

MySQL 主从理论知识+搭建主从

狂风中的少年 提交于 2019-12-10 14:53:43
什么是MySQL主从同步 数据是一个应用至关重要的一部分。 从目的出发,主从同步有那么点备份的意思,主库(Master)将自己库中的写入同时同步给自己的从库(Slave), 当主库发生某些不可预知的状况,导致整个服务器无法使用时,由于从库中也有一份数据,所以数据可以做到快速恢复,不造成或者减少造成数据的损失。 当然,这只是第一个层面,如果主从库的作用仅限于此,那么我个人认为没有必要分为两个数据库,只需要定期将数据库内容作为快照发送到另一台服务器,或者每次写入时将写入内容实时发送到另一台服务器不就好了吗,这样不但可以节约资源,也可以起到容灾备份的目的。 当然主从同步的作用绝不可能仅限于此,一旦我们配置了主从结构,我们通常不会让从节点仅仅只作为备份数据库,我们应该还会相应地配置上读写分离 (可以使用MyCat或者其它中间件,可以自己了解一下,关于MyCat我在下一篇博客中会说这个,篇幅可能会有点长,所以就再写一篇吧)。 在实际环境下,对于数据库的读操作数目远大于对数据库的写操作,所以我们可以让Master只提供写的功能,然后将所有的读操作都移到从库,这就是我们平时常说的读写分离, 这样不但可以减轻Master的压力,还可以做容灾备份,一举两得 。 MySQL主从同步的原理 说完了主从同步的概念,下面来说说主从同步的原理,其实原理也非常简单,没有Redis集群那么多的概念。

部署MYSQL高可用集群

拈花ヽ惹草 提交于 2019-12-10 12:14:17
mysql-day08 部署 MYSQL 高可用集群 u 集群架构 MHA 工作过程 • MHA Manager 会定时探测集群中的 master 节点 , 当 master 出现故障时 , 它可以自动将最新数据的 sl ave 提升为新的 master , 然后将所有其他的 slave 重新指向新的 master 。整个故障转移过程对应用程 序完全透明。 – ( 1 ) 从宕机崩溃的 master 保存二进制日志事件 ( binlog events) – ( 2 ) 识别含有最新更新的 slave – ( 3 ) 应用差异的中继日志 ( relay log ) 到其他的 slave – ( 4 ) 应用从 master 保存的二进制日志事件 ( binlog events ) – ( 5 ) 提升一个 slave 为新的 master ; – ( 6 ) 使其他的 slave 连接新的 master 进行复制 ; u 准备环境 一、集群定义:使用多台服务提供相同的服务 二、高可用集群定义:主备模式,被客户端访问的称作主,当主宕机时,备用 服务器自动接收客户端访问。 拓扑结构 client | | --> vip 192.168.4.100 《 51 , 52 , 53 》 _____________________________________________________

区块链数据是存在链上还是数据库里?

半腔热情 提交于 2019-12-10 08:03:48
​在回答这个问题之前,首先要理清“ 区块链数据 ”和“ 链上数据 ”的概念。 区块链数据 “区块链数据”广义上包括区块链的 区块数据 和区块链的 状态数据: 区块数据记录了区块链上发生的每一笔交易,譬如小明给小王转账了50元、小王充值了20元等类似这样的交易数据; 状态数据记录了区块链上每个账户或智能合约的当前状态,比如小明当前的余额是50元、小王当前的余额是100元。 无论区块数据还是状态数据,它们都是由区块链节点使用和存储的。区块链节点是一个程序,运行在我们的个人电脑、虚拟机或服务器上。多个分布在不同电脑或服务器上的区块链节点,通过网络互相连接,组成了完整的区块链网络。 区块链节点通常会把区块链数据存储在个人电脑、虚拟机或服务器上,存储区块链数据最常见的介质,就是磁盘。 区块链节点不会直接访问磁盘,它们会通过特定的数据库,如LevelDB、RocksDB或MySQL等单机或分布式数据库来操作数据。相比于直接操作磁盘,数据库抽象了特定的数据访问模型,对区块链节点更为友好。 因此,当我们说:“区块链数据保存在数据库”时,可以认为区块链节点将区块链数据保存在MySQL(或其它数据库),MySQL将区块链数据保存在磁盘。 数据库有 独立式 与 嵌入式 之分: 独立式数据库,如MySQL、Oracle是通常理解的数据库,独立式数据库作为独立的进程运行,需要单独部署和启停

大型互联网应用去Oracle改造经验总结

◇◆丶佛笑我妖孽 提交于 2019-12-10 02:08:25
为什么要去Oracle 现在好像是个互联网公司好像都在谈去IOE,也有人问过我们,去IOE到底有什么受益?我们公司为什么要去IOE呢?当然实际情况是因为我们上层领导决定的,所以我们都热火朝天的干起来了,就跟我们当时为什么将已经开发的系统从MySQL数据库改成Oralce一样,都是上层领导决定的。对此我只能哈哈哈了。 但是我有自己的思考,为什么我们要去Oracle呢?对我们到底会带来什么受益呢?我个人觉得对于大型互联网公司用MySQL替代Oracle的原因有这样一些。 大规模部署成本可大幅度降低 因为大型互联网公司往往存储非常大规模的数据,数据库的读写流量也往往巨大,有数以千计的各种应用都需要用到数据库,这样购买硬件、软件license的成本巨大,随着业务不断发展,部署规模不断增加,我们的成本也将持续增加,这个帐应该很简单,不必细算。因此从成本考量我们是动力去做这个改造的。 但是我觉得规模可控范围之内的企业级应用,并且数据价值极高的业务,比如典型的银行,他们还依旧会选择使用Oracle更加合适。 有财力养MySQL专家团队可以搞定一切 由于互联网的集中化部署和维护的特点,使得我们开发和运维团队的价值较高,因此大规模互联网公司有财力聘请专门的MySQL专家技术团队,这些专家可以把MySQL的使用、部署、运维、原理源码都搞得非常透彻,他们有能力搞定MySQL出现的一切问题