(opens new window)
(opens new window)
(opens new window)
(opens new window)
(opens new window)
# GreatSQL
# 社区简介
GreatSQL 社区成立于 2021 年,是一个 MySQL 开源数据库社区,由 万里数据库 (opens new window) 发起,致力于通过开放的社区合作,构建国内自主 MySQL 版本及开源数据库技术,推动中国开源数据库及应用生态繁荣发展。
# 社区愿景
成为中国广受欢迎的开源数据库社区。
# 关于 GreatSQL
GreatSQL 开源数据库是适用于金融级应用的国内自主 MySQL 版本,专注于提升 MGR 可靠性及性能,支持 InnoDB 并行查询等特性,可以作为 MySQL 或 Percona Server 的可选替换,用于线上生产环境,且完全免费并兼容 MySQL 或 Percona Server。
GreatSQL 除了提升 MGR 性能及可靠性,还引入 InnoDB 事务锁优化及并行查询优化等特性,以及众多 BUG 修复。
# 下载 GreatSQL
# GreatSQL 8.0
- GreatSQL 8.0.25-17 (opens new window)
- GreatSQL 8.0.25-16 (opens new window)
- GreatSQL 8.0.25-15 (opens new window)
# GreatSQL 5.7
# 版本特性
GreatSQL 除了提升 MGR 性能及可靠性,还引入 InnoDB 事务锁优化及并行查询优化等特性,以及众多 BUG 修复。 选用 GreatSQL 主要有以下几点优势:
- 提升 MGR 模式下的大事务并发性能及稳定性
- 改进 MGR 的 GC 及流控算法,以及减少每次发送数据量,避免性能抖动
- 在 MGR 集群 AFTER 模式下,解决了节点加入集群时容易出错的问题
- 在 MGR 集群 AFTER 模式下,强一致性采用多数派原则,以适应网络分区的场景
- 当 MGR 节点崩溃时,能更快发现节点异常状态,有效减少切主和异常节点的等待时间
- 优化 InnoDB 事务锁机制,在高并发场景中有效提升事务并发性能至少 10% 以上
- 实现 InnoDB 并行查询机制,极大提升聚合查询效率,TPC-H 测试中,最高可提升 40 多倍,平均提升 15 倍。特别适用于周期性数据汇总报表之类的 SAP、财务统计等业务
- 修复了 MGR 模式下可能导致数据丢失、性能抖动、节点加入恢复极慢等多个缺陷或 BUG
# 注意事项
运行 GreatSQL 可能需要依赖 jemalloc 库(推荐 5.2.1+ 版本),因此请先先安装上
yum -y install jemalloc jemalloc-devel
也可以把自行安装的 lib 库 so 文件路径加到系统配置文件中,例如:
[root@greatdb]# cat /etc/ld.so.conf
/usr/local/lib64/
而后执行下面的操作加载 libjemalloc 库,并确认是否已存在
[root@greatdb]# ldconfig
[root@greatdb]# ldconfig -p | grep libjemalloc
libjemalloc.so.1 (libc6,x86-64) => /usr/local/lib64/libjemalloc.so.1
libjemalloc.so (libc6,x86-64) => /usr/local/lib64/libjemalloc.so
jemalloc
下载地址:https://centos.pkgs.org/8/epel-x86_64/jemalloc-5.2.1-2.el8.x86_64.rpm.html
# 安装 GreatSQL
推荐安装 GreatSQL RPM 包, 戳此链接下载 GreatSQL RPM 包 (opens new window)。
执行下面的命令安装 GreatSQL:
#首先,查找 GreatSQL 是否已安装
[root@greatdb]# yum search greatsql
...
No matches found.
#然后安装
[root@greatdb]# rpm -ivh greatsql-client-8.0.25-17.1.el8.x86_64.rpm greatsql-devel-8.0.25-17.1.el8.x86_64.rpm greatsql-mysql-router-8.0.25-17.1.el8.x86_64.rpm greatsql-server-8.0.25-17.1.el8.x86_64.rpm greatsql-shared-8.0.25-17.1.el8.x86_64.rpm
安装完成后,GreatSQL 会自行完成初始化,可以再检查是否已加入系统服务或已启动:
$ systemctl status mysqld
mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
...
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 1137698 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 1137732 (mysqld)
Status: "Server is operational"
Tasks: 39 (limit: 149064)
Memory: 336.7M
CGroup: /system.slice/mysqld.service
└─1137732 /usr/sbin/mysqld
...
# my.cnf 参考
- my.cnf for GreatSQL 8.0.25-17 (opens new window)
- my.cnf for GreatSQL 8.0.25-16 (opens new window)
- my.cnf for GreatSQL 8.0.25-15 (opens new window)
- my.cnf for GreatSQL 5.7.36 (opens new window)
就可以正常启动GreatSQL服务了。
# 版本历史
# GreatSQL 8.0
- GreatSQL 更新说明 8.0.25-17(2023-3-13) (opens new window)
- GreatSQL 更新说明 8.0.25-16(2022-5-16) (opens new window)
- GreatSQL 更新说明 8.0.25-15(2021-8-26) (opens new window)
# GreatSQL 5.7
# 使用文档
- GreatSQL MGR FAQ
- 在 Linux 下源码编译安装 GreatSQL
- ansible 一键安装 GreatSQL 8.0.25 并构建 MGR 集群 (opens new window)
- 在 Docker 中部署 GreatSQL 并构建 MGR 集群
- MGR 优化配置参考
- InnoDB 并行查询优化参考
- 利用 GreatSQL 部署 MGR 集群
- MySQL InnoDB Cluster+GreatSQL 部署 MGR 集群
- 利用 systemd 管理 MySQL 单机多实例
- 麒麟 OS+ 龙芯环境编译 GreatSQL
# 专栏文章
深入浅出 MGR 专栏文章 (opens new window),深入浅出 MGR 相关知识点、运维管理实操,配合「实战 MGR」视频内容食用更佳。
# 相关资源
- GreatSQL-Docker (opens new window),在 Docker 中运行 GreatSQL。
- GreatSQL-Ansible (opens new window),利用 ansible 一键安装 GreatSQL 并完成 MGR 集群部署。
# 问题反馈
# 提示
# 联系我们
扫码关注微信公众号