DM数据库实例迁移教程

	在数据库的使用过程中,因为初期的规划不合理,导致后期数据库的磁盘空间不足,磁盘又未作LVM管理,这是就需要将数据库整个迁移至空间更大的磁盘空间,又要保证数据的完整。下面我们介绍一种方法可以快速将DM数据库整个实例进行迁移,如下:

1、原始数据库实例信息查询

[dmdba@localhost ~]$ ps -ef|grep dms
dmdba       2381       1 17 17:47 pts/0    00:00:10 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini -noconsole
dmdba       2451    2311  0 17:48 pts/0    00:00:00 grep dms

2、确定后窗口期后,应用停止服务,数据库端口在网络层做好限制,防止其他客户端登录数据库,先逻辑备份整个数据库;

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=/dm8/FULL.dmp FULL=Y
dexp V8

模式[SYSDBA]导出结束.....

成功导出 第1SCHEMASYSDBA
共导出 1SCHEMA
整个导出过程共花费    0.471 s
成功终止导出, 没有出现警告
[dmdba@localhost bin]$
核查备份文件:
[dmdba@localhost dm8]$ ls | grep *.dmp
FULL.dmp

3、保险起见,再物理备份整个数据库,首先停止数据库服务,之后利用dmrman备份数据库;

[dmdba@localhost bin]$ ./DmServiceDMSERVER stop
Stopping DmServiceDMSERVER:                                [ OK ]
[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN> backup database '/dm8/data/DAMENG/dm.ini' full backupset '/dm8/backup';
backup database '/dm8/data/DAMENG/dm.ini' full backupset '/dm8/backup';
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[24482], file_lsn[24482]
Processing backupset /dm8/backup
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]
backup successfully!
time used: 00:00:01.246
RMAN>

4、再空间大的磁盘新建目录

[root@localhost ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               1.4G     0  1.4G    0% /dev
tmpfs                  1.5G     0  1.5G    0% /dev/shm
tmpfs                  1.5G  9.5M  1.5G    1% /run
tmpfs                  1.5G     0  1.5G    0% /sys/fs/cgroup
/dev/mapper/klas-root   46G   12G   34G   25% /
tmpfs                  1.5G   88K  1.5G    1% /tmp
tmpfs                  289M     0  289M    0% /run/user/993
tmpfs                  289M     0  289M    0% /run/user/0
/dev/sdb1              9.8G   37M  9.3G    1% /data
[root@localhost ~]# chown dmdba:dinstall /data/ -R
[root@localhost ~]# chmod 775 /data/ -R

5、实例迁移,分5个步骤,具体操作如下:

[dmdba@localhost bin]$ cd /dm8/data/DAMENG/
①、查看原始实例路径
[dmdba@localhost DAMENG]$ cat dm.ini |grep path
		CTL_PATH                        = /dm8/data/DAMENG/dm.ctl     #ctl file path
		CTL_BAK_PATH                    = /dm8/data/DAMENG/ctl_bak    #dm.ctl backup path
		SYSTEM_PATH                     = /dm8/data/DAMENG            #system path
		CONFIG_PATH                     = /dm8/data/DAMENG            #config path
		TEMP_PATH                       = /dm8/data/DAMENG            #temporary file path
		BAK_PATH                        = /dm8/data/DAMENG/bak        #backup file path
		DFS_PATH                        =                     #path of db_file in dfs
		UNIX_SOCKET_PATHNAME            =                #Unix socket pathname.
		TRACE_PATH                      =                       #System trace path name
②、经原始路径替换为新实例路径
[dmdba@localhost DAMENG]$ sed -i "s#/dm8/data/DAMENG#/data/DM01#g" dm.ini
[dmdba@localhost DAMENG]$ cat dm.ini |grep path
		CTL_PATH                        = /data/DM01/dm.ctl     #ctl file path
		CTL_BAK_PATH                    = /data/DM01/ctl_bak    #dm.ctl backup path
		SYSTEM_PATH                     = /data/DM01            #system path
		CONFIG_PATH                     = /data/DM01            #config path
		TEMP_PATH                       = /data/DM01            #temporary file path
		BAK_PATH                        = /data/DM01/bak        #backup file path
		DFS_PATH                        =                     #path of db_file in dfs
		UNIX_SOCKET_PATHNAME            =                #Unix socket pathname.
		TRACE_PATH                      =                       #System trace path name
③、修改控制文件内容
[dmdba@localhost DAMENG]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dmctlcvt type=1 src=/dm8/data/DAMENG/dm.ctl dest=/dm8/data/dmctl.txt
DMCTLCVT V8
convert ctl to txt success!
[dmdba@localhost data]$ cat dmctl.txt |grep path
# file path
fil_path=/dm8/data/DAMENG/SYSTEM.DBF
# mirror path
mirror_path=
# file path
fil_path=/dm8/data/DAMENG/ROLL.DBF
# mirror path
mirror_path=
# file path
fil_path=/dm8/data/DAMENG/DAMENG01.log
# mirror path
mirror_path=
# file path
fil_path=/dm8/data/DAMENG/DAMENG02.log
# mirror path
mirror_path=
# file path
fil_path=/dm8/data/DAMENG/MAIN.DBF
# mirror path
mirror_path=
# HUGE table space path
htspath=/dm8/data/DAMENG/HMAIN
[dmdba@localhost data]$ sed -i "s#/dm8/data/DAMENG#/data/DM01#g" dmctl.txt
[dmdba@localhost data]$ cat dmctl.txt |grep path
# file path
fil_path=/data/DM01/SYSTEM.DBF
# mirror path
mirror_path=
# file path
fil_path=/data/DM01/ROLL.DBF
# mirror path
mirror_path=
# file path
fil_path=/data/DM01/DAMENG01.log
# mirror path
mirror_path=
# file path
fil_path=/data/DM01/DAMENG02.log
# mirror path
mirror_path=
# file path
fil_path=/data/DM01/MAIN.DBF
# mirror path
mirror_path=
# HUGE table space path
htspath=/data/DM01/HMAIN
④、控制文件转换
[dmdba@localhost bin]$ ./dmctlcvt type=2 src=/dm8/data/dmctl.txt dest=/dm8/data/dm.ctl
DMCTLCVT V8
convert txt to ctl success!
⑤、替换原来的dm.ctl文件,拷贝实例
[dmdba@localhost data]$ cd DAMENG/
[dmdba@localhost DAMENG]$ mv dm.ctl dm.ctl.bak
[dmdba@localhost DAMENG]$ mv ../dm.ctl ./
[dmdba@localhost DAMENG]$ ll
总用量 820312
drwxr-xr-x 2 dmdba dinstall         6  325 17:45 bak
drwxr-xr-x 2 dmdba dinstall       114  325 18:02 ctl_bak
-rw-r--r-- 1 dmdba dinstall 268435456  325 22:56 DAMENG01.log
-rw-r--r-- 1 dmdba dinstall 268435456  325 22:56 DAMENG02.log
-rw-r--r-- 1 dmdba dinstall      5120  325 23:09 dm.ctl
-rw-r--r-- 1 dmdba dinstall      5120  325 18:02 dm.ctl.bak
-rw-r--r-- 1 dmdba dinstall     51142  325 23:00 dm.ini
-rw-r--r-- 1 dmdba dinstall       847  325 17:45 dminit20220325174549.log
-rw-r--r-- 1 dmdba dinstall       633  325 17:45 dm_service.prikey
drwxr-xr-x 2 dmdba dinstall         6  325 17:45 HMAIN
-rw-r--r-- 1 dmdba dinstall 134217728  325 17:45 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall        12  325 17:47 rep_conflict.log
-rw-r--r-- 1 dmdba dinstall 134217728  325 22:56 ROLL.DBF
-rw-r--r-- 1 dmdba dinstall       481  325 17:45 sqllog.ini
-rw-r--r-- 1 dmdba dinstall  24117248  325 22:56 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall  10485760  325 18:02 TEMP.DBF
drwxr-xr-x 2 dmdba dinstall         6  325 17:47 trace
[dmdba@localhost DAMENG]$ mv * /data/DM01/

6、注册服务,启动数据库实例,登录数据库

①、先前台启动,测试服务是否正常
[dmdba@localhost bin]$ ./dmserver /data/DM01/dm.ini
file dm.key not found, use default license!
version info: develop
DM Database Server x64 V8 4-2-18-21.08.20-146029-10013-ENT  startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2022-08-20
file lsn: 25970
ndct db load finished
ndct fill fast pool finished
iid page's trxid[4008]
NEXT TRX ID = 4009
pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 mgr pages, 0 mgr recs!
total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...
pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
pseg_crash_trx_rollback end
pseg recv finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info success.
nsvr_process_before_open begin.
nsvr_process_before_open success.
total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...
pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.
pseg_crash_trx_rollback end
SYSTEM IS READY.
②、关闭前台启动,注册服务,启动实例
先删除原来注册的服务
[root@localhost ~]# cd /dm8/script/root/
[root@localhost root]# ./dm_service_uninstaller.sh -n DmServiceDMSERVER
是否删除服务(DmServiceDMSERVER)?(Y/y:N/n:): y
Removed /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service.
删除服务文件(/usr/lib/systemd/system/DmServiceDMSERVER.service)完成
删除服务(DmServiceDMSERVER)完成
注册新服务
[root@localhost root]# ./dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /data/DM01/dm.ini
Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service → /usr/lib/systemd/system/DmServiceDMSERVER.service.
创建服务(DmServiceDMSERVER)完成
启动数据库服务,登录数据库
[dmdba@localhost ~]$ cd /dm8/bin
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]
[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.932(ms)
[dmdba@localhost bin]$ ps -ef|grep dms
dmdba       4699       1  0 23:27 pts/0    00:00:00 /dm8/bin/dmserver /data/DM01/dm.ini -noconsole

至次,数据库实例迁移完成。
更多资讯请上达梦技术社区了解:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值