达梦数据库集群部署(已实现)
达梦数据库集群部署
准备两台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/
欢迎交流,一起进步!
更多推荐
所有评论(0)