首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试804】在Oracle中,什么是XTTS?

    XTTS(Cross Platform Transportable Tablespaces,跨平台迁移表空间)是Oracle推出的一个用来迁移单个表空间数据以及将一个完整的数据库从一个平台移动到另一个平台的迁移备份方法。在企业越来越大的数据量、相对停机时间要求日益减少的情况下,利用XTTS可以完成使用增量备份方式实现跨平台的数据迁移。XTTS能够减少停机时间、可以进行增量备份,并且能实现跨平台的数据迁移。在“去IOE”(即IBM、Oracle、EMC,其中,IBM代表硬件以及整体解决方案服务商;Oracle代表数据库;EMC代表数据存储。Oracle其实是很难去掉的,我国很多领域的核心业务系统都运行在“IOE”的软硬件架构之上。)的浪潮下,XTTS成为了如今U2L(Unix to Linux)迁移的最有效、最安全的解决方案之一。有关XTTS的使用在MOS文档“11G - Reduce Transportable Tablespace Downtime using Cross Platform Incremental Backup (文档 ID 1389592.1)”上有非常详细的介绍,这里不再详述。

    01

    sql解析的一些计划

    关于sql解析的一些概述: 因为最近在研究如何将oracle的sql语句迁移到hive上去,前期是准备写一些udf函数去弥补hive缺失oracle函数的遗憾, 其次会使用python开始开发一套轮子去实现转换。目前是实现了DDL建表语句的迁移,之后会慢慢不上DML的迁移。 目前的整体架构和一般的sql解析引擎无异,有如下几个部分: Catalog:这部分相当于字典表,使用了pyhs2去检查hive是否存在这张表,后续的话,应该也会利用pyhs2直接建表。 DDL_parser:现在只是实现了建表语句的互换 sql_parser:打算是正常的select语句,不支持insert语句。解析关键字,生成一棵树。主要是对oracle语句和hive语句的join做出处理,变成一个逻辑执行计划。 analyzer:将逻辑执行计划,重新组装成hive sql语句。 具体细节如下: 逻辑执行计划主要是树的数据结构,分为三种节点: 一元节点:主要是存放Project,Sort,Limit,Filter这四种操作。一个子节点 二元节点:主要是Except(也就是类似于not in),Intersect(也就是join,这里目测实现难度会最大),两个子节点 parser的设计: 对于传入的语句将\r\n\t这些都替换为空格,设为空格标识符。 对sql语句进行拆分,会使用stack的结构,处理子查询。 DDL的解析:对create和table进行匹配,create table设为DDL标识符。表名就是identifier,再就是匹配括号,将括号里面的语句进行处理转换成hive的语句。 其中特别提到的是数据类型的转换,通常来讲是会全部转成string类型,number会转成decimal类型。 sql_parser:会对里面的函数进行匹配,使用字典的形式去匹配,赋值相应的标识符。将相应的字段名,处理到keyword的执行计划中,放入树中。会处理oracle的一些特殊表示连接 的方式 analyzer:目前再将sql_parser的数再拼接回来,将oracle简写的sql语句变成hive的。

    02

    海量数据迁移之传输表空间(一) (r5笔记第71天)

    在自己接触的很多的数据迁移工作中,使用外部表在一定程度上达到了系统的预期,对于增量,批量的数据迁移效果还是不错的,但是也不能停步不前,在很多限定的场景中,有很多物理迁移中使用传统方法还是相当不错的,传输表空间就是一个样例。 最近的有一个数据迁移任务是需要把一些全新的数据表迁移到另外一个库中,因为这些表在目标库中不存在,所以使用逻辑迁移就显得有些力不从心了。尽管在速度可以接受的情况下,最大的痛处就是大量的归档文件了。 因为需要在原有的schema下增加一些全新的数据表,不是很肯定传输表空间的校验是否能够完全支

    07
    领券