DM DSC 原理与搭建方法

DM8 DSC介绍

DM DSC是一个单数据库、多实例的集群系统,数据库部署在共享存储上,供所有节点访问,具有高可用性、高性能、负载均衡等特性。DM DSC集群可以自动处理节点故障及故障切换,不影响对外正常服务,保证系统的高可用性。
在这里插入图片描述

系统架构

在这里插入图片描述

组件

目前DM DSC支持最多八节点环境的搭建,集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件DMCSS组成。

  • 共享存储:DMDSC集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上。配置DMDSC集群需要使用到的DCR、VOTING DISK等也必须保存在共享存储上。DMDSC支持使用裸设备或DMASM文件系统作为共享存储。
  • 本地存储:本地存储用来保存配置文件(记录数据库实例配置信息的dm.ini、dmarch.ini、dmmal.ini),本地归档日志、远程归档日志。
  • 网络通信:DM DSC集群中,网络分为内部网络和公共网络两个部分。内部网络用于数据库实例之间交换信息和数据,以及网络心跳检测等用途,MAL链路使用的就是是内部网络。公共网络则用于对外提供数据库服务,用户使用公共网络地址登录DM DSC集群,访问数据库。实际应用中一般还存在服务器到共享存储的网络
  • 集群控制:集群系统的重要组成部分,DMCSS是DMDSC集群控制软件,负责监控集群中各个节点的运行状态。主要功能包括:管理集群的启动、关闭,控制节点故障处理、以及节点重加入流程

功能

  • DM DSC
    支持表、视图、索引、存储过程/函数、触发器、包、序列、同义词、类、SQL域、用户管理、角色管理、事务管理、对象注释、作业管理、多语言支持、数据查询、数据增删改、函数、PL/SQL、逻辑导入导出、备份还原、手册命令、故障切换功能。
  • 在DM DSC环境下,不支持联机配置定时器,只有控制节点上配置的定时器生效。只支持脱机配置定时器,支持作业,但只有控制节点上支持执行作业,不支持HUGE表、不支持外部表、不支持堆表、不支持类型别名、不支持table级别的space limit功能、不支持全文索引、词库相关操作、不支持安全版本、审计相关操作、不支持DBMS_ALERT、DBMS_LOCK包、不支持数据复制、不支持为表空间文件指定mirror_path、不支持闪回查询。

高可用性-故障处理

负载均衡指把负载平均分配到集群中的各个节点,从而提高整体的吞吐能力。
故障转移指集群中任何一个节点的故障都不会影响用户使用,连接到故障节点的用户会被自动转移到健康节点。
DM DSC支持实例崩溃、机器掉电、网络故障、心跳线故障等类型的故障转移。
通过在应用服务器上配置dm_svc.conf的参数实现DM DSC透明连接:

SWITCH_TIME=(5000)	#重试次数
SWITCH_INTERVAL=(1000)	#重试时间间隔,单位毫秒
DSC=(223.254.20.241:5850,223.254.20.242:5850)
#服务名=(节点1:端口号,节点2:端口号)

DM8 DSC搭建方法

环境准备

两台相同配置虚拟机
挂载共享存储(不少于20G)
VM需要在两台虚拟机路径下xxx.vmx文件中加入disk.locking = “FALSE” 参数,否则后启动的虚拟机会启动失败

裸设备划分

使用fdisk命令将共享存储划分为四个分区
前两个分区大小为100M,第三个分区不少于2G(该分区过小可能会出现启动dmserver闪退、创建ASM磁盘组时连接失败等报错)

绑定裸设备

编辑 /etc/udev/rules.d/60-raw.rules 文件,将以下内容添加至文件,两台节点均需操作

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="root", GROUP="root", MODE="660"

(两节点分别执行partprobe /dev/sdb,通知系统分区表的变化)
最后执行start_udev,完成裸设备绑定

安装数据库、创建配置文件目录

分别在两个节点安装数据库,创建配置文件目录

准备dmdcr_cfg.ini,并执行初始化

在配置文件目录下准备dmdcr_cfg.ini,具体内容参照手册。
运行dmasmcmd,依次执行以下内容

create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'
init dcrdisk '/dev/raw/raw1' from '/home/data/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/data/dmdcr_cfg.ini'

准备dmasvrmal.ini

在配置文件目录下准备dmasvrmal.ini,具体内容如下。

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.189.94
MAL_PORT = 7236 
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.189.95
MAL_PORT = 7236

将dmasvrmal.ini拷贝至每个节点配置文件路径下

准备dmdcr.ini

在两个节点配置文件目录下准备dmdcr.ini,具体内容如下。

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr使用的MAL配置文件路径
DMDCR_SEQNO = 0 # DSC1节点为1
DMDCR_ASM_RESTART_INTERVAL = 0 #ASM重启参数,命令行方式启动
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr
dcr_ini=/home/data/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0 #DB重启参数,命令行方式启动
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver
path=/home/data/dsc0_config/dm.ini
dcr_ini=/home/data/dmdcr.ini

启动DMCSS与DMASM服务

两个节点依次启动DMCSS与DMASM服务

./dmcss DCR_INI=/home/data/dmdcr.ini
./dmasmsvr DCR_INI=/home/data/dmdcr.ini

使用dmasmtool工具创建DMASM磁盘组
选择一个节点,启动dmasmtool工具。

./dmasmtool DCR_INI=/home/data/dmdcr.ini

输入下列语句创建DMASM磁盘组:

#创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
#创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

准备dminit.ini并初始化库

选择一个节点,在配置文件路径下准备dminit.ini文件,具体内容参照手册。
执行:

./dminit control=/home/data/dminit.ini #初始化库

拷贝配置文件路径下生成的dsc1_config目录到另外节点

启动数据库服务器

两节点分别启动dmserver服务,即可完成DSC搭建

./dmserver /home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
./dmserver /home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini

感谢各位!
技术博客社区地址
https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值