mysql集群

2. ClustrixDB 文件/参数说明

≯℡__Kan透↙ 提交于 2019-12-06 02:17:03
一、日志 /data/clustrix/log/query.log 记录节点慢SQL/错误SQL/DDL 等信息,节点分开记录 Each entry in the query.log is categorized as one of these types. Specific logging for each query type is controlled by the global or session variable indicated. Query Type Description ALTER CLUSTER Changes made to your cluster via the ALTER CLUSTER command are always logged to the query.log automatically. This logging is not controlled by a global variable. BAD The query reads more rows than necessary to return the expected results. This may indicate a bad plan or missing index. Logging of BAD queries is not enabled by default (

基于Galera Cluster多主结构的Mysql高可用集群

有些话、适合烂在心里 提交于 2019-12-05 22:38:47
Galera Cluster特点 1、多主架构:真正的多点读写的集群,在任何时候读写数据,都是最新的 2、同步复制:集群不同节点之间数据同步,没有延迟,在数据库挂掉之后,数据不会丢失 3、并发复制:从节点APPLY数据时,支持并行执行,更好的性能 4、故障切换:在出现数据库故障时,因支持多点写入,切换容易 5、热插拔:在服务期间,如果数据库挂了,只要监控程序发现的够快,不可服务时间就会非常少。在节点故障期间,节点本身对集群的影响非常小 6、自动节点克隆:在新增节点,或者停机维护时,增量数据或者基础数据不需要人工手动备份提供,Galera Cluster会自动拉取在线节点数据,最终集群会变为一致 7、对应用透明:集群的维护,对应用程序是透明的 Galera Cluster工作过程 客户端发送更新指令到mysql服务器,服务器回复OK,但客户端有可能以事务方式执行,并没有发送确认指令(commit);当客户端发送commit指令确认后,mysql服务器会把数据库的更新复制到同一个集群的其他节点;集群中的所有节点会对数据库的更新进行校验,检查更新完的数据与数据库中的数据是否冲突,如果不冲突,服务器端会回复OK;如果更新的数据与集群中的任意一个节点数据发生冲突,则都会回复error 实现Galera Cluster集群 至少需要三台机器;并且Galera Cluster也是一个数据库服务

MySQL技术体系之核心参数

一个人想着一个人 提交于 2019-12-05 22:19:39
本文主要基于MySQL 5.7版本的数据库环境,总结my.cnf文件中核心参数的配置使用,让更多的人对MySQL技术体系有更全面、更专业的深度了解。 一、客户端核心参数 1、port 端口号,默认3306 2、socket Socket文件地址,默认以.sock为文件名称后缀,用于UNIX套接字通信。 二、服务端全局区(SGA)缓冲区参数 1、innodb_buffer_pool InnoDB缓冲池,位于主内存 缓存被访问过的表数据、索引文件、插入缓冲、数据字典等 推荐大小设置为物理内存的50%-80% 2、innodb_buffer_pool_instance 将缓冲池进一步划分为互相隔离的内存区域,更好的支持并发读写,减少内存争用现象 默认值为1 仅当innodb_buffer_pool参数配置大于1024MB有效 通过命令show engine innodb status查看每个内存区域的内存使用情况 3、innodb_old_blocks_time和innodb_old_blocks_pct InnoDB缓冲池innodb_buffer_pool,内部由LRU链表管理 LRU链表进一步分为old pages list和young pages list: old pages list:存放长时间未被访问的数据页 young pages list:存放最新、最近被访问的数据页

Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录

痴心易碎 提交于 2019-12-05 19:21:14
Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录 转自 https://www.cnblogs.com/kevingrace/p/10466530.html 一. MySQL InnoDB Cluster 介绍 MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, Galera Cluster, InnoDB Cluster, 腾讯的PhxSQL, MySQL Fabric., aliSQL。MySQL官方在2017年4月推出了一套完整的、高可用的Mysql解决方案 - MySQL InnoDB Cluster, 即一组MySQL服务器可以配置为一个MySQL集群。在默认的单主节点模式下,集群服务器具有一个读写主节点和多个只读辅节点。辅助服务器是主服务器的副本。客户端应用程序通过MySQL Router连接到主服务程序。如果主服务连接失败,则次要的节点自动提升为主节点,MySQL Router请求到新的主节点。InnoDB Cluster不提供NDB Cluster支持。 -> 分布式MySQL之InnoDB和NDB 分布式MySQL主要有InnoDB和NDB模式, NDB是基于集群的引擎-数据被自动切分并复制到数个机器上(数据节点),

Alibaba Nacos 学习(五):K8S Nacos搭建,使用nfs

冷暖自知 提交于 2019-12-05 17:46:06
Alibaba Nacos 学习(一):Nacos介绍与安装 Alibaba Nacos 学习(二):Spring Cloud Nacos Config Alibaba Nacos 学习(三):Spring Cloud Nacos Discovery - FeignClient,Nacos 服务注册与发现 Alibaba Nacos 学习(四):Nacos Docker Alibaba Nacos 学习(五):K8S Nacos搭建,使用nfs 准备环境 Centos7 192.168.50.21 k8s-master 2G Centos7 192.168.50.22 k8s-node01 2G Centos7 192.168.50.23 k8s-node02 2G K8S集群搭建参考 https://www.cnblogs.com/woxpp/p/11875547.html master安装好Git ,yum install git master,node01,node02 安装 nfs-utils yum install nfs-utils master,node01,node02添加nfs exports配置,为了解决后续的nfs报错异常 /data/mysql-slave *(insecure,fsid=0,rw,async,no_root_squash) /data

node 连接 mysql 数据库三种方法------笔记

人盡茶涼 提交于 2019-12-05 16:54:10
一、mysql库 文档: https://github.com/mysqljs/mysql mysql有三种创建连接方式 1.createConnection 使用时需要对连接的创建、断开进行管理 2.createPool 创建资源池,使用时不需要对连接的创建、断开进行管理,每次使用完调用一次release进行释放连接到资源池,至于连接是否断开交给资源池去管理。每次建立连接时非常消耗资源的,影响性能,因此对连接创建合理的管理,有利于提高性能。 3.createPoolCluster 创建连接池集群,允许与多个host连接 二、sequelize库 中文文档: https://github.com/demopark/sequelize-docs-Zh-CN 此库依赖mysql2 与mysql库相比,不需要写sql语句,增删查改都封装成对应的方法。 mysql库入门比较简单,有利于学习sql语句 sequelize封装了一些简单sql语句,掌握封装的方法及对应的参数即可,但学习成本稍微高一些,需要创建模式,模式需要与数据库中的表对应起来。在项目实际开发过程中,使用sequelize开发效率更高,代码可以更加简短。也有query方法,支持使用sql语句。 sequelize提供了一个方法sequelize.sync({ force: true });强制数据库中的表与模式定义的表进行同步

MySQL高可用集群的VIP切换

半世苍凉 提交于 2019-12-05 16:30:53
一、目的 实现在mysql高可用集群的VIP切换,不涉及数据补偿 二、基础环境 python3.0+ 三、具体三大部分 1、启动条件检测 检测集群是否down机 方式 select 1 检测主库是否有VIP绑定 方式是 采用vip进行连接 检测从库是否正常复制和延迟 检测从库是否开启binlog中继日志写入 检测集群是否已经开启了增强半同步方式 检测集群是否开启了GTID复制 2、高可用切换流程 主库down机 如果失败则进行尝试三次进行判定 摘掉原主VIP,如果能进行SSH登录的话 从slave节点中选择新主 判断方式 打开new master节点读写功能 new master上绑定VIP 在日志中生成change语句 发送报警邮件 3、新主判定条件 选择集群从库加入选举组,条件是sql_thread 状态为YES 根据集群的成员对比 binlog(name and postion) 进行排序,选择头部成员 对新主进行进一步判定,判定条件为second_master_behind 如果为0,确保sql_thread已应用完全部relay-log 第三步判断成功,则针对新主采取以下操作: set global read_only= off 关闭读写 ifconfig vip 绑定VIP 四、相关注意点 1、云环境和多实例环境并不适合VIP环境,所以此文章不适用,不过大体原理相同 2

MySQL 部署 MHA 高可用架构 (一)

纵饮孤独 提交于 2019-12-05 15:14:24
MHA 官方网址 Manager : https://github.com/yoshinorim/mha4mysql-manager Node : https://github.com/yoshinorim/mha4mysql-node MHA 工作原理 主库宕机处理过程 1. 监控节点 (通过配置文件获取所有节点信息) 系统,网络,SSH连接性 主从状态,重点是主库 2. 选主 (1) 如果判断从库(position或者GTID),数据有差异,最接近于 Master 的 slave,成为备选主 (2) 如果判断从库(position或者GTID),数据一致,按照配置文件顺序,选主. (3) 如果设定有权重(candidate_master=1),按照权重强制指定备选主. 1. 默认情况下如果一个 slave 落后 master 100M的 relay logs 的话,即使有权重,也会失效. 2. 如果 check_repl_delay=0 的话,即使落后很多日志,也强制选择其为备选主 3. 数据补偿 (1) 当SSH能连接,从库对比主库 GTID 或者 position 号,立即将二进制日志保存至各个从节点并且应用( save_binary_logs ) (2) 当SSH不能连接, 对比从库之间的relaylog的差异( apply_diff_relay_logs ) 4.

mysql高可用方案分析

僤鯓⒐⒋嵵緔 提交于 2019-12-05 15:06:34
低读低写并发、低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。 3.开发说明 此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。 数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。 具体配置可参考资料: http://lizhenliang.blog.51cto.com/7876557/1362313 http://database.51cto.com/art/201012/237204.htm http://gaoke.iteye.com/blog/2283890 4.适应场景 读和写都不高的场景(单表数据低于500万),双机高可用。 5.优缺点 优点是一个机器故障了可以自动切换;缺点是只有一个库在工作,读写并未分离,并发有限制。 方案二:主从结构方案 1.数据库架构图 2.特点 一台机器A作为写库,另一台B作为读库;A库故障后B库充当读写,A修复后,B库为写库,A库为读库。 3.开发说明 这种方案的实现,要借助数据库中间件Mycat来实现,Mycat的datahost配置如下

kubernetes集群内通过endpoint访问外部服务

回眸只為那壹抹淺笑 提交于 2019-12-05 14:51:14
kubernetes内的服务访问集群外独立的服务最好通过endpoint方式,例如MySQL 1.创建mysql-service.yaml apiVersion: v1 kind: Service metadata: name: mysql-production namespace: ms spec: ports: - port: 3306 targetPort: 3306 protocol: TCP 2.创建mysql-endpoints.yaml kind: Endpoints apiVersion: v1 metadata: name: mysql-production namespace: ms subsets: - addresses: - ip: 10.255.20.176 ports: - port: 3306 3.查看 service 4.通过telnet测试 来源: https://www.cnblogs.com/chadiandianwenrou/p/11929295.html