首页 > 数据库 >高效数据移动指南 | 如何快速实现数据库 Oracle 到 Dameng 的数据同步?

高效数据移动指南 | 如何快速实现数据库 Oracle 到 Dameng 的数据同步?

时间:2024-09-20 11:53:05浏览次数:8  
标签:TapData 同步 Dameng 数据库 Oracle 数据 连接

在现代企业中,数据无处不在,贯穿于各个业务环节和系统之间。无论是跨系统的数据集成、多地域的数据协同,还是实时应用的数据同步,数据的一致性和及时性都至关重要。在数字化转型的过程中,如何确保不同系统、地域、设备之间的数据同步,成为了企业面临的重要挑战。

本专题将基于实践经验,从常见需求入手,为大家介绍热门数据源与数据目标之间的数据同步(全量/增量)如何实现?了解如何快速搭建数据管道,实现数据的高效迁移与无缝同步。

本文教程为:Oracle → Dameng 的数据同步任务。

在实际应用中,数据同步涉及诸多场景,如容灾备份、应用改造/替代、数据库版本升级/回退、数据库替代、业务分流等,不同的场景在数据流向、同步需求、数据处理等方面会有不同的需求,需要针对性地选择迁移工具和方案。

以 Oracle 到 Dameng(DM) 的数据同步需求为例,随着国家对自主可控的日益重视,目前在各个行业和区域中面临越来越多的国产化,采用有自主知识产权的国产数据库将成为主流。DM 数据库以其丰富的产品架构、优异的性能表现、绝对的安全保证适应各种应用场景需求得到了众多客户的信任。DM 数据库针对 Oracle 数据库可以做到完全替代,但仍需特别关注数据类型的兼容性、存储过程和触发器的调整、同步工具的选择、性能优化以及安全性和合规性。同时,建议在同步完成后进行数据一致性校验,以确保源数据库与目标数据库之间的数据准确无误,从而保障数据相关项目的平稳顺利实施。

一、什么是 Oracle?

Oracle RDBMS 是由甲骨文公司推出的一款关系型数据库管理系统。它是数据库领域一直处于领先地位的产品,具有强稳定性和可移植性,适用于各类大、中、小微机环境。Oracle 数据库系统是世界上流行的关系数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

优势

  • 高性能:具有高度优化的 SQL 引擎,能够处理大量数据和复杂查询。
  • 可扩展性:支持分布式数据库架构,可以轻松地将数据分布在多个服务器上,以提高性能和可靠性。
  • 安全性:提供了严格的访问控制和加密技术,确保数据的安全性和隐私。
  • 兼容性:支持多种操作系统和硬件平台,可以在各种环境中运行。
  • 可靠性:具有高度可靠的故障恢复功能,可以在系统故障时保护数据的完整性和一致性。
  • 并发控制:支持多用户并发访问,可以有效地处理多个事务的同时进行。
  • 大型数据处理:可以处理大量数据,支持分区表、分区索引等特性,以提高数据处理效率。

二、什么是 Dameng?

Dameng 是新一代大型通用关系型数据库,全面支持 SQL 标准和主流编程语言接口/开发框架。行列融合存储技术,在兼顾 OLAP 和 OLTP 的同时,满足 HTAP 混合应用场景。凭借其丰富的产品架构、优异的性能表现、绝对的安全保证适应各种应用场景需求得到了众多客户的信任,不仅在国产数据库市场中成功占有一席之地,成为国产化替代的常见选项,也逐渐成为国际竞争中的一股重要力量。

优势

  • 自主研发: 拥有完全自主知识产权,符合国家信创工程的战略需求。
  • 跨平台: 支持多种操作系统,如 Windows、Linux 以及国产操作系统。
  • 高性能: 优化了查询和数据处理能力,适合处理大规模复杂数据。
  • 兼容性强: 兼容主流数据库,如 Oracle、MySQL,便于数据迁移。

三、方案选择:如何实现 Oracle → Dameng 的数据同步?

实现 Oracle 到 Dameng 的数据同步的常见方式包括,手动构建数据管道或使用自动化工具:

手动构建数据管道

这种方式适合对数据同步流程有高度自定义需求的场景。开发团队可以通过编写脚本或使用编程语言(如 Python、Java 等)连接 Oracle 数据库和 Dameng 数据库,逐步提取、转换、加载(ETL)数据。在此过程中,需要仔细处理数据类型转换、主键/外键关系的维护,以及增量数据同步的实现。此外,可能还需要开发日志和错误处理机制,以确保数据同步的可靠性。

这种发发通常耗时较长,其间涉及详细的需求分析、复杂的脚本开发、数据转换和映射,以及增量同步的实现。此外,测试、验证和后续运维工作也耗费大量时间,整体过程可能需要数周甚至数月才能完成,并且需要持续维护以确保数据的准确性和实时性。

自动化工具

例如选择使用 TapData 这样的自动化数据集成平台,只需三步就可以在几分钟内开启所需的数据同步任务:

  • 将 Oracle 设置为源连接
  • 将 Dameng 设置为目标连接
  • 定义要传输的数据以及传输频率

TapData 内置 100+ 数据连接器,提供了友好的用户界面和强大的实时同步功能,无需编写复杂的代码即可轻松实现数据的迁移和同步。这样不仅节省了大量的时间和人力成本,还能保障数据同步过程的稳定性和可靠性。对于那些希望快速、高效地完成 Oracle 到 Dameng 数据同步的企业和开发者来说,这样的便捷工具无疑是一个理想的选择。

四、TapData 高效同步完整教程

完成 TapData Agent 部署后,即可跟随以下教程在 TapData 中添加源与目标的数据连接(支持版本:Oracle 9i、10g、11g、12c、18c、19c+;DM 7.x、8.x),并快速构建数据管道。(*涉及工具版本为 TapData 本地部署版)

版本指路:
点击登录 TapData Cloud
申请试用 TapData 本地部署版

① 准备工作(作为源库)

数据源:Oracle

  1. 以具有 DBA 权限的用户身份登录 Oracle 数据库。
  2. 依次执行下述格式的命令,创建用于数据复制/转换任务的用户。
  • Oracle 标准模式
    CREATE USER username IDENTIFIED BY password;

    • username:用户名,当 Oracle 处于多租户模式下时,用户名需增加 C## 前缀。
    • password:密码。
  • Oracle 多租户模式

-- 切换至根容器 ALTER SESSION SET CONTAINER=cdb$root; -- 创建用户 CREATE USER username IDENTIFIED BY password CONTAINER=all;

  • username:用户名,当 Oracle 处于多租户模式下时,用户名需增加 C## 前缀。
  • password:密码。
  1. 为刚创建的账号授予权限,您也可以基于业务需求自定义权限控制。当需要读取全量+增量数据时:

-- 替换下述命令中的 username 为真实的用户名 GRANT CREATE SESSION, ALTER SESSION, EXECUTE_CATALOG_ROLE, SELECT ANY DICTIONARY, SELECT ANY TRANSACTION, SELECT ANY TABLE TO username;

*提示:当 Oracle 版本为 12c 及以上时,您还需要执行 GRANT LOGMINING TO username; 格式的命令授予 LOGMINING 权限。

  1. 如果您需要获取源库的数据变更以实现增量同步,您还需要以 DBA 身份登录数据库完成下述数据库设置。

a. 开启数据库归档模式(ARCHIVELOG),由于涉及重启数据库,请在业务低峰期操作。

*提示:您也可以执行 SELECT log_mode FROM v$database; 命令来查看是否已开启该功能,返回结果为 ARCHIVELOG 表示已开启,可跳过本步骤。

-- 关闭数据库 SHUTDOWN IMMEDIATE; -- 启动并挂载数据库 STARTUP MOUNT; -- 开启归档并打开数据库 ALTER DATABASE archivelog; ALTER DATABASE OPEN;

b. 开启补充日志(Supplemental Logging)。
-- 为库级开启主键补充日志,如需关闭,将 ADD 替换为 DROP ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; -- 为单个表开启主键补充日志,需替换命令中 Schema 名称和 表名称 ALTER TABLE Schema名称.表名称 ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;

*提示:如日志磁盘存储空间相对充裕,可执行 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; 命令开启库级的全补充日志,简化操作流程。

c. 如存在无主键表,您还需要选择执行下述命令,为单个表或所有表开启全补充日志(full supplemental logging)。
-- 为单个表开启,需替换命令中 Schema名称和表名称 ALTER TABLE Schema名称.表名称 ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; -- 为所有表开启 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;

*提示:如果 Oracle 处于多租户模式,推荐为指定的容器开启,即在执行上述命令前先执行 ALTER SESSION SET CONTAINER=PDB名称; 格式的命令,将更改应用于容器。

d. 提交更改。
ALTER SYSTEM SWITCH LOGFILE;

e. 如果 Oracle 处于多租户模式,您还需要执行下述命令打开可插拔数据库。
ALTER PLUGGABLE DATABASE ALL OPEN;

数据目标:Dameng

在连接 DM 之前,还需完成数据库账号的授权等准备工作。TapData 同时支持 DM 作为源或目标,当 DM 作为目标库时,准备工作包括:

  1. 以拥有 DBA 权限的身份登录达梦数据库。

  2. 依次执行下述格式的命令,创建用于数据复制/转换任务的用户。

CREATE USER username IDENTIFIED BY "password" DEFAULT TABLESPACE table_space_name;

  • username:用户名
  • password:密码
  • table_space_name:表空间名称
  1. 为刚创建的账号授予权限,也可以基于业务需求自定义权限控制。
    -- 替换下述命令中的 username 为真实的用户名 GRANT CREATE TABLE, DELETE TABLE, INSERT TABLE, SELECT TABLE, UPDATE TABLE, CREATE INDEX TO username;

② 创建 Oracle 的连接

  1. 进入 TapData 控制台,在左侧导航栏,单击连接管理
  2. 单击页面右侧的创建,在弹框中,搜索并选择 Oracle。
  3. 在跳转到的页面,根据下述说明填写 Oracle 连接信息:

  • 连接信息设置
    • 连接名称:填写具有业务意义的独有名称。
    • 连接类型:支持将 Oracle 作为源或目标库。
    • 连接方式:可选择通过 SID 或 Service Name 连接。
    • 数据库地址:数据库连接地址。
    • 端口:数据库的服务端口。
    • SID/Service Name:填写 SID 或 Service Name 信息。
    • Schema:Schema 名称,即一个连接对应一个 Schema,如需连接多个 Schema 则需创建多个数据连接。
    • 其他连接串参数:额外的连接参数,默认为空。
    • 账号:数据库的账号。
    • 密码:数据库账号对应的密码。
    • 日志插件:基于业务需求选择,默认为 logMiner,相关介绍,见增量日志获取方式介绍
  • 高级设置
    • 加载表注释:选择是否加载表注释信息(默认关闭),帮助快速识别表的业务意义,当表注释较多时可能影响模型加载效率。
    • 多租户模式:如 Oracle 为多租户模式,需打开该开关并填写 PDB 信息。
    • 使用 SSL:选择是否开启 SSL 连接数据源,可进一步提升数据安全性,开启该功能后还需要上传 SSL 证书文件并填写证书密码,相关文件已在开启 SSL 连接中获取。
    • 时间类型的时区:默认为 0 时区,您也可以根据业务需求手动指定,当配置为其他时区时,会影响不带时区的字段,例如 DATE、TIMESTAMP。
    • 套接字超时时长:设置此参数,以重试机制来避免 LogMiner 执行自动挖掘增量变更时,因意外情况(如套接字交互超时)而形成的僵尸连接,默认值为 0 表示不设置。
    • 共享挖掘挖掘源库的增量日志,可为多个任务共享同一源库的增量日志采集进程,从而避免重复读取,从而最大程度上减轻增量同步对源库的压力,开启该功能后还需要选择一个外存用来存储增量日志信息。
    • 包含表:默认为全部,您也可以选择自定义并填写包含的表,多个表之间用英文逗号(,)分隔。
    • 排除表:打开该开关后,可以设定要排除的表,多个表之间用英文逗号(,)分隔。
    • Agent 设置:默认为平台自动分配,您也可以手动指定 Agent。
    • 模型加载时间:如果数据源中的模型数量少于10000个,则每小时更新一次模型信息。但如果模型数量超过10000个,则刷新将在您指定的时间每天进行。
  1. 单击连接测试,测试通过后单击保存

*提示:如提示连接测试失败,请根据页面提示进行修复。

③ 创建 Dameng 的连接

  1. 参照 Oracle 连接创建流程,完成 DM 连接配置信息填写,添加数据目标:

  1. 测试 DM 的连接:

④ 创建数据复制/开发任务

  1. 左侧导航栏点击数据复制,并点击右侧创建:

  1. 进入 DAG 页面,构建数据复制任务,通过拖拉拽的方式添加源与目标节点,并连接源与目标

  1. 单击源与目标节点,即可按需对二者进行设置:

  1. 保存任务

⑤ 任务启动与监控

  1. 启动任务,任务全量同步正常运行:

  1. 增量同步开启

以上,便是借助 TapData 快速实现数据库 Oracle 到 Dameng 的全、增量同步的模拟教程。

后续,我们还将持续输出本专题内容,欢迎关注 TapData 官方公众号,了解更多。

【推荐阅读】

标签:TapData,同步,Dameng,数据库,Oracle,数据,连接
From: https://www.cnblogs.com/tapdata/p/18422184

相关文章

  • ChatGPT流式数据传输探索
    文章目录背景介绍目标技术细节1、客户端2、服务端总结背景介绍用过GPT类语言模型的同学都知道,其在返回数据时都是一个字或几个字的显示,你是否思考过它是怎么传输的?经过一番查询学习,了解到了SSE,GPT就是通过SSE流式传输方式进行传输的。SSE全称为Server-sent-even......
  • 数据库数据恢复—SQL Server数据库附加数据库出现823错误,附加失败的数据恢复案例
    SQLServer数据库故障:SQLServer附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。SQLServer数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。SQLServer数据......
  • MySQL在大数据场景应用
    MySQL是一个功能强大的关系型数据库管理系统,虽然它最初设计用于处理中小规模的数据,但随着技术的发展和优化,MySQL也被应用于一些大数据场景。MySQL在大数据场景下的应用:1.数据仓库MySQL可以作为数据仓库使用,存储和管理大量的业务数据。通过合理设计表结构、使用分区表和索引......
  • 淘宝商品关键词接口,挖掘商品数据服务
    在当今数字化时代,电子商务平台如淘宝,已成为全球最大的在线零售市场之一。随着市场的不断扩展,对于淘宝商品信息的高效管理和利用变得尤为重要。淘宝商品关键词API接口应运而生,它为商家和开发者提供了一种强大而灵活的方式来访问和利用淘宝的商品数据。一、淘宝商品关键词API接......
  • 互动娱乐行业中的数据飞轮:从智能推荐到用户洞察
    在互动娱乐行业,数据不仅是业务推动的基础,也是创新的关键。如今,数据飞轮的概念已成为推动企业向数据驱动转型的核心策略。本文将探讨如何通过建立有效的数据飞轮,在文娱行业中实现智能推荐和用户行为分析的深度融合,从而提升用户体验和业务增长。数据采集与用户行为深度分析互动娱乐......
  • SQLPlus执行成功但数据没有更新的原因及解决办法
    在使用sqlplus执行SQL文件时,如果执行成功但数据没有更新,可能有以下几个原因导致:1.没有提交事务在Oracle数据库中,执行UPDATE,INSERT,DELETE等操作后,默认不会自动提交事务。如果没有显式地提交事务,修改的数据将不会永久保存。解决办法:确保在SQL文件或命令行......
  • Oracle执行计划及性能调优详解使用
    在Oracle数据库中,SQL性能分析是一项非常重要的任务。通过性能分析,我们可以了解SQL语句的执行情况,从而优化其性能。常用的方法包括使用EXPLAINPLAN、自动工作负载库(AWR)、SQLTrace等工具。EXPLAINPLAN是最常用的工具之一,它生成SQL语句的执行计划并提供重要的......
  • 帝国cms数据库连接不上怎么办
    当遇到帝国CMS无法连接数据库的问题时,可以按照以下步骤进行排查和解决:检查数据库配置打开帝国CMS安装目录下的/e/config/config.php文件,检查数据库配置是否正确。重点检查数据库服务器地址、数据库名称、用户名和密码是否正确。确认数据库服务状态确认数据库服务是否正......
  • VLDB来啦!企业上云“搭子”天翼云TeleDB数据库有话说
    近日,VLDB2024(InternationalConferenceonVeryLargeDataBases)在广州隆重举行,全球数据库领域顶尖学者汇聚一堂,围绕数据库行业前沿议题展开探讨,带来一场跨越东西方、覆盖产学研的交流盛宴。作为数据库领域三大国际顶级学术会议之一,VLDB致力于展示和分享数据库领域的最新研究成......
  • 基于Java中的SSM框架实现数据结构课堂考勤管理平台项目【项目源码+论文说明】
    基于java中的SSM框架实现数据结构课堂考勤管理平台演示【内附项目源码+LW说明】摘要高校的不断扩张让在校学生数量不断的增加,对于教师和管理人员的需求也在不断地增强,对日常的学生考勤管理的工作量也在日益增加,传统的人工点名签到的考勤管理模式已经给无法适用于当前高校......