GreateSQL - 图1GreateSQL - 图2 (opens new window) GreateSQL - 图3GreateSQL - 图4 (opens new window) GreateSQL - 图5GreateSQL - 图6 (opens new window) GreateSQL - 图7GreateSQL - 图8 (opens new window) GreateSQL - 图9GreateSQL - 图10 (opens new window)

最后更新: 2023-12-13

本文档适用版本:GreatSQL 8.0.32-24GreateSQL - 图11 (opens new window)

GreatSQL

社区简介

GreatSQL 社区成立于 2021 年,由万里数据库发起,致力于通过开放的社区合作,构建国内自主开源数据库版本及开源数据库技术,推动中国开源数据库及应用生态繁荣发展。

社区愿景

成为中国广受欢迎的开源数据库社区。

关于 GreatSQL

GreatSQL 是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为 MySQL 或 Percona Server 的可选替换,用于线上生产环境,且完全免费并兼容 MySQL 或 Percona Server。

下载 GreatSQL

GreatSQL 8.0

GreatSQL 5.7

GreatSQL 核心特性

GreatSQL 具备高性能、高可靠、高易用性、高安全等多个核心特性。

1. 高性能

  • 支持 InnoDB 并行查询,适用于轻量级 OLAP 应用场景,在 TPC-H 测试中平均提升 15 倍,最高提升 40+ 倍。
  • 优化 InnoDB 事务系统,实现了大锁拆分及无锁化等多种优化方案,OLTP 场景整体性能提升约 20%。
  • 支持并行 load data,适用于频繁导入大批量数据的应用场景,性能可提升约 20+ 倍。
  • 支持线程池(thread pool),降低了线程创建和销毁的代价,保证高并发下,性能稳定不会明显衰退。

2. 高可靠
GreatSQL 针对 MGR 进行了大量改进和提升工作,进一步提升 MGR 的高可靠等级。

  • 地理标签,提升多机房架构数据可靠性。
  • 读写节点动态 VIP,高可用切换更便捷。
  • 仲裁节点,用更低的服务器成本实现更高可用。
  • 快速单主模式,在单主模式下更快,性能更高。
  • 智能选主,高可用切换选主机制更合理。
  • 全新流控算法,使得事务更平稳,避免剧烈抖动。
  • 优化了节点加入、退出时可能导致性能剧烈抖动的问题。
  • 解决磁盘空间爆满时导致MGR集群阻塞的问题。
  • 解决了长事务造成无法选主的问题。
  • 优化事务认证队列清理算法,规避每 60s 抖动问题。
  • 修复了 recover 过程中长时间等待的问题。

3. 高易用性
支持多个 SQL 兼容特性,包括 CLOB、VARCHAR2 数据类型,DATETIME 运算、ROWNUM、子查询无别名、EXPLAIN PLAN FOR 等语法,以及 ADD_MONTHS()、CAST()、DECODE() 等 17 个函数。

更多信息详见文档:GreatSQL中的SQL兼容性GreateSQL - 图17 (opens new window)

4. 高安全性
支持逻辑备份加密、CLONE备份加密、审计日志入表、表空间国密加密等多个安全提升特性,进一步保障业务数据安全,更适用于金融级应用场景。

更多信息详见文档:GreatSQL中的安全性提升GreateSQL - 图18 (opens new window)

注意事项

运行 GreatSQL 可能需要依赖 jemalloc 库(推荐 5.2.1+ 版本),因此请先先安装上

  1. yum -y install jemalloc jemalloc-devel

也可以把自行安装的 lib 库 so 文件路径加到系统配置文件中,例如:

  1. [root@greatdb]# cat /etc/ld.so.conf
  2. /usr/local/lib64/

而后执行下面的操作加载 libjemalloc 库,并确认是否已存在

  1. [root@greatdb]# ldconfig
  2. [root@greatdb]# ldconfig -p | grep libjemalloc
  3. libjemalloc.so.1 (libc6,x86-64) => /usr/local/lib64/libjemalloc.so.1
  4. 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 包GreateSQL - 图19 (opens new window)

执行下面的命令安装 GreatSQL:

  1. #首先,查找 GreatSQL 是否已安装
  2. [root@greatdb]# yum search greatsql
  3. ...
  4. No matches found.
  5. #然后安装
  6. [root@greatdb]$ rpm -ivh --nodeps greatsql-client-8.0.32-24.1.el8.x86_64.rpm greatsql-devel-8.0.32-24.1.el8.x86_64.rpm greatsql-icu-data-files-8.0.32-24.1.el8.x86_64.rpm greatsql-mysql-router-8.0.32-24.1.el8.x86_64.rpm greatsql-server-8.0.32-24.1.el8.x86_64.rpm greatsql-shared-8.0.32-24.1.el8.x86_64.rpm greatsql-test-8.0.32-24.1.el8.x86_64.rpm

提示:正式安装GreatSQL RPM包时,可能还需要依赖Perl等其他软件包,此处为快速演示,因此加上 --nodeps 参数,忽略相应的依赖关系检查。安装完毕后,如果因为依赖关系无法启动,请再行安装相应软件依赖包。

安装完成后,GreatSQL 会自行完成初始化,可以再检查是否已加入系统服务或已启动:

  1. $ systemctl status mysqld
  2. mysqld.service - MySQL Server
  3. Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
  4. ...
  5. Docs: man:mysqld(8)
  6. http://dev.mysql.com/doc/refman/en/using-systemd.html
  7. Process: 1137698 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
  8. Main PID: 1137732 (mysqld)
  9. Status: "Server is operational"
  10. Tasks: 39 (limit: 149064)
  11. Memory: 336.7M
  12. CGroup: /system.slice/mysqld.service
  13. └─1137732 /usr/sbin/mysqld
  14. ...

编译GreatSQL二进制包

推荐利用 Docker 环境快速编译 GreatSQL 二进制包,可参考方法:编译源码安装 GreatSQLGreateSQL - 图20 (opens new window)

my.cnf 参考

就可以正常启动GreatSQL服务了。

版本历史

GreatSQL 8.0

GreatSQL 5.7

使用文档

专栏文章

深入浅出 MGR 专栏文章GreateSQL - 图32 (opens new window),深入浅出 MGR 相关知识点、运维管理实操,配合「实战 MGR」视频内容食用更佳。

相关资源

问题反馈

提示

联系我们

扫码关注微信公众号。

wechat-qd