使用达梦DMHS平滑迁移Oracle数据到DM8
一、迁移前准备
1.环境描述
服务 | IP | 架构 |
Oracle | 192.168.10.91/92 | RAC、主库 |
Oracle | 192.168.10.98 | DG备库 |
达梦 | 192.168.10.192/192.168.10.193 | 主备 |
DMHS | 192.168.10.193(DM端) 192.168.10.98(Oracle端) | |
DTS | 10.254.240.96 |
2.部署DMHS源端及检查事项
(1)本次测试源端和目的端数据库为GBK字符集,在Oracle端安装达梦数据实时同步软件(DMHS),编辑配置文件,注意在DMHS服务启动脚本中加上"export LANG=zh_CN.GB18030"和"export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK"(字符集与Oracle数据库保持一致)
(2)Oracle源端数据库调整
1)检查Oracle是否开启归档跟保留时长
archive log list
2)Oracle开启附加日志
最小附加日志
alter database add supplemental log data;
全字段附加日志
alter database add supplemental log data(all) columns ;
检查附加日志是否开启
select database_role,supplemental_log_data_min from v$database;
select supplemental_log_data_min "min",supplemental_log_data_pk "pk",supplemental_log_data_ui "ui",supplemental_log_data_fk "fk",supplemental_log_data_all "all" from v$database;
3)创建同步用户并授权
alter session set container=oapdb;
create user dmhs identified by dmhs default tablespace dmhs unlimited tablespace to dmhs;
grant connect,resource to dmhs;
grant select on sys.v_$instance to dmhs;
grant select on sys.v_$database to dmhs;
grant select on sys.v_$session to dmhs;
grant select on sys.v_$parameter to dmhs;
grant select on sys.gv_$parameter to dmhs;
grant select on sys.gv_$instance to dmhs;
grant select on sys.gv_$archive_dest to dmhs;
grant select on sys.gv_$archive to dmhs;
grant select on sys.gv_$log to dmhs;
grant select on sys.gv_$logfile to dmhs;
grant select on sys.dba_tables to dmhs;
grant select on sys.obj$ to dmhs;
grant select on sys.user$ to dmhs;
grant select on sys.col$ to dmhs;
grant select on sys.dba_cons_columns to dmhs;
grant select on sys.dba_constraints to dmhs;
grant select on sys.lob$ to dmhs;
grant select on sys.tabpart$ to dmhs;
grant select on sys.tab$ to dmhs;
grant select on sys.tabsubpart$ to dmhs;
grant select on sys.tabcompart$ to dmhs;
grant execute on dbms_flashback to dmhs;
grant lock any table to dmhs;
grant select any table to dmhs;
grant select any dictionary to dmhs;
3.部署DMHS目的端及检查事项
在达梦端安装在达梦数据实时同步软件(DMHS),并进行配置,注意将版本对应的dmoci依赖文件拷贝到DMHS安装目录的bin目录下,同时在DMHS服务启动脚本中加上"export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK"(字符集与Oracle数据库保持一致)和"export LANG=zh_CN.GB18030"(字符集与达梦数据库保持一致)
二、创建达梦用户
1.创建达梦用户以及表空间
创建用户及赋权
create tablespace oatbs datafile 'OATBS_01.DBF' size 10240 autoextend off;
create user oa identified by "123456789" default tablespace oatbs default index tablespace oatbs;
grant public,resource,soi,vti to oa;
设置用户为只读
alter user oa read only;
三、对象迁移及处理
1.迁移步骤
(1)使用DTS创建迁移任务,分别连接Oracle和达梦数据库
(2)选择要迁移的用户OA
(3)勾选所有对象,其中表对象只迁移表结构,且约束和索引不迁移
2.禁用所有触发器
select 'alter trigger "'||owner||'"."'||trigger_name||'" disable;' from dba_triggers where owner in ('OA') and status='Y';
四、DMHS迁移数据
1.配置文件
(1)Oracle端
注:装载时要用主库IP,开启同步前要改成备库IP并重启源端dmhs
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<dmhs><base><lang>en</lang><mgr_port>5345</mgr_port><name>ora_hs</name><ckpt_interval>60</ckpt_interval><siteid>2</siteid><version>2.0</version></base><cpt><enable>1</enable><name>ora_cpt</name><db_type>ORACLE19C</db_type><db_server>192.168.10.91/zqpdb</db_server><db_user>DMHS</db_user><db_pwd>DMHS</db_pwd><db_port>1521</db_port><char_code>PG_GB18030</char_code><parse_thr>16</parse_thr><arch><clear_flag>0</clear_flag><clear_interval>600</clear_interval></arch><rac><rac_type>2</rac_type><nodes>2</nodes><dir_replace><item>1#/archive/archivelog</item><item>2#/archive/archivelog</item></dir_replace></rac><send><ip>192.168.10.193</ip><mgr_port>5345</mgr_port><data_port>5346</data_port><filter><enable><item>ZQPDB.OA.*</item></enable></filter><map><item>ZQPDB.OA.*==OA.*</item></map></send></cpt>
</dmhs>
(2)达梦端
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<dmhs><base><lang>en</lang><mgr_port>5345</mgr_port><name>dm_exec</name><ckpt_interval>60</ckpt_interval><siteid>1</siteid><group>1</group><version>2.0</version></base><exec><recv><data_port>5346</data_port></recv><enable>1</enable><db_type>dm8</db_type><db_server>OA</db_server><db_user>SYSDBA</db_user><db_pwd>SYSDBA</db_pwd><db_port>5236</db_port><exec_thr>64</exec_thr> <exec_policy>2</exec_policy><exec_sql>1024</exec_sql><exec_trx>5000</exec_trx><exec_rows>2000</exec_rows><trx_split>1</trx_split><case_sensitive>1</case_sensitive></exec>
</dmhs>
2.数据装载
(1)启动达梦目的端dmhs进程,启动执行器
cd /dm/dmhs/bin
./dmhs_console
DMHS> connect
DMHS> start exec
(2)启动Oracle源端dmhs进程,准备装载
cd /oracle/dmhs/bin
./dmhs_console
DMHS> connect
DMHS> clear exec lsn
DMHS> copy 0 "sch.name='OA'" dict|truncate|insert|pdb|"ZQPDB"|thread|32|fast|100
分区表装载
DMHS> copy 0 "sch.name='OA' and tab.name in ('TABLE1')" dict|truncate|insert|pdb|"ZQPDB"|partition|bypart|thread|32|fast|100
五、索引和约束迁移
使用DTS迁移索引和约束,其中索引勾选并行,提高索引创建效率
六、更新统计信息
在达梦数据库中,使用SYSDBA用户执行以下脚本更新数据库统计信息。
drop table if exists my_tab_stats;
create table my_tab_stats(table_name varchar2(100),owner varchar2(100),stat_flag varchar2(5),begin_time timestamp,end_time timestamp);
insert into my_tab_stats(table_name,owner) select table_name,owner from dba_tables where owner in ('OA');
update my_tab_stats set stat_flag = 0;
commit;
beginfor tb in (select rowid,table_name,owner from my_tab_stats where stat_flag = 0 ) loopupdate my_tab_stats set begin_time=sysdate where my_tab_stats.table_name=tb.table_name and my_tab_stats.owner=tb.owner;dbms_stats.gather_table_stats(tb.owner,tb.table_name,null,100,true,'FOR ALL COLUMNS SIZE AUTO',cascade => true, degree => 8);update my_tab_stats set stat_flag = 1,end_time=sysdate where my_tab_stats.table_name = tb.table_name and my_tab_stats.owner=tb.owner;commit;end loop;
end;
七、开启DMHS同步
cd /oracle/dmhs/bin
./dmhs_console
DMHS> connect
DMHS> start cpt
注:开启同步前 Oracle配置文件改成DG备库ip,减小DMHS同步对Oracle主库的影响
相关文章:
使用达梦DMHS平滑迁移Oracle数据到DM8
一、迁移前准备 1.环境描述 服务 IP 架构 Oracle 192.168.10.91/92 RAC、主库 Oracle 192.168.10.98 DG备库 达梦 192.168.10.192/192.168.10.193 主备 DMHS 192.168.10.193(DM端) 192.168.10.98(Oracle端) DTS …...
Java面试题:讨论事务的ACID属性,并解释在Java中如何管理事务
事务是数据库管理系统中的一组操作,这些操作要么全部成功,要么全部失败,事务的ACID属性确保了数据库系统的可靠性和一致性。ACID是指: Atomicity(原子性):事务中的所有操作要么全部完成…...

第 5 章理解 ScrollView 并构建 Carousel UI
通过上一章的学习,我相信你现在应该明白如何使用堆栈构建复杂的 UI。当然,在你掌握 SwiftUI 之前,你还需要大量的练习。因此,在深入研究 ScrollView 以使视图可滚动之前,让我们先以一个挑战开始本章。你的任务是创建一个类似于图 1 所示的卡片视图。 …...

MySQL锁、加锁机制(超详细)—— 锁分类、全局锁、共享锁、排他锁;表锁、元数据锁、意向锁;行锁、间隙锁、临键锁;乐观锁、悲观锁
文章目录 一、概述1.1 MySQL锁的由来1.2 锁定义1.3 锁分类 二、共享锁与排他锁2.1 共享锁(S锁)2.2 排他锁(X锁)2.3 MySQL锁的释放 三、全局锁3.1 介绍3.2 语法3.3 特点 四、表级锁4.1 介绍4.2 表锁4.3 元数据锁(Meta D…...
如何在Java中实现文件上传和下载?
如何在Java中实现文件上传和下载? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在现代Web应用程序中,文件上传和下载是常见的功能需求…...

SpringBoot使用滑动窗口限流防止用户重复提交(自定义注解实现)
在你的项目中,有没有遇到用户重复提交的场景,即当用户因为网络延迟等情况把已经提交过一次的东西再次进行了提价,本篇文章将向各位介绍使用滑动窗口限流的方式来防止用户重复提交,并通过我们的自定义注解来进行封装功能。 首先&a…...

ravynOS 0.5.0 发布 - 基于 FreeBSD 的 macOS 兼容开源操作系统
ravynOS 0.5.0 发布 - 基于 FreeBSD 的 macOS 兼容开源操作系统 ravynOS - 一个旨在提供 macOS 的精致性和 FreeBSD 的自由度的操作系统 请访问原文链接:https://sysin.org/blog/ravynos/,查看最新版。原创作品,转载请保留出处。 作者主页…...

韩国面临的本地化挑战
西方文化,尤其是美国电影、音乐和游戏,对韩国也产生了同样大的影响。众所周知,这个国家与外国产品的关系更加开放。然而,游戏在这里仍然受到审查,所以最好避免与朝鲜、日本等有关的分裂性政治主题。否则,你…...
Linux内存从0到1学习笔记(8.17 SMMU Fault调试方法)
写在前面 通过前面的介绍,我们知道了SMMU实际上是一个针对外设的MMU。它作为一个硬件IP被设备执行DMA操作时使用。 再来简单回顾下SMMU的工作流程: 外设 ---> DMA操作 ---> SMMU ---> Memory 也就是说,通常情况下驱动程序会先分配DMA Buffer ---> 然后执行S…...

讲座学习截图——《CAD/CAE/CAM几何引擎-软件概述》(一)
目录 引出CAD/CAE/CAM几何引擎-软件概述 郝建兵CADCAECAM 几何模型内核ACIS 两个老大之一Open CascadeParasolid 两个老大之一Autodesk的内核 总结其他自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.进行触发 自定义信号重载带参数的按钮触发信号触发信号拓展 lambda表达式…...
鸿蒙开发系统基础能力:【@ohos.hichecker (检测模式)】
检测模式 HiChecker可以作为应用开发阶段使用的检测工具,用于检测代码运行过程中部分易忽略的问题,如应用线程出现耗时调用、应用进程中Ability资源泄露等问题。开发者可以通过日志记录或进程crash等形式查看具体问题并进行修改,提升应用的使…...

WordPress CDN是什么?CDN有什么作用?
您想让您的网站加载速度更快吗? 网站所有者希望网站加载速度快,内容丰富,功能强大,吸引用户。然而,添加这些功能可能会降低网站速度,难以快速向全球用户提供内容。 这就是为什么许多WordPress网站使用 CDN…...

【containerd】Containerd高阶命令行工具nerdctl
前言 对于习惯了使用docker cli的用户来说,containerd的命令行工具ctr使用起来不是很顺手,此时别慌,还有另外一个命令行工具项目nerdctl可供我们选择。 nerdctl是一个与docker cli风格兼容的containerd的cli工具。 nerdctl已经作为子项目加入…...

Spring+SpringMVC+MyBatis整合
目录 1.SSM介绍1.1 什么是SSM?1.2 SSM框架1.2.1 Spring1.2.2 SpringMVC1.2.3 MyBatis 2.SSM框架整合2.1 建库建表2.2 创建工程2.3 pom.xml2.4 log4j.properties2.5 db.properties2.6 applicationContext-dao.xml2.7.applicationContext-tx.xml2.8 applicationContex…...

springboot+vue+mybatis穷游管理系统+PPT+论文+讲解+售后
随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多企业的之中,随之就产生了“基于vue的穷游管理系统”,这样就让基于vue的穷游管理系统更加方便简单。 对于本基于vue的穷游管理系统的设计来说…...

ClickHouse备份方案
ClickHouse备份方案主要包括以下几种方法: 一、使用clickhouse-backup工具: (参考地址:https://blog.csdn.net/qq_43510111/article/details/136570850) **安装与配置:**首先从GitHub获取clickhouse-bac…...

windows启用和禁用内存压缩
windows内存压缩 Windows操作系统的内存压缩是一种通过压缩和解压缩内存页面来减少内存使用量的技术。当系统的内存使用达到一定阈值时,Windows会将不常用的内存页面压缩为一个稳定的压缩文件,以释放更多的内存空间。 内存压缩的主要目的是减少页面交换…...

MATLAB-振动问题:单自由度无阻尼振动系统受迫振动
一、基本理论 二、MATLAB实现 令式(1.3)中A0 2,omega0 30,omega 40,matlab程序如下: clear; clc; close all;A0 2; omega0 30; omega 40; t 0:0.02:5; y A0 * sin( (omega0 - omega) * t /2) .* s…...

示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变
一、目的:开发过程中,经常碰到使用别人的控件时有些属性改变没有对应的事件抛出,从而无法做处理。比如TextBlock当修改了IsEnabled属性我们可以用IsEnabledChanged事件去做对应的逻辑处理,那么如果有类似Background属性改变我想找…...

链家房屋数据爬取与预处理-大数据采集与预处理课程设计
芜湖市链家二手房可视化平台 成品展示 重点说明 1.数据特征数量和名称、数据量 数据特征数量:14; 名称:小区名、价格/万、地区、房屋户型、所在楼层、建筑面积/平方米、户型结构、套内面积、建筑类型、房屋朝向、建筑结构、装修情况、梯户…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...