准备两台ip
主库ip 192.168.1.127
从库ip 192.168.1.122

1、关闭数据库后,使用dmrman工具(主库ip 192.168.1.127)

backup database '/opt/dmdbms/data/DM1/dm.ini' backupset '/opt/dmdbms/data/dmbak';

主库(ip 192.168.1.127)成功运行后的截图
在这里插入图片描述

2、先在备份库(192.168.1.127)路径下/opt/dmdbms/data 新建mkdir dmbak
3、备库还原(192.168.1.127)
拷贝主库备份到备库合适目录

scp ./dmbak.bak 192.168.1.122:/opt/dmdbms/data/dmbak

4、要对备份库中(192.168.1.127)的dmbak.bak 和dmbak.meta权限进行切换,切换为dmdba
进入到 /opt/dmdbms/data/dmbak目录执行

chown dmdba *

在这里插入图片描述

5、切换su dmdba 进入bin执行

6、还原备库(192.168.1.122)
restore database ‘/opt/dmdbms/data/DM1/dm.ini’ from backupset ‘/opt/dmdbms/data/dmbak’;
在这里插入图片描述
7、主库修改以下参数值:

INSTANCE_NAME = dmrw1
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
DW_PORT = 5336 #守护环境下,监听守护进程连接端口

备库修改以下参数值:

INSTANCE_NAME = dmrw2
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
DW_PORT = 5336 #守护环境下,监听守护进程连接端口

8、主库配置归档配置文件 dmarch.ini
进入 cd /opt/dmdbas
新建目录 mkdir dmarch 并且设置权限 chmod 777 dmarch 本地归档文件存放路径

先进入路径cd /opt/dmdbas/data/DM1/ 下新建目录

在主库中的DM1目录下新建 dmarch.ini

vi dmarch.ini

添加一下内容:

[ARCHIVE_REALTIME]
ARCH_TYPE             = REALTIME     #实时归档类型
ARCH_DEST             = dmrw2     #实时归档目标实例名(主库则填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE             = LOCAL  #本地归档类型
ARCH_DEST             = /opt/dmdbms/dmarch   #本地归档文件存放路径
ARCH_FILE_SIZE     =128  #单位 MB,本地单哥归档文件最大值
ARCH_SPACE_LIMIT    =10240  #单位 MB,0表示无限制,范围  1024~4294967294MB

9、备库配置归档配置文件 dmarch.ini
进入 cd /opt/dmdbas
新建目录 mkdir dmarch 本地归档文件存放路径

并且设置权限 chmod 777 dmarch
先进入路径cd /opt/dmdbas/data/DM1/ 下新建目录

在备库中的DM1目录下新建 dmarch.ini

vi dmrach.ini

添加一下内容:

[ARCHIVE_REALTIME]
ARCH_TYPE             = REALTIME     #实时归档类型
ARCH_DEST             = dmrw1     #实时归档目标实例名(备库则填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE             = LOCAL  #本地归档类型
ARCH_DEST             = /opt/dmdbms/dmarch   #本地归档文件存放路径
ARCH_FILE_SIZE     =128  #单位 MB,本地单哥归档文件最大值
ARCH_SPACE_LIMIT    =10240  #单位 MB,0表示无限制,范围  1024~4294967294MB

10、主库配置MAL系统配置文件 dmmal.ini

cd  /opt/dmdbas/data/DM1/
vi dmmal.ini

添加一下内容

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = dmrw1  #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.127 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5237 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.127 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = dmrw2
MAL_HOST = 192.168.1.122
MAL_PORT = 5237
MAL_INST_HOST = 192.168.1.122
MAL_INST_PORT = 5236
MAL_DW_PORT = 5239

11、备库配置MAL系统配置文件 dmmal.ini

cd  /opt/dmdbas/data/DM1/
vi dmmal.ini

添加一下内容

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = dmrw1  #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.1.127 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5237 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.127 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = dmrw2
MAL_HOST = 192.168.1.122
MAL_PORT = 5237
MAL_INST_HOST = 192.168.1.122
MAL_INST_PORT = 5236
MAL_DW_PORT = 5239

12、备份库配置守护进程配置文件 dmwatcher.ini

cd  /opt/dmdbas/data/DM1/
vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /opt/dmdbms/data/DM1/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm7/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

13、以mount方式启动数据库实例
主库bin中启动

./dmserver /opt/dmdbms/data/DM1/dm.ini mount

备库bin中启动

./dmserver /opt/dmdbms/data/DM1/dm.ini mount

运行成功如下:
在这里插入图片描述

ps:如出现以下截图报错
在这里插入图片描述
进入 bin中

./dmrman

执行下面代码

recover database '/opt/dmdbms/data/DM1/dm.ini' update db_magic

14、主库都修改oguid,执行一下命令

sp_set_oguid(453331);

在这里插入图片描述
可能会出现一下报错,解决办法如下:
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/7529857c614e490eb19879e35f22381e.png
在这里插入图片描述
在这里插入图片描述
主库修改数据库模式为 primary,执行以下命令:

alter database primary;

备库修改数据库模式为 standby,执行以下命令:

alter database standby;

15、启动守护进程
主库:
dmdba 用户下,到数据库安装目录的 bin 下执行(主备库都执行)。

./dmwatcher /opt/dmdbms/data/DM1/dmwatcher.ini

备库:
dmdba 用户下,到数据库安装目录的 bin 下执行(主备库都执行)。

./dmwatcher /opt/dmdbms/data/DM1/dmwatcher.ini

在这里插入图片描述
16、守护进程启动后,会将Mount的实例Open。
在这里插入图片描述
17、配置监视器(主备)

cd  /opt/dmdbms/data/DM1 

目录下 新建 vi dmmonitor.ini

MON_DW_CONFIRM = 1                      #确认监视器模式( 0非确认监视器)
MON_LOG_PATH =/opt/dmdbms/log   #监视器日志文件存放路径
MON_LOG_INTERVAL = 60                   #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32                  #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0                 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331                 #组 GRP1 的唯一 OGUID 值
#以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.1.127:5239
MON_DW_IP = 192.168.1.122:5239

启动监视器

./dmmonitor /opt/dmdbms/data/DM1/dmmonitor.ini

在这里插入图片描述

18、注册服务(主库,切换为root用户)

./dm_service_installer.sh -t dmwatcher -p dmserver -watcher_ini /dmdba/dmdata/DAMENG/dmwatcher.ini

在这里插入图片描述
19、注册数据库后台启动数据库守护服务(主库)

 ./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DM1/dmwatcher.ini -p dmrw1

在这里插入图片描述
20、备库注册后台启动数据库服务,数据库守护服务(备库)

 ./dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DM1/dm.ini -p dmrw2 -m mount

在这里插入图片描述

./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dmdbms/data/DM1/dmwatcher.ini -p dmrw2 

在这里插入图片描述
21、监视器

确认监视器注册后台启动服务

./dm_service_installer.sh -t dmmonitor -monitor_ini /opt/dmdbms/data/DM1/dmmonitor.ini -p GRP1    

在这里插入图片描述
22、启动关闭集群的顺序

启动
主库服务—>备库服务—>主库守护—>备库守护---->监视器

关闭
监视器—>备库守护---->主库守护—>主库服务---->备库服务

[dmdba@localhost bin]$ ./DmServicedmrw1 start    #启动主库服务
[dmdba@localhost bin]$ ./DmServicedmrw2 start    #启动备库服务
[dmdba@localhost bin]$ ./DmWatcherServicedmrw1 start   #启动主库守护
[dmdba@localhost bin]$ ./DmWatcherServicedmrw2 start   #启动备库守护
[dmdba@localhost bin]$ ./DmMonitorServiceGRP1 start         #启动监视器

集群搭建到此结束。好痛苦啊~~~~~~~~~~~~~~~

码云地址:https://gitee.com/yuisuiWork/spring_project_demo/
欢迎交流,一起进步!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐