对于Oracle兼容,我们手拿把掐 您所在的位置:网站首页 数据库迁移工具DBBridge 对于Oracle兼容,我们手拿把掐

对于Oracle兼容,我们手拿把掐

2023-11-04 01:00| 来源: 网络整理| 查看: 265

日前,中国PostgreSQL数据库生态大会在北京顺利召开,会上公布了2022年度PostgreSQL中国技术评选获奖名单,凭借对PostgreSQL中国生态的重大推动与贡献,腾讯云TDSQL斩获“最佳数据库产品”奖。

腾讯云TDSQL同时具备HTAP、分布式和Oracle兼容能力,可以帮助政企以极低改造成本从Oracle平滑迁移到TDSQL,在证券、基金、保险、银行等高要求的应用场景均有大量成功案例。主论坛上,腾讯云数据库专家邹立贤受邀进行了《腾讯云TDSQL助力政企实现数据库国产化》的主题分享,主要包括TDSQL内核Oracle兼容能力、TDSQL驱动Oracle兼容能力和Oracle to TDSQL迁移等方面的内容。

以下为分享精华集锦。

一、简介1. 中国数据库发展历史和现状 2. 国产当自强, 数据库自主可控破在眉睫

我们通过数据库的几点重要性,可以意识到数据库自主可控的重大意义:

基础软件“皇冠上的明珠”三大“卡脖子”技术的大动脉计算产业之“根”大数据发展之“魂” 3. 国产数据库该如何去O?

Oracle兼容性是一个系统性的工作,不能满足于简单的SQL语法/语义兼容,主要有引擎、生态工具两个方面。

引擎包括:

1)SQL语法功能,如CONNECT BY,  P/L SQL, Packages;

2)Oracle功能特性,如压缩, 索引,结果集缓存,自动负载管理;

3)Oracle诊断能力,如错误码。

生态工具包括:

1)兼容性评估工具,包含异构数据库静态对象、应用SQL差异性评估、异构迁移自动改造、Oracle数据迁移和数据同步;

2)开发工具,包括SQL Developer, PL/SQL Developer;

3)数据访问接口,包括OCI, JDBC 等。

4. TDSQL Oracle兼容能力概述

以内核兼容为基础,打造从内核、驱动、工具三个层面的Oracle兼容能力。

驱动:JDBC、ODBC、OCI、Pro*C

内核:Oracle语法兼容、Oracle功能兼容

资源:底层硬件和操作系统适配

工具:DBbridge/TDSQL Migration Toolkits (评估、迁移、验证)

内核层面兼容

对内置数据类型、内置系统函数、PLSQL等语法层面兼容对分区表、递归查询、DBlink、伪列等功能层面兼容

驱动层面兼容

JDBC配合内核能力做用法兼容OCI对oracle接口用法做应用层兼容Pro*C在嵌入式SQL做代码层兼容

工具层面兼容

异构数据库静态对象、应用SQL差异性评估异构迁移自动改造 Oracle数据迁移和数据同步 二、内核层面Oracle兼容能力1. 数据类型兼容

在TDSQL内核里,增加了Oracle数据类型,并对绝大多数类型做了兼容

数值类型:NUMBER、FLOAT、BINARY_FLOAT、BINARY_DOUBLE字符类型:CHAR、NCHAR、VARCHAR2、NVARCHAR2、LONG大对象类型:BLOB、CLOB、NCLOB兼容了DATE、TIMESTAMP、INTERVAL等其他如:RAW、LONG RAW、BFILE、 ROWID、UROWID 2. SQL语法兼容

SQL语法兼容以及对象兼容支持

语法支持:MERGE INTO、UPDATE支持SUBQUUERY、CONNECT BY、INSERT ALL/FIRST、FORCE VIEW、PIVOT/UNPIVOT子句、OFFSET…FETCH子句等增强了分区功能,例如:MERGE/SPLIT分区,DEFAULT分区维护各种伪列支持:ROWNUM、CONNECT BY相关伪列 如:LEVEL等支持HINT功能同义词、DBLINK、系统函数、系统表支持空串与NULL等价 3. PL/SQL语法兼容

PL/SQL语法兼容Oracle

存储过程、函数的创建,如:以IS作为PLSQL块定义开始、可以用/作为定义结束存储过程、函数支持COMMIT、ROLLBACK事务控制兼容游标属性支持:isopen、found、notfound、rowcount函数、存储过程支持OUT出参,打破原有限制支持集合类型、包、CREATE TYPE其他PL语句支持,如:BULK COLLECT、语句LABEL支持预定义的系统包:dbms_output、dbms_assert、dbms_lob、存储过程调试包dbms_debug等 4. 层次查询

层次查询语法支持start with connect by

树的深度遍历 增加Connect By算子,实现递归执行优化器From表生成两个Path将WHERE条件下推到不同的Path上支持level、connect_by_isleaf、 connect_by_root、 sys_connect_by_path等5. MERGE INTOMERGE INTO语法支持:优化器针对MERGE INTO生成LEFT JOIN,source table 作为left表扩展ModifyTable算子功能,增加CMD_MERGE执行器增加ExecMerge,当tuple与merge条件match时,更新tuple或删除tuple;当tuple与merge条件不match的时候,插入新的tuple6. ROWID & ROWNUM

ROWID支持:

建表支持指定 WITH ROWID参数更新时,新元组的ROWID值不变ROWID列存在索引,以ROWID查询时加快查询速度

ROWNUM支持:返回记录编号,含有ROWNUM的查询禁止提升子查询

7. 分区表能力分区类型支持RANGE、LIST、HASH分区,以及这些类型的组合分区支持对分区的单独访问,例如SELECT * FROM 表 PARTITION(子分区)支持分区键更新新增分区后,自动维护DEFAULT分区支持分区合并、分裂8. PL/SQL - 语法

Oracle存储过程/函数语法特点:

以IS作为代码块的起始定义使用/作为结束定义结束使用END procname作为函数代码块结束、等

PostgreSQL存储过程/函数语法特点:

以AS作为代码块的起始定义使用;作为定义结束使用$$定义整体代码块、等9. PL/SQL - PACKAGE

PACKAGE支持:

支持公共、私有包变量定义支持包定义自定义类型支持包初始化模块包初始化块等10. PL/SQL - 自治事务

自治事务:

自治事务由主事务启动;自治事务运行时,主事务挂起自治事务与启动它的主事务相互独立自治事务可以用在存储过程、函数、匿名块以及触发器中如果自治事务与主事务产生锁冲突,系统启动死锁检测,自治事务报告异常 三、驱动层面应用兼容  1. JDBC规范适配实现了 JDBC4.0、JDBC4.1、JDBC4.2 规范适用于 PostgreSQL 8.2 及以上版本适用于 TDSQL数据库所有版本基于 JAVA6 和 JAVA8 平台编译构建,适配 JAVA6、JAVA7、JAVA8 及以上平台使用   2. JDBC实现兼容

1) 适配Oracle数据库的Date、CLOB、BLOB、VARCHAR2、NVARCHAR2、ROWID等类型

2) 适配Oracle数据库方式创建函数、存储过程等操作

3. TDSQL OCI功能兼容

支持了初始化环境、用户连接/断开、多会话、OCI句柄和属性、错误消息处理、SQL执行、事务、DirPath、DateTime、LOB、Number等12大类接口。大约100个函数

4. TDSQL Pro*C功能兼容

支持了变量声明、建立连接、基础SQL语句、预编译语句、游标、简单动态 SQL、ANSI 动态 SQL、错误处理语句等8类场景,约24个语法用法的兼容

四、Oracle to TDSQL迁移 1. 迁移工程面临问题解决

1. 成本高工作量大,可通过数据库迁移平台提供简单易用的数据库迁移平台,减少人工手动操作。

2. 迁移技术复杂,可通过专业化的研发和运维实践解决,腾讯联合生态多年数据库运维和研发经验工程师的技术积累。

3. 兼容程度不明确,通过自动化覆盖评估迁移改造,平台化的数据库对象和应用评估功能,全面完整的迁移评估报告。

4. 迁移过程无标准化流程,通过标准化异构迁移流程,从评估、改造、迁移、校验等标准化和经检验的迁移流程。

2. 迁移工具技术架构3. 兼容性评估

对象兼容评估报告:

数据库静态对象,例如:表、索引、视图、函数、存储过程、物化视图、触发器、包、数据类型等信息

应用兼容评估报告:

应用端发送给源端执行的SQL评估评估效果和运行时间、抓取得SQL有关 4. 迁移全流程介绍5. 双轨运行方案

双轨制运行的收益:

增加回退选择增加业务可靠性增加数据保护

双轨制运行成本:

流量镜像复杂性数据映射复杂性增加迁移复杂性6. TDSQL成功去O部分案例

案例一:国信证券反洗钱系统数据库替换

从应用场景、兼容语法体系两个维度考虑TDSQL版对证券应用系统的适配。平滑迁移Oracle数据库,大幅提升性能

案例二:阳光保险OA系统

生产环境更新表结构效率提升50%,数据库扩展性得到提升高度Oracle兼容能力帮助业务短期迁移上线 同城容灾双中心,提升系统的可靠性

案例三:某省公安系统(含:治安、党建、人口、缉毒系统)

汇聚系统最大性能3.9w条/秒查询速度 物理节点超过300台

-- 更多精彩 --

金融数字化转型落地实践,腾讯云数据库的三问三答

↓↓点击阅读原文,了解更多优惠



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有