暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

达梦数据库异地迁移实战

原创 孙莹 2025-08-04
730

达梦数据库异地迁移实战

data01.png

一、前言

在多云架构成为趋势的今天,灵活的技术栈和避免被单一云厂商绑定,比以往任何时候都重要。
这一次,我亲手完成了一个特别的项目——将联通云 ECS 自建的达梦数据库生产环境,完整迁回本地机房。

这不仅是一次迁移,更是一场技术与耐心的较量。
过程中遇到的挑战、踩过的坑、解决的难题,我都想毫无保留地分享出来,帮助大家少走弯路、快速上手。

希望这份记录,能让你在面对类似项目时更有底气,也更从容。
现在,就一起走进这场从云到本地的达梦数据库迁移实战吧!

二、云上环境

迁移之前检查云上环境版本,数据量,然后下载对应版本的介质,制订相应迁移策略

2.1 操作系统版本

KylinOS 10 64位(标准版) 查看

[root@xinchuang ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Sword)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)" ANSI_COLOR="0;31" [root@xinchuang ~]#

2.2 达梦数据库版本和端口

dm8_20240920_x86_kylin10_64.iso

[root@xinchuang ~]# netstat -tunlp | grep dmserver tcp6 0 0 :::5236 :::* LISTEN 3495610/dmserver [root@xinchuang ~]# [root@xinchuang ~]# su - dmdba Last login: Mon Aug 4 15:53:11 CST 2025 on pts/5 [dmdba@xinchuang ~]$ disql disql V8 username: password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 3.189(ms) SQL> select * from v$version; LINEID BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 8.1 3 企业版 4 DB Version: 0x7000c 5 03134284294-20240919-243448-20119 6 Msg Version: 21 7 Gsu level(5) cnt: 0 7 rows got used time: 0.226(ms). Execute id is 27929501. SQL>

2.3 数据库初始化参数

对之前初始化数据库后的参数记录

[dmdba@xinchuang logs]$ cat dminit20241204153827.log start init database: V8, 2024-12-04 15:38:27 init params: db path: /opt/mmis/database/dm8/data db name: DAMENG auto overwrite: 0 page size: 8192 extent size: 16 char_fix_storage: 0 sql_log_forbid: 0 secur_flag: 2 enable mac: 0 time zone: +08:00 string case sensitive: 0 charset: 1 page check mode: 0 page check algorithm id: 0 priv flag: 0 env label: 0 rlog enc flag: 0 use new hash: 1 blank pad mode: 0 sec priv mode: 0 huge with delta: 1 rlog gen for huge: 0 pseg_mgr_flag: 0 log file path: /opt/mmis/database/dm8/data/DAMENG01.log log file path: /opt/mmis/database/dm8/data/DAMENG02.log create ini file /opt/mmis/database/dm8/data/dm.ini success. create rlog file /opt/mmis/database/dm8/data/DAMENG01.log success. create rlog file /opt/mmis/database/dm8/data/DAMENG02.log success. SYSTEM file : /opt/mmis/database/dm8/data/SYSTEM.DBF MAIN file : /opt/mmis/database/dm8/data/MAIN.DBF ROLL file : /opt/mmis/database/dm8/data/ROLL.DBF create dm database success. 2024-12-04 15:38:30 [dmdba@xinchuang logs]$

2.4 查询业务系统账号

[dmdba@xinchuang logs]$ disql disql V8 username: password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 2.286(ms) SQL> select username,account_status,created,default_tablespace,default_index_tablespace,temporary_tablespace from dba_users where username not in ('SYS','SYSSSO','SYSAUDITOR','SYSDBA'); LINEID username account_status created default_tablespace default_index_tablespace temporary_tablespace ---------- --------------- -------------- -------------------------- ------------------ ------------------------ -------------------- 1 MMIS_INNOVATION OPEN 2024-12-04 15:44:32.041014 MAIN NULL TEMP 2 MMIS_HD OPEN 2025-07-30 13:50:27.043444 MAIN NULL TEMP 3 SENYI OPEN 2025-07-30 10:38:40.802415 MAIN NULL TEMP 4 WANGHAI OPEN 2025-07-11 14:05:55.663618 MAIN NULL TEMP 5 GK_INNOVATION OPEN 2025-04-29 14:44:58.589195 MAIN NULL TEMP 6 SCM_INNOVATION OPEN 2025-03-24 16:15:26.350423 MAIN NULL TEMP 6 rows got used time: 11.618(ms). Execute id is 27942704. SQL>

2.5 查看表空间和数据文件

[dmdba@xinchuang logs]$ disql disql V8 username: password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 2.429(ms) SQL> select file_name,tablespace_name,bytes/1024/1024 total_mb,autoextensible,user_bytes/1024/1024 use_mb,online_status from dba_data_files; LINEID file_name tablespace_name total_mb autoextensible use_mb online_status ---------- -------------------------------------- --------------- -------------------- -------------- -------------------- ------------- 1 /opt/mmis/database/dm8/data/MAIN.DBF MAIN 3072 YES 35 ONLINE 2 /opt/mmis/database/dm8/data/SYSTEM.DBF SYSTEM 138 YES 62 ONLINE 3 /opt/mmis/database/dm8/data/TEMP.DBF TEMP 4426 YES 4378 ONLINE 4 /opt/mmis/database/dm8/data/ROLL.DBF ROLL 128 YES 109 ONLINE used time: 9.301(ms). Execute id is 27952801. SQL>

三、本地机房环境

3.1 操作系统

操作系统和云上一致

[root@ls-yh-xc ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Halberd)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)" ANSI_COLOR="0;31" [root@ls-yh-xc ~]#

3.2 安装达梦软件

这里详细安装步骤见官网,我们省略部分操作。

[root@ls-yh-xc ~]# mount -o loop /soft/dm8_20240920_x86_kylin10_64.iso /mnt mount: /mnt: WARNING: source write-protected, mounted read-only. [root@ls-yh-xc ~]# su - dmdba Last login: Mon Aug 4 14:26:44 CST 2025 on pts/1 [dmdba@ls-yh-xc ~]$ cd /mnt [dmdba@ls-yh-xc mnt]$ ./DMInstall.bin -i Installer Language: [1]: 简体中文 [2]: English Please select the installer's language [2]:1 解压安装程序.......... 硬件架构校验通过! 欢迎使用达梦数据库安装程序 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n 是否设置时区? (Y/y:是 N/n:否) [Y/y]:y 设置时区: [ 1]: (GTM-12:00) 日界线西 [ 2]: (GTM-11:00) 萨摩亚群岛 [ 3]: (GTM-10:00) 夏威夷 [ 4]: (GTM-09:00) 阿拉斯加 [ 5]: (GTM-08:00) 太平洋时间(美国和加拿大) [ 6]: (GTM-07:00) 亚利桑那 [ 7]: (GTM-06:00) 中部时间(美国和加拿大) [ 8]: (GTM-05:00) 东部部时间(美国和加拿大) [ 9]: (GTM-04:00) 大西洋时间(美国和加拿大) [10]: (GTM-03:00) 巴西利亚 [11]: (GTM-02:00) 中大西洋 [12]: (GTM-01:00) 亚速尔群岛 [13]: (GTM) 格林威治标准时间 [14]: (GTM+01:00) 萨拉热窝 [15]: (GTM+02:00) 开罗 [16]: (GTM+03:00) 莫斯科 [17]: (GTM+04:00) 阿布扎比 [18]: (GTM+05:00) 伊斯兰堡 [19]: (GTM+06:00) 达卡 [20]: (GTM+07:00) 曼谷,河内 [21]: (GTM+08:00) 中国标准时间 [22]: (GTM+09:00) 首尔 [23]: (GTM+10:00) 关岛 [24]: (GTM+11:00) 所罗门群岛 [25]: (GTM+12:00) 斐济 [26]: (GTM+13:00) 努库阿勒法 [27]: (GTM+14:00) 基里巴斯 请选择时区 [21]: 安装类型: 1 典型安装 2 服务器 3 客户端 4 自定义 请选择安装类型的数字序号 [1 典型安装]: 所需空间: 2168M 请选择安装目录 [/home/dmdba/dmdbms]: 可用空间: 49G 是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否) [Y/y]: 安装前小结 安装位置: /home/dmdba/dmdbms 所需空间: 2168M 可用空间: 49G 版本信息: 有效日期: 安装类型: 典型安装 是否确认安装? (Y/y:是 N/n:否):y 2025-08-04 16:51:38 [INFO] 安装达梦数据库... 2025-08-04 16:51:39 [INFO] 安装 基础 模块... 2025-08-04 16:51:41 [INFO] 安装 服务器 模块... 2025-08-04 16:51:41 [INFO] 安装 客户端 模块... 2025-08-04 16:51:41 [INFO] 安装 驱动 模块... 2025-08-04 16:51:42 [INFO] 安装 手册 模块... 2025-08-04 16:51:42 [INFO] 安装 服务 模块... 2025-08-04 16:51:42 [INFO] 移动日志文件。 2025-08-04 16:51:43 [INFO] 安装达梦数据库完成。 请以root系统用户执行命令: /home/dmdba/dmdbms/script/root/root_installer.sh 安装结束 [dmdba@ls-yh-xc mnt]$ exit logout [root@ls-yh-xc ~]# /home/dmdba/dmdbms/script/root/root_installer.sh 移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录 创建DmAPService服务 Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service → /usr/lib/systemd/system/DmAPService.service. 创建服务(DmAPService)完成 启动DmAPService服务 [root@ls-yh-xc ~]#

3.3 初始化实例

根据云上初始化dminit20241204153827.log日志文件输出内容,在本机环境同样

[dmdba@ls-yh-xc ~]$ cd /home/dmdba/dmdbms/bin [dmdba@ls-yh-xc bin]$ ./dminit path=/dmdata/data PAGE_SIZE=8 EXTENT_SIZE=16 CASE_SENSITIVE=0 CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DMSERVER PORT_NUM=5236 PAGE_CHECK=0 RLOG_GEN_FOR_HUGE=0 initdb V8 db version: 0x7000c file dm.key not found, use default license! License will expire on 2025-09-18 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL log file path: /dmdata/data/DAMENG/DAMENG01.log log file path: /dmdata/data/DAMENG/DAMENG02.log write to dir [/dmdata/data/DAMENG]. create dm database success. 2025-08-04 20:22:04 [dmdba@ls-yh-xc bin]$ cat /dmdata/data/DAMENG/dminit20250804202201.log start init database: V8, 2025-08-04 20:22:01 init params: db path: /dmdata/data/DAMENG db name: DAMENG auto overwrite: 0 page size: 8192 extent size: 16 char_fix_storage: 0 sql_log_forbid: 0 secur_flag: 2 enable mac: 0 time zone: +08:00 string case sensitive: 0 charset: 1 page check mode: 0 page check algorithm id: 0 priv flag: 0 env label: 0 rlog enc flag: 0 use new hash: 1 blank pad mode: 0 sec priv mode: 0 huge with delta: 1 rlog gen for huge: 0 pseg_mgr_flag: 0 log file path: /dmdata/data/DAMENG/DAMENG01.log log file path: /dmdata/data/DAMENG/DAMENG02.log create ini file /dmdata/data/DAMENG/dm.ini success. create rlog file /dmdata/data/DAMENG/DAMENG01.log success. create rlog file /dmdata/data/DAMENG/DAMENG02.log success. SYSTEM file : /dmdata/data/DAMENG/SYSTEM.DBF MAIN file : /dmdata/data/DAMENG/MAIN.DBF ROLL file : /dmdata/data/DAMENG/ROLL.DBF create dm database success. 2025-08-04 20:22:04 [dmdba@ls-yh-xc bin]$

3.4 注册服务

[dmdba@ls-yh-xc bin]$ exit logout [root@ls-yh-xc ~]# cd /home/dmdba/dmdbms/script/root/ [root@ls-yh-xc root]# ./dm_service_installer.sh -t DMSERVER -dm_ini /dmdata/data/DAMENG/dm.ini -p DAMENG Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDAMENG.service → /usr/lib/systemd/system/DmServiceDAMENG.service. 创建服务(DmServiceDAMENG)完成 [root@ls-yh-xc root]# ls -lh /home/dmdba/dmdbms/bin/DmServiceDAMENG -rwxr-xr-x 1 dmdba dinstall 18K Aug 4 20:28 /home/dmdba/dmdbms/bin/DmServiceDAMENG [root@ls-yh-xc root]#

3.5 启动数据库

开启数据库,并确认数据库版本和云上一致,准备迁移

[root@ls-yh-xc root]# su - dmdba Last login: Mon Aug 4 16:58:20 CST 2025 on pts/2 [dmdba@ls-yh-xc ~]$ /home/dmdba/dmdbms/bin/DmServiceDAMENG start Starting DmServiceDAMENG: [ OK ] [dmdba@ls-yh-xc ~]$ /home/dmdba/dmdbms/bin/disql disql V8 用户名: 密码: 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 4.276(ms) SQL> select * from v$version; 行号 BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284294-20240918-242976-20119 4 Msg Version: 21 5 Gsu level(5) cnt: 0 已用时间: 0.825(毫秒). 执行号:66201. SQL>

四、迁移方案

4.1 环境确认

云上ECS和本地虚拟机环境保持一致如下

环境 IP地址 主机名 操作系统 达梦版本 安装目录
联通云ECS 11.0.10.25 xinchuang KylinOS 10 64位(标准版) dm8_20240920_x86_kylin10_64 /opt/mmis/database/dm8
本地机房 10.42.50.201 ls-yh-xc KylinOS 10 64位(标准版) dm8_20240920_x86_kylin10_64 /home/dmdba/dmdbms

4.2 方案比较

迁移方案 网络要求 稳定性 迁移速度
通过DM数据迁移工具 实时连接 一般,依赖网络速度 依赖网络速度,数据量大的时候较长时间
通过DMRMAN物理备份还原 传输物理备份时连接 高,和源端物理一致 可以压缩,并行。速度块
通过逻辑导出dexp逻辑导入dimp工具 传输逻辑备份是连接 较高,需要梳理用户,可以整理数据 数据量大的时候时间较长

下面我们通过逻辑导出dexp逻辑导入dimp工具和通过DMRMAN物理备份还原两种方案进行迁移演练

注意我们只是演示两种方法,最后正式迁移我们还是用物理备份还原的方法

4.3 迁移方案一

4.3.1 逻辑备份还原

4.3.1.1 云上逻辑导出

将业务用户备份到本地然后传到本地机房

[dmdba@xinchuang database]$ dexp USERID=SYSDBA/SYSDBA FILE=exp_20250804.dmp log=exp_20250804.log OWNER=MMIS_HD,SENYI,WANGHAI,GK_INNOVATION,SCM_INNOVATION,MMIS_INNOVATION DIRECTORY=/opt/mmis/database/backup 。。。省略 table :SCM_INNOVATION.MAB_SPD_FACTORY_MAP export terminate, total export 0 rows, size 0 KB table :SCM_INNOVATION.TEMP_ACCOUNT_CHECK_PCKC export terminate, total export 1 rows, size 0.021 KB table :SCM_INNOVATION.TEMP_ACCOUNT_CHECK_GATHER_DCK export terminate, total export 0 rows, size 0 KB table :SCM_INNOVATION.TEMP_MAW_BILL_AUDI_CHECK export terminate, total export 0 rows, size 0 KB export total 308 TABLE schema[SCM_INNOVATION] export terminate..... successfully exported NO.5 SCHEMA : SCM_INNOVATION exporting NO. 6 SCHEMA : SENYI start export schema[SENYI]..... schema[SENYI] export terminate..... successfully exported NO.6 SCHEMA : SENYI exporting NO. 7 SCHEMA : WANGHAI start export schema[WANGHAI]..... schema[WANGHAI] export terminate..... successfully exported NO.7 SCHEMA : WANGHAI export total 7 SCHEMA all the export process spent total 32.073 s terminate export success without warning [dmdba@xinchuang database]$
4.3.1.2 本地逻辑导入
[dmdba@ls-yh-xc ~]$ cd dmdbms/bin [dmdba@ls-yh-xc bin]$ ./dimp USERID=SYSDBA/SYSDBA FILE=exp_20250804.dmp log=imp_20250804.log OWNER=MMIS_HD,SENYI,WANGHAI,GK_INNOVATION,SCM_INNOVATION,MMIS_INNOVATION DIRECTORY=/dmdata/dmbak 。。。省略 [24533/24556][表: SYS_MESSAGE_READ]导入成功…… [24534/24556][表: INF_GET_HIS_DEPT]导入成功…… [24535/24556][表: INF_GET_HIS_EMPLOYEE]导入成功…… [24536/24556][表: MAW_SPD_HIGHLABEL_CONTAINER]导入成功…… [24537/24556][表: YGPT_SYNC_YQRSQQYCX]导入成功…… [24538/24556][表: YGPT_SYNC_CGJGBBQK]导入成功…… [24539/24556][表: YGPT_SYNC_LOWEST_PRICE]导入成功…… [24540/24556][表: INF_GET_HIS_OUTPATIENT_INFO]导入成功…… [24541/24556][表: YGPT_SYNC_TASK]导入成功…… [24542/24556][表: YGPT_INF_PUSH_INVOICE_PAYMENT]导入成功…… [24543/24556][表: MAW_STORE_WASH_REGIST_BILL]导入成功…… [24544/24556][表: MAW_STORE_WASH_REGIST_DETAIL]导入成功…… [24545/24556][表: YGPT_SYNC_YHQYBXX]导入成功…… [24546/24556][表: COM_TABLE_FIELD_NAME_MAP]导入成功…… [24546/24556]开始编译对象... 编译对象[55/234] 编译 PROCEDURE MMIS_HD.hisjftb 错误 编译对象[57/234] 编译 PROCEDURE MMIS_HD.hiszttb 错误 编译对象[88/234] 编译 VIEW MMIS_HD.V_HISTS_ASSET 错误 编译对象[106/234] 编译 PROCEDURE GK_INNOVATION.USP_DEPT_ACCEPT_DATA_GATHER 错误 编译对象[109/234] 编译 PROCEDURE GK_INNOVATION.USP_INVOICE_ACCEPT_DATA_GATHER 错误 编译对象[110/234] 编译 PROCEDURE GK_INNOVATION.USP_LICENCE_STATE_CHANGE 错误 编译对象[111/234] 编译 PROCEDURE GK_INNOVATION.USP_MAW_ACCOUNT_CHECK 错误 编译对象[112/234] 编译 PROCEDURE GK_INNOVATION.USP_MAW_ACCOUNT_GATHER 错误 编译对象[113/234] 编译 PROCEDURE GK_INNOVATION.USP_MAW_ACCOUNT_MOVE 错误 编译对象[114/234] 编译 PROCEDURE GK_INNOVATION.USP_MAW_BILL_AUDI_CHECK 错误 编译对象[115/234] 编译 PROCEDURE GK_INNOVATION.USP_PUSH_CHANGEPRICE_DATA 错误 编译对象[116/234] 编译 PROCEDURE GK_INNOVATION.USP_PUSH_STOCK_DATA_GATHER 错误 编译对象[117/234] 编译 PROCEDURE GK_INNOVATION.USP_QL_TO_STOCK 错误 编译对象[118/234] 编译 PROCEDURE GK_INNOVATION.USP_QUOTA_USE_GATHER 错误 编译对象[121/234] 编译 PROCEDURE GK_INNOVATION.USP_STORE_ACCEPT_DATA_GATHER 错误 编译对象[122/234] 编译 PROCEDURE GK_INNOVATION.USP_TRANSFR_ORDER_RECORD 错误 编译对象[123/234] 编译 PROCEDURE GK_INNOVATION.USP_UPDATE_TEMP_SFTY 错误 编译对象[141/234] 编译 VIEW SCM_INNOVATION.V_NOTIFY_INVOICE_INFO 错误 编译对象[183/234] 编译 PROCEDURE MMIS_INNOVATION.USP_HIGHLABEL_USE_GATHER 错误 编译对象[198/234] 编译 PROCEDURE MMIS_INNOVATION.hisjftb 错误 编译对象[200/234] 编译 PROCEDURE MMIS_INNOVATION.hiszttb 错误 编译对象[221/234] 编译 VIEW MMIS_INNOVATION.V_HISTS_ASSET 错误 编译对象[234/234] [24546/24556]编译对象完成 [24546/24556]整个导入过程共花费 96.921 s 成功终止导入, 没有出现警告 [dmdba@ls-yh-xc bin]$

4.4 迁移方案二

4.4.1 物理备份还原

通过DMRMAN物理备份工具,在云上物理备份,再传到云下恢复

4.4.1.1 云上物理备份

备份前确认一下归档模式,全备前调用主动刷新检查点

[dmdba@xinchuang ~]$ disql disql V8 username: password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 2.669(ms) SQL> select arch_mode from v$database; LINEID arch_mode ---------- --------- 1 Y used time: 0.637(ms). Execute id is 28298001. SQL> checkpoint(100); DMSQL executed successfully used time: 544.654(ms). Execute id is 28298002. SQL> backup database full backupset '/opt/mmis/database/backup/FULL0804' compressed level 3 parallel 3; executed successfully used time: 00:00:17.901. Execute id is 28298003. SQL> exit; [dmdba@xinchuang ~]$ ls -lh /opt/mmis/database/backup/FULL0804 total 2.2M drwxr-xr-x 2 dmdba dinstall 4.0K Aug 4 21:02 FULL0804_0 drwxr-xr-x 2 dmdba dinstall 4.0K Aug 4 21:02 FULL0804_1 drwxr-xr-x 2 dmdba dinstall 4.0K Aug 4 21:02 FULL0804_2 -rw-r--r-- 1 dmdba dinstall 1.8M Aug 4 21:02 FULL0804.bak -rw-r--r-- 1 dmdba dinstall 394K Aug 4 21:02 FULL0804.meta [dmdba@xinchuang ~]$ cd /opt/mmis/database/backup/ [dmdba@xinchuang backup]$ tar -zcvf FULL0804.tar.gz FULL0804/ FULL0804/ FULL0804/FULL0804_0/ FULL0804/FULL0804_0/FULL0804_0.meta FULL0804/FULL0804_0/FULL0804_0.bak FULL0804/FULL0804_2/ FULL0804/FULL0804_2/FULL0804_2.meta FULL0804/FULL0804_2/FULL0804_2.bak FULL0804/FULL0804_1/ FULL0804/FULL0804_1/FULL0804_1.bak FULL0804/FULL0804_1/FULL0804_1.meta FULL0804/FULL0804.meta FULL0804/FULL0804.bak [dmdba@xinchuang backup]$
4.4.1.2 本地停数据库
[dmdba@ls-yh-xc bin]$ /home/dmdba/dmdbms/bin/DmServiceDAMENG stop Stopping DmServiceDAMENG: [ OK ] [dmdba@ls-yh-xc bin]$
4.4.1.3 本地物理恢复
[dmdba@ls-yh-xc ~]$ cd /dmdata/dmbak/ [dmdba@ls-yh-xc dmbak]$ ll total 2043916 -rw-r--r-- 1 dmdba dinstall 1744994375 Aug 4 20:48 exp_20250804.dmp -rw-r--r-- 1 dmdba dinstall 346941054 Aug 4 21:09 FULL0804.tar.gz -rw-r--r-- 1 dmdba dinstall 1024697 Aug 4 20:53 imp_20250804.log [dmdba@ls-yh-xc dmbak]$ tar -xzvf FULL0804.tar.gz FULL0804/ FULL0804/FULL0804_0/ FULL0804/FULL0804_0/FULL0804_0.meta FULL0804/FULL0804_0/FULL0804_0.bak FULL0804/FULL0804_2/ FULL0804/FULL0804_2/FULL0804_2.meta FULL0804/FULL0804_2/FULL0804_2.bak FULL0804/FULL0804_1/ FULL0804/FULL0804_1/FULL0804_1.bak FULL0804/FULL0804_1/FULL0804_1.meta FULL0804/FULL0804.meta FULL0804/FULL0804.bak [dmdba@ls-yh-xc dmbak]$ /home/dmdba/dmdbms/bin/dmrman dmrman V8 RMAN> RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/FULL0804'; RESTORE DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/FULL0804'; file dm.key not found, use default license! [Percent:100.00%][Speed:0.00M/s][Cost:00:00:09][Remaining:00:00:00] restore successfully. time used: 00:00:09.437 RMAN> RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/FULL0804'; RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/dmbak/FULL0804'; [Percent:100.00%][Speed:111.11PKG/s][Cost:00:00:00][Remaining:00:00:00] recover successfully! time used: 00:00:02.899 RMAN> RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC; RECOVER DATABASE '/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC; file dm.key not found, use default license! recover successfully! time used: 00:00:01.147 RMAN> exit time used: 0.358(ms) [dmdba@ls-yh-xc dmbak]$
4.4.1.4 本地启动数据库
[dmdba@ls-yh-xc dmbak]$ /home/dmdba/dmdbms/bin/DmServiceDAMENG start Starting DmServiceDAMENG: [ OK ] [dmdba@ls-yh-xc dmbak]$

五、检查还原环境

5.1 操作系统版本

[root@ls-yh-xc ~]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Halberd)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Halberd)" ANSI_COLOR="0;31" [root@ls-yh-xc ~]#

5.2 达梦数据库版本和端口

[root@ls-yh-xc ~]# netstat -tunlp | grep dmserver tcp6 0 0 :::5236 :::* LISTEN 90268/dmserver [root@ls-yh-xc ~]# su - dmdba Last login: Mon Aug 4 21:17:37 CST 2025 on pts/1 [dmdba@ls-yh-xc ~]$ export PATH=/home/dmdba/dmdbms/bin:$PATH [dmdba@ls-yh-xc ~]$ disql disql V8 用户名: 密码: 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 3.973(ms) SQL> select * from v$version; 行号 BANNER ---------- --------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284294-20240918-242976-20119 4 Msg Version: 21 5 Gsu level(5) cnt: 0 已用时间: 1.114(毫秒). 执行号:4301. SQL>

5.3 查询业务系统账号

SQL> select username,account_status,created,default_tablespace,default_index_tablespace,temporary_tablespace from dba_users where username not in ('SYS','SYSSSO','SYSAUDITOR','SYSDBA'); 行号 username account_status created default_tablespace default_index_tablespace temporary_tablespace ---------- --------------- -------------- -------------------------- ------------------ ------------------------ -------------------- 1 MMIS_INNOVATION OPEN 2024-12-04 15:44:32.041014 MAIN NULL TEMP 2 MMIS_HD OPEN 2025-07-30 13:50:27.043444 MAIN NULL TEMP 3 SENYI OPEN 2025-07-30 10:38:40.802415 MAIN NULL TEMP 4 WANGHAI OPEN 2025-07-11 14:05:55.663618 MAIN NULL TEMP 5 GK_INNOVATION OPEN 2025-04-29 14:44:58.589195 MAIN NULL TEMP 6 SCM_INNOVATION OPEN 2025-03-24 16:15:26.350423 MAIN NULL TEMP 6 rows got 已用时间: 19.033(毫秒). 执行号:4303. SQL>

5.4 查看表空间和数据文件

SQL> select file_name,tablespace_name,bytes/1024/1024 total_mb,autoextensible,user_bytes/1024/1024 use_mb,online_status from dba_data_files; 行号 file_name tablespace_name total_mb autoextensible use_mb online_status ---------- ------------------------------ --------------- -------------------- -------------- -------------------- ------------- 1 /dmdata/data/DAMENG/SYSTEM.DBF SYSTEM 138 YES 62 ONLINE 2 /dmdata/data/DAMENG/ROLL.DBF ROLL 128 YES 106 ONLINE 3 /dmdata/data/DAMENG/TEMP.DBF TEMP 10 YES 9 ONLINE 4 /dmdata/data/DAMENG/MAIN.DBF MAIN 3072 YES 33 ONLINE 已用时间: 14.872(毫秒). 执行号:4302. SQL>

5.5 对比云上和本地业务账号对象

我们可以如下SQL来查询数据库对象

SELECT A.USERNAME "用户名", (SELECT COUNT(1) FROM DBA_TABLES B WHERE B.OWNER = A.USERNAME) "表数量", ( SELECT COUNT(1) FROM DBA_VIEWS G WHERE G.OWNER = A.USERNAME ) "视图数量", ( SELECT COUNT(1) FROM DBA_TRIGGERS H WHERE H.OWNER = A.USERNAME ) "触发器数量", ( SELECT COUNT(DISTINCT I.NAME) FROM DBA_SOURCE I WHERE I.OWNER = A.USERNAME AND I.TYPE = 'FUNCTION' ) "函数数量", ( SELECT COUNT(1) FROM DBA_SEQUENCES J WHERE J.SEQUENCE_OWNER = A.USERNAME ) "序列数量", ( SELECT COUNT(DISTINCT L.NAME) FROM DBA_SOURCE L WHERE L.OWNER = A.USERNAME AND L.TYPE = 'PROCEDURE' ) "存储过程数量", ( SELECT COUNT(1) FROM DBA_DB_LINKS M WHERE M.OWNER = A.USERNAME ) "DBLINK数量", ( SELECT COUNT(1) FROM DBA_INDEXES I WHERE UNIQUENESS = 'UNIQUE' AND OWNER =A.USERNAME OR INDEX_NAME NOT LIKE 'SYS_%' AND OWNER =A.USERNAME) "索引数量", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='TYPE' AND OWNER =A.USERNAME ) "自定义类型", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='PACKAGE' AND OWNER =A.USERNAME) "PKG数量" FROM DBA_USERS A WHERE A.USERNAME IN ('MMIS_INNOVATION','MMIS_HD','SENYI','WANGHAI','GK_INNOVATION','SCM_INNOVATION');

5.5.1 云上数据库对象查询结果

[dmdba@xinchuang ~]$ disql disql V8 username: password: Server[LOCALHOST:5236]:mode is normal, state is open login used time : 2.500(ms) SQL> SELECT A.USERNAME "用户名", (SELECT COUNT(1) FROM DBA_TABLES B WHERE B.OWNER = A.USERNAME) "表数量", ( SELECT COUNT(1) FROM DBA_VIEWS G WHERE G.OWNER = A.USERNAME ) "视图数量", ( SELECT COUNT(1) FROM DBA_TRIGGERS H WHERE H.OWNER = A.USERNAME 2 3 4 5 ) "触发器数量", ( SELECT COUNT(DISTINCT I.NAME) FROM DBA_SOURCE I WHERE I.OWNER = A.USERNAME AND I.TYPE = 'FUNCTION' ) "函数数量", ( SELECT COUNT(1) FROM DBA_SEQUENCES J WHERE J.SEQUENCE_OWNER = A.USERNAME ) "序列数量", ( SELECT COUNT(DISTI6 7 8 NCT L.NAME) FROM DBA_SOURCE L WHERE L.OWNER = A.USERNAME AND L.TYPE = 'PROCEDURE' ) "存储过程数量", ( SELECT COUNT(1) FROM DBA_DB_LINKS M WHERE M.OWNER = A.USERNAME ) "DBLINK数量", ( SELECT COUNT(1) FROM DBA_INDEXES I WHERE UNIQUENESS = 'UNIQ9 UE' 10 AND OWNER =A.USERNAME OR INDEX_NAME NOT LIKE 'SYS_%' AND OWNER =A.USERNAME) "索引数量", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='TYPE' AND OWNER =A.USERNAME ) "自定义类型", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='PACKA11 12 GE' AND OWNER =A.USERNAME) "PKG数量" FROM DBA_USERS A WHERE A.USERNAME IN ('MMIS_INNOVATION','MMIS_HD','SENYI','WANGHAI','GK_INNOVATION','SCM_INNOVATION');13 14 LINEID 用户名 表数量 视图数量 触发器数量 函数数量 序列数量 存储过程数量 DBLINK数量 索引数量 自定义类型 PKG数量 ---------- --------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- 1 MMIS_INNOVATION 357 25 0 0 264 0 0 836 1 0 2 MMIS_HD 362 26 0 0 266 0 0 844 1 0 3 SENYI 0 0 0 0 0 0 0 0 0 0 4 WANGHAI 0 0 0 0 0 0 0 0 0 0 5 GK_INNOVATION 208 0 0 0 254 0 0 601 0 0 6 SCM_INNOVATION 308 3 0 0 232 0 0 820 0 0 6 rows got used time: 709.203(ms). Execute id is 28329301. SQL>

5.5.2 本地数据库对象查询结果

[dmdba@ls-yh-xc ~]$ disql disql V8 用户名: 密码: 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 4.040(ms) SQL> SELECT A.USERNAME "用户名", (SELECT COUNT(1) FROM DBA_TABLES B WHERE B.OWNER = A.USERNAME) "表数量", ( SELECT COUNT(1) FROM DBA_VIEWS G WHERE G.OWNER = A.USERNAME ) "视图数量", ( SELECT COUNT(1) FROM DBA_TRIGGERS H WHERE H.OWNER = A.USERNAME 2 3 ) "触发器数量", ( SELECT COUNT(DISTINCT I.NAME) FROM DBA_SOURCE I WHERE I.OWNER = A.USERNAME AND I.TYPE = 'FUNCTION' ) "函数数量", ( SELECT COUNT(1) FROM DBA_SEQUENCES J WHERE J.SEQUENCE_OWNER4 = A.USERNAME ) "序列数量", ( SELECT COUNT(DISTI5 6 7 8 NCT L.NAME) FROM DBA_SOURCE L WHERE L.OWNER = A.USERNAME AND L.TYPE = 'PROCEDURE' ) "存储过程数量", ( SELECT COUNT(1) FROM DBA_DB_LINKS M WHERE M.OWNER = A.USERNAME ) "DBLINK数量", ( SELECT COUNT(1) FROM DBA_INDEXES I WHERE UNIQUENESS = 'UNIQUE' 9 10 AND OWNER =A.USERNAME OR INDEX_NAME NOT LIKE 'SYS_%' AND OWNER =A.USERNAME) "索引数量", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='TYPE' AND OWNER =A.USERNAME ) "自定义类型", ( SELECT COUNT(1) FROM DBA_OBJECTS WHERE OBJECT_TYPE='PACKA11 12 GE' AND OWNER =A.USERNAME) "PKG数量" FROM DBA_USERS A WHERE A.USERNAME IN ('MMIS_INNOVATION','MMIS_HD','SENYI','WANGHAI','GK_INNOVATION','SCM_INNOVATION'); 13 14 行号 用户名 表数量 视图数量 触发器数量 函数数量 序列数量 存储过程数量 DBLINK数量 索引数量 自定义类型 PKG数量 ---------- --------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- 1 MMIS_INNOVATION 357 25 0 0 264 0 0 836 1 0 2 MMIS_HD 362 26 0 0 266 0 0 844 1 0 3 SENYI 0 0 0 0 0 0 0 0 0 0 4 WANGHAI 0 0 0 0 0 0 0 0 0 0 5 GK_INNOVATION 208 0 0 0 254 0 0 601 0 0 6 SCM_INNOVATION 308 3 0 0 232 0 0 820 0 0 6 rows got 已用时间: 784.989(毫秒). 执行号:8101. SQL>

确认所有数据全部迁移完毕

5.6 开启归档

[dmdba@ls-yh-xc ~]$ disql disql V8 用户名: 密码: 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 3.840(ms) SQL> ALTER DATABASE MOUNT; 操作已执行 已用时间: 3.601(毫秒). 执行号:0. SQL> ALTER DATABASE ARCHIVELOG; 操作已执行 已用时间: 31.008(毫秒). 执行号:0. SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/arch, TYPE=LOCAL, FILE_SIZE=2048'; 操作已执行 已用时间: 1.387(毫秒). 执行号:0. SQL> ALTER DATABASE OPEN; 操作已执行 已用时间: 10.534(毫秒). 执行号:0. SQL> SELECT ARCH_MODE FROM V$DATABASE; 行号 ARCH_MODE ---------- --------- 1 Y 已用时间: 0.922(毫秒). 执行号:10101. SQL> exit [dmdba@ls-yh-xc ~]$

六、总结

整个迁移需要做好完整的计划,类似这样的云上数据库迁移到本地机房的方案推荐使用物理备份还原的方式。

最后修改时间:2025-08-05 10:09:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论