达梦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 @   Eric-Shen  阅读(322)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2019-09-17 MySQL—02—MySQL的操作
2019-09-17 MySQL—01—MySQL介绍和安装
点击右上角即可分享
微信分享提示