Mariadb数据库集群设计实验
一.MariaDB Galera Cluster
MariaDB Galera Cluster 是一套在 MySQL InnoDB 存储引擎上面实现 multi-master 及数据实时同步的系统架构,业务层面无需做读写分离工作,数据 库读写压力都能按照既定的规则分发到各个节点上去。在数据方面完全兼容 MariaDB 和 MySQL。
(1)主要功能 ① 同步复制。 ② 真正的 multi-master,即所有节点可以同时读写数据库。 ③ 自动的节点成员控制,失效节点自动被清除。 ④ 新节点加入数据自动复制。 ⑤ 真正的行级别,并行复制。 ⑥ 用户可以直接连接集群,使用感受上与 MySQL 完全一致。
(2)局限性 ① 目前复制仅仅支持 InnoDB 存储引擎,任何写入其他引擎的表,包括 mysql.*表将不会复制,但是 DDL 语句会被复制的,因此创建用户将会被复制, 但是插入用户将不会被复制的。 ② DELETE 操作不支持没有主键的表,没有主键的表在不同的节点顺序将 不同,如果执行 SELECT…LIMIT…,将出现不同的结果集。 ③ 在多主环境下,不支持 LOCK/UNLOCK TABLES(锁定表/解锁表), 以及 GET_LOCK(),RELEASE_LOCK()…(锁函数) ④ 查询日志不能保存在表中。如果开启查询日志,只能保存到文件中。 ⑤ 允许最大的事务大小由 wsrep_max_ws_rows 和 wsrep_max_ws_size定义, 任何大型操作将被拒绝,如大型的 LOAD DATA 操作。 ⑥ 由于集群是乐观的并发控制,事务 commit 可能在该阶段中止。如果有两 个事务向在集群中不同的节点向同一行写入并提交,失败的节点将中止。对于集 群级别的中止,集群返回死锁错误代码为 Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)。 ⑦ XA 事务不支持,因为在提交上可能回滚。 ⑧ 整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢, 那么整个集群将变得缓慢。为了稳定的高性能要求,所有的节点应使用统一的硬 件。 ⑨ 集群节点建议最少 3 个。 ⑩ 如果 DDL 语句有问题将破坏集群。
二.基础准备
实验需要:mariadb-ha软件包()CentOS-7-x86_64-DVD-1804(下载映像文件,地址https://www.centos.org/download/)
(1)搭建三台实验节点
主机名 | 系统 | IP 地址 | |
node1 | CentOS-7-x86_64-DVD-1804 | 192.168.200.11 | |
node2 | CentOS-7-x86_64-DVD-1804 | 192.168.200.12 | |
node3 | CentOS-7-x86_64-DVD-1804 | 1192.168.200.13 |
(2)实验实施
1.使用远程连接工具连接 3 台虚拟机,并修改 3 台主机名为 node1、node2 和 node3(修改完主机名后重新连接即可生效),命令如下:
hostnamectl set-hostname
2.将 3 个节点的防火墙和 SELinux 关闭,3 个节点的命令相同,命令如下:
关闭防火墙命令:
systemctl stop firewalld(暂时关闭防火墙)
systemctl disable firewalld(永久关闭防火墙)
systemctl status firewalld(查看防火墙状态)
关闭Selinux命令:
vi /etc/selinux/config (将SELINUX=enforcing 改为SELINUX=disabled,并保存退出)
setenforce 0(临时关闭)
getenforce(查看状态)
reboot(重启)
3.修改 3 个节点的 hosts 文件,3 个节点的 hosts 文件内容相同,内容如下:
vi /etc/hosts
4.解压 mariadb-ha 软件包,并将软件包上传至虚拟机的/opt 目录,配置 Yum 源,3
(3)安装并初始化数据库
2.配置数据库文件
node2节点:
node3节点:
3 个节点都登录数据库,并赋予 root 用户远程权限,命令如下:
在修改完配置文件并确认无误后,将 3 个节点的数据库服务关闭,命令如下:
systemctl stop mariadb
3.启动数据库集群
Mariadb数据库集群设计实验相关推荐
- 1+X 云计算运维与开发(中级)案例实战——使用 Mycat 构建读写分离的数据库集群
1+X 云计算运维与开发(中级)案例实战--使用 Mycat 服务构建读写分离的数据库集群 前言 思路 实操 1.修改主机名,修改主机映射,配置yum源 2.给mycat机安装java服务,给db1和 ...
- 项目练习:构建读写分离的数据库集群
目录 一.目标实现 二.项目准备 三.项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中 ...
- 构建读写分离的数据库集群
准备三台虚拟机:mycat(Mycat中间件服务节点).db1(mariadb数据库集群主节点).db2(mariadb集群从节点) 基础环境配置 #vi /etc/hosts 添加以下配置 172. ...
- CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群
方案优势: Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短 每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集 ...
- CentOS6.5安装DRBD+MariaDB+Heartbeat数据库集群
本实验使用两台服务器搭建: 系统 CentOS6.5 tese02 IP:192.168.1.244 test03 ...
- 架构设计之「数据库集群方案」
在之前的文章中,我们知道数据库服务可能已经成为了很多系统的性能关键点,甚至是瓶颈了.也给大家介绍了数据库服务器从主备架构.到主从架构.再到主主架构的基础方案.但如果单台机器已经不能满足完整业务数据存储 ...
- mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...
为什么80%的码农都做不了架构师?>>> <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...
- Vertica集群扩容实验过程记录
需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...
- 数据库集群 MySQL主从复制
MySQL主从复制 本节内容我们联系使用MySQL的主从复制功能配置Master和Slave节点,验证数据MySQL的数据同步功能. 因为要使用多个MySQL数据库,所以不建议在电脑上安装多个MySQ ...
最新文章
- Codeforces 1159A A pile of stones
- 支付宝小程序-点击退出小程序
- P4768 [NOI2018] 归程(kruskal 重构树)
- 小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向
- 这些常见的分布式存储系统,你是否都了解?
- java getparametermap_重写getParameterMap后,报错 ,
- Java企业面试算法新得体会之4递归和动态规划问题17问
- 实践 | kafka 基本使用
- MySQL数据类型中的二进制类型有_在MySQL数据类型中,常用的数据类型有()。A.()数值类型()B.()字符串类型()C.()日期时间类型()D.()二进制类型...
- VS Code 虽开源,但其精华部分是专有的?
- Go中的切片Slice
- 处理数字音乐文件用计算机软件,工具软件商标注册属于第几类?
- 使用Python采集淘宝类目数据并进行数据分析
- 基于JAVA WEB的网上书店的设计与实现
- PBRT的scene.pbrt使用方法
- 【C语言练习】分离英语句子中的单词并统计每个单词出现次数后排序输出
- textbox多行文本框_文本框脚本
- P3239 [HNOI2015]亚瑟王
- 这可能是最全最好的BLAST教程
- linux fall delay 10,delay/skew/slack/slew的区别
热门文章
- Vue移动端框架的选择
- JavaScript案例——红绿灯
- tf.keras下常用模块 activations、applications、datasets、layers、losses、optimizers、regularizers、Sequential
- postgresql系列之:安装postgresql数据库日志解析插件wal2json
- linux系统frpc程序下载安装,ubuntu18.04 frpc安装与自动启动
- 1.4半监督生成对抗网络(SGAN)
- 云主机安全-私有密钥安全认证
- 【算法】棋盘覆盖详解,基础教程~
- Python中用print函数输出
- 带内管理与带外管理的区别是什么