要想知道Tibero与Oracle的优劣,那么首先要了解一下Tibero数据库
1.TIBERO 介绍
当前企业的业务随着数据的快速增加和系统环境的不断变化而迅速扩张,随着新的业务环境的增加,需要有更高效的灵活处理信息和服务的能力。
TmaxSoft DB 适应这种变化,帮助企业打造以业务为基础的数据库架构,是高性能、高可用的解决扩张性问题的企业数据库管理系统.
为了进一步完善现有DBMS(数据库管理系统) 原有DB的缺点,TmaxSoft DB独家通过并实施了 TmaxSoft Thread Architecture,有效的使用了有限的服务器进程的CPU 和内存等系统资源,确保了高效的性能与稳定性和扩张性,提供了方便的开发环境和管理功能。
Tibero 设计的初期,特别针对大规模用户、大容量数据、强化安全性、兼容性等方面,区别于其他 DBMS 而研制开发的。
Tibero 是一种高性能、高度安全、高度可扩展的关系数据库管理系统 (RDBMS),适用于希望充分利用其关键任务数据的企业。在数据是一切核心的世界中,Tibero 提供了处理、管理和保护大型数据库的增强视图。
Tibero 提供许多好处,包括:(官网)
- 与 Oracle 高度兼容——在某些情况下高达 97% 的兼容性
- 高可用性(双活集群)
- 类似于 SaaS 订阅定价的简单许可模式
- 高性能事务处理
- 使用商不需要昂贵的专有数据库服务器进行扩展,节约成本
- 主动或被动备用数据库功能
- 超线程架构
- 高安全性数据库加密
- 多节点并行恢复
- 可靠的共享服务器
-
2.TIBERO 高可用性
1.Standby Cluster (备用集群)
TIBERO Standby Cluster是以数据库的高可用性、数据的保护、灾难恢复等为目的而提供的RDBMS 的核心功能。
TIBERO Standby服务器将原本数据库的复制本以事务单位保存在物理性独立的场所。原本数据库被称为Primary DB(主库),保存被复制的数据的数据库被称为Standby DB(备用库)。TIBERO Standby Cluster的原理是后台进程向备用库发送主库里生成的 Redo Log(重做日志),Standby利用 Redo Log 反应 Primary 的所有变化。
通过数据的复制,Primary 在服务请求的数据处理失败时,可以活用Standby的数据迅速重新开始该服务。另外Primary的服务可以简单对付不能恢复损伤的数据的情况,例如,Primary 的服务器的Disk损伤时,通过Standby可以保护损伤的数据。
2.Active Cluster
TIBERO Active Cluster 是TRBERO基于共享储存(shared disk) 的 active-active (主动-主动)多机集群架构。在TAC环境里运行通过共享的数据库运行事务,从而保障了数据的一致性和完整性。另外还支持Load Balancing(负载均衡) 、Fail Over (失效转移)等其他集群功能,确保稳定的系统运行与系统扩展的便利性。
防止各种类型的故障并确保业务的连续性。
在高可用性中实现数据库系统是一种很好的做法,称为高可用性集群。
市场上有两种模式,主动-主动和主动-被动集群。
双活集群(主动-主动)由使用共享磁盘存储区域组成,可由集成集群的“n”个数据服务器访问。反过来,这些具有预防和快速检测故障的机制以及容错机制。也就是说,当集成到集群中的其中一台服务器出现问题时——无论是逻辑问题还是物理问题,基于故障转移机制,都可以自动将出现故障的服务器上的会话重定向到另一台可用服务器.
主动-被动方法中,服务器接收并处理所有请求。当有数据确认时,由网络日志写入引擎Log Network Writer(LNWR)发送,可配置信息保护。因此,信息的传播没有延迟。但是,生产环境的性能可能会受到影响。因为它更易于访问,所以第二种方法更常用于灾难恢复而不是高可用性。
Tibero 系统使用 Tibero Active Clusters (TAC),确保稳定性和高可用性。基于共享磁盘的 Active Clustering 提供稳定的服务,即使出现各种错误,也不会造成系统停机。TAC 允许不同节点上的实例通过共享磁盘共享相同的数据。它通过故障转移功能支持稳定的系统运行(24x365),并通过保证每个实例内存中数据的完整性来优化事务处理。
通过双活集群,Tibero 支持完整的负载均衡并保证数据的完整性。使用全局缓存,它在实例之间共享一个缓冲区缓存。TAC构成所需的数据block通过连接节点之间的高速专业网络接收和发送,node正如使用一个共享缓存一样运行。运行中,即使一个node停止,运行中的其他node也会继续服务。3.多种备份、恢复模式
TIBERO 支持三种标准形式的的备份和恢复操作:导出/导入(export/import)、冷备份、热备份,
1)IMPORT/EXPORT
提供表级、用户级、全库级别的数据导入、导出。
2)冷备份
在系统完全关闭的状态下,使用操作系统命令备份或恢复控制文件、数据文件、联机REDOLOG文件。
3)热备份
在系统正常服务的状态下,TIBERO提供联机备份/恢复control文件、tablespace文件、归档archivelog文件。
4)RMGR (Recovery Manager) 工具辅助管理备份和恢复
在系统正常服务的状态下,提供逻辑表空间、物理数据文件等备份4.TIBERO兼容性
1.对全球标准、Oracle标准的完全兼容
TIBERO不仅通过支持标准SQL与Interface,实现了与各种应用的灵活连接,而且通过与Oracle的完全兼容,实现了迅速而便利的数据库迁移。
1) 全球标准- 支持标准SQL (SQL-92、SQL-99)
- 支持各种标准的接口JDBC、ODBC、OLEDB、CLI(Call Level Interface)
- 遵守X/Open标准的XA 接口,可以与大部分的中间件产品联动
- 支持各种字符集
- DB Link (Sybase、Orcale、DB2、MS SQL..)
2)Oracel 兼容
- 支持非标准SQL (完整支持oracle变型sql)
- 例如:**在Oracle中只支持 substr,但在Tibero 中支持 substr 和 substring**
Tibero 数据库
SELECT SUBSTR('TEST123456',1,5) FROM DUAL; --TEST1
SELECT SUBSTR('TEST123456',5) FROM DUAL; --123456
SELECT SUBSTRING('TEST123456',1,5) FROM DUAL; --TEST1
Oracle 数据库
SELECT SUBSTR('TEST123456',1,5) FROM DUAL; --TEST1
SELECT SUBSTR('TEST123456',5) FROM DUAL; --123456
SELECT SUBSTRING('TEST123456',1,5) FROM DUAL;-- 报错ORA-00904:'SUBSTRING'
- Application 兼容性
- - Oracle Stored Procedure (存储过程) 兼容 (PL/SQL)
- - Oracle Embedded SQL(嵌入式sql)兼容,
嵌入式sql 是一种将SQL语句直接写入C语言等 编程语言的源代码中的方法。
- Data type
- - CHAR, VARCHAR
- - NUMBER, DATE, TIMESTAMP
- - BLOB, CLOB, LONG , RAW, ROWID
- 支持全球化(NVARCHAR, NCLOB) )
2.TbMigrator自动化迁移工具
TIBERO自身提供了自动化迁移工具:TbMigrator,可以实现应用代码零修改,就能将基于Oracle数据库的应用程序及数据平滑地迁移到 TIBERO上。
基于图像界面,显示地选择 tablespace、 Table、 Index、 View、 Stored Procedure 等,并且提供多线程并行迁移,提高数据迁移执行速度。
3.Database Link
TIBERO的DB Link功能支持与Oracle、MS-SQL Server、IBM DB2、Sybase ASE Server 等各种本地/远程的同构/异构数据库服务器的表查询、插入、修改、删除等互操作。
5.高性能
1.高并发
. 在企业级环境下经常发生大规模用户同时访问的情况,tibero 为了有效应对此情况,提出以下 2种解决方案:
1) Row-Level Locking (行级锁) (oracle 也采用行级锁-排它锁)
行级锁技术实现锁范围的最小化。
回避Lock Escalation(锁升级),确保性能负荷最小化
2) MVCC(Multi Version Concurrency Control) (mysql、oracle、PostgreSQL 等都有使用)
多版本并发控制保证读写操作之间不会发生Blocking
MVCC是一种用来解决读-写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。
2.海量数据
Tibero能够支持大量数据的灵活在线交易处理功能,主要以下2种技术为支撑:<br />1) Partition Table 表分区(oracle 也支持)<br />分区表支持 Range/Hash/List/Composite 等多种分区方式。<br />支持Global Index/Local Index <br />2)Parallel Query 并行查询 (oracle 支持)<br />并行计算能够实现将一个 Query 拆分成多个处理单元,并分别由不同的 Thread 并行处理。自动构成可以独自运行的 Operation Group ,执行并行处理
3.内存自动调整(Memory Auto Tuner)
在请求处理过程中,各进程和线程根据系统负荷,自动调节内存使用量。
Tibero通过已有系统负荷和统计情况,预测内存使用量,进行操作执行所需的最优内存分配。
4.高性能TTA
TTA:TIBERO Thread Architecture 。即TIBERO 的Multi Process、Multi Thread 架构,基于中间件技术,预先创建Process、 Thread,消除了频繁的进程创建与关闭,待用户请求时迅速反应,能够有效地使用最小限度的系统资源,提高效率。
6.使用便捷性
TIBERO RDBMS 面向开发人员与运维人员提供便于开发与管理的多种工具。
1.TbAdmin管理工具
TIBERO 提供原厂的数据库 GUI 开发和管理界面(类似于 Toad),更加直观的、便利的管理数据的各种资源。主要提供功能点如下:
- SQL 语句的输入、编辑、运行
- 查看DML SQL语句的 Execution Plan
- 为了提高性能的部分数据获取
- Open File/Save As … 功能
- Describe Object(Table、View、Synonym)功能
- SQL运行结果excel保存、column filtering、排序
- 支持各种监控与管理员
2.TbLoader 工具
TbLoader工具能够实现将大容量的外部数据(非DB 文件,例如csv、txt等格式)直接导入到Tibero 数据库中。TbLoader接收控制文件(Control file)和数据文件(Data file),输出日志文件 (Log file)和错误文件(Bad file)。7.TIBERO5/Oracle11g比较
DBMS 类型
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
DBMS Type | DRDBMS | DRDBMS |
DBMS peerformance Architecture (DBMS 性能架构) |
Disk DBMS | Disk DBMS |
DBMS Process Architecture (DBMS 流程架构) |
Multi-Process + Multi-Thread | Multi-Process |
支持的SQL类型
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
Hint Feature(hint功能) | supported | supported |
in-line View | supported | supported |
join | supported | supported |
outer join | supported | supported |
hierarchical query(分层查询) | supported | supported |
array processing(数组处理) | supported | supported |
analysis function(分析功能) | supported | supported |
cost optimizer(成本优化) | supported | supported |
built-in function(内置函数) | supported | supported |
Hint 解释:
常见Oracle HINT的用法:
例子:
1. /+FULL(TABLE)/ 表明对表选择全局扫描的方法.
SELECT /+FULL(A)/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO=’SCOTT’;
- /+INDEX(TABLE INDEX_NAME)/ 表明对表选择索引的扫描方法.
SELECT /+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE BSEMPMS / FROM BSEMPMS WHERE SEX=’M’;
支持的API
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
SQL | standard SQL (标准) & Variant SQL (非标准) |
standard SQL & Variant SQL |
JDBC Driver | supported | supported |
ODBC Driver | supported | supported |
PHP Driver | supported | supported |
Embedded SQL(嵌入式sql) | supported | supported |
CLI interface | supported | supported |
XA API (应用程序接口) | supported | supported |
Threaded Application | supported | supported |
支持的工具
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
GUI Admin Tool | tbAdmin | OEM |
Interactive SQL executer |
tbSQL | SQLPlus |
Data Loader | tbLoader | SQL*Loader |
Data extract and load tool | export/inport | export/inport |
connection Dispatcher (连接调度器) |
tblistener | listener |
Migration Tool (迁移工具) | tbMigrator | Oracle Migrtation WorkBench |
C pre-Compiler (C 预编译器) | tbpc | Pro*c |
支持对象
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
Table | supported | supported |
Composite index | supported | supported |
view | supported | supported |
sequence | supported | supported |
datanase link | supported | supported |
synonym(同义词) | supported | supported |
Rights management | supported | supported |
Role | supported | supported |
Procedure | supported | supported |
Stored Funcion (存储函数) | supported | supported |
package | supported | supported |
Trigger | supported | supported |
性能
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
Multi-version concurrency control (MVCC) - 多版本并发控制 | supported | supported |
Row-level locking (行级锁定) | supported | supported |
prevents table lock by avoiding lock escalation (通过避免锁升级来防止表锁) |
supported | supported |
b-tree index (b树索引) | supported | supported |
system monitoring view (系统监控视图) | supported | supported |
SQL Trace Function | supported | supported |
complicated transaction processing (复杂事务处理) |
supported | supported |
partitioning(Range) | supported | supported |
partitioning(list) | supported | supported |
partitioning(hash) | supported | supported |
partitioning(compostie) | supported | supported |
可用性
Feature(特征) | TIBERO6 | Oracle 11g |
---|---|---|
Automatic Crash Recovery(自动崩溃恢复) |
supported | supported |
Log mirroring(日志镜像) | supported | supported |
Online cluster(在线集群) | supported | supported |
Active Cluster | supported(Tibero TAC) | supported(Oracel RAC) |
disaster recovery (灾难恢复) | Fast(Tibero-standby) | Fast(Oracle DataGuard) |
online DDL Operation | supported | supported |
2p Commit | supported | supported |
Tibero 6 Online Manual 在线手册
https://technet.tmaxsoft.com/upload/download/online/tibero/pver-20150504-000002/index.html
总结:
Tibero 与 Oracle
优势:
- 与 Oracle 高度兼容——在某些情况下高达 97% 的兼容性。
- 不需要昂贵的专有数据库服务器进行扩展,节约成本。
- 采用多进程、多线程模式,在一定程度上消除了频繁的进程创建与关闭,提高效率。
类似于 SaaS 订阅定价的简单许可模式,节约成本,专业人士维护。
SaaS : Software-as-a-Service的缩写名称,意思为软件即服务
不需要购买任何硬件,刚开始只需要简单注册即可。不需要专门的维护和管理人员,
也不需要为维护和管理人员支付额外费用可以安装在任何云平台上,提供将您的数据库管理工作负载(最终甚至是您的数据库)移动到云的选项,它可以稳定高效地管理 DBMS(数据库管理系统)并保证高性能的事务处理。
- 支持非标准SQL,完整支持oracle 的sql,开发人员可以平滑过渡。
劣势:
- 目前相对oracle的品牌口碑,社区和用户略显逊色,遇到问题时可能需要更长的时间解决。
- 相对Oracle数据库长时间积累使用,稳定性安全性有待确定。
- 对目前流行的PHP,JAVA,C 等语言的支持性有待确定。