目录
参考文档
迁移方法及流程参考:《DM DBA 手记之 Oracle 移植到 DM》
下载网址:https://eco.dameng.com/docs/zh-cn/start/migrate-oracle-dm.html
达梦迁移工具使用参考: dm客户端工具帮助主题
DM数据迁移工具dts:位于dm安装目录下的tool/dts
环境统计
源端 | 目标端 | |
---|---|---|
系统版本 | ||
数据库版本 | ||
cpu | ||
内存 | ||
磁盘容量 | ||
数据库连接参数 如ip、端口号、服务名、用户/密码 |
准备移植环境
为了兼容源端数据库,dm建议指定一些初始化参数和dm.ini参数,由于初始化参数后续无法修改,因此需要在建库之前就确定后续是否需要由其他数据库迁移至达梦。
以兼容oracle为例:
[dmdba@DM ~]$ dminit PATH=/home/dmdba EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=1 CHARSET=0 LENGTH_IN_CHAR=1 BLANK_PAD_MODE=1
initdb V8
db version: 0x7000c
License will expire on 2022-06-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: /home/dmdba/DAMENG/DAMENG01.log
log file path: /home/dmdba/DAMENG/DAMENG02.log
write to dir [/home/dmdba/DAMENG].
create dm database success. 2021-08-10 10:24:04
[dmdba@DM ~]$ dminit help ###相关初始化参数说明
关键字 说明(默认值)
--------------------------------------------------------------------------------
PATH 初始数据库存放的路径
EXTENT_SIZE 数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE 数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE 日志文件大小(256),单位为:M,范围为:64M ~ 2G
CASE_SENSITIVE 大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
LENGTH_IN_CHAR VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
BLANK_PAD_MODE 设置空格填充模式(0),可选值:0/1
[dmdba@DM DAMENG]$ vi /home/dmdba/DAMENG/dm.ini
修改如下参数:
COMPATIBLE_MODE=1 #是否兼容其他数据库模式。0:不兼容,1: 兼容 SQL92 标准,2:兼容 ORACLE,3: 兼容 MS SQL SERVER,4:兼容 MYSQL, 5:兼容 DM6,6:兼容 Teradata,所以当从 Oracle 移植到DM 时,修改值为2;
CALC_AS_DECIMAL=1 #整数相除是否保留小数位,修改为 1
[dmdba@DM DAMENG]$ dmserver path=/home/dmdba/DAMENG/dm.ini
......
统计源端迁移对象
所属模式 | 对象名 | 对象类型 | 对象大小 |
---|---|---|---|
目标端建立相应的模式和表空间
例如:
[dmdba@DM ~]$ disql
disql V8
用户名:
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 2.142(ms)
SQL> CREATE TABLESPACE "TEST" DATAFILE 'TEST.DBF' SIZE 128 AUTOEXTEND ON NEXT 2048;
操作已执行
已用时间: 115.709(毫秒). 执行号:53300.
SQL> CREATE USER "TEST" IDENTIFIED BY "admin1234" DEFAULT TABLESPACE "TEST" DEFAULT INDEX TABLESPACE "TEST";
操作已执行
已用时间: 19.413(毫秒). 执行号:53301.
SQL> GRANT "PUBLIC","RESOURCE","VTI","SOI" TO "TEST";
操作已执行
已用时间: 52.686(毫秒). 执行号:53302.
SQL> ALTER USER "TEST" LIMIT FAILED_LOGIN_ATTEMPS UNLIMITED, PASSWORD_LOCK_TIME UNLIMITED, PASSWORD_GRACE_TIME UNLIMITED; ##取消用户限制
操作已执行
已用时间: 5.685(毫秒). 执行号:53303.
制定迁移计划
- 建议迁移顺序 序列-表-视图-存储过程和函数
- 对于数据量较大的表建议单独迁移,先迁移表结构,再迁移数据,最后迁移索引和约束
开始迁移
使用DM迁移工具 dts 新建迁移工程
连接数据库
选择迁移对象
可以点击“转换”进行更详细的配置,具体可查看客户端左上角–>帮助–>帮助主题
完成迁移
完成后核对目标端是否和源端一致
收集统计信息
SQL> CALL SP_CREATE_SYSTEM_PACKAGES(1); --创建系统包
SQL> CALL SP_DB_STAT_INIT (); --对库上所有表及索引 生成统计信息
SQL> DBMS_STATS.GATHER_SCHEMA_STATS('TEST',100,FALSE,'FOR ALL COLUMNS SIZE AUTO'); --收集EDM_BASE模式下 所有索引的统计信息
达梦云适配中心技术社区:https://eco.dameng.com/community/question