百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

N张图告诉你K-DB为什么能全面兼容Oracle?

sinye56 2024-10-07 14:25 7 浏览 0 评论

不是每一款数据库都能全面兼容Oracle,就像不是所有数据库都可以被称之为K-DB。

一般数据库能做到的SQL标准和函数上兼容Oracle,而K-DB则能实现更多,在数据库体系架构、集群方式、数据库对象、函数与存储过程、数据库运维工具、管理与调优方法以及OCI 等方面都全面兼容Oracle。

限于文章篇幅,本文先从体系架构、逻辑结构等八个方面详细阐述K-DB是如何实现对Oracle(以Oracle 11g为主)的全面兼容。如需了解更多详情,请点击“阅读原文”浏览《K-DB全面兼容Oracle技术白皮书》。

体系架构

从下图体系架构对比可以看出,K-DB在数据库进程的管理模式、内存管理模式、REDO/UNDO/ARCHIVE日志管理模式、备份恢复方式、基于共享存储的Active-Active集群等方面,有着跟Oracle类似的实现方式,同时具备了Oracle数据库提供的诸如RAC、ASM、严格行级锁、MVCC等企业级复杂功能。

逻辑结构

K-DB提供了典型的数据库(Database)、表空间(Tablespace)、段(Segment)、区(Extent)、数据块(DB Block)的逻辑结构,以及逻辑结构与物理数据文件的对应关系,也都跟Oracle类似。

数据对象

K-DB支持的数据库对象(Object)主要包括:表(Table)、索引(Index)、视图(View)、Sequence、Synonym、触发器(Trigger)、存储过程、权限管理、函数(Function)、Package等,不仅如此在用户需要的情况下,K-DB还支持基于用户创建的函数和组件。

数据类型

K-DB支持Oracle的字符串类型、数字类型、日期类型、LOB等所有类型,也支持ANSI标准类型。

SQL支持

K-DB不仅支持 ANSI标准 SQL语法,还支持 Oracle非标准语法,从而实现了对于原有应用的方便迁移,提升了用户的便利性。

函数

K-DB支持 200多个内建函数,并与 Oracle函数名称保持一致,包括:Math Function、String Function、DATE Function、Compare Function、Convert Function、Encode/Decode Function、Large Object Function、Analyze Function等,从而提升了用户的使用便利性。

这里只对Math Function做展示,更多详情可下载完整白皮书了解。

数据库工具

K-DB提供全面的数据库自动化工具,包括管理工具kdAdmin、导出/导入工具kdExport/kdImport、迁移工具kdMigrator、快速装载工具kdLoader、调优工具等,极大方便了开发人员和管理员进行数据库开发和运维管理。

备份与恢复

K-DB支持多种备份与恢复功能,包括表空间级别的在线备份与恢复功能、基于“RMGR”工具的增量备份功能等。从而保证了 DBMS的稳定运行。

相同中的不同

除了以上说的,K-DB在架构用语、权限控制、Schema管理、JOB Scheduler、优化器、集群方式等也能全面兼容Oracle。

如需了解更多详情,请点击“阅读原文”浏览《K-DB全面兼容Oracle技术白皮书》。

说了这么多相同,其实,K-DB全面兼容Oracle数据库的同时,也有其自身的特性,比如:

  • 采用Multi-Process、Multi-Thread架构,同时进程数量轻量化处理,整合集成管理进程,最终实现比Multi-Process更高效的资源利用;

  • 多节点并行恢复机制,实现在因维护或故障需要而暂时关闭节点再重启时,K-DB支持在多个节点中同时执行恢复操作,大幅缩短恢复大量数据的时间;

  • 新增异步I/O(AIO)功能,在Thread Level中将收集Dirty(已修改的)Block的操作和写入磁盘的操作区分为Gather Thread和异步 I/O Thread,从而有效的执行异步I/O。

K-DB数据库和Oracle的全面兼容,能够最小限度降低迁移过程中程序的修改量,通过系统化工具主动地识别与诊断,解决数据库各层面兼容性问题。而且,K-DB的操作命令和界面使用上与Oracle相近, DBA在Oracle上积累的技术经验仍然可以应用于K-DB,操作不需要做出太大改变。

其实,K-DB的特点还有很多,将在后续的文章中继续讨论KRAC功能如何实现故障下业务的快速恢复、如何做到全自动一键迁移等,敬请期待。

来源:浪潮HPC官方微信(公众号:浪潮HPC)更多精彩,敬请关注!

相关推荐

linux 查看当前应用内存状况,以及内存参数含义

1、查看进程号ps-ef|greptomcat2、查看当前内存分配,200ms打印一次jstat-gc进程号2001jstat-gc344802001S0CS1C...

如何显示 Linux 系统上的可用内存?这几个命令很好用!

在Linux系统中,了解可用内存是优化系统性能、故障排查以及资源管理的重要一环。本文将详细介绍如何在Linux系统上显示可用内存,包括多种方法和工具的使用。在讨论可用内存之前,我们需要了解一些...

Linux 下查看内存使用情况方法总结

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内...

2、linux命令-用户管理

linux命令-用户管理用户切换[root@eric~]#sueric#切换到用户eric[eric@ericroot]$[eric@ericroot]$su#切换到rootPas...

Centos 7 进入单用户模式详解

1、开机在启动菜单按e进入编辑模式找到linux16行,在最后添加init=/bin/sh编辑完后,按ctrl+x退出2、进单用户模式后,使用passwd修改密码,提示以下错误:passwd:Aut...

每日一个Linux命令解析——newusers

newusers:在Linux系统中,newusers是一个用于批量创建用户的命令。它从一个文件中读取多行用户信息,每行描述一个用户的详细信息,并根据这些信息创建多个用户或对现有用户进行批量修改。一...

openEuler操作系统管理员指南:管理用户与用户组

在Linux中,每个普通用户都有一个账户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义,其中最重要的是管理员账户,默认用户名是root。同时Linux也...

Linux用户管理

1、用户信息文件/etc/passwdroot:x:0:0:root:/root:/bin/bash第一列:用户名第二列:密码位第三列:用户ID0超级用户UID。如果用户UID...

centos7基础-用户、组、权限管理

用户和组(1)用户、组、家目录的概念linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号。组类似于角色,系统可以通过组对有共性的用户进行统一管理。每个用户...

LINUX基础 ----------组及用户的概念

在Linux中,用户和组都是非常重要的概念,可以控制文件访问权限和资源的管理。用户是标识一个进程、应用程序或系统管理员的账号,Linux中每个用户用一个用户ID(UID)来标识。对于一个...

从零入门Linux(四)用户与权限管理

在Linux系统中,用户和权限管理是系统安全的重要组成部分。通过合理配置用户和权限,可以确保系统的安全性和资源的合理分配。以下是一些与用户和权限管理相关的常用命令和概念。1.用户管理1.1添加...

如何在 Linux 中管理用户?

在Linux系统中,用户是系统资源的主要使用者,每个用户都有一个唯一的标识符(用户ID)。为了更好地组织和管理用户,Linux还引入了用户组的概念。用户组是用户的集合,有助于更有效地分配权限和资...

在 Linux 中将用户添加到特定组的四种方法

在Linux多用户操作系统中,用户组管理是系统安全架构的基石。通过合理的组权限分配,管理员可以实现:精确控制文件访问权限(chmod775project/)简化批量用户权限管理(setfacl-...

我不是网管 - 如何在Ubuntu Linux下创建sudo用户

Sudo用户是Linux系统的普通用户,具有一定的管理权限,可以对系统执行管理任务。在Linux中,root是超级用户,拥有完全的管理权限,但不建议将root凭证授予其他用户或作为r...

Linux创建普通用户,为密钥方式登录做准备

Hi,我是聪慧苹果8,就是江湖上人见人爱、花见花开,土到掉榨的Linux爱好者,一起学习吧!上一篇关于SSH安全加固的文字,有网友点评通过密钥登录更加安全,先创建一个普通用户,拒绝直接使用密码登录,这...

取消回复欢迎 发表评论: