达梦8——移动数据库目录;主备移动备库
有时候我们可能初始化实例出错了,需要移动数据库目录;
也有时候主备中备库所在挂载点占用空间太大,需要移动到其他挂载点;
那么移动数据库目录,或者主备移动备库,需要改什么文件呢?
一、单机——移动数据库目录
1、改dm.ini
以移动数据库目录为例,我们把数据库目录DAMENG先移走,然后去bin目录下前台启动数据库服务,我们来看看前台启动服务需要依赖什么?
去dm。ini文件里,把几个文件的路径都改了;
sed -r 's#/home/dmdba/dmdbms/DAMENG/DAMENG#/home/dmdba/dmdbms/DAMENG2/#' dm.ini |grep /home/dmdba
sed -ri 's#/home/dmdba/dmdbms/DAMENG/DAMENG#/home/dmdba/dmdbms/DAMENG2/#' dm.ini |grep /home/dmdba
2、改dm.ctl
需要依赖SYSTEM.DBF数据文件,然后这个数据文件的路径在dm.ctl文件里修改
(1)./dmctlcvt转换服务
./dmctlcvt help
(2)dmctl.txt转换后有这么多路径,全部由sed命令改了
sed -ri 's#/home/dmdba/dmdbms/DAMENG/DAMENG/#/home/dmdba/dmdbms/DAMENG2/#' dmctl.txt |grep /home/dmdba
(3)用./dmctlcvt工具再把txt文件改回ctl文件,然后就可以前台启动服务器了;
./dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/DAMENG2/dmctl.txt DEST=/home/dmdba/dmdbms/DAMENG2/dm.ctl
./dmserver path=/home/dmdba/dmdbms/DAMENG2/dm.ini
问题:备库所在的磁盘空间不足时,可能需要把备库迁移到其他挂载点下;
1、停数据守护
-
停监视器
-
停备库watcher,server
-
停主库watcher,server
2、备份
停服务:./DmService5236 stop
启动dmrman:./dmrman
RMAN>BACKUP DATABASE '主库dm.ini文件所在位置' FULL BACKUPSET '主库的BAK目录';
关闭dmrman:RMAN>exit
3、更改数据文件目录
进入到DAMENG存在的目录;
mv DAMENG /用户指定目录
4、修改配置
-
dm.ini文件修改,很多路径都不一样了;
sed -ri 's #/home/dmdba/data/DAMENG/bak#/dump/DAMENG/bak' dm.ini
-
-
dm.ctl要改,因为数据库启动会依赖system.dbf和roll.dbf,而这些数据文件的路径已经不一样了
./dmctlcvt help
sed -ri 's #/home/dmdba/data/DAMENG/#/dump/DAMENG/' dm.ctl.txt
./dmctlcvt help #再将dmctl.txt转换成dm.ctl格式 -
oguid要改 ,保持同一组
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>sp_set_oguid(453331);
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); -
备库的注册服务要改;分别是server服务、watcher服务、dmmonitor服务;因为各个注册服务依赖的dm.ini、dmwatcher.ini 、 dmmonitor.ini路径已经不一样了。
记得把server服务修改为启动mount!!!
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/data/DAMENG/dm.ini -m mount -p DM02
./dm_service_installer.sh -t dmwatcher -dmwatcher_ini /home/dmdba/data/DAMENG/dmwatcher.ini -p DM02
systemctl list-unit-files|grep dm
5、启数据守护
-
启动主库server,watcher
-
启动备库server,watcher
-
启动监视器;通过show,观察是否正常;
6、测试
-
主库创建表,insert数据,commit;
-
在备库查询此表,看能不能查询到;
三、做个测试题