文章目录

  • 为什么要用DSC+DW
  • 基础环境规划
  • 软件环境规划
  • 通用环境准备
  • 2节点DSC搭建
    • 准备dmdcr_cfg.ini
    • 标记ASM磁盘
    • 初始化dcr/vote
    • 配置dmasvrmal.ini
    • 配置dmdcr.ini
    • 手动启动CSS/ASM
    • 创建 ASM磁盘组
    • 配置dminit.ini
    • 初始化DSC实例
    • 配置DSC归档
    • 启动DSC实例
    • 确认DSC归档
    • 备份DSC库
    • 配置CSSM
    • 确认集群状态
    • 注册并启动CSS服务
  • DW搭建
    • 初始化单实例库
    • 还原DSC库到单实例
    • 修改守护相关参数
    • 修改MAL配置
    • 修改归档配置
    • 配置dmwatcher
    • 配置dmmonitor
    • 手动启动实例
    • 配置OGUID/数据库模式
    • 手动启动dmwatcher
    • 确认集群状态
    • 注册数据库库服务
    • 注册dmwatcher服务
  • 启停流程
    • 启动
    • 状态确认
    • 关闭
  • DW的修复
  • 故障切换测试
    • DSC单点故障
    • 所有DSC故障
    • DSC重新加入
    • 手动切换
  • 总结

为什么要用DSC+DW

高可用集群常见的分为,机房高可用,同城高可用和异地高可用三层,针对DM8而言,DSC或者DW都可以满足机房高可用的场景,而同城高可用则可以通过DSC+DW来进行实现,本次将对此架构进行搭建和测试的展示


基础环境规划

本次环境基于4台虚拟机进行,硬件及操作系统如下

类别 A机器 B机器 C机器 D机器
CPU i5 1.60GHz * 2 core i5 1.60GHz * 2 core i5 1.60GHz * 2 core i5 1.60GHz * 2 core
本地盘 20G 20G 20G 20G
共享盘 20G 20G N/A N/A
内存 4G 4G 4G 2G
网卡 1000MB * 2 1000MB * 2 1000MB * 2 1000MB * 2
OS CentOS 7.7.1908 (Core) CentOS 7.7.1908 (Core) CentOS 7.7.1908 (Core) CentOS 7.7.1908 (Core)
KERNEL 3.10.0-1160.59.1.el7.x86_64 3.10.0-1160.59.1.el7.x86_64 3.10.0-1160.59.1.el7.x86_64 3.10.0-1160.59.1.el7.x86_64

软件环境规划

D机器作为monitor节点,仅需要安装软件即可
A/B/C机器两块网卡分别为HOST ONLY和INTNET方式,模拟以真实机器为APP,HOST ONLY网卡作为业务网,INTNET网卡作为为内部心跳及INTERCONNECT通信

类别 A机器 B机器 C机器
主机名 dmdsc0 dmdsc1 dmdw0
业务IP 192.168.56.7 192.168.56.8 192.168.56.24
心跳IP 10.30.5.17 10.30.5.18 10.30.5.24
实例名 DSC0 DSC1 DW0
端口号 5236 5236 5238
安装介质目录 /opt/dsc/setup /opt/dsc/setup /opt/dw/setup
软件安装目录 /opt/dsc/dmdbms /opt/dsc/dmdbms /opt/dw/dmdbms
配置文件目录 /opt/dsc/config /opt/dsc/config /opt/dw/config
本地归档目录 /opt/dsc/arch_0 /opt/dsc/arch_1 /opt/dw/arch
远程归档目录 /opt/dsc/arch_1 /opt/dsc/arch_0 N/A
归档上限 1024 1024 1024
实时归档实例 DW DW DSC0/DSC1
备份目录 /opt/dsc/bak /opt/dsc/bak /opt/dw/bak
监视器IP 10.30.5.188 10.30.5.188 10.30.5.188

dmdcr_cfg

类别 参数 A机器 B机器
CSS DCR_EP_NAME CSS0 CSS1
DCR_EP_HOST 10.30.5.17 10.30.5.18
DCR_EP_PORT 5336 5337
ASM DCR_EP_NAME ASM0 ASM1
DCR_EP_HOST 192.168.56.7 192.168.56.8
DCR_EP_PORT 5436 5437
DCR_EP_SHM_KEY 93360 93361
DCR_EP_SHM_SIZE 10 10
DCR_EP_ASM_LOAD_PATH /dev/raw /dev/raw
DB DCR_EP_NAME DSC0 DSC1
DCR_EP_PORT 5236 5237
DCR_EP_SEQNO 0 1
DCR_CHECK_PORT 5536 5537
DCR_OGUID 45331 45331

dmasvrmal

参数 A机器 B机器
MAL_INST_NAME ASM0 ASM1
MAL_HOST 10.30.5.17 10.30.5.18
MAL_PORT 5636 5637

dmmal

参数 A机器 B机器 C机器
MAL_PORT 5736 5737 5738
MAL_DW_PORT 5836 5837 5838
MAL_INST_DW_PORT 5936 5937 5938

dmwatcher

组名 参数 A机器 B机器 C机器
GRP1 DW_TYPE GLOBAL GLOBAL GLOBAL
- DW_MODE AUTO AUTO AUTO
- DW_ERROR_TIME 60 60 60
- INST_RECOVER_TIME 60 60 60
- INST_ERROR_TIME 35 35 35
- INST_INI /opt/dsc/config/dsc0_config/dm.ini /opt/dsc/config/dsc1_config/dm.ini /opt/dw/data/DAMENG/dm.ini
- DCR_INI /opt/dsc/config/dmdcr.ini /opt/dsc/config/dmdcr.ini N/A
- INST_OGUID /45332 45332 45332
- INST_STARTUP_CMD /opt/dsc/dmdbms/bin/dmserver /opt/dsc/dmdbms/bin/dmserver /opt/dw/dmdbms/bin/dmserver
- INST_AUTO_RESTART 0 0 0
- RLOG_SEND_THRESHOLD 0 0 0
- RLOG_APPLY_THRESHOLD 0 0 0

通用环境准备

主要包括一些常规步骤,本篇核心在于集群本身搭建和故障测试,仅列举一下内容

  • 主机名规划/hosts添加
  • 防火墙/selinux关闭
  • 网卡规划及配置
  • Limit/Kernel调整
  • 共享磁盘挂载分区及调度算法调整
  • 裸设备绑定
  • Swap禁用
  • 时间同步配置
  • 用户及目录创建
  • 数据库软件安装

2节点DSC搭建

准备dmdcr_cfg.ini

在配置文件目录下,编写用于初始化dcr和vote的配置文件

[dmdba@dmdsc0 home]$ cd /opt/dsc/config/
[dmdba@dmdsc0 config]$ vi dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45331[GRP]DCR_GRP_TYPE = CSSDCR_GRP_NAME = GRP_CSSDCR_GRP_N_EP = 2DCR_GRP_DSKCHK_CNT = 60[GRP_CSS]DCR_EP_NAME = CSS0DCR_EP_HOST = 10.30.5.17DCR_EP_PORT = 5336[GRP_CSS]DCR_EP_NAME = CSS1DCR_EP_HOST = 10.30.5.18DCR_EP_PORT = 5337[GRP]DCR_GRP_TYPE = ASMDCR_GRP_NAME = GRP_ASMDCR_GRP_N_EP = 2DCR_GRP_DSKCHK_CNT = 60[GRP_ASM]DCR_EP_NAME = ASM0DCR_EP_SHM_KEY = 93360DCR_EP_SHM_SIZE = 10DCR_EP_HOST = 192.168.56.7DCR_EP_PORT = 5436DCR_EP_ASM_LOAD_PATH = /dev/raw[GRP_ASM]DCR_EP_NAME = ASM1DCR_EP_SHM_KEY = 93361DCR_EP_SHM_SIZE = 10DCR_EP_HOST = 192.168.56.8DCR_EP_PORT = 5437DCR_EP_ASM_LOAD_PATH = /dev/raw[GRP]DCR_GRP_TYPE = DBDCR_GRP_NAME = GRP_DSCDCR_GRP_N_EP = 2DCR_GRP_DSKCHK_CNT = 60[GRP_DSC]DCR_EP_NAME = DSC0DCR_EP_SEQNO = 0DCR_EP_PORT = 5236DCR_CHECK_PORT = 5536[GRP_DSC]DCR_EP_NAME = DSC1DCR_EP_SEQNO = 1DCR_EP_PORT = 5236DCR_CHECK_PORT = 5537

标记ASM磁盘

通过asmcmd标记裸设备,初始化设备头信息,只在一台机器上进行即可

A机器

[dmdba@dmdsc0 config]$ /opt/dsc/dmdbms/bin/dmasmcmd
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 00:00:05.449.
ASM>create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 14.441(ms).
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 15.057(ms).
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 14.499(ms).

初始化dcr/vote

通过asmcmd将此前配置的dmdcr_cfg.ini写入到dcrdisk和votedisk中,只在一台机器执行即可

A机器

ASM>init dcrdisk '/dev/raw/raw1' from '/opt/dsc/config/dmdcr_cfg.ini' identified by 'abcd'
[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 234.261(ms).ASM>init votedisk '/dev/raw/raw2' from '/opt/dsc/config/dmdcr_cfg.ini'
[Trace]DG 125 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
[Trace]DG 125 alloc 4 extents for 0xfd000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 116.459(ms).
ASM>exit

配置dmasvrmal.ini

配置ASM使用的MAL信息,实例名与dmdcr_cfg中ASM组配置一致,A/B机器上配置相同

A机器

[dmdba@dmdsc0 config]$ vi /opt/dsc/config/dmasvrmal.ini
[MAL_INST1]MAL_INST_NAME = ASM0MAL_HOST = 10.30.5.17MAL_PORT = 5636  [MAL_INST2]MAL_INST_NAME = ASM1MAL_HOST = 10.30.5.18MAL_PORT = 5637

B机器

从A机器拷贝即可

配置dmdcr.ini

通过dmdcr.ini配置dcr盘对应裸设备,ASM使用的MAL配置文件,及自身在集群中的节点编号,以便于使其他命令使用时能正确读取dcr内容,与ASM MAL进行通信,以及根据配置自动拉起ASM或DB服务

A机器

[dmdba@dmdsc0 ~]$ vi /opt/dsc/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 0#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvr dcr_ini=/opt/dsc/config/dmdcr.ini#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini

B机器

[dmdba@dmdsc1 ~]$ vi /opt/dsc/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 1#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvr dcr_ini=/opt/dsc/config/dmdcr.ini#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini

配置阶段将自动拉起注释掉,可以避免一些麻烦

DM8 2节点DSC+DW搭建及故障测试相关推荐

  1. 达梦DSC+DW搭建

    文章目录 前言 一.搭建dsc作为dw的主库 1.添加共享磁盘 2.块设备绑定 3.准备 dmdcr_cfg.ini 配置文件 4.使用 DMASMCMD 工具初始化 5.准备dmdcr.ini 6. ...

  2. 使用部署脚本部署双节点DSC.

    使用部署脚本部署双节点DSC. 环境准备: 两节点操作系统环境配置完毕. 两节点dm数据库软件按照完毕,版本,安装路径,都一致. a.上传配置脚本到第一节点,并解压缩. 上传自动配置脚本到/home/ ...

  3. DM8数据守护集群搭建

    DM8数据守护集群搭建 1.安装规划 1.1 环境说明 1.2 端口配置 2.准备主库 2.1. 修改dm.ini参数 2.2. 配置dmmal.ini 2.3 配置dmwatcher.ini 3.备 ...

  4. flume多节点集群搭建

    概览 1.Flume流程简介 2.规划 3.配置 4.启动测试 5.注意 准备 操作系统:CentOS 7 搭建好hadoop集群 Flume版本:1.8.0 jdk版本:1.8.0_141 工具:X ...

  5. fabric多节点网络环境搭建(v2.2)

    fabric多节点网络环境搭建(v2.2) 文章目录 fabric多节点网络环境搭建(v2.2) 一.机器准备与基础环境搭建 二.创建服务部署目录 三.准备证书文件 四.通道配置文件 五.配置dock ...

  6. Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三)

    Jenkins 之 单节点 对接GitHub搭建自动化部署项目环境 与 实战测试 (三) 目录 Jenkins 之 单节点 搭建自动化部署项目环境 与 实战测试 (三) Jenkins 服务器 环境 ...

  7. 达梦数据库DSC+DW集群搭建

    目录 1 配置说明 2 环境说明 3 配置 DMDSC 主库环境 3.1 配置 dmarch.ini 3.2 配置 dm.ini 3.3 备份 DMDSC 库 4 配置单节点备库 5  配置 dm.i ...

  8. DM8 数据守护(Data Watch)搭建

    1 应用场景 硬件再好,也可能有故障:软件再好,也可能由于的BUG从而导致业务不能正常运行. 解决的方法:数据库守护集群---->功能类似于Oracle的data guard. 2 环境说明 此 ...

  9. 达梦数据共享集群(DSC)---搭建过程

    一.简介 达梦数据共享集群(DSC)允许达梦数据库实现在一组集群服务器上运行任何程序包,而客户应用不必作任何更改. 这种体系提供了最高级别的可用性和最灵活的可伸缩性.如果出现集群其中一个服务器失败,达 ...

最新文章

  1. 基于TensorFlow的简单验证码识别
  2. Nature子刊 | 研究人员提出神经脆性可作为癫痫发作区(SOZ)的脑电图(EEG)标志物
  3. 物联网正在给批发业带来新的商业模式
  4. easyui 传递参数报错(错误:uncaught SyntaxError: Unexpected identifier)
  5. Comp-Agg (A Compare-Aggregate Model for Matching Text Sequences)
  6. linux查询字段排序,Linux 操作命令 sort
  7. July面试整理系列--(5)
  8. 删除未使用的引用 | Visual Studio 2019(16.10)新功能试用
  9. python u_对python 命令的-u参数详解
  10. 2017.3.14-9.1 玩具取名 失败总结
  11. 基于百度通用翻译API的一个翻译小工具
  12. i7-9700与E5 2667 V2空载功耗对比
  13. onblur 与onclick 冲突;onblur导致onclick事件丢失
  14. redis 入门+掌握
  15. USB电路EMC设计标准电路详解
  16. rot13初学者和python的实现
  17. LOL服务器维护奖励,LOL5.18版本改动内容 lol官网服务器维护公告
  18. 百度预测和百度五笔输入法
  19. 基于DSP的数字图像处理(1)
  20. for-in 和 for-of 的区别

热门文章

  1. BW的登录错误解决实例
  2. RocketMQ 关于 No route info of this topic 问题
  3. 历届试题 矩阵翻硬币 蓝桥杯 大数开方 大数相乘
  4. WebStorm 的全局搜索字符串
  5. JavaScript之 高性能读书笔记
  6. [附源码]Python计算机毕业设计大学生健康管理系统的设计与实现
  7. Stegano之binwalk、C32Asm
  8. 面试季:2019Java面试题汇总---升级版(附答案)
  9. 基于R语言对股市价格预测的ARIMA建模
  10. 使用IDL显示DICOM文件的信息