dmdfm安装及drs同步oracle到达梦
一、实验背景随着企业信息化建设的深入不同数据库系统之间的数据互通需求日益迫切。Oracle 数据库作为传统关系型数据库的代表广泛应用于企业核心业务系统而达梦数据库作为国产数据库在政府、金融等关键领域得到越来越多的应用。在实际业务场景中经常需要将Oracle中的业务数据实时同步到DM数据库以实现数据迁移、双活容灾或异构数据分析等目标。本次实验以达梦DRS数据复制系统为工具搭建Oracle 19c到DM8的异构数据同步链路。DRS是达梦公司自主研发的数据复制产品支持异构数据库之间的数据实时同步、数据迁移和数据比对等功能。通过DFM管理平台可以对同步链路进行可视化配置和监控。实验目标1在Windows物理机上安装并配置Oracle 19c数据库,开启归档模式及附加日志2在Linux虚拟机上安装并配置DM8数据库,创建同步专用用户3在Windows端安装DRS Agent,在Linux端安装DRS DMDFM4通过DFM管理平台配置Oracle到DM的数据同步链路5验证全量数据装载和实时增量同步的正确性6完成源端与目的端的数据比对,确保数据一致性。二、环境信息与规划1、基本信息2、网络规划说明两节点通过 VirtualBox Host-Only 网络互通物理机 IP 为 192.168.56.1虚拟机 IP 为 192.168.56.101网络掩码为 255.255.255.0。3、端口规划4、实例路径规划5、关键参数说明三、实验步骤1、物理机 Windows 端环境准备1.1 安装 Oracle 19c for Windows从 Oracle 官网下载 Oracle 19c Windows 版安装包WINDOWS.X64_193000_db_home.zip解压后双击 setup.exe 进行安装。选择创建并配置单实例数据库数据库版本企业版Oracle 基目录D:\app\oracle全局数据库名orclSIDorcl字符集AL32UTF8示例方案勾选设置并记住SYSDBA密码等待安装完成。1.2配置Oracle数据库以 SYSDBA 身份登录 SQL*Plus执行以下配置sqlplus / as sysdba-- 开启归档模式SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;-- 开启附加日志必须DRS 依赖 LogMiner 捕获变更ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;-- 创建 DRS 同步专用用户CREATE USER DRS IDENTIFIED BY 你的密码;-- 授权严格按 DRS 手册要求GRANT SELECT ANY TABLE TO DRS;GRANT CREATE SESSION TO DRS;GRANT LOCK ANY TABLE TO DRS;GRANT EXECUTE ON DBMS_FLASHBACK TO DRS;GRANT SELECT ANY DICTIONARY TO DRS;GRANT SELECT ON SYS.V_$DATABASE TO DRS;GRANT SELECT ON SYS.V_$SESSION TO DRS;GRANT SELECT ON SYS.GV_$PARAMETER TO DRS;GRANT SELECT ON SYS.GV_$INSTANCE TO DRS;GRANT SELECT ON SYS.GV_$ARCHIVE_DEST TO DRS;GRANT SELECT ON SYS.GV_$ARCHIVE TO DRS;GRANT SELECT ON SYS.GV_$LOG TO DRS;GRANT SELECT ON SYS.GV_$LOGFILE TO DRS;GRANT SELECT ON SYS.DBA_TABLES TO DRS;GRANT SELECT ON SYS.V_$INSTANCE TO DRS;GRANT SELECT ON SYS.OBJ$ TO DRS;GRANT SELECT ON SYS.USER$ TO DRS;GRANT SELECT ON SYS.COL$ TO DRS;GRANT SELECT ON SYS.DBA_CONS_COLUMNS TO DRS;GRANT SELECT ON SYS.DBA_CONSTRAINTS TO DRS;GRANT SELECT ON SYS.LOB$ TO DRS;GRANT SELECT ON SYS.TABPART$ TO DRS;GRANT SELECT ON SYS.TAB$ TO DRS;GRANT SELECT ON SYS.TABSUBPART$ TO DRS;GRANT SELECT ON SYS.TABCOMPART$ TO DRS;EXIT;参数说明1.3确认Oracle监听状态在 Windows 命令行中执行lsnrctl status# 应看到监听在 1521 端口正常运行# 若未启动执行 lsnrctl start1.4安装DRS AgentWindows获取 Windows 版 DRS 安装程序双击运行安装向导选择语言中文安装目录D:\dmdrs5选择组件仅勾选Install Agent不安装 DMDFMKey 文件选择Free trial DMDRS试用版无需 key 文件确认安装。1.5配置Agent指向DMDFM编辑配置文件 D:\dmdrs5\agent\conf\agent.ini修改以下内容[AGENT]# DMDFM的IP 地址101 虚拟机DMDFM_IP 192.168.56.101DMDFM_PORT 8080#本机 IP物理机 IPLOCAL_IP 192.168.56.11.6启动Agent服务在 Windows 服务管理器中找到 DfmAgentService右键启动或在命令行执行net start DfmAgentService1.7开放Windows防火墙以管理员身份运行命令行添加防火墙规则netsh advfirewall firewall add rule nameDMDRS Agent dirin actionallow protocolTCP localport19345netsh advfirewall firewall add rule nameDMDRS Agent dirin actionallow protocolTCP remoteport8080建议直接关闭防火墙或添加 VirtualBox Host-Only 网段白名单。2、虚拟机Linux端环境准备2.1确认达梦数据库运行状态以 dmdba 用户登录 101 虚拟机通过 MobaXterm 连接后执行以下命令确认 DM 数据库状态su – dmdbadisql SYSDBA/你的密码localhost:5236SQL SELECT STATUS$ FROM V$INSTANCE;SQL EXIT2.2创建DRS安装目录以 root 用户创建安装目录并授权mkdir -p /home/dmdba/dmdrs5chown dmdba:dinstall /home/dmdba/dmdrs5chmod 775 /home/dmdba/dmdrs52.3上传并安装DRS DMDFM通过 MobaXterm 将 Linux 版 DRS 安装包上传到 /home/dmdba/以 dmdba 用户执行安装su - dmdbacd /home/dmdbachmod 775 DRS_V4.3.18_dm8_xxx.bin./DRS_V4.3.18_dm8_xxx.bin -i安装向导交互过程如下选择语言c中文安装目录直接回车使用默认路径 /home/dmdba/dmdrs5安装类型输入 1Install DMDFM同时安装管理平台确认选择yKey 文件输入 1Free trial DMDRS试用版数据库动态库路径直接回车默认 /home/dmdba/dmdbms/binDMDFM 管理端口直接回车默认 8080是否使用外部数据库直接回车选择 0使用内置数据库确认安装y安装完成后启动类型选择 1Automatic注册为系统服务DMDFM 服务启动类型选择 1Automatic执行 root 安装脚本y。2.4执行root_installer.sh切换到 root 用户执行安装脚本注册系统服务su - root/home/dmdba/dmdrs5/scripts/root/root_installer.sh2.5确认服务状态检查三个核心服务是否正常运行systemctl status DmDMDFMDBService # DMDFM 内置数据库systemctl status DmDMDFMService # DMDFM 管理平台systemctl status DmDMDFMAgentService # 达梦端代理# 若某个未启动执行systemctl start DmDMDFMDBServicesystemctl start DmDMDFMServicesystemctl start DmDMDFMAgentService# 设置开机自启systemctl enable DmDMDFMDBServicesystemctl enable DmDMDFMServicesystemctl enable DmDMDFMAgentService2.6创建达梦同步用户DRS以 dmdba 用户登录 DM 数据库创建同步专用用户并授权su – dmdbadisql SYSDBA/你的密码localhost:5236-- 创建同步用户CREATE USER DRS IDENTIFIED BY 你的密码;-- 开启 DDL 任意权限参数SP_SET_PARA_VALUE(1, ENABLE_DDL_ANY_PRIV, 1);-- 授权严格按 DRS 手册要求GRANT PUBLIC, VTI, SOI TO DRS;GRANT CREATE ANY TABLE TO DRS;GRANT CREATE ANY PROCEDURE TO DRS;(内部存储过程创建所需)GRANT SELECT ANY TABLE TO DRS;GRANT SELECT ANY VIEW TO DRS;GRANT SELECT ANY DICTIONARY TO DRS;GRANT ALTER ANY TABLE TO DRS;GRANT INSERT ANY TABLE TO DRS;GRANT DELETE ANY TABLE TO DRS;GRANT UPDATE ANY TABLE TO DRS;GRANT DROP ANY TABLE TO DRS;GRANT COMMENT ANY TABLE TO DRS;查看确认SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE ‘DRS’SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE ‘DRS’2.7开放Linux防火墙以 root 用户开放 DMDFM 及 Agent 端口直接关闭防火墙systemctl stop firewalldsystemctl disable firewalldsystemctl status firewalld3、DFM管理平台配置3.1登录DFM管理平台在 Windows 物理机上打开浏览器访问 DFM 管理平台URL: http://192.168.56.101:8080修改密码3.2添加节点Agent左侧菜单 → 节点管理 → 添加已有节点【添加Windows节点物理机】添加 Windows 节点前需先确认 Oracle 监听已绑定到 192.168.56.1否则测试连接可能超时。若未绑定则先给Oracle监听绑定192.168.56.1节点名称Oracle_SRCIP 地址192.168.56.1物理机 IP端口1521Agent 默认端口操作系统Windows测试连接若成功则保存【添加Linux节点101虚拟机】节点名称DM_TGTIP 地址192.168.56.101端口5236操作系统Linux测试连接若成功则保存两个节点都成功后的页面3.3新建数据源【Oracle数据源配置】数据源名称Oracle_SRC数据库类型OracleIP 地址192.168.56.1端口1521服务名orcl用户名DRS密码安装时设置的密码注意 Oracle 会将密码自动转为大写存储测试连接成功则保存【DM数据源配置】数据源名称DM_TGT数据库类型DMIP 地址192.168.56.101端口5236用户名DRS密码123456789测试连接成功则保存3.4新建同步工程工程名称Oracle_TO_DM建立后页面如下手动拖拽左侧放置源端节点Oracle_SRC右侧放置目的端节点DM_TGT在两个节点之间拉上一根点击链路进行配置修改服务名方便后续辨认添加同步的表如 DRS.EMPLOYEES插入数据在虚拟机上也建立相应的结构建表成功确认列映射关系ID→ID、NAME→NAME、SALARY→SALARY、HIRE_DATE→HIRE_DATE确认后部署服务。部署成功。3.5启动同步链路启动源端、目的端服务即点击装载或启动同步在 DFM 监控页面查看同步状态。启动后会提示问题这是因为由于DRS启动时需要在DM目的端创建内部存储过程而DRS用户缺少CREATE PROCEDURE权限所以需要给DRS用户进行授权启用 Oracle GoldenGate 复制兼容模式使 DRS 能够通过 LogMiner 正常解析 redo log捕获源端数据变更。3.6初始化LSN首次装载在 Windows 物理机命令行中进入 DRS bin 目录执行cd D:\dmdrs5\bindrcsl.exeCLS connect 127.0.0.1:5345CLS alter link1 set lsnCLS alter add table SCH.NAME IN (DRS) DROP|CREATE|INDEX|INSERT|GROUP|16四、增量数据同步测试验证1、测试目的验证DRS同步链路在全量数据装载完成后能否正确、实时地捕获并同步 Oracle 源端的增量数据变更INSERT、UPDATE、DELETE到DM目的端确保增量同步功能的可靠性和数据一致性。2、测试环境基于前文已搭建完成的 Oracle 19c → DM8 同步链路选择用内置数据库作为同步数据库同步表为 DRS.EMPLOYEES链路状态为增量同步中。3、测试步骤3.1 INSERT操作验证步骤1在Oracle源端插入新数据步骤2在DM目的端查询验证3.2 UPDATE操作验证步骤1在Oracle源端更新数据步骤2在DM目的端查询验证3.3 DELETE操作验证步骤1在Oracle源端删除数据步骤2在DM目的端查询验证4、结论通过INSERT、UPDATE、DELETE及批量混合操作的验证确认DRS同步链路能够稳定、实时地将Oracle 19c的增量数据变更同步到DM8数据库。增量同步功能正常数据一致性得到保障满足生产环境对异构数据库实时同步的基本要求。以上是DM端全部的表格数据变化。五、DFM后台库相关表的功能1、DFM后台库概述DMDFM在Linux端安装时默认使用内置DM数据库作为后台元数据库。该后台库存储了DFM平台运行所需的全部管理元数据包括节点信息、数据源配置、同步链路拓扑、监控告警记录、用户权限及审计日志等。后台库随DMDFM服务一同启动由DmDMDFMDBService系统服务管理。通过disql连接工具可以登录后台库查看其表结构深入了解DFM平台的内部数据组织方式。2、查询后台库表格disql SYSDBA/密码192.168.56.101:15236进入内置数据库后运行SELECT TABLE_NAME FROM USER_TABLES;命令后查询到的后台库共有 137 张表涵盖系统管理、数据源、同步实例、同步链路、监控告警、校验修复、调度任务、数据验证服务等多个模块表名采用模块_功能的命名方式非常直观便于理解和维护。以下按功能模块分类解析2.1系统管理模块用户、角色、权限、日志2.2数据源管理模块2.3同步实例Agent节点管理模块2.4同步工程与链路管理模块2.5监控告警模块2.6数据校验与修复模块2.7其他表QRTZ_ 开头的 11 张表是 Quartz 调度框架标准表用于定时任务调度AGENT_MAINFRAME_xxx 系列表用于监控各节点主机的 CPU、内存、磁盘等资源VERIFY_xxx_REPORT 系列表存储各类校验报告结果DRS_$ 开头的表是引擎内部状态表用于深度故障排查不建议直接操作剩下的一些表属于边缘功能或附属表。