OceanBase 原生分布式数据库——从根本上解决海量数据管理的问题( 二 )


b.突破分布式数据库事务限制 , 支持超大事务
分布式数据库系统内存 Memstore 中写入的数据量超过一定限制时将 Memstore “冻结”并将数据 dump 到磁盘上 , 但冻结和转储过程 Memstore 中要求没有未提交的事务 , 因此会导致活跃事务频繁搬迁以及租户内存爆的风险 。 OceanBase 通过转储未提交事务技术(租户级别的调度与冻结超出内存限制的活跃未提交事务)以及 Paxos 即时写日志技术(对冻结事务生成 clog 进行Paxos 同步) , 实现了分布式数据库对超大事务支持能力 , 更好地有效解决转储对事务状态的依赖 。
c.内核能力优化提升性能
强化内核能力 , 通过 Marker 去除重复的表达式 , 替代原有的 HashSet 以获得更好的性能;新增支持手工收集优化器统计信息 , 提升手工调优能力;新增索引自动加密 , 提升数据存储的安全性 。
2.更高兼容性 , 降低业务迁移改造成本
OceanBase 数据库针对 Oracle 和 MySQL 模式 , 在功能、语法、函数、过程语言、系统包等方面均进行了兼容性增强 , 进一步降低业务迁移到 OceanBase 数据库的改造成本 , 以及用户使用 OceanBase 数据库的学习成本 。
a.Oracle 兼容性 , 支持存储过程读写及定时器任务管理调度能力
新增支持系统包 UTL_FILE , 实现多系统间的数据交换、同步和整合 , 用户可以将数据库内的数据写成文件同步至下游系统使用 , 也可将其他系统生成的数据文件读入数据库做进一步处理 , 避免系统重构成本 。 新增支持定时器任务 DBMS_JOB, 可以轻松进行任务的管理和调度 , 实现定时任务、循环任务及异步任务等复杂业务场景下的自定义任务管理和调度 , 降低人力维护成本 。
b.适配 MySQL 5.7 协议 , MySQL 模式下支持自增列和 DML 触发器
适配支持 MySQL 5.7 驱动协议 , 支持 5.7 新增的会话变量 , 可以推高 OceanBase 的 MySQL 兼容版本 , 避免企业内部安全审计问题 。 新增支持自增列做为分区键 , 为数据的逻辑分离提供更好的灵活性 。 OceanBase 的 MySQL 模式并不支持 DML 触发器 , 导致需要触发器行为的场景下 , 客户需要自己写代码来实现数据和记录的约束 , OceanBase 数据库在3.2版本在 MySQL 模式下支持 DML 触发器 , 用户可以在表上创建触发器 , 当在该表上的 DML 操作满足条件时 , 即可触发用户自定义行为 。
3.提高产品易用性 , 降低运维成本
OceanBase 数据库对数据库的易管理和易运维进行了针对性的提升 , 针对很多常用用户操作进行了简化 , 降低用户使用数据库的复杂度 , 提升使用效率 。
a.提升自动化能力简化运维成本
支持 Schema History 回收功能和自动清空回收站功能 , OceanBase 数据库回收站提供以租户为单位 , 当磁盘空闲空间不足时 , 按照 FIFO 的策略 , 自动清理回收站空间的功能 。 支持用户通过配置项 _schema_history_recycle_interval 控制Schema History 回收周期 , 通过配置项 recyclebin_object_expire_time 指定回收站中对象的过期时间 。 提供自动巡检能力 , 可以根据内置巡检规则及系统脚本对关心的资源设定时间进行检查并生成巡检报告 。 支持租户级别的最新状态物理恢复 , 恢复命令在缺少条件下恢复到 CLOG 中记录的目标租户的最新状态简化用户操作 。
提供内部状态可视化能力 , 通过虚拟表读取任务队列及内存任务情况;加强性能诊断报告能力 , 对集群的性能指标、参数和资源配置、负载进行分析并生成诊断报告帮助 DBA 进行性能诊断;提供 SQL 诊断调优特性 , 针对 SQL 进行健康情况诊断及性能问题排查 , 识别可能会影响系统稳定性的慢 SQL 及可疑 SQL, 帮忙用户提早排查问题规避风险 。

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。