OneProxy : 面向商业数据库(Oracle/SQL Server)中间件即将面世

Posted 平民软件

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OneProxy : 面向商业数据库(Oracle/SQL Server)中间件即将面世相关的知识,希望对你有一定的参考价值。

商业数据库:Oracle、SQL Server等,它们经过数十年的发展,已然拥有了系统的完整的文档资料。

一方面:日积月累商业数据库上已积累了大量的应用,其中有些应用已经运行超十年,应用开发人员都有可能更换工作好几次了,有些甚至连源代码都丢失了,从而传统应用的架构改造变得相当困难。行业内大量的技术人员(DBA)虽然了解传统数据库内部的运行机制,以Oracle为例,数据文件、日志文件、内存SGA都已经被破解,连隐含参数也都基本透明化了,任何单个SQL(不管多复杂)的优化都已不成问题,但对于了解一个应用,始终没有好的方法。

另一方面:近十年互联网行业高速发展,在开源数据库(mysql/PostgreSQL等)的基础上,利用其协议的开放性,打造了使用方便和功能强大的协议层中间件(例如OneProxy for MySQL/PostgreSQL),使不更改应用程序或少更改应用程序就可以进行架构改造,实现诸如故障切换、读写分离、分库分表等高可用和可扩展方案。如果能够基于Oracle和SQL Server的通信协议研发类似的中间件,可以让诸多的传统应用充分受益。

平民软件在实现MySQL和PostgreSQL协议的基础上,结合商业数据库完整的技术文档,以及广大技术人员的前期研究,研发了OneProxy for Oracle和OneProxy for SQL Server版本。

目前主要功能:

网络安全隔离、SQL性能监控、数据库审计、数据库防火墙,在实现这四个功能的过程中,OneProxy不需要去编辑通信包,只需去理解通信包中的SQL语句,理解返回的结果集就可以。

架构图如下所示:



在这个结构下,OneProxy和商业数据库之间有一对一的布署关系,所有的流量都经过OneProxy,然后转发到后端的商业数据库。四个功能时也融合了我们多年以来对数据库运维和架构的理解,如下所示:

  • 网络安全隔离:

    OneProxy for Oracle/SQL Server可以隔离应用服务器和数据库服务器,使之无法直接联通,有利于增强数据库服务器的安全性。


  • SQL性能监控:

    在数据库后端可以得到整个数据库级别的SQL统计,但在OneProxy上可以实现客户端IP唯度的SQL统计,以便于加强对应用的认识,也可以实现秒级的实时Top SQL报告;并且OneProxy可以识别出会话和事务,可以实现事务统计,实现数据库后端无法实现的监控功能(详细例子可参考:http://www.onexsoft.com:8080)。


  • 审计日志:

    虽然数据包是原样转发,但和抓包分析不同,既可隔离数据库网络,又可截获所有的SQL语句,对所有的SQL结果进行审计;亦可实现基于正则表达式的敏感数据识别功能。


  • SQL防火墙:

    所有流量流过OneProxy,可以实现拦截式的防火墙,利用高性能网络框架和SQL白名单机制,可以有效地防范SQL注入攻击。


商业数据库协议的研究有其一定的难度,非常需要耐心和用户的支持,对以上功能有兴趣的用户,可以联系我们进行测试,以及后续的联合开发。接下来我们会发力实现对应用程序完全透明的读写分离功能。




敬     请     关    注

以上是关于OneProxy : 面向商业数据库(Oracle/SQL Server)中间件即将面世的主要内容,如果未能解决你的问题,请参考以下文章

面向大规模商业系统的数据库设计和实践

MySQL分库分表工具oneproxy安装说明

优雅的搭建OneProxy环境

平民软件OneProxy的强大

Mysql-Oneproxy读写分离

连接oneproxy成功之后查询表的时候出现报错