DM数据库实例迁移教程
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]导出结束.....
成功导出 第1 个SCHEMA :SYSDBA
共导出 1 个SCHEMA
整个导出过程共花费 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 3月 25 17:45 bak
drwxr-xr-x 2 dmdba dinstall 114 3月 25 18:02 ctl_bak
-rw-r--r-- 1 dmdba dinstall 268435456 3月 25 22:56 DAMENG01.log
-rw-r--r-- 1 dmdba dinstall 268435456 3月 25 22:56 DAMENG02.log
-rw-r--r-- 1 dmdba dinstall 5120 3月 25 23:09 dm.ctl
-rw-r--r-- 1 dmdba dinstall 5120 3月 25 18:02 dm.ctl.bak
-rw-r--r-- 1 dmdba dinstall 51142 3月 25 23:00 dm.ini
-rw-r--r-- 1 dmdba dinstall 847 3月 25 17:45 dminit20220325174549.log
-rw-r--r-- 1 dmdba dinstall 633 3月 25 17:45 dm_service.prikey
drwxr-xr-x 2 dmdba dinstall 6 3月 25 17:45 HMAIN
-rw-r--r-- 1 dmdba dinstall 134217728 3月 25 17:45 MAIN.DBF
-rw-r--r-- 1 dmdba dinstall 12 3月 25 17:47 rep_conflict.log
-rw-r--r-- 1 dmdba dinstall 134217728 3月 25 22:56 ROLL.DBF
-rw-r--r-- 1 dmdba dinstall 481 3月 25 17:45 sqllog.ini
-rw-r--r-- 1 dmdba dinstall 24117248 3月 25 22:56 SYSTEM.DBF
-rw-r--r-- 1 dmdba dinstall 10485760 3月 25 18:02 TEMP.DBF
drwxr-xr-x 2 dmdba dinstall 6 3月 25 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)