達夢數據庫異地遷移實戰

一、前言
在多云架構成為趨勢的今天,靈活的技術棧和避免被單一云廠商綁定,比以往任何時候都重要。
這一次,我親手完成了一個特別的項目——將聯通云 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進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




