diff --git a/README.md b/README.md index 2b9c9b0daadfd4762aed40b57a34f131381d5180..c4de87f19f8ad177a0a6cc5d102703f0f727e705 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,79 @@ # 关于 GreatSQL --- -GreatSQL开源数据库专注于提升MGR可靠性及性能,支持InnoDB并行查询等特性,是适用于金融级应用的国内自主MySQL版本;可以作为MySQL或Percona Server的可选替换,用于线上生产环境;且完全免费并兼容MySQL或Percona Server。 +GreatSQL数据库是一款**开源免费**数据库,可在普通硬件上满足金融级应用场景,具有**高可用**、**高性能**、**高兼容**、**高安全**等特性,可作为MySQL或Percona Server for MySQL的理想可选替换。 -## 版本特性 +# 下载GreatSQL --- -GreatSQL除了提升MGR性能及可靠性,还引入InnoDB事务锁优化及并行查询优化等特性,以及众多BUG修复。 -选用GreatSQl主要有以下几点优势: - -- GreatSQL是由万里数据库维护的MySQL分支 -- 专注于提升MGR可靠性及性能,支持InnoDB并行查询特性 -- 是适用于金融级应用的MySQL分支版本 -- 地理标签,提升多机房架构数据可靠性 -- 仲裁节点,用更低的服务器成本实现更高可用 -- 单主模式下更快,选主机制更完善 -- InnoDB表也支持并行查询,让CPU资源不再浪费 -- 全新流控机制,让MGR运行更流畅不频繁抖动 -- 相对官方社区版,MGR运行更稳定、可靠 -- 其他... + +## GreatSQL 8.0 +- [GreatSQL 8.0.32-25](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.32-25) +- [GreatSQL 8.0.32-24](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.32-24) +- [GreatSQL 8.0.25-17](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.25-17) +- [GreatSQL 8.0.25-16](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.25-16) +- [GreatSQL 8.0.25-15](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-8.0.25-15) + +## GreatSQL 5.7 +- [GreatSQL 5.7.36](https://gitee.com/GreatSQL/GreatSQL/releases/GreatSQL-5.7.36-39) + +# GreatSQL核心特性 +--- + +## 1. 高可用 +针对MGR进行了大量改进和提升工作,新增支持**地理标签**、**仲裁节点**、**读写节点可绑定动态IP**、**快速单主模式**、**智能选主**,并针对**流控算法**、**事务认证队列清理算法**、**节点加入&退出机制**、**recovery机制**等多项MGR底层工作机制算法进行深度优化,进一步提升优化了MGR的高可用保障及性能稳定性。 + +- 支持地理标签特性,提升多机房架构数据可靠性。 +- 支持仲裁节点特性,用更低的服务器成本实现更高可用。 +- 支持读写节点动态VIP特性,高可用切换更便捷。 +- 支持快速单主模式,在单主模式下更快,性能更高。 +- 支持智能选主特性,高可用切换选主机制更合理。 +- 采用全新流控算法,使得事务更平稳,避免剧烈抖动。 +- 优化了节点加入、退出时可能导致性能剧烈抖动的问题。 +- 优化事务认证队列清理算法,高负载下不不复存在每60秒性能抖动问题。 +- 解决了个别节点上磁盘空间爆满时导致MGR集群整体被阻塞的问题。 +- 解决了长事务造成无法选主的问题。 +- 修复了recovery过程中长时间等待的问题。 + +更多信息详见文档:[高可用](https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-2-ha.html)。 + +## 2. 高性能 +相对MySQL及Percona Server For MySQL的性能表现更稳定优异,支持**高性能的内存查询加速AP引擎**、**InnoDB并行查询**、**并行LOAD DATA**、**事务无锁化**、**线程池等**特性,在TPC-C测试中相对MySQL性能提升超过30%,在TPC-H测试中的性能表现是MySQL的十几倍甚至上百倍。 + +- 支持类似MySQL HeatWave的大规模并行、高性能的内存查询加速AP引擎,可将GreatSQL的数据分析性能提升几个数量级。 +- 支持InnoDB并行查询,适用于轻量级OLAP应用场景,在TPC-H测试中平均提升15倍,最高提升40+倍。 +- 优化InnoDB事务系统,实现了大锁拆分及无锁化等多种优化方案,OLTP场景整体性能提升约20%。 +- 支持并行LOAD DATA,适用于频繁导入大批量数据的应用场景,性能可提升约20+倍。 +- 支持线程池(Threadpool),降低了线程创建和销毁的代价,保证高并发下,性能稳定不会明显衰退。 + +更多信息详见文档:[高性能](https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-1-highperf.html)。 + +## 3. 高兼容 + +支持大多数常见Oracle用法,包括数据类型、函数、SQL语法、存储程序等兼容性用法。 + +更多信息详见文档:[高兼容](https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-3-easyuse.html)。 + +## 4. 高安全 + +支持逻辑备份加密、CLONE备份加密、审计日志入表、表空间国密加密等多个安全提升特性,进一步保障业务数据安全,更适用于金融级应用场景。 + +更多信息详见文档:[高安全](https://greatsql.cn/docs/8032-25/user-manual/5-enhance/5-4-security.html)。 ## 注意事项 --- -运行GreatSQL可能需要依赖jemalloc库(推荐5.2.1+版本),因此请先安装上 +推荐采用jemalloc库(推荐5.2.1+版本)来代替glibc中默认的内存管理分配器,是一个能够快速分配/回收内存,减少内存碎片,对多核友好,具有可伸缩性的内存分配器。为更好的支持多核内存分配的需要,jemalloc首次在FreeBSD中引入,而后被facebook发扬光大,成为了业界流行的内存分配解决方案之一。 + +先安装 ``` yum -y install jemalloc jemalloc-devel ``` + 也可以把自行安装的lib库so文件路径加到系统配置文件中,例如: ``` [root@greatdb]# cat /etc/ld.so.conf /usr/local/lib64/ ``` + 而后执行下面的操作加载libjemalloc库,并确认是否已存在 ``` [root@greatdb]# ldconfig @@ -47,11 +91,16 @@ $ yum search GreatSQL ... greatsql-client.x86_64 : GreatSQL - Client greatsql-devel.x86_64 : GreatSQL - Development header files and libraries -greatsql-server.x86_64 : GreatSQL: Open source database that can be used to replace MySQL or Percona Server. +greatsql-icu-data-files.x86_64 : GreatSQL packaging of ICU data files +greatsql-mysql-config.x86_64 : GreatSQL config +greatsql-mysql-router.x86_64 : GreatSQL MySQL Router +greatsql-server.x86_64 : GreatSQL: a high performance, highly reliable, easy to use, and high security database that can be used to replace + : MySQL or Percona Server. greatsql-shared.x86_64 : GreatSQL - Shared libraries +greatsql-test.x86_64 : Test suite for the GreatSQL #然后安装 -$ yum install -y greatsql-client greatsql-devel greatsql-server greatsql-shared +$ yum install -y greatsql-client greatsql-devel greatsql-icu-data-files greatsql-server greatsql-shared ``` 安装完成后,GreatSQL会自行完成初始化,可以再检查是否已加入系统服务或已启动: @@ -76,7 +125,7 @@ $ systemctl status mysqld RPM方式安装后的GreatSQL默认配置不是太合理,建议参考下面这份my.cnf文档: -- [my.cnf for GreatSQL 8.0.25-16](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example-greatsql-8.0.25-16) +- [my.cnf for GreatSQL 8.0.32-25](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example-greatsql-8.0.32-25) 调整文档中关于`datadir`目录配置等相关选项,默认 `datadir=/var/lib/mysql` 通常都会改掉,例如替换成 `datadir=/data/GreatSQL`,修改完后保存退出, 替换原来的 `/etc/my.cnf`,然后重启GreatSQL,会重新进行初始化。 @@ -102,7 +151,7 @@ $ mysql -uroot -p'dt_)MtExl594' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 -Server version: 8.0.25-16 +Server version: 8.0.32-25 Copyright (c) 2021-2021 GreatDB Software Co., Ltd Copyright (c) 2009-2021 Percona LLC and/or its affiliates @@ -121,7 +170,7 @@ mysql> 首次登入立刻提醒该密码已过期,需要修改,执行类似下面的命令修改即可: ``` -mysql> ALTER USER USER() IDENTIFIED BY 'GreatSQL-8025~%'; +mysql> ALTER USER USER() IDENTIFIED BY 'GreatSQL-8032~%'; Query OK, 0 rows affected (0.02 sec) ``` 之后就可以用这个新密码再次登入GreatSQL了。 @@ -129,8 +178,8 @@ Query OK, 0 rows affected (0.02 sec) ## 创建新用户、测试库&表,及写入数据 修改完root密码后,应尽快创建普通用户,用于数据库的日常使用,减少超级用户root的使用频率,避免误操作意外删除重要数据。 ``` -#创建一个新用户GreatSQL,只允许从192.168.0.0/16网络连入,密码是 GreatSQL-2022 -mysql> CREATE USER GreatSQL@'192.168.0.0/16' IDENTIFIED BY 'GreatSQL-2022'; +#创建一个新用户GreatSQL,只允许从192.168.0.0/16网络连入,密码是 GreatSQL-2024 +mysql> CREATE USER GreatSQL@'192.168.0.0/16' IDENTIFIED BY 'GreatSQL-2024'; Query OK, 0 rows affected (0.06 sec) #创建一个新的用户库,并对GreatSQL用户授予读写权限 @@ -143,7 +192,7 @@ Query OK, 0 rows affected (0.03 sec) 切换到普通用户GreatSQL登入,创建测试表,写入数据: ``` -$ mysql -h192.168.1.10 -uGreatSQL -p'GreatSQL-2022' +$ mysql -h192.168.1.10 -uGreatSQL -p'GreatSQL-2024' ... # 切换到GreatSQL数据库下 mysql> use GreatSQL; @@ -172,9 +221,14 @@ mysql> SELECT * FROM t1; ## 版本历史 --- ### GreatSQL 8.0 -- [GreatSQL 更新说明 8.0.25-16(2021-5-16)](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/changes-greatsql-8-0-25-16-20220516.md) -- [GreatSQL 更新说明 8.0.25-15(2021-8-26)](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/relnotes/changes-greatsql-8-0-25-20210820.md) +- [Changes in GreatSQL 8.0.32-25 (2023-12-28)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-8-0-32-25-20231228.md) +- [Changes in GreatSQL 8.0.32-24 (2023-6-5)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-8-0-32-24-20230605.md) +- [Changes in GreatSQL 8.0.25-17 (2023-3-13)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-8-0-25-17-20230313.md) +- [Changes in GreatSQL 8.0.25-16 (2022-5-16)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-8-0-25-16-20220516.md) +- [Changes in GreatSQL 8.0.25-15 (2021-8-26)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-8-0-25-20210820.md) +### GreatSQL 5.7 +- [Changes in GreatSQL 5.7.36-39 (2022-4-7)](https://greatsql.cn/docs/8032-25/user-manual/1-docs-intro/relnotes/changes-greatsql-5-7-36-20220407.md) ## MTR回归测试 GreatSQL已经在openEuler 20.03 (LTS-SP2) 环境下通过MTR回归测试,表明GreatSQL与openEuler开源操作系统完全兼容,功能齐全,测试完备。 @@ -184,10 +238,9 @@ GreatSQL已经在openEuler 20.03 (LTS-SP2) 环境下通过MTR回归测试,表 --- - [GreatSQL MGR FAQ](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/GreatSQL-FAQ.md) - [在Linux下源码编译安装GreatSQL](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/build-greatsql-with-source.md) +- [在openEuler环境下快速编译GreatSQL RPM包](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/build-greatsql-rpm-under-openeuler.md) - [利用Ansible安装GreatSQL并构建MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/install-greatsql-with-ansible.md) - [在Docker中部署GreatSQL并构建MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/install-greatsql-with-docker.md) -- [MGR优化配置参考](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/mgr-best-options-ref.md) -- [InnoDB并行查询优化参考](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/innodb-parallel-execute.md) - [利用GreatSQL部署MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/using-greatsql-to-build-mgr-and-node-manage.md) - [MySQL InnoDB Cluster+GreatSQL部署MGR集群](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/mysql-innodb-cluster-with-greatsql.md) - [利用systemd管理MySQL单机多实例](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/build-multi-instance-with-systemd.md) @@ -196,8 +249,114 @@ GreatSQL已经在openEuler 20.03 (LTS-SP2) 环境下通过MTR回归测试,表 - [深入浅出MGR专栏文章](https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/deep-dive-mgr),深入浅出MGR相关知识点、运维管理实操,配合「实战MGR」视频内容食用更佳。 ## 相关资源 -- [GreatSQL-Docker](https://gitee.com/GreatSQL/GreatSQL-Docker),在Docker中运行GreatSQL。 -- [GreatSQL-Ansible](https://gitee.com/GreatSQL/GreatSQL-Ansible),利用ansible一键安装GreatSQL并完成MGR集群部署。 +- [GreatSQL用户手册](https://gitee.com/GreatSQL/GreatSQL-Manual),最新版本GreatSQL用户手册 +- [GreatSQL-Docker](https://gitee.com/GreatSQL/GreatSQL-Docker),在Docker中运行GreatSQL +- [GreatSQL-Ansible](https://gitee.com/GreatSQL/GreatSQL-Ansible),利用Ansible一键安装GreatSQL并完成MGR集群部署 + +## GreatSQL vs MySQL + +下面是GreatSQL 和 MySQL社区版本的对比表格: + +| **1.主要特性** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +| :--- | :---: | :---: | +| 开源 | :heavy_check_mark: | :heavy_check_mark: | +|ACID完整性| :heavy_check_mark: | :heavy_check_mark: | +|MVCC特性| :heavy_check_mark: | :heavy_check_mark: | +|支持行锁| :heavy_check_mark: | :heavy_check_mark: | +|Crash自动修复| :heavy_check_mark: | :heavy_check_mark: | +|表分区(Partitioning)| :heavy_check_mark: | :heavy_check_mark: | +|视图(Views)| :heavy_check_mark: | :heavy_check_mark: | +|子查询(Subqueries)| :heavy_check_mark: | :heavy_check_mark: | +|触发器(Triggers)| :heavy_check_mark: | :heavy_check_mark: | +|存储程序(Stored Programs)| :heavy_check_mark: | :heavy_check_mark: | +|外键(Foreign Keys)| :heavy_check_mark: | :heavy_check_mark: | +|窗口函数(Window Functions)| :heavy_check_mark: | :heavy_check_mark: | +|通用表表达式CTE| :heavy_check_mark: | :heavy_check_mark: | +|地理信息(GIS)| :heavy_check_mark: | :heavy_check_mark: | +|基于GTID的复制| :heavy_check_mark: | :heavy_check_mark: | +|组复制(MGR)| :heavy_check_mark: | :heavy_check_mark: | +|MyRocks引擎| :heavy_check_mark: | | +| **2. 性能提升扩展** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +|AP引擎| :heavy_check_mark: | 仅云上HeatWave | +|InnODB并行查询| :heavy_check_mark: | 仅主键扫描 | +|并行LOAD DATA| :heavy_check_mark: | ❌ | +|InnoDB事务ReadView无锁优化| :heavy_check_mark: | ❌ | +|InnoDB事务大锁拆分优化| :heavy_check_mark: | ❌ | +|InnoDB资源组| :heavy_check_mark: | :heavy_check_mark: | +|自定义InnoDB页大小| :heavy_check_mark: | :heavy_check_mark: | +|Contention-Aware Transaction Scheduling| :heavy_check_mark: | :heavy_check_mark: | +|InnoDB Mutexes拆分优化| :heavy_check_mark: | ❌ | +|MEMORY引擎优化| :heavy_check_mark: | ❌ | +|InnoDB Flushing优化| :heavy_check_mark: | ❌ | +|并行Doublewrite Buffer| :heavy_check_mark: | :heavy_check_mark: | +|InnoDB快速索引创建优化| :heavy_check_mark: | ❌ | +|VARCHAR/BLOB/JSON类型存储单列压缩| :heavy_check_mark: | ❌ | +|数据字典中存储单列压缩信息| :heavy_check_mark: | ❌ | +| **3. 面向开发者提升改进** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +|X API| :heavy_check_mark: | :heavy_check_mark: | +|JSON| :heavy_check_mark: | :heavy_check_mark: | +|NoSQL Socket-Level接口| :heavy_check_mark: | :heavy_check_mark: | +|InnoDB全文搜索改进| :heavy_check_mark: | ❌ | +|更多Hash/Digest函数| :heavy_check_mark: | ❌ | +|Oracle兼容-数据类型| :heavy_check_mark: | ❌ | +|Oracle兼容-函数| :heavy_check_mark: | ❌ | +|Oracle兼容-SQL语法| :heavy_check_mark: | ❌ | +|Oracle兼容-存储程序| :heavy_check_mark: | ❌ | +| **4. 基础特性提升改进** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +|MGR提升-地理标签| :heavy_check_mark: | ❌ | +|MGR提升-仲裁节点| :heavy_check_mark: | ❌ | +|MGR提升-读写节点绑定VIP| :heavy_check_mark: | ❌ | +|MGR提升-快速单主模式| :heavy_check_mark: | ❌ | +|MGR提升-智能选主机制| :heavy_check_mark: | ❌ | +|MGR提升-全新流控算法| :heavy_check_mark: | ❌ | +|information_schema表数量|95|65| +|全局性能和状态指标|853|434| +|优化器直方图(Histograms)| :heavy_check_mark: | :heavy_check_mark: | +|Per-Table性能指标| :heavy_check_mark: | ❌ | +|Per-Index性能指标| :heavy_check_mark: | ❌ | +|Per-User性能指标| :heavy_check_mark: | ❌ | +|Per-Client性能指标| :heavy_check_mark: | ❌ | +|Per-Thread性能指标| :heavy_check_mark: | ❌ | +|全局查询相应耗时统计| :heavy_check_mark: | ❌ | +|SHOW INNODB ENGINE STATUS增强| :heavy_check_mark: | ❌ | +|回滚段信息增强| :heavy_check_mark: | ❌ | +|临时表信息增强| :heavy_check_mark: | ❌ | +|用户统计信息增强| :heavy_check_mark: | ❌ | +|Slow log信息增强| :heavy_check_mark: | ❌ | +| **5.安全性提升** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +|国密支持| :heavy_check_mark: | ❌ | +|备份加密| :heavy_check_mark: | ❌ | +|审计日志入库| :heavy_check_mark: | ❌ | +|SQL Roles| :heavy_check_mark: | :heavy_check_mark: | +|SHA-2密码Hashing| :heavy_check_mark: | :heavy_check_mark: | +|密码轮换策略| :heavy_check_mark: | :heavy_check_mark: | +|PAM认证插件| :heavy_check_mark: | 仅企业版 | +|审计插件| :heavy_check_mark: | 仅企业版 | +|Keyring存储在文件中| :heavy_check_mark: | :heavy_check_mark: | +|Keyring存储在Hashicorp Vault中| :heavy_check_mark: | 仅企业版 | +|InnoDB数据加密| :heavy_check_mark: | :heavy_check_mark: | +|InnoDB日志加密| :heavy_check_mark: | :heavy_check_mark: | +|InnoDB各种表空间文件加密| :heavy_check_mark: | :heavy_check_mark: | +|二进制日志加密| :heavy_check_mark: | ❌ | +|临时文件加密| :heavy_check_mark: | ❌ | +|强制加密| :heavy_check_mark: | ❌ | +| **6. 运维便利性提升** | GreatSQL 8.0.32-25 | MySQL 8.0.32 | +|DDL原子性| :heavy_check_mark: | :heavy_check_mark: | +|数据字典存储InnoDB表| :heavy_check_mark: | :heavy_check_mark: | +|快速DDL| :heavy_check_mark: | :heavy_check_mark: | +|SET PERSIST| :heavy_check_mark: | :heavy_check_mark: | +|不可见索引| :heavy_check_mark: | :heavy_check_mark: | +|线程池(Threadpool)| :heavy_check_mark: | 仅企业版 | +|备份锁| :heavy_check_mark: | ❌ | +|SHOW GRANTS扩展| :heavy_check_mark: | ❌ | +|表损坏动作扩展| :heavy_check_mark: | ❌ | +|杀掉不活跃事务| :heavy_check_mark: | ❌ | +|START TRANSACTION WITH CONSISTENT SNAPSHOT扩展| :heavy_check_mark: | ❌ | + + +此外,GreatSQL 8.0.32-25基于Percona Server for MySQL 8.0.32版本,它在MySQL 8.0.32基础上做了大量的改进和提升以及众多新特性,详情请见:[**Percona Server for MySQL feature comparison**](https://docs.percona.com/percona-server/8.0/feature-comparison.html),这其中包括线程池、审计、数据脱敏等MySQL企业版才有的特性,以及performance_schema提升、information_schema提升、性能和可扩展性提升、用户统计增强、PROCESSLIST增强、Slow log增强等大量改进和提升,这里不一一重复列出。 + +GreatSQL同时也是gitee(码云)平台上的GVP项目,详见:[https://gitee.com/gvp/database-related](https://gitee.com/gvp/database-related) **数据库相关**类目。 ## 问题反馈 --- diff --git a/greatsql-8.0.32-24.tar.xz b/greatsql-8.0.32-25.tar.xz similarity index 100% rename from greatsql-8.0.32-24.tar.xz rename to greatsql-8.0.32-25.tar.xz diff --git a/greatsql-8.0.32-24.tar.xz.aa b/greatsql-8.0.32-25.tar.xz.aa similarity index 70% rename from greatsql-8.0.32-24.tar.xz.aa rename to greatsql-8.0.32-25.tar.xz.aa index 73e9b9bdc7b01d1ad1f8e0361b731a837d399fe2..430e838e601e0561d676e8cc1869924e391c303b 100644 Binary files a/greatsql-8.0.32-24.tar.xz.aa and b/greatsql-8.0.32-25.tar.xz.aa differ diff --git a/greatsql-8.0.32-24.tar.xz.ab b/greatsql-8.0.32-25.tar.xz.ab similarity index 70% rename from greatsql-8.0.32-24.tar.xz.ab rename to greatsql-8.0.32-25.tar.xz.ab index 9a8cb9938b7fd7af0e083ce26d5a651c182a8562..4b7040dd4686a5ff243a56f66278c7dfc9aba5ab 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ab and b/greatsql-8.0.32-25.tar.xz.ab differ diff --git a/greatsql-8.0.32-24.tar.xz.ac b/greatsql-8.0.32-25.tar.xz.ac similarity index 70% rename from greatsql-8.0.32-24.tar.xz.ac rename to greatsql-8.0.32-25.tar.xz.ac index f4a628090d15ec3a636b0eb6b203fcd7f2a4665b..f1c54280c34b2f647cc6d65a4e9b10a3e1f15229 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ac and b/greatsql-8.0.32-25.tar.xz.ac differ diff --git a/greatsql-8.0.32-24.tar.xz.ad b/greatsql-8.0.32-25.tar.xz.ad similarity index 70% rename from greatsql-8.0.32-24.tar.xz.ad rename to greatsql-8.0.32-25.tar.xz.ad index 1aba014c9e35bce430ce65af15472cce3e393214..e6a86dafd4e5bda60d1d4e4479254e6f3581b61f 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ad and b/greatsql-8.0.32-25.tar.xz.ad differ diff --git a/greatsql-8.0.32-25.tar.xz.ae b/greatsql-8.0.32-25.tar.xz.ae new file mode 100644 index 0000000000000000000000000000000000000000..3ee364a39aa2b2047fe2a144747446b48ba4c25f Binary files /dev/null and b/greatsql-8.0.32-25.tar.xz.ae differ diff --git a/greatsql-8.0.32-24.tar.xz.ae b/greatsql-8.0.32-25.tar.xz.af similarity index 72% rename from greatsql-8.0.32-24.tar.xz.ae rename to greatsql-8.0.32-25.tar.xz.af index f22a4977a13c0386f07905703b03e0947177803b..d2f2b62eec53f82075ccb0618afc12f6b1038891 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ae and b/greatsql-8.0.32-25.tar.xz.af differ diff --git a/greatsql-8.0.32-24.tar.xz.af b/greatsql-8.0.32-25.tar.xz.ag similarity index 71% rename from greatsql-8.0.32-24.tar.xz.af rename to greatsql-8.0.32-25.tar.xz.ag index 88ea7094d497d4c55dea4cd66f1de4cf5e51d419..7415fb05490fee30e9bad2cbe054eeaf1e27e295 100644 Binary files a/greatsql-8.0.32-24.tar.xz.af and b/greatsql-8.0.32-25.tar.xz.ag differ diff --git a/greatsql-8.0.32-24.tar.xz.ag b/greatsql-8.0.32-25.tar.xz.ah similarity index 70% rename from greatsql-8.0.32-24.tar.xz.ag rename to greatsql-8.0.32-25.tar.xz.ah index 460d811942ed1986668d63662100f75f46b7b9b3..6926fc8dec13e3444465cd3e521f153a0674d240 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ag and b/greatsql-8.0.32-25.tar.xz.ah differ diff --git a/greatsql-8.0.32-24.tar.xz.ah b/greatsql-8.0.32-25.tar.xz.ai similarity index 78% rename from greatsql-8.0.32-24.tar.xz.ah rename to greatsql-8.0.32-25.tar.xz.ai index 72a30cff0282bb1ae9ee07c03b46c26b2d49465e..3285732dfcd04faf547a8e02d866fa7f64ff670f 100644 Binary files a/greatsql-8.0.32-24.tar.xz.ah and b/greatsql-8.0.32-25.tar.xz.ai differ diff --git a/greatsql-8.0.32-25.tar.xz.aj b/greatsql-8.0.32-25.tar.xz.aj new file mode 100644 index 0000000000000000000000000000000000000000..0a0a82edea1dc8ad592cd3fbfe368851d7620332 Binary files /dev/null and b/greatsql-8.0.32-25.tar.xz.aj differ diff --git a/greatsql.spec b/greatsql.spec index 62a34cf30c6d85c65cfcbb7e03457af090aa88c5..f1b50b874acb4b8fe9066189137f7c0e61b938ea 100644 --- a/greatsql.spec +++ b/greatsql.spec @@ -1,13 +1,38 @@ +# Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2023, GreatDB Software Co., Ltd. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston +# MA 02110-1301 USA. + +# Rebuild on OL5/RHEL5 needs following rpmbuild options: +# rpmbuild --define 'dist .el5' --define 'rhel 5' --define 'el5 1' mysql.spec + +# Install cmake28 from EPEL when building on OL5/RHEL5 and OL6/RHEL6. + +# NOTE: "vendor" is used in upgrade/downgrade check, so you can't +# change these, has to be exactly as is. + %undefine _missing_build_ids_terminate_build %global mysql_vendor Oracle and/or its affiliates %global greatsql_vendor GreatDB Software Co., Ltd. %global mysqldatadir /var/lib/mysql %global mysql_version 8.0.32 -%global greatsql_version 24 -%global revision 3714067bc8c +%global greatsql_version 25 +%global revision db07cc5cb73 %global tokudb_backup_version %{mysql_version}-%{greatsql_version} -%global rpm_release 2 +%global rpm_release 1 %global release %{greatsql_version}.%{rpm_release}%{?dist} @@ -74,20 +99,22 @@ %global license_type GPLv2 Name: greatsql -Summary: GreatSQL: Open source database that can be used to replace MySQL or Percona Server, and focuses on improving MGR and InnoDB parallel query. +Summary: GreatSQL: a high performance, highly reliable, easy to use, and high security database Group: Applications/Databases Version: %{mysql_version} Release: %{release} License: Copyright (c) 2000, 2018, %{mysql_vendor}. All rights reserved. Under %{?license_type} license as shown in the Description field.. -SOURCE0: greatsql-8.0.32-24.tar.xz -SOURCE101: greatsql-8.0.32-24.tar.xz.aa -SOURCE102: greatsql-8.0.32-24.tar.xz.ab -SOURCE103: greatsql-8.0.32-24.tar.xz.ac -SOURCE104: greatsql-8.0.32-24.tar.xz.ad -SOURCE105: greatsql-8.0.32-24.tar.xz.ae -SOURCE106: greatsql-8.0.32-24.tar.xz.af -SOURCE107: greatsql-8.0.32-24.tar.xz.ag -SOURCE108: greatsql-8.0.32-24.tar.xz.ah +SOURCE0: greatsql-8.0.32-25.tar.xz +SOURCE101: greatsql-8.0.32-25.tar.xz.aa +SOURCE102: greatsql-8.0.32-25.tar.xz.ab +SOURCE103: greatsql-8.0.32-25.tar.xz.ac +SOURCE104: greatsql-8.0.32-25.tar.xz.ad +SOURCE105: greatsql-8.0.32-25.tar.xz.ae +SOURCE106: greatsql-8.0.32-25.tar.xz.af +SOURCE107: greatsql-8.0.32-25.tar.xz.ag +SOURCE108: greatsql-8.0.32-25.tar.xz.ah +SOURCE109: greatsql-8.0.32-25.tar.xz.ai +SOURCE110: greatsql-8.0.32-25.tar.xz.aj URL: https://greatsql.cn SOURCE5: mysql_config.sh SOURCE10: boost_1_77_0.tar.xz @@ -139,6 +166,8 @@ BuildRequires: pam-devel BuildRequires: readline-devel BuildRequires: numactl-devel BuildRequires: compat-openssl11-devel +#BuildRequires: openssl +#BuildRequires: openssl-devel BuildRequires: zlib-devel BuildRequires: bison BuildRequires: openldap-devel @@ -159,7 +188,8 @@ BuildRequires: m4 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) # For rpm => 4.9 only: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering -%global __requires_exclude ^perl\\((GD|hostnames|lib::mtr|lib::v1|mtr_|My::) +#%global __requires_exclude ^perl\\((GD|hostnames|lib::mtr|lib::v1|mtr_|My::) +%global __requires_exclude ^perl\\((GD|hostnames|lib::mtr|lib::v1|mtr_|My::|Lmo|Lmo::Meta|Lmo::Object|Lmo::Types|Lmo::Utils|Percona::Toolkit|Quoter|Transformers) %global __provides_exclude_from ^(/usr/share/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so|/usr/include/mysql/.*|/usr/share/man/man.*/mysql.*|/etc/my.cnf|/usr/bin/mysql.*|/usr/sbin/mysqld.*|*libprotobuf*|*libmysqlclient.so*|*libmysqlharness*|*libmysqlrouter*|*mysqlclient*|*libdaemon*|*libfnv*|*libmemcached*|*libmurmur*|*libtest*)$ %global _privatelibs lib(protobuf|mysqlclient|mysqlharness|mysqlrouter|mysqlclient|daemon|fnv|memcached|murmur|test)*\\.so* @@ -172,7 +202,7 @@ GreatSQL focuses on improving the reliability and performance of MGR, supports I For a description of GreatSQL see https://greatsql.cn %package -n greatsql-server -Summary: GreatSQL: Open source database that can be used to replace MySQL or Percona Server. +Summary: GreatSQL: a high performance, highly reliable, easy to use, and high security database that can be used to replace MySQL or Percona Server. Group: Applications/Databases Requires: coreutils Requires: bash /bin/sh @@ -184,6 +214,7 @@ Requires(pre): greatsql-shared Requires: greatsql-client Requires: greatsql-icu-data-files Requires: compat-openssl11-devel +#Requires: openssl Conflicts: Percona-SQL-server-50 Percona-Server-server-51 Percona-Server-server-55 Percona-Server-server-56 Percona-Server-server-57 %if 0%{?systemd} @@ -199,7 +230,9 @@ Requires(preun): /sbin/service Obsoletes: mariadb-connector-c-config %description -n greatsql-server -GreatSQL focuses on improving the reliability and performance of MGR, supports InnoDB parallel query and other features, and is a domestic MySQL version suitable for financial applications. It can be used as an optional replacement of MySQL or Percona Server. It is completely free and compatible with MySQL or Percona server. +GreatSQL: a high performance, highly reliable, easy to use, and high security database that can be used to replace MySQL or Percona Server. + +For a description of GreatSQL see https://greatsql.cn %package -n greatsql-client Summary: GreatSQL - Client @@ -319,6 +352,8 @@ Requires: greatsql-client = %{version}-%{release} %description -n greatsql-rocksdb This package contains the RocksDB plugin for GreatSQL %{version}-%{release} + +For a description of GreatSQL see https://greatsql.cn %endif %package -n greatsql-mysql-router @@ -351,6 +386,8 @@ Provides: greatsql-mysql-config = %{version}-%{release} Conflicts: mysql-config %description -n greatsql-mysql-config +This package contains my.cnf for GreatSQL. + For a description of GreatSQL see https://greatsql.cn %package -n greatsql-icu-data-files @@ -359,10 +396,11 @@ Summary: GreatSQL packaging of ICU data files %description -n greatsql-icu-data-files This package contains ICU data files needer by GreatSQL regular expressions. +For a description of GreatSQL see https://greatsql.cn %prep cat %{SOURCE201} %{SOURCE202} > %{SOURCE10} -cat %{SOURCE101} %{SOURCE102} %{SOURCE103} %{SOURCE104} %{SOURCE105} %{SOURCE106} %{SOURCE107} %{SOURCE108} > %{SOURCE0} +cat %{SOURCE101} %{SOURCE102} %{SOURCE103} %{SOURCE104} %{SOURCE105} %{SOURCE106} %{SOURCE107} %{SOURCE108} %{SOURCE109} %{SOURCE110} > %{SOURCE0} %setup -q -T -a 0 -a 10 -c -n %{src_dir} pushd %{src_dir} %patch0 -p0 @@ -405,6 +443,7 @@ mkdir debug -DFEATURE_SET="%{feature_set}" \ -DWITH_AUTHENTICATION_LDAP=OFF \ -DWITH_PAM=1 \ + -DWITH_UNIT_TESTS=OFF \ -DWITH_ROCKSDB=0 \ -DALLOW_NO_SSE42=ON \ -DROCKSDB_DISABLE_AVX2=0 \ @@ -456,6 +495,7 @@ mkdir release -DFEATURE_SET="%{feature_set}" \ -DWITH_AUTHENTICATION_LDAP=OFF \ -DWITH_PAM=1 \ + -DWITH_UNIT_TESTS=OFF \ -DWITH_ROCKSDB=0 \ -DROCKSDB_DISABLE_AVX2=0 \ -DROCKSDB_DISABLE_MARCH_NATIVE=0 \ @@ -507,14 +547,14 @@ make DESTDIR=%{buildroot} install #install -D -m 0644 packaging/rpm-common/mysql.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql #investigate this logrotate install -D -m 0644 $MBD/release/support-files/mysql-log-rotate %{buildroot}%{_sysconfdir}/logrotate.d/mysql -install -D -m 0644 $MBD/%{src_dir}/build-ps/rpm/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf +install -D -m 0644 $MBD/%{src_dir}/build-gs/rpm/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf install -D -p -m 0644 %{_builddir}/greatsql-%{version}-%{greatsql_version}/greatsql-%{version}-%{greatsql_version}/scripts/mysqld.cnf %{buildroot}%{_sysconfdir}/my.cnf install -d %{buildroot}%{_sysconfdir}/my.cnf.d #%if 0%{?systemd} #%else #%if 0%{?rhel} < 7 -# install -D -m 0755 $MBD/%{src_dir}/build-ps/rpm/mysql.init %{buildroot}%{_sysconfdir}/init.d/mysql +# install -D -m 0755 $MBD/%{src_dir}/build-gs/rpm/mysql.init %{buildroot}%{_sysconfdir}/init.d/mysql #%endif @@ -1312,6 +1352,9 @@ fi %changelog +* Thu Dec 28 2023 GreatSQL - 8.0.32-25.1 +- Release GreatSQL-8.0.32-25.1 + * Wed Jul 5 2023 GreatSQL - 8.0.32-24.2 - modify libmysqlrouter.so.* to libmysqlrouter*.so.*