MariaDB Galera Cluster基于galera cluster集群实现mysql数据库的高可用 mysql


https://galeracluster.com

# galera 集群 - docker部署

https://abc.htmltoo.com/thread-46267.htm

# docker-mariadb-galera 部署 - mysql 集群

https://abc.htmltoo.com/thread-46007.htm

# mariadb 10.6 galera 集群 - docker部署

https://abc.htmltoo.com/thread-46265.htm

单机测试 MariaDB Galera Cluster

https://abc.htmltoo.com/thread-46266.htm

# 编译安装: mariadb-galear-cluster

https://abc.htmltoo.com/thread-46008.htm

# 编译安装: mysql-galear-cluster

https://abc.htmltoo.com/thread-46009.htm

# docker安装: mariadb-galear-cluster

https://abc.htmltoo.com/thread-46010.htm


# rancher

应用  --->  MariaDB Galera Cluster  --->  root-wdqdmm@r  abc  ihunter-wdqdmm@r;

SLB  ----> 3306 -> galera-lb(3306) ; 


# 客户端登陆

ip  root  wdqdmm@r  3306 ;   

---> grant all on *.* to 'ihunter'@'%' identified by 'wdqdmm@m';


# rancher内网database-mysql上登陆

mysql -A -uroot -pwdqdmm@r  -hmariadb -P3306;

grant all on *.* to 'ihunter'@'%' identified by 'wdqdmm@m';

source /data/file/soft/mysql/20180809/*;  # 导入数据.


# 备份

# .tar.bz2 方便下载, 记得去除,原始文件为.sql.  

mysqldump -uroot -pwdqdmm@r  -hmariadb -P3306  --all-databases --ignore-table=information_schema.*  --ignore-table=performance_schema.*  --ignore-table=mysql.* > /data/file/mysql/20200116.sql.tar.bz2; 


mysql_upgrade  -uihunter -pwdqdmm@m  -hmariadb -P3306;


# mysql-维护相关

https://abc.htmltoo.com/thread-45627.htm


=================================================

# galera-mariadb-galera-server-1, 配置:  /etc/mysql/my.cnf


mysql -A -uroot -pwdqdmm@r  -hmariadb -P3306;

show status like 'wsrep_cluster_size';     # 确认galera启动成功

show status like 'wsrep%';                      # 查看galera状态

show status like 'wsrep_cluster%';          # 查看galera集群


show status like 'wsrep_cluster%';

+--------------------------+--------------------------------------+

| Variable_name            | Value                                |

+--------------------------+--------------------------------------+

| wsrep_cluster_conf_id    | 33                                   |

| wsrep_cluster_size       | 2                                    |

| wsrep_cluster_state_uuid | 3065c57d-33d5-11ea-88a8-bbd94a170665 |

| wsrep_cluster_status     | Primary     # non-Primary: 没有主节点异常


ERROR 1047 (08S01): WSREP has not yet prepared node for application use:

# 重置galera集群状态,再写入。当关闭panic-on模式后,两个节点能同步数据到一直状态

SET GLOBAL wsrep_provider_options = 'pc.bootstrap=true';

SET GLOBAL wsrep_provider_options = 'pc.ignore_sb=true';


# root登陆异常, 取消root的本地登录限制

mysql -A -uihunter -pwdqdmm@m  -hmariadb -P3306;

use mysql;

update user set host = '%' where user = 'root';

FLUSH PRIVILEGES;


# (临时)查看当前mysql的连接数:

show global status like 'Max_used_connections';

set GLOBAL max_connections=2000; 

# (长期)my.cnf:

[mysqld]

max_connections=1000

# 查看连接报错配置:

show variables like '%max_connect_errors%';

set GLOBAL max_connect_errors=1000; 

=================================================


1.简述:

MariaDB Galera Cluster 是一套在mysql innodb存储引擎上面实现multi-master及数据实时同步的系统架构,业务层面无需做读写分离工作,数据库读写压力都能按照既定的规则分发到 各个节点上去。在数据方面完全兼容 MariaDB 和 MySQL。


2.特性:

(1).同步复制 Synchronous replication

(2).Active-active multi-master 拓扑逻辑

(3).可对集群中任一节点进行数据读写

(4).自动成员控制,故障节点自动从集群中移除

(5).自动节点加入

(6).真正并行的复制,基于行级

(7).直接客户端连接,原生的 MySQL 接口

(8).每个节点都包含完整的数据副本

(9).多台数据库中数据同步由 wsrep 接口实现


3.局限性:

(1).目前的复制仅仅支持InnoDB存储引擎,任何写入其他引擎的表,包括mysql.*表将不会复制,但是DDL语句会被复制的,因此创建用户将会被复制,但是insert into mysql.user…将不会被复制的.

(2).DELETE操作不支持没有主键的表,没有主键的表在不同的节点顺序将不同,如果执行SELECT…LIMIT… 将出现不同的结果集.

(3).在多主环境下LOCK/UNLOCK TABLES不支持,以及锁函数GET_LOCK(), RELEASE_LOCK()…

(4).查询日志不能保存在表中。如果开启查询日志,只能保存到文件中。

(5).允许最大的事务大小由wsrep_max_ws_rows和wsrep_max_ws_size定义。任何大型操作将被拒绝。如大型的LOAD DATA操作。

(6).由于集群是乐观的并发控制,事务commit可能在该阶段中止。如果有两个事务向在集群中不同的节点向同一行写入并提交,失败的节点将中止。对 于集群级别的中止,集群返回死锁错误代码(Error: 1213 SQLSTATE: 40001 (ER_LOCK_DEADLOCK)).

(7).XA事务不支持,由于在提交上可能回滚。

(8).整个集群的写入吞吐量是由最弱的节点限制,如果有一个节点变得缓慢,那么整个集群将是缓慢的。为了稳定的高性能要求,所有的节点应使用统一的硬件。

(9).集群节点建议最少3个。

(10).如果DDL语句有问题将破坏集群。


4.关键技术

1、全局唯一ID生成,保证ID的唯一和递增 

2、协调者自己也是通过广播接收后进行的数据库业务操作,各个节点平等,保证了并发 

3、事务传输要么成功传给了所有节点,要么都失败 

4、事务在所有节点中的顺序一致 

5、每个节点知道所有节点的状态(通过广播实现)


5.优势

A.与异步复制相比:

数据一致性强,传统异步复制并不能保证主从数据一致性,这是由于一般情况下,主库多线程并发执行

事务,但从库却只有一个线程重做事务,在高压力情况下必然会导致主从延迟。

B.与使用半同步复制或分布式锁实现的同步复制相比:

性能高,扩展性好,半同步复制在高负载甚至从库性能较差的情况下,难以保证其性能。即使自动的

从半同步复制切换到异步复制,也会牺牲其最大的优点:一致性。其扩展友好度也较差

C.galera集群的独特优势:

1. 同步复制,主备无延迟

2. 支持多主同时读写,保证数据一致性

3. 集群中各节点保存全量数据

4. 节点添加/删除,自动检测和配置

5. 行级别并行复制

6. 不需要写binlog


https://blog.51cto.com/11912662/2155443

https://blog.csdn.net/weixin_42867972/article/details/84198696

https://www.jb51.net/article/157063.htm


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回