Windows下达梦数据守护搭建
一、 搭建环境:
三台虚拟机搭建达梦数据守护,环境如下:
服务器 | IP地址 | 操作系统 | 系统用户名 | 数据库版本 | 数据库实例名 |
---|---|---|---|---|---|
主库 | 192.168.139.141 | Windows Server 2008 | administrator | dm7 | DMSVR01 |
备库 | 192.168.139.142 | Windows Server 2008 | administrator | dm7 | DMSVR02 |
监视器 | 192.168.139.143 | Windows Server 2008 | administrator | dm7 |
端口规划:
主库 192.168.139.141:
PROT_NUM:5236 数据库实例端口
DW_PORT: 5239 监听守护进程连接的端口
MAL_PORT:5237 MAL服务的监听端口
MAL_INST_PORT:5236 对外服务的监听端口
MAL_DW_PORT: 5238 监视器的连接端口
备机 192.168.139.142:
PROT_NUM:5236 数据库实例端口
DW_PORT: 5239 监听守护进程连接的端口
MAL_PORT:5237 MAL服务的监听端口
MAL_INST_PORT:5236 对外服务的监听端口
MAL_DW_PORT: 5238 监视器的连接端口
二、 搭建步骤:
1、 在主库安装达梦数据库7(安装路径为:D:\dmdbms),并初始化达梦数据库。
2、 配置主库参数:
打开D:\dmdbms\data\DAMENG\dm.ini
修改以下参数:
arch_ini =1 ##打开归档
mal_ini = 1 ##打开MAL配置
DW_PORT=5239 ## dmwather端口
打开D:\dmdbms\data\DAMENG\dmarch.ini
替换为以下内容:
[ARCHIVE_REALTIME] ##实时归档
ARCH_TYPE = REALTIME
ARCH_DEST = DMSVR02 ##目标(备)库实例名
[ARCHIVE_LOCAL1] ##本地归档
ARCH_TYPE = LOCAL
ARCH_DEST = D:\dmdbms\arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
打开D:\dmdbms\data\DAMENG\dmmal.ini
替换为以下内容:
MAL_CHECK_INTERVAL = 5 ##检测间隔
MAL_CONN_FAIL_INTERVAL = 5 ##连接失败的间隔
[MAL_INST1]
MAL_INST_NAME = DMSVR01 #实例名,同dm.ini 中的 INSTANCE_NAME
MAL_HOST = 192.168.139.141 ##内部MAL通信地址
MAL_PORT = 5237 ##内部MAL通信端口
MAL_INST_HOST = 192.168.139.141 ##外部服务地址
MAL_INST_PORT = 5236 #对外服务端口,同 dm.ini 中的 PORT_NUM
MAL_DW_PORT = 5238 #实例对应的守护进程监听 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSVR02
MAL_HOST = 192.168.139.142
MAL_PORT = 5237
MAL_INST_HOST = 192.168.139.142
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238
打开D:\dmdbms\data\DAMENG\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 = D:\dmdbms\data\DAMENG\dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能 (建议设置成0)
INST_STARTUP_CMD = D:\dmdbms\bin\dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
生成dmwatcher.ctl文件(DM8不需生成)
开始运行CMD进入命令提示符窗口:
D:\dmdbms\bin\dmctlcvt.exe TYPE=3 SRC=D:\dmdbms\data\DAMENG\dmwatcher.ini DEST=D:\dmdbms\data
拷贝D:\dmdbms\data\GRP1\dmwatcher.ctl文件至D:\dmdbms\data\DAMENG
停止主库数据库服务,并且把主库配置拷贝到备库
管理员打开命令提示符(CMD):
net stop DmServiceDMSVR01
将D:\dmdbms\data文件夹拷贝到备机(192.168.139.142) D:\dmdbms\下
3、 配置备库参数:
打开D:\dmdbms\data\DAMENG\dm.ini
修改一下内容:
INSTANCE_NAME=DMSVR02 ##本库实例名
打开D:\dmdbms\data\DAMENG\dmarch.ini
修改一下内容:
ARCH_DEST = DMSVR01 ##目标库实例名
4、 注册备库服务:
打开达梦数据库配置助手(D:\dmdbms\tool\dbca.exe)
选择注册服务,选择INI配置文件(D:\dmdbms\data\DAMENG\dm.ini)后,注册数据库服务;
停止备库数据库服务,并且把主库配置拷贝到备库
管理员打开命令提示符(CMD):
net stop DmServiceDMSVR02
5、 主备库设置OGUID:
主库:
D:\dmdbms\bin\dmserver.exe D:\dmdbms\data\DAMENG\dm.ini mount
SQL> select file_LSN, cur_LSN from v$rlog;
SQL> sp_set_oguid(453331);
备库:
D:\dmdbms\bin\dmserver.exe D:\dmdbms\data\DAMENG\dm.ini mount
SQL> select file_LSN, cur_LSN from v$rlog;
SQL>sp_set_oguid(453331);
注意:确定两库cur_LSN一致,oguid一致。
6、 启动主备数据库:
主库:
SQL> alter database primary;
备库:
SQL> alter database standby;
7、 启动主备库的watcher
启动dmwatcher.ini
主库:D:\dmdbms\bin\dmwatcher.exe D:\dmdbms\data\DAMENG\dmwatcher.ini
备库:D:\dmdbms\bin\dmwatcher.exe D:\dmdbms\data\DAMENG\dmwatcher.ini
8、 搭建监视器:
监视器 192.168.139.143
新建D:\dmdbms\dmmoniter.ini文件:
写入以下内容:
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = D:\dmdbms\data\log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值
MON_DW_IP = 192.168.139.141:5238
MON_DW_IP = 192.168.139.142:5238
启动监视器:
D:\dmdbms\bin\dmmonitor.exe D:\dmdbms\dmmoniter.ini
监视器相关命令:
命令 | 含义 |
---|---|
help | 显示帮助信息 |
exit | 退出监视器 |
show [group_name] | 显示指定组的实例信息,如果未指定组名,则显示所有组信息 |
list [[group_name.]inst_name] | 列出指定组的实例对应的守护进程配置信息,如果都未指定,则列出所有守护进程配置信息 |
login | 登录监视器 |
switchover [group_name[.]] [inst_name] | 切换指定组的指定实例为Primary实例 |
stop instance [group_name] | 关闭指定组的实例 |