《4-矫顺田-IvorySQL架构设计与云原生生态.pdf》由会员分享,可在线阅读,更多相关《4-矫顺田-IvorySQL架构设计与云原生生态.pdf(24页珍藏版)》请在三个皮匠报告上搜索。
1、w w w.p o s t g re s q l c h i n a.c o mIvorySQL架构设计与云原生生态中国开源软件推进联盟PostgreSQL分会瀚高基础软件股份有限公司矫顺田项目介绍01.架构设计02.云原生生态03.目录IvorySQL是什么?项目背景4服务经验产品需求开发诉求数据安全Copyright 2024 IvorySQL.All rights reserved.IvorySQL项目介绍5由浪潮软件集团瀚高股份发起的开源项目,基于 PostgreSQL最新版本是IvorySQL V3.1(基于 PostgreSQL 16.1)Apache 2.0 开源协议100%与P
2、ostgreSQL兼容,紧跟PG内核的升级而升级。每个季度发布一个小版本,每年发布一个大版本IvorySQL 在 PostgreSQL 之上添加的功能包括:oOracle 兼容的 PL/iSQL 过程语言oGUC 在 Oracle 和 PostgreSQL 模式之间切换o各种 DDL 操作的 Oracle 兼容语法oOracle 兼容的日期/时间函数o与内核绑定的插件 ivorysql_ora 来实现兼容Oracle的功能Copyright 2024 IvorySQL.All rights reserved.IvorySQL架构设计IvorySQL V3 总体架构7基于 PostgreSQL
3、16IvorySQL在PostgreSQL 之上添加了一些创新功能通过实现双Parser和双端口接收外部请求,并在原有架构基础上扩展PL/iSQL框架,同时利用插件IvorySQL_ORA来实现兼容性功能。这种设计使得V3版本能够提供与Oracle数据库相似的特性和行为,同时保持与PostgreSQL的兼容性。通过这种方式,IvorySQL V3可以为用户提供更加灵活和高效的数据库解决方案。更多功能,请查阅发行说明IvorySQL V3 总体架构Copyright 2024 IvorySQL.All rights reserved.IvorySQL V3开发功能8PG工具Oracle应用PG
4、SQL解析器5432Oracle SQL解析器1521PL/pgSQLPL/iSQLPL/PythonPL/TCLPL/PerlPL/RPL/JavaPostGISIvorySQL_ORAPostgres_fdwOracle_fdwpg_idx_advisorpg_logqueryidpg_stat_statementsPL/pgSQLPL/iSQLPL/PythonPL/TCLPL/PerlPL/RPL/JavaPL/V8PostGISIvorySQL_ORAPostgres_fdwOracle_fdwpg_idx_advisorpg_logqueryidpg_stat_statements
5、pg_query_rewrite内置数据类型guc参数内置字符函数内置时间函数PL/RPL/Java内置功能SQL兼容NLS参数PL/SQL兼容其它大小写敏感空转NULL参数解析模块嵌套子程序函数兼容存储过程兼容匿名块全局唯一索引mergeq转义oracle like自增列兼容Oracle 测试框架pg 测试框架Copyright 2024 IvorySQL.All rights reserved.双端口9双端口设计保持了IvorySQL 5432端口兼容原有postgres情况,因此 IvorySQL采用另一个独立的端口登录,默认为1521。从该端口登录,默认采用oracle兼容模式。如果需
6、要从5432端口登录且还要进入兼容模式,则需要通过compatible_mode参数进行设置。Copyright 2024 IvorySQL.All rights reserved.parser模块设计10parser模块设计为了将Oracle语法与PG语法间的相互干扰降到最低,因此新增oracle parser模块,用于处理Oracle相关的语法。动态库预加载 shared_preload_libraries=liboracle_parserCopyright 2024 IvorySQL.All rights reserved.parser模块设计11IvorySQL内核中的钩子src/in
7、clude/parser/parser.hsql_raw_parser:解析器选择钩子,根据当前兼容模式选择不同的语法解析器接口。ora_raw_parser:Oracle语法解析器钩子,保存的是Oracle解析器提供的外部接口oracle_raw_parser函数地址。切换兼容模式时分别给sql_raw_parser赋值ora_raw_parser或standard_raw_parser,无论无何sql_raw_parser的值都不允许为NULL。Copyright 2024 IvorySQL.All rights reserved.Ivorysql_ora插件12 IvorySQL数据库兼
8、容Oracle功能的外部插件,其中实现兼容Oracle的数据类型、内置函数、xml函数、Oracle系统视图、merge命令等功能的代码。插件只能运行在IvorySQL内核中 在插件src源码目录中存在多个子目录,每个子目录实现一个功能。本插件作为内置插件,在Oracle模式下初始化时自动加载此插件。Copyright 2024 IvorySQL.All rights reserved.回归测试13为了减少Oracle兼容与postgres语法不同而导致测试用例冲突得情况,因此单独设计了一套Oracle专用的测试用例。该套测试用例由postgres原有测试框架拷贝修改而来。目前IvorySQL
9、的测试用例可分为三类:原生PGOracle模式下PGOracle模式下Oraclemake all-check-worldmake check-worldoracle-pg-check-worldmake oracle-check-worldCopyright 2024 IvorySQL.All rights reserved.IvorySQL云原生生态IvorySQL云生态15IvorySQL开源云平台用户可一键搭建IvorySQL数据库,并提供更直观的备份恢复、管理工具、监控工具等齐全的周边工具。IvorySQL Operator基于CrunchyData postgres-operato
10、r fork并对IvorySQL进行了适配,极大简化了IvorySQL集群在K8S中的部署和管理。IvorySQL内核的Serverless数据库HGNeon基于开源的无服务器数据库Neon开发,将存储和计算分离,并且可适配国内阿里云、华为云、浪潮云等云对象存储。Copyright 2024 IvorySQL.All rights reserved.IvorySQL云平台161数据库监控性能诊断垂直扩容自动扩缩容一键部署备份恢复24789可视化管理工具3纳管已有数据库5全生命周期管理6水平扩容10云平台Copyright 2024 IvorySQL.All rights reserved.一键
11、部署Copyright 2024 IvorySQL.All rights reserved.IvorySQL Operator18IvorySQL Operator是在Kubernetes上部署和管理IvorySQL集群的Operator,它提供了一个声明性的IvorySQL解决方案。借助IvorySQL Operator,用户可以在极短时间内迅速部署一个功能完备的IvorySQL集群,同时涵盖TLS通信安全、高可用、备份恢复及全面的监控。此外,IvorySQL Operator还支持用户根据实际业务需求情况进行自定义配置,充分满足个性化的使用场景。Copyright 2024 IvorySQ
12、L.All rights reserved.IvorySQL operator19相关组件:数据库:IvorySQL高可用:Patroni备份恢复:pgbackrest数据库管理工具:pgAdmin4监控:Prometheus、Grafana、Alertmanager数据库插件:pgAudit、pg_cron、pgBouncer、PostGis cr.yamlCopyright 2024 IvorySQL.All rights reserved.Serverless数据库20pageserver存储节点IvorySQL 计算节点storage brokersafekeepersREST-API
13、云存储国内主流云国外主流云本地云存储compute1compute2proxy华为云 OBS阿里云 OSS浪潮云 OSSCopyright 2024 IvorySQL.All rights reserved.欢迎贡献21贡献源码提交特性代码审查PR提交修复BUG的PR测试并报告Bug撰写IvorySQL技术日志回答用户问题贡献文档及维护网站为IvorySQL创建和托管(RPM和/或DEB)包Copyright 2024 IvorySQL.All rights reserved.IvorySQL一款开源的兼容Oracle的PostgreSQL官方网址:https:/www.ivorysql.org社区仓库:https:/ Cloud:https:/ Operator:https:/ 奥Copyright 2024 IvorySQL.All rights reserved.加入我们 Join us!23添加小助理微信加入IvorySQL技术交流群关注公众号解锁更多技术干货关注视频号了解最新视频动态Copyright 2024 IvorySQL.All rights reserved.THANKSTHANKSSpeaker name and title