GreatSQL 深度解析:金融级开源数据库全攻略

GreatSQL 深度解析:金融级开源数据库全攻略 高可用 · 高性能 · 高兼容 · 高安全——MySQL 的理想开源替代方案 2026-03-24 | 版本 GreatSQL 8.4.4-4 | 开源 · GPLv2 | ⏱ 预计阅读 10 分钟 目录GreatSQL 是什么高可用High Availability高性能High Performance高兼容High Compatibility高安全High SecurityGreatSQL vs MySQL 特性对比安装部署my.cnf 配置详解8.4.4-4总结1. GreatSQL 是什么GreatSQL是一款由国内团队主导开发的开源免费数据库GPLv2 协议基于 MySQL/Percona Server for MySQL 演进而来专注于在普通商用硬件上满足金融级应用场景需求。它可以作为 MySQL 或 Percona Server for MySQL 的即插即用替代品做到二进制层面 100% 兼容。核心优势特性说明金融级可靠ACID 完整性 MGR 强一致满足核心交易场景完全开源GPLv2 协议零授权费用社区持续演进零成本迁移与 MySQL 8.4 完全兼容替换无需改代码性能飞跃OLTP 20%OLAP 提升数个数量级标签MySQL 兼容|开源免费|金融级|高可用 MGR|Oracle 语法|国密支持2. 高可用High AvailabilityGreatSQL 对 MySQL Group ReplicationMGR和主从复制进行了大量深度优化显著提升了稳定性、切换速度和数据可靠性是目前开源生态中 MGR 功能最为完善的发行版。MGR 高可用增强特性特性说明地理标签Geo Tag支持多机房架构感知节点所在机房优化跨地域容灾策略仲裁节点Arbitrator用轻量级仲裁节点替代完整数据节点降低高可用架构的服务器成本读写动态 VIP主从切换时 VIP 自动漂移业务无感知读 VIP 支持跨节点负载均衡快速单主模式Fast Single Primary单主模式下大幅提升写入吞吐降低事务延迟智能选主GTID_FIRST 策略主库故障时优先选取事务最新的节点避免数据回退流控算法优化重写 MGR 流控逻辑事务吞吐更平稳消除周期性抖动大事务传输压缩MGR 大事务在传输时自动压缩降低网络带宽消耗主主双向复制防回路跨机房容灾场景下防止 Binlog 在主主架构中无限循环磁盘满处理优化节点磁盘空间耗尽时仅隔离该节点不影响整个 MGR 集群事务认证队列清理优化解决高负载下每 60 秒触发一次的性能抖动问题Binlog 读取限速从节点向主节点请求 Binlog 时支持速率限制保护主库 I/ORecovery 机制优化加速节点重新加入集群的过程减少长时间等待 最佳实践生产环境推荐 3 节点 MGR 架构1 主 1 从 1 仲裁节点配合greatdb_ha插件实现 VIP 自动漂移可做到 RTO 30s、RPO 0 的强一致高可用。3. 高性能High PerformanceGreatSQL 在 OLTP 和 OLAP 两个维度均有显著性能提升引入了两款全新引擎同时对 InnoDB 核心进行了深度改造。性能提升概览场景提升幅度TPC-COLTP 综合较 MySQL 8.4 提升 ~30%并行 LOAD DATA较原生提升 ~20xTPC-HOLAP 分析Rapid 引擎提升数十至上百倍InnoDB OLTP 整体大锁拆分优化 20%两大新引擎引擎特点 Rapid 引擎大规模并行 · 内存查询 · 高压缩比专为 HTAP/OLAP 场景设计数据分析性能提升数个数量级️ Turbo 引擎多线程并发 · 向量化执行实时高性能并行查询适用于复杂 SQL 加速其他性能增强InnoDB 大锁拆分 无锁化— 多种锁优化方案OLTP 场景整体性能提升约 20%并行 LOAD DATA— 支持多线程并行导入性能提升约 20 倍对无显式主键场景也有专项优化线程池Thread Pool— 降低线程创建销毁开销高并发场景下性能更稳定非阻塞式 DDL— DDL 操作期间不阻塞业务请求避免雪崩效应异步删除大表— 后台异步回收大表空间消除 DROP TABLE 引发的 I/O 毛刺NUMA 亲和性优化— 将前端用户线程与后台线程绑定到固定 NUMA 节点提升缓存命中率4. 高兼容High CompatibilityGreatSQL 100% 兼容 MySQL 及 Percona Server for MySQL 的所有语法和行为同时扩展支持大量常用 Oracle 语法为存量 Oracle 应用迁移提供便利通道。兼容项说明数据类型兼容支持 Oracle 风格的数据类型声明方式函数兼容内置 Oracle 常用内置函数别名及扩展SQL 语法兼容支持 CONNECT BY、ROWNUM 等 Oracle 特有语法存储程序兼容PL/SQL 风格的存储过程、包、游标等ℹ️ 迁移场景从MySQL 迁移无需任何改动直接替换二进制即可。从Oracle 迁移支持大多数常见 Oracle 语法可显著降低改造工作量。5. 高安全High SecurityGreatSQL 内置多项企业级安全特性满足金融、政务等对数据安全有严格要求的行业规范。安全特性说明逻辑备份加密mysqldump 导出文件支持加密防止备份文件泄露Clone 物理备份加密Clone 插件产生的物理备份文件全程加密存储审计日志记录所有数据库访问和操作行为便于安全审查与合规InnoDB 表空间国密加密SM4采用国家标准密码算法 SM4 对 InnoDB 表空间进行透明加密数据脱敏支持基于函数和策略两种脱敏方式保护查询结果中的敏感字段6. GreatSQL vs MySQL 特性对比以下对比基于 GreatSQL 8.4.4-4 与 MySQL 8.4.4 社区版。特性GreatSQL 8.4.4-4MySQL 8.4.4 CE开源免费✓ 完全开源部分功能收费MGR 高可用增强✓ 深度优化基础功能地理标签 / 仲裁节点✓ 支持✗ 不支持Rapid OLAP 引擎✓ 支持✗ 不支持Turbo 向量化引擎✓ 支持✗ 不支持并行 LOAD DATA~20x✓ 支持✗ 不支持非阻塞式 DDL✓ 支持✗ 不支持Oracle 语法兼容✓ 大部分支持✗ 不支持国密 SM4 加密✓ 支持✗ 不支持数据脱敏✓ 支持✗ 不支持审计日志✓ 支持企业版才有线程池✓ 支持企业版才有7. 安装部署推荐安装 jemallocx86_64jemalloc 能有效减少内存碎片提升高并发场景下的内存分配效率。# 安装 EPEL 源 yum install -y epel-release # 安装 jemalloc yum -y install jemalloc jemalloc-develRPM 包安装CentOS 8 / RHEL 8# 下载 RPM 包后一次性安装所有组件 rpm -ivh --nodeps \ greatsql-client-8.4.4-4.1.el8.x86_64.rpm \ greatsql-devel-8.4.4-4.1.el8.x86_64.rpm \ greatsql-icu-data-files-8.4.4-4.1.el8.x86_64.rpm \ greatsql-server-8.4.4-4.1.el8.x86_64.rpm \ greatsql-shared-8.4.4-4.1.el8.x86_64.rpm # 启动服务 systemctl enable --now mysqld # 查看运行状态 systemctl status mysqld其他版本的安装包下载点击如下链接进行下载https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.4.4-4https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.4.4-4⚠️ 注意安装后请立即修改 root 临时密码并参考下方 my.cnf 配置示例完善配置文件避免使用默认配置在生产环境上线。安装步骤时序准备操作系统— 关闭 SELinux / 调整 ulimit / 挂载数据盘 / 安装 jemalloc下载并安装 RPM 包— 从官方 Gitee Releases 下载对应版本的 RPM 安装包配置 my.cnf— 根据服务器规格调整关键参数见下节初始化 启动— systemctl start mysqld获取临时密码并修改配置 MGR可选— 启用 group_replication 插件搭建高可用集群8. my.cnf 配置详解8.4.4-4以下配置基于官方示例假设服务器为 128C256GRPM 包安装已按功能模块拆解并加注释说明。实际使用时请根据服务器硬件规格按比例调整。️ [client] — 客户端基础配置参数值说明socket/data/GreatSQL/mysql.sockUnix Socket 文件路径 [mysql] — 命令行客户端配置参数值说明loose-skip-binary-as-hex无值开关项二进制数据不以 HEX 显示更易阅读prompt(\D)[\uGreatSQL][\d]自定义命令行提示符显示时间/用户/库名no-auto-rehash无值开关项禁用自动补全加速连接速度 [mysqld] — 服务基础配置参数值说明usermysqlport3306server_id3306集群中每个节点必须唯一basedir/usr/datadir/data/GreatSQLcharacter-set-serverUTF8MB4skip_name_resolveON关闭 DNS 反解提升连接速度default_time_zone8:00mysql_native_passwordON兼容旧版客户端认证插件⚡ Performance — 性能参数参数值说明max_connections1024最大连接数table_open_cache4096sort_buffer_size4Mjoin_buffer_size4Mread_buffer_size8Mbulk_insert_buffer_size64Mthread_cache_size768tmp_table_size96Mmax_allowed_packet64Msql_generate_invisible_primary_keyON无主键表自动生成隐式主键loose-lock_ddl_polling_modeON非阻塞式 DDL 轮询模式 Logs — 日志配置参数值说明log_error_verbosity3错误日志详细级别slow_query_logON开启慢查询日志long_query_time0.01慢查询阈值秒0.01 10mslog_queries_not_using_indexesON记录未使用索引的查询log_slow_verbosityFULLbinlog_formatROWsync_binlog1每次事务提交都刷盘最安全max_binlog_size1Gbinlog_space_limit500GBinlog 总占用空间上限binlog_expire_logs_seconds604800604800 7 天gtid_modeONenforce_gtid_consistencyON Replication — 复制配置参数值说明relay_log_recoveryON重启后自动从主库重新获取 Relay Logreplica_parallel_typeLOGICAL_CLOCKreplica_parallel_workers16从库并行回放线程数replica_preserve_commit_orderON保证从库提交顺序与主库一致loose-gdb_parallel_loadON并行 LOAD DATA 开关️ InnoDB — 存储引擎配置参数值说明innodb_buffer_pool_size96G专用数据库服务器建议设为物理内存 50-70%innodb_buffer_pool_instances8innodb_flush_log_at_trx_commit11 每次提交刷盘最安全innodb_redo_log_capacity4Ginnodb_io_capacity10000后台 I/O 能力根据磁盘性能调整innodb_io_capacity_max20000innodb_flush_methodO_DIRECTinnodb_use_fdatasyncONinnodb_lock_wait_timeout10innodb_rollback_on_timeoutON锁超时时回滚整个事务而非仅最后一条语句innodb_print_all_deadlocksON记录所有死锁信息到错误日志innodb_adaptive_hash_indexOFF高并发下关闭以减少锁竞争kill_idle_transaction300杀死空闲超过 300s 的事务防止长事务积压innodb_data_file_async_purgeON异步清理数据文件提升稳定性 配置调优建议innodb_buffer_pool_size设为可用内存的 50%~70%innodb_io_capacity/innodb_io_capacity_max根据磁盘实测 IOPS 设置replica_parallel_workers建议不超过 CPU 核数的 1/4MGR 相关配置默认注释按需开启Rapid / Turbo 引擎默认注释按需加载完整配置文件原文# # my.cnf example for GreatSQL 8.4.4-4 # # 下面参数选项设置仅作为参考假定服务器配置为128C256G # 假定以RPM包方式安装GreatSQL # [client] socket/data/GreatSQL/mysql.sock [mysql] loose-skip-binary-as-hex prompt(\\D)[\\uGreatSQL][\\d] no-auto-rehash [mysqld] usermysql port3306 server_id3306 basedir/usr/ datadir/data/GreatSQL socket/data/GreatSQL/mysql.sock pid-filemysql.pid character-set-serverUTF8MB4 skip_name_resolveON default_time_zone8:00 bind_address0.0.0.0 secure_file_priv/data/GreatSQL mysql_native_passwordON # Performance lock_wait_timeout3600 open_files_limit65535 back_log1024 max_connections1024 max_connect_errors1000000 table_open_cache4096 table_definition_cache2048 sort_buffer_size4M join_buffer_size4M read_buffer_size8M read_rnd_buffer_size4M bulk_insert_buffer_size64M thread_cache_size768 interactive_timeout600 wait_timeout600 tmp_table_size96M max_heap_table_size96M max_allowed_packet64M net_buffer_shrink_interval180 sql_generate_invisible_primary_keyON loose-lock_ddl_polling_modeON loose-lock_ddl_polling_runtime200 # Logs log_timestampsSYSTEM log_errorerror.log log_error_verbosity3 slow_query_logON log_slow_extraON slow_query_log_fileslow.log long_query_time0.01 log_queries_not_using_indexesON log_throttle_queries_not_using_indexes60 min_examined_row_limit100 log_slow_admin_statementsON log_slow_replica_statementsON log_slow_verbosityFULL log_binbinlog binlog_formatROW sync_binlog1 binlog_cache_size4M max_binlog_cache_size6G max_binlog_size1G binlog_space_limit500G binlog_rows_query_log_eventsON binlog_expire_logs_seconds604800 binlog_checksumCRC32 binlog_order_commitsOFF gtid_modeON enforce_gtid_consistencyON # Replication relay-logrelaylog relay_log_recoveryON replica_parallel_typeLOGICAL_CLOCK replica_parallel_workers16 replica_preserve_commit_orderON replica_checkpoint_period2 loose-rpl_read_binlog_speed_limit0 # Parallel LOAD DATA loose-gdb_parallel_loadON loose-innodb_optimize_no_pk_parallel_loadON # Rapid #loose-plugin_load_addha_rapid.so #loose-rapid_memory_limit64G #loose-rapid_worker_threads32 #loose-secondary_engine_parallel_load_workers16 # Turbo #loose-plugin_load_addturbo.so #loose-turbo_memory_limit 64G #loose-turbo_worker_threads32 # Clone #loose-plugin_load_addmysql_clone.so # MGR #loose-plugin_load_addgroup_replication.so #loose-group_replication_group_nameaaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa1 #loose-group_replication_view_change_uuidbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbb1 #loose-group_replication_local_address172.16.16.10:33061 #loose-group_replication_group_seeds172.16.16.10:33061,172.16.16.12:33061,172.16.16.12:33061 #loose-group_replication_ip_allowlist172.160.16.0/8,192.168.0.0/24,::1/128 #loose-group_replication_communication_stackXCOM #loose-group_replication_recovery_use_sslOFF #loose-group_replication_ssl_modeDISABLED #loose-group_replication_start_on_bootOFF #loose-group_replication_bootstrap_groupOFF #loose-group_replication_exit_state_actionREAD_ONLY #loose-group_replication_flow_control_modeDISABLED #loose-group_replication_single_primary_modeON #loose-group_replication_enforce_update_everywhere_checksOFF #loose-group_replication_majority_after_modeON #loose-group_replication_communication_max_message_size10M #loose-group_replication_arbitratorOFF #loose-group_replication_single_primary_fast_mode1 #loose-group_replication_request_time_threshold100 #loose-group_replication_primary_election_modeGTID_FIRST #loose-group_replication_unreachable_majority_timeout0 #loose-group_replication_member_expel_timeout5 #loose-group_replication_autorejoin_tries288 #loose-group_replication_recovery_get_public_keyON #loose-group_replication_donor_threshold100 # greatdb_ha #loose-plugin_load_addgreatdb_ha.so #loose-greatdb_ha_enable_mgr_vipOFF #loose-greatdb_ha_mgr_vip_niceth0 #loose-greatdb_ha_mgr_vip_ip172.16.16.252 #loose-greatdb_ha_mgr_vip_mask255.255.255.0 #loose-greatdb_ha_port33062 #loose-greatdb_ha_mgr_read_vip_ips172.16.16.251,172.16.16.252 #loose-greatdb_ha_mgr_read_vip_floating_typeTO_ANOTHER_SECONDARY #loose-greatdb_ha_send_arp_packge_times5 #loose-greatdb_ha_mgr_exit_primary_kill_connection_modeOFF #report_host172.16.16.10 #report_port3306 # InnoDB innodb_buffer_pool_size96G #如果是专用的数据库服务器则可以设置为物理内存的50%-70%视实际情况而定 innodb_buffer_pool_instances8 innodb_data_file_pathibdata1:12M:autoextend innodb_flush_log_at_trx_commit1 innodb_log_buffer_size64M innodb_redo_log_capacity4G innodb_doublewrite_files64 innodb_doublewrite_pages128 innodb_max_undo_log_size4G innodb_io_capacity10000 innodb_io_capacity_max20000 innodb_open_files65534 innodb_flush_methodO_DIRECT innodb_use_fdatasyncON innodb_lru_scan_depth9000 innodb_lock_wait_timeout10 innodb_rollback_on_timeoutON innodb_print_all_deadlocksON innodb_online_alter_log_max_size4G innodb_print_ddl_logsOFF innodb_status_fileON innodb_status_outputOFF innodb_status_output_locksON innodb_sort_buffer_size64M innodb_adaptive_hash_indexOFF innodb_numa_interleaveOFF innodb_spin_wait_delay20 innodb_print_lock_wait_timeout_infoOFF innodb_change_bufferingnone kill_idle_transaction300 innodb_data_file_async_purgeON9. 总结GreatSQL 是国内开源数据库生态中的一颗明珠。它在 MySQL 坚实基础之上打磨出真正面向生产、面向金融级场景的能力价值说明高可用不再是痛点MGR 深度优化 greatdb_ha VIP 自动漂移搭建企业级高可用集群门槛大幅降低HTAP 一体化Rapid Turbo 双引擎让同一套数据库同时支撑交易和分析无需额外维护 OLAP 系统Oracle 迁移利器广泛的 Oracle 语法兼容让存量 Oracle 应用向开源迁移有了可行路径安全合规开箱即用国密 SM4、审计、脱敏、备份加密满足金融、政务等行业的合规要求零迁移成本100% 兼容 MySQL现有应用无需任何改动即可替换 相关链接GreatSQL 项目主页Giteemy.cnf 配置示例原文GreatSQL 官方文档GreatSQL 官方网站整理说明本文整理自 GreatSQL 官方 Gitee 仓库 及 GreatSQL-Doc 文档库。GreatSQL 采用 GPLv2 开源协议 · 版本 8.4.4-4 · 整理日期 2026-03-24