达梦提供四类工具,覆盖不同迁移场景:
数据迁移工具 DTS
SQLark 百灵连接
数据复制软件 DMDRS
数据集成软件 DMDIS
构建了一套 Oracle 19C 的单机示例库,并介绍利用 DTS 工具从 Oracle 19C 移植 monei 用户下的所有对象到 DM8 数据库的详细步骤
Oracle服务器信息
调研项 | 调研结果 |
---|---|
数据库后台操作系统 | Red Hat Linux |
数据库架构 | 单机 |
数据库版本 | Oracle 19C |
待迁移数据库名 | monei |
待迁移的模式名 | monei |
IP/端口信息 | 192.168.123.14/1521 |
用户名/密码 | monei/monei |
字符集编码 | 简体中文 GBK |
需要移植的对象 | 表(数据量)、物化视图、触发器、存储过程、函数 |
数据库对象
[ormy:oracle]:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jul 15 22:23:30 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> select object_type,count(*) from dba_objects where owner='MONEI' group by object_type;
OBJECT_TYPE COUNT(*)
---------------------------------------------- ----------
INDEX 5
TRIGGER 1
PACKAGE BODY 1
PROCEDURE 1
PACKAGE 1
FUNCTION 1
LOB 1
SEQUENCE 1
TABLE 2
VIEW 1
10 rows selected.
其它 Oracle 端信息统计可参考如下 SQL:
SQL> --字符集编码
SELECT value FROM NLS_Database_Parameters WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
select userenv('language') from dual;SQL>
VALUE
--------------------------------------------------------------------------------
AL16UTF16
SQL>
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
SQL>
SQL>
SQL> --是否以字节为单位、大小写敏感
Show parameter NLS_LENGTH_SEMANTICS;SQL>
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
nls_length_semantics string
BYTE
SQL> --归档保留策略
select * from v$archived_log;SQL>
no rows selected
SQL> --定时作业
select * from user_jobs;SQL>
no rows selected
SQL> --权限查询语句
--查看用户系统权限
select PRIVILEGE from dba_sys_privs WHERE GRANTEE='MONEI';SQL> SQL>
PRIVILEGE
--------------------------------------------------------------------------------
CREATE TABLE
CREATE VIEW
CREATE PROCEDURE
CREATE SESSION
SQL> --查看用户对象权限
select * from dba_tab_privs WHERE GRANTEE='MONEI'; SQL>
no rows selected
SQL> --查看用户角色权限
select GRANTED_ROLE from dba_role_privs where grantee='MONEI';SQL>
GRANTED_ROLE
--------------------------------------------------------------------------------
RESOURCE
CONNECT
SQL> --表空间相关信息查询语句
--查询每个表空间的数据文件路径、实际使用大小,上限等及所属用户
select ee.username,dd.* from (select aa.*, bb.file_name, cc.NEXT_EXTENT
from (select tbs_used_info.tablespace_name,
tbs_used_info.alloc_mb,
tbs_used_info.used_mb,
tbs_used_info.max_mb,
tbs_used_info.free_of_max_mb,
tbs_used_info.used_of_max || '%' used_of_max_pct
from (select a.tablespace_name,
round(a.bytes_alloc / 1024 / 1024) alloc_mb,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) / 1024 / 1024) used_mb,
round((a.bytes_alloc - nvl(b.bytes_free, 0)) * 100 /
a.maxbytes) used_of_max,
round((a.maxbytes - a.bytes_alloc +
nvl(b.bytes_free, 0)) / 1048576) free_of_max_mb,
round(a.maxbytes / 1048576) max_mb
from (select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible,
'YES',
f.maxbytes,
SQL> SQL> 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 'NO',
f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
(select f.tablespace_name, sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name(+)) tbs_used_info
order by tbs_used_info.used_of_max desc) aa,
dba_data_files bb,
dba_tablespaces cc
where aa.tablespace_name = bb.tablespace_name
and aa.tablespace_name = cc.tablespace_name) dd
right join dba_users ee on dd.tablespace_name=ee.default_tablespace
where ee.username in ('MONEI');
USERNAME TABLESPACE ALLOC_MB USED_MB MAX_MB FREE_OF_MAX_MB USED_OF_MA FILE_NAME NEXT_EXTENT
---------- ---------- ---------- ---------- ---------- -------------- ---------- ---------------------------------------- -----------
MONEI USERS 5 3 32768 32765 0% /home/oracle/app/oracle/oradata/MONEI/us
ers01.dbf
SQL>
SQL> select *
from (select owner, tablespace_name, sum(b) GB
from (select owner,
t.segment_name,t.partition_name,round(bytes / 1024 / 1024/1024 , 2) b,tablespace_name
from dba_segments t)
where owner in ('MONEI')
group by owner,tablespace_name); 2 3 4 5 6 7
OWNER TABLESPACE_NAME GB
-------------------- -------------------- ----------
MONEI USERS 0
SQL>
目标端DM8
启动dts
迁移管理
新建工程和迁移
点击按钮创建新的工程,输入工程名和工程描述,点击【确定】,即可创建工程,如下图所示:
迁移评估
右键选择【新建评估】,输入评估名称和评估描述,即可创建评估,如下图所示:
选择ORACLE-DM数据库迁移评估
输入数据源连接信息
评估选项设置
选择需要迁移的模式对象
选择模式对象下的对象
评阅评估任务
执行评估任务
查看评估报告
新建迁移任务
输入源端连接信息
输入目标端连接信息
迁移选项
迁移模式选择
获取迁移对象
审阅迁移任务
执行迁移任务,可以看到任务总数和完成度
新建数据对比
数据源信息填写
目标端信息填写
对比选项
指定模式对象
选择对比对象
对比任务审阅
执行数据对比,查看对比不一致数量
登录目标端查看test01数据
登录源端查看test01数据
操作和Oracle中相似,需要mysql中创建
mysql> CREATE USER 'root'@'192.168.123.10' IDENTIFIED BY '!QAZ2wsx';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.123.10';
Query OK, 0 rows affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql>
目标端中选择mysql-dm迁移
通过评估-迁移-对比 完成数据库迁移
操作和Oracle中相似,需要mysql中创建
确认迁移对象
目标端中选择SQL Server-dm迁移
通过评估-迁移-对比 完成数据库迁移
文章
阅读量
获赞