信创产业迎来了大踏步发展的机遇期,数据库国产化成为企业信息化、数字化建设的一项重点工作,国产数据库时代已经到来。然而,由于需要替代的系统涉及到 IT底层架构、业务应用等各个方面,其过程比较复杂,风险也非常大,很多企业对此没有系统性的认知,对替代工作存在一定的“畏惧”心理。
为帮助开发者、DBA们更好地了解国产数据库技术创新,优炫软件推出“走进国产化”系列技术分享,希望有更多人与优炫软件一起投身国产数据库发展建设中来,打造共赢的国产数据库生态圈。
首期我们已分享了“优炫数据库对Oracle兼容特性及用法”,没有观看直播的小伙伴,可不要错过本次分享内容的文字实录。
优炫数据库介绍
优炫数据库管理系统UXDB是优炫软件研发的企业级安全可信数据库,拥有自主知识产权,是自主可控的数据库软件,具备替代国外数据库的能力,目前优炫数据库已经在政务、军工、电信、金融、医疗等多个行业的系统上线运行。
上图为优炫数据库产品体系架构图,采用数据处理与存储分离设计的架构,处理端专注数据处理。存储端专注存储处理。
编程接口:提供外部程序访问能力。
典型的工具有:UXSQL是内置的客户端连接工具,用于数据库连接、创建、管理等;UXDBAdmin是图形化客户端管理工具;UXDBWeb是服务端数据库监控与管理工具;UXMigrator是数据迁移工具,支持国内外主流数据库、国产数据库等一键迁移工作。
应用插件:UXDB是基于插件扩展设计的,通过插件对功能进行扩展。
为什么要做国产数据库兼容性?
兼容性包括很多方面,有硬件、操作系统、网络兼容,数据库兼容,以及数据格式的兼容。从数据库产品选型角度来说,我们曾看到有客户谈及:"功能、性能、高可用、兼容、易维护等是对数据库主要关注内容。”
由此可见,兼容性是不可缺少的一环,也是取得客户信任的重要考量因素之一。
接下来,我们将重点介绍优炫数据库对oracle的兼容性六大方面。
l 数据类型兼容
优炫数据库拥有完备的数据类型,包括数字类型、字符类型、二进制数据类型、XML 类型等,支持 GB 级别以上大对象数据类型与流式数据访问。因Oracle有特殊用法,数据类型有其专用名词,UXDB为了适应客户需求及生态建设,UXDB中做到对数据类型名称、用法兼容。
数值类型,类型number为任意精度数字,兼容Oracle类型,number相当于numeric类型别名。
需要设置参数:
set ora_grammar=on;
ora_grammar缺省值为“off”,可在配置文件《uxsinodb.conf》中修改缺省值。
字符类型:varchar2不需特别设置,可直接兼容Oracle。
大对象类型:
blob、clob、varbinary、Longvarbinary、二进制类型。
数据库初始化为兼容Oracle模式数据库,初始化加“-r compatible”参数。
l 语法兼容
UXDB支持oracle子查询无别名语法,子查询语句中没有指定别名时,声明默认别名节点,保证后续语句的正确执行。
Delete后面不需要from关键字,从指定表中删除满足WHERE子句的行。如果WHERE子句没有出现,效果将会是删除表中的所有行。结果是一个合法的空表。
Merge into语法兼容,使用MERGE语句从一个或多个源中选择可以进行更新或插入到表或视图中。可以指定条件以确定是要更新还是插入到目标表或视图中。
l 函数兼容
应用开发中,函数是必不可少的功能,经常会用到系统自带函数。UXDB根据客户需求做到了兼容Oracle特有函数的兼容。
Isnull函数
Isnull返回参数列表中第一个非空参数的值,支持一个参数或两个参数,两个参数仅当两个参数都为空时才会返回空。它常用于在为显示目的检索数据时用缺省值替换空值。
Instr函数
l 功能兼容
Rownum兼容
Rownum应该是Oracle的标志性功能之一,UXDB数据库的Rownum是为了兼容Oracle所做语法功能适配。利用uxdb的limit语法进行改造;如:rownum<3等价于limit 2。
Sysdate兼容
Oracle中提供了一系列时间函数,最常用的是Sysdate,UXDB中支持Sysdate。
同义词兼容
同义词(synonym)是表、索引、视图等模式对象的一个别名。通过为模式对象创建同义词,可以隐藏对象的实际名称和所有者信息,由此为对象提供一定的安全性保证。目前实现有创建同义词和删除同义词两个功能,其底层思路是创建一张同义词系统表ux_synonym。UXDB中同义词的用法与Oracle相同。
序列语法兼容
序列对象(也叫序列生成器)就是用CREATE SEQUENCE创建的特殊的单行表。一个序列对象通常用于为行或者表生成唯一的标识符。UXDB中序列语法的用法与Oracle相同。
l 接口兼容
UXDB兼容接口用法,甚至是接口中某个语句的语法,UXDB都做了相应的兼容,满足客户应用需求,搭建Oracle迁移至UXDB的“无缝”移植。
OCI兼容演示如下
,时长02:40
l 视图兼容
Oracle为方便管理做了众多视图,UXDB对常用的几种身份做了视图兼容。如:all-视图、dba-视图、user-视图等。
all_视图(13个)
all_all_tables、all_tables、all_cons_columns、all_constraints、all_ind_columns、all_indexes、all_sequences、all_views等
dba_视图(15个)
dba_all_tables、 dba_tables、 dba_tab_columns、 dba_indexes、 dba_views等
user_视图(16个)
user_all_tables、user_tables、user_all_tables 、user_indexes 、user_view_columns等
Oracle到优炫数据库UXDB迁移
针对从某个具体的Oracle数据库迁移至UXDB问题,优炫数据库会为用户提供专业的技术支持,协助用户进行迁移,分四大阶段开展:调研评估、数据库迁移、应用迁移及系统割接测试。其中会用到迁移工具。
优炫数据迁移工具(UXMigrator)支持对国内外主流数据库或标准化数据文件的一键迁移工作;支持命令行及图形化操作;国内外主流数据库包括:Oracle、 MySQL、SQL Server、DB2、Sybase、国产数据库等;数据文件包括:CSV、TXT、XLS 等。
数据库的迁移:支持将其他数据库中的数据对象及数据统一迁移到优炫数据库中。
数据文件导入:支持将标准化数据文件(如:CSV、TXT、Excel等)导入到优炫数据库中。
管理过程规范化:提供科学规范的一站式处理过程,便于用户操作,避免手工失误。
操作步骤精准化:为了保证迁移过程安全可靠,数据准确无误,各个操作环节均需进行安全检查及信息校验,确保每个操作环节都精准无误。
迁移效率高效化:在迁移过程中,针对海量的迁移工作,可采用多线程并发处理机制,大幅提升数据库迁移效率。
支持多种操作环境:支持Windows系列、Linux系列(包括全部国产操作系统),适应多样性迁移场景。
支持多种数据源:支持国内外主流数据库及标准化的数据。