oracle到达梦数据库迁移基本步骤

数据迁移

准备迁移目标库用户和模式

disql

CREATE USER "XXXOABAK" IDENTIFIED BY "xxx@2023" DEFAULT TABLESPACE "XXXOA_TAB" DEFAULT INDEX TABLESPACE "XXXOA_IDX_TAB";

grant "RESOURCE","PUBLIC","VTI","SOI","SVI" to "XXXOABAK";

grant CREATE SESSION to "XXXOABAK";

全库备份和业务数据备份

全库备份

disql

backup database FULL backupset '/bak/dmbak/full/DB_DMDB_FULL_2023_06_22_00_51' task thread 32 parallel 8;

  业务用户schema备份

dexp userid=SYSDBA/SYSDBA FILE=/home/dmdba/xxx230622.dmp LOG=/home/dmdba/xxx230622.log  schemas=xxx  parallel=32  TABLE_PARALLEL=2

清理目标用户

drop user xxx  cascade;

备份库恢复备份数据

dimp userid=XXXOABAK/\"xxx@2023\" FILE=/home/dmdba/XXXOA230622.dmp LOG=/home/dmdba/IMPXXXOATEST230622.log  REMAP_SCHEMA=XXXOA:XXXOABAK parallel=32 TABLE_PARALLEL=2

DTS从oracle导入表定义和其他对象定义

配置迁移任务先迁移表结构

业务用户下所有外键并禁用

select 'alter table 用户名.'||A.TABLE_NAME ||' disable constraint '||A.CONSTRAINT_NAME||';'

from

DBA_CONSTRAINTS A ,

DBA_CONS_COLUMNS B,

dba_cons_columns c

WHERE

A.R_CONSTRAINT_NAME = B.CONSTRAINT_NAME

and a.CONSTRAINT_NAME = c.CONSTRAINT_NAME

AND A.CONSTRAINT_TYPE ='R'

--AND B.TABLE_NAME = '主表名'

--AND A.TABLE_NAME = '外键表名'

AND A.OWNER = '用户名'

AND B.OWNER = '用户名'

and c.owner = '用户名';

DTS迁移表数据

​​​​​​​启用外键

启用禁用范围的所有外键约束

alter table XXXOA.xxx ENABLE constraint CONS134227828

alter table XXXOA.xxx ENABLE constraint CONS13422xxx;

……

收集统计信息

收集迁移范围表的统计信息

DBMS_STATS.GATHER_TABLE_STATS('xxx_schema','xxxtable',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

增加并行度4收集

DBMS_STATS.GATHER_TABLE_STATS('xxxschema','xxxtable',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO',4);

DBMS_STATS.GATHER_TABLE_STATS('xxxschema','xxxtable',NULL,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

……

总结

达梦对oracle数据库对象的兼容性良好,数据库对象基本可以通过DTS工具自动迁移,少部分出错需要手动修改。

达梦技术社区:https://eco.dameng.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值