达梦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、停数据守护

  1. 停监视器

  2. 停备库watcher,server

  3. 停主库watcher,server

2、备份

停服务:./DmService5236 stop
启动dmrman:./dmrman
RMAN>BACKUP DATABASE '主库dm.ini文件所在位置' FULL BACKUPSET '主库的BAK目录';
关闭dmrman:RMAN>exit

 

3、更改数据文件目录

进入到DAMENG存在的目录;

mv DAMENG /用户指定目录

 

4、修改配置

  1. dm.ini文件修改,很多路径都不一样了;

    sed -ri 's #/home/dmdba/data/DAMENG/bak#/dump/DAMENG/bak' dm.ini
  2. 备库DAMENG目录里的dmarch.ini和dmwatcher.ini文件的dmini配置文件路径要修改

  3. 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格式
  4. 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);
  5. 备库的注册服务要改;分别是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、启数据守护

  1. 启动主库server,watcher

  2. 启动备库server,watcher

  3. 启动监视器;通过show,观察是否正常; 

6、测试

  1. 主库创建表,insert数据,commit;

  2. 在备库查询此表,看能不能查询到;

 

 

 

 

 

 

 

三、做个测试题

问题:客户搭建好了一个主备,然后将备库的整个目录,复制粘贴到了一个新的服务器,如何正常将这个备库当单机用呢?

现状:目前是备库配置状态,一旦在disql中输入sql语句:alter database open,就会报错——守护进程处于活动状态或者当前配置不允许。

解答:

  1. 由于守护进程处于活动状态,所以首先停掉watcher服务(没有watcher服务停不掉也没关系,最重要的是把dm.ini文件中的mal参数改为0)
  2. 去dm.ini文件把MAL_INI参数改为0,表示停止mal系统
  3. 去dmarch.ini文件中,把远程归档改为本地归档;
  4. 重启实例服务,然后./disql

 

 

 

 

 

 

 

 

 

 

 

posted @ 2020-09-17 16:59  Eric-Shen  阅读(311)  评论(0编辑  收藏  举报