达梦7数据库数据守护集群 技术方案

达梦数据库数据守护集群
技术方案

目录

1 DM7数据守护集群部署实施流程 3
1.1 流程 3
1.2 系统架构图 3
1.3 网络拓扑图 4
2 部署规划 4
2.1 路径规划 4
2.2 实例规划 5
2.3 硬件环境 5
2.4 软件环境 5
3 安装数据库过程 5
3.1 配置操作系统 5
4 配置集群 11
4.1 DMDWC数据守护集群配置 11
步骤1. 环境准备 11
步骤2. 数据库准备 11
步骤3. 配置主库 12
步骤4. 配置备库 14
步骤5. 配置监视器 17
步骤6. 启动守护进程 17
步骤7. 启动监视器 17
步骤8. 维护集群 17
4.2 DMDWC数据守护访问 18
步骤1. 快捷菜单 18
步骤2. 连接数据库 19
步骤3. 新建查询 20
步骤4. 执行SQL语句 20
步骤5. 调整窗口选项 21
步骤6. 在管理工具中,选择任何数据库对象都可以右键生成sql脚本 22
步骤7. 导出功能 22
步骤8. 导入功能 23

1 背景
1.1 需求
本项目需要选择成熟的关系型数据库,需要具有高度的数据可靠性,容错能力,支持灾难情况下的异地容灾高可用要求。
提供数据库读写分离建设服务。
提供数据库实时同步建设服务。
应用系统必须支持同城异地应用双活架构。
2 DM7数据守护集群部署实施流程
2.1 流程

  1. 规划部署实施信息。
  1. 规划程序安装路径。
  2. 规划数据库实例数据存放路径。
  3. 规划归档路径。
  4. 规划备份路径
  5. 规划实例配置
  1. 使用安装包进行安装。
  2. 配置集群
    2.2 系统架构图
    在这里插入图片描述

2.3 网络拓扑图
在这里插入图片描述

3 部署规划
3.1 路径规划
在这里插入图片描述
3.2 实例规划
在这里插入图片描述

3.3 硬件环境
在这里插入图片描述

3.4 软件环境
在这里插入图片描述

4 安装数据库过程
4.1 配置操作系统
 创建用户组和用户

  1. 创建安装用户组dinstall
    groupadd dinstall
    创建安装用户dmdba
    useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
    设置密码
    passwd dmdba
     创建目录
  2. 创建数据目录
    mkdir /dmdata
    chown -R dmdba:dinstall /dmdata
    su - dmdba
    mkdir /dmdata/DJPT
    mkdir /dmdata/DJPT/arch
    mkdir /dmdata/DJPT/bak
     修改操作系统参数
    修改/etc/security/limits.conf增加如下内容:

dmdba soft nproc 4096
dmdba hard nproc 4096
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited

修改/home/dmdba/.bash_profile增加如下内容:
export PATH= P A T H : / h o m e / d m d b a / d m d b m s / b i n e x p o r t L D L I B R A R Y P A T H = PATH:/home/dmdba/dmdbms/bin export LD_LIBRARY_PATH= PATH:/home/dmdba/dmdbms/binexportLDLIBRARYPATH=LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin
export JAVA_HOME=/home/dmdba/dmdbms/jdk
 安装程序过程

  1. 启动安装程序
    在这里插入图片描述

  2. 选择语言与时区
    在这里插入图片描述

  3. 进入安装向导
    在这里插入图片描述

  4. 接受许可证协议
    在这里插入图片描述

  5. 显示版本号信息
    在这里插入图片描述

  6. 选择授权文件
    在这里插入图片描述

  7. 选择安装组件
    在这里插入图片描述

  8. 选择安装路径
    在这里插入图片描述

  9. 查看安装小结
    在这里插入图片描述

  10. 完成安装过程
    在这里插入图片描述

  11. 进入初始化数据库实例过程,该页面可选择取消初始化数据库,后续单独打开dbca进行,也可以选择选中初始化数据库,继续进行初始化数据库的任务。
    在这里插入图片描述

5 配置集群
5.1 DMDWC数据守护集群配置
步骤1. 环境准备
在这里插入图片描述

步骤2. 数据库准备
各主备库的实例名建议采用“组名_守护环境_序号”的方式命名,方便按组区分不同实
例,注意总长度不能超过 16。本示例中组名为“GRP1”,配置为实时主备,主库命名为
“GRP1_RT_01”,备库命名为“GRP1_RT_02”。
在这里插入图片描述

DW_P 机器上初始化库至目录/home/dmdba/dmdbms/bin
[/home/dmdba/dmdbms/bin]# ./dminit PATH=/data/dmdata
DW_P 机器上启动数据库服务
[/home/dmdba/dmdbms/bin]# ./dmserver PATH=/data/dmdata/DAMENG/dm.ini
启动服务出现SYSTEM IS READY 后,输入exit停止服务。
DW_S1 机器上拷贝数据库
[/home/dmdba/dmdbms/bin]# scp -r /data/dmdata/DAMENG 10.11.28.108: /data/dmdata
将DW_P上数据目录/data/dmdata/DAMENG拷贝到DW_S2上。
步骤3. 配置主库
所有ini配置文件均存放于/data/dmdata/DAMENG目录下
配置 dm.ini
#实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5257 #守护环境下,监听守护进程连接端口
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息

配置 dmmal.ini
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例
对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 10.11.28.107 #MAL 系统监听TCP 连接的IP地址
MAL_PORT = 5336 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 10.11.28.107 #实例的对外服务IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5253 #实例对应的守护进程监听TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 10.11.28.108
MAL_PORT = 5336
MAL_INST_HOST = 10.11.28.108
MAL_INST_PORT = 5236
MAL_DW_PORT = 5253

配置 dmarch.ini
修改 dmarch.ini,配置本地归档和实时归档。
除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。
当前实例 GRP1_RT_01 是主库,需要向 GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_02。
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmarch/DAMENG #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围1024~4294967294M

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

配置 dmwatcher.ctl
同一个守护进程组,必须使用同一份 dmwatcher.ctl。因此,只需要使用 dmctlcvt工具生成一份 dmwatcher.ctl 文件,然后分别拷贝到各个数据库目录下即可。
在配置完成 dmwatcher.ini 后,使用 dmctlcvt 工具生成 dmwatcher.ctl:
./dmctlcvt TYPE=3 SRC=/data/dmdata/DAMENG/dmwatcher.ini DEST=/data/dmdata
拷贝生成的 dmwatcher.ctl 文件到数据文件目录/data/dmdata/DAMENG。
启动主库
以 mount 方式启动主库
./dmserver /data/dmdata/DAMENG/dm.ini mount

设置 OGUID和数据库模式
启动命令行工具 DIsql,登录主库设置 OGUID 值
SQL>sp_set_oguid(121233);
SQL>alter database primary;

步骤4. 配置备库
所有ini配置文件均存放于/data/dmdata/DAMENG目录下
配置 dm.ini
在 DW_S1 机器上配置备库的实例名为 GRP1_RT_02,dm.ini 参数修改如下:
#实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过16
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5257 #守护环境下,监听守护进程连接端口
DW_ERROR_TIME = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息

配置 dmmal.ini
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例
对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 10.11.28.107 #MAL 系统监听TCP 连接的IP地址
MAL_PORT = 5336 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 10.11.28.107 #实例的对外服务IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5253 #实例对应的守护进程监听TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 10.11.28.108
MAL_PORT = 5336
MAL_INST_HOST = 10.11.28.108
MAL_INST_PORT = 5236
MAL_DW_PORT = 5253

配置 dmarch.ini
修改 dmarch.ini,配置本地归档和实时归档。
除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。
当前实例 GRP1_RT_01 是主库,需要向 GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_02。
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = GRP1_RT_01 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /data/dmarch/DAMENG #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0 表示无限制,范围1024~4294967294M

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

配置 dmwatcher.ctl
同一个守护进程组,必须使用同一份 dmwatcher.ctl 文件,这里直接拷贝配置主库时已经生成的 dmwatcher.ctl 到本地数据文件目录/data/dmdata/DAMENG。
启动主库
以 mount 方式启动备库
./dmserver /data/dmdata/DAMENG/dm.ini mount

设置 OGUID和数据库模式
启动命令行工具 DIsql,登录主库设置 OGUID 值
SQL>sp_set_oguid(121233);
SQL>alter database standby;

步骤5. 配置监视器
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。
和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知
实时备库接管为新的主库,具有自动故障处理的功能。
修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /data/dmdata/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 121233 #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 10.11.28.107:5253
MON_DW_IP = 10.11.28.108:5253

步骤6. 启动守护进程
启动各个主备库上的守护进程:
./dmwatcher /data/dmdata/DAMENG/dmwatcher.ini

步骤7. 启动监视器
启动监视器:
./dmmonitor /data/dmdata/dmmonitor.ini

步骤8. 维护集群
启动集群:
用dmdba用户登录进107服务器:
cd /home/dmdba/dmdbms/conf
./DmServiceGRP1_RT_01 start
./DmWatcherServiceGRP1_RT_01 start

用dmdba用户登录进108服务器:
cd /home/dmdba/dmdbms/conf
./DmServiceGRP1_RT_02 start
./DmWatcherServiceGRP1_RT_02 start

停止集群:
用dmdba用户登录进108服务器:
cd /home/dmdba/dmdbms/conf
./DmWatcherServiceGRP1_RT_02 stop

用dmdba用户登录进107服务器:
cd /home/dmdba/dmdbms/conf
./DmWatcherServiceGRP1_RT_01 stop
./DmServiceGRP1_RT_01 stop

用dmdba用户登录进108服务器:
cd /home/dmdba/dmdbms/conf
./DmServiceGRP1_RT_02 stop

访问集群:
SYSDBA/SYSDBA@10.11.28.107:5236
5.2 DMDWC数据守护访问
步骤1. 快捷菜单
在这里插入图片描述

步骤2. 连接数据库
选择客户端文件夹中的DM7管理工具。输入主机IP、端口、用户名及密码等,点击“确认”按钮,即使用客户端工具连接数据库实例
在这里插入图片描述

步骤3. 新建查询
在这里插入图片描述

步骤4. 执行SQL语句
执行,提交,回滚
在这里插入图片描述

步骤5. 调整窗口选项
在这里插入图片描述

步骤6. 在管理工具中,选择任何数据库对象都可以右键生成sql脚本
在这里插入图片描述

步骤7. 导出功能
在这里插入图片描述

步骤8. 导入功能
在这里插入图片描述

步骤9. 定时备份
–定时每周六运行,进行全量备份
call SP_CREATE_JOB(‘JOB_FULL_BAK_TIMELY’,1,0,’’,0,0,’’,0,‘定时全量备份’);
call SP_JOB_CONFIG_START(‘JOB_FULL_BAK_TIMELY’);
call SP_ADD_JOB_STEP(‘JOB_FULL_BAK_TIMELY’, ‘STEP_FULL_BAK’, 5, ‘01000/dmdata/GZ_AB/bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_FULL_BAK_TIMELY’, ‘SCHEDULE_FULL_BAK’, 1, 2, 1, 64, 0, ‘00:05:56’, NULL, ‘2019-10-29 21:00:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_FULL_BAK_TIMELY’);

–定时每天运行,进行增量备份(晚上,周六除外)
call SP_CREATE_JOB(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’,1,0,’’,0,0,’’,0,‘定时增量备份’);
call SP_JOB_CONFIG_START(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’);
call SP_ADD_JOB_STEP(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘STEP_INCREMENT_BAK’, 5, ‘11000/dmdata/GZ_AB/bak|/dmdata/GZ_AB/bak’, 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’, ‘SCHEDULE_INCREMENT_BAK’, 1, 2, 1, 63, 0, ‘01:05:56’, NULL, ‘2019-10-20 21:00:57’, NULL, ‘’);
call SP_JOB_CONFIG_COMMIT(‘JOB_INCREMENT_BAK_TIMELY_NIGHT’);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值