DMDSC原理与实现

目录

一、DMDSC原理

1.1 数据库和数据库实例

1.2 共享存储

1.3 本地存储

1.4 通信网络

1.5 集群控制软件DMCSS

二、DMDSC实现(2节点基于DMASM)

2.1 环境准备

2.2 共享磁盘裸设备分区与绑定(在root命令下)

2.3 配置dmdcr_cfg.ini文件(在DSC0上配置)

2.4 使用DMASMCMD工具初始化(在DSC0节点上操作)

2.5 配置dmasvermal.ini文件(两节点都需配置)

2.6 准备dmdcr.ini配置文件(两节点都需配置)

2.7 在DSC0和DSC1先后启动DMCSS、DMASM服务程序

2.8 使用dmasmtool工具创建DMASM磁盘组

2.9 配置dminit.ini文件,将其配置在/home/DSC目录下

2.10 使用dminit初始化DB环境

2.11 启动数据库服务器

2.12 搭建监视器,监视DCS集群的运行状况

三、DMDSC启动与关闭流程


一、DMDSC原理

DSC——单数据库、多实例的集群系统

特点:高可用性、高性能、负载均衡

DM DSC集群可以自动处理节点故障及故障切换,不影响对外正常服务,保证系统的高可用性。

集群主要由以下部分组成:

1.1 数据库和数据库实例

1.2 共享存储

   可以实现多实例同时访问、修改数据,要求将数据文件、控制文件、日志文件保存在共享存储上。 DMDSC支持使用裸设备或DMASM文件系统作为共享存储。

(1)共享存储最少挂四个盘,即:

voting disk:进程的通知,故障转移

dcr disk:集群的配置信息,故障信息

Group log:日志盘,最小不少于4G,否则会引起后面启动报错

Group data:数据文件盘

 (2)DMASM是一个专用的分布式文件系统,可向用户提供更加便捷的DSC集群数据库文件管理方案,以下主要通过其部件来说明DMASM的功能特点:

  • DMASM磁盘与文件管理:DMASM文件系统将物理磁盘格式化后,变成可识别、可管理的 DMASM 磁盘,再通过DMASM 磁盘组将一个或者多个 DMASM 磁盘整合成一个整体提供文件服务。
  • dmasmsvr服务器:提供DMASM服务,启动时会扫描/dev/raw路径下的所有裸设备,构建DMASM磁盘组和DMASM文件系统,实例间通过MAL系统进行信息和数据传递。
  • dmasmapi接口:用户可以通过调用DMASMAPI接口,访问、操作DMASM文件。
  • dmasmcmd初始化工具:DMASM文件系统初始化工具,用于格式化裸设备为DMASM磁盘,并初始化DCR Disk和Voting Disk。
  • dmasmtool管理工具:提供了一套linux文件操作命令,用于管理DMASM文件。

1.3 本地存储

用来保存配置文件,包括记录数据库实例的配置信息文件,本地归档日志、远程归档日志。

1.4 通信网络

分为内部网络和外部网络,内部网络如MAL链路,用于数据库实例之间交换信息和数据,以及网络心跳检测等用途。公共网络则用于对外提供数据库服务。

1.5 集群控制软件DMCSS

定时从被监控对象voting disk读取被监控对象的信息,检查被监控对象的状态变化,启动相应处理流程。

 

 

二、DMDSC实现(2节点基于DMASM)

写在前面:

1.要关闭防火墙;

2.若在配置过程中出现文件开启失败的提示,在确认该路径下文件确实存在时,很有可能就是文件权限不对,建议使用dmdba权限进行操作,否则配置过程中会出现很多问题;

3.若启动dmcss和dmasmsvr失败,在确认配置文件无误时,重启重启服务器即可。

2.1 环境准备

在VMware中创建共享磁盘

操作系统:2台麒麟10

共享磁盘:20G,具体分配如下:

操作系统

机器名

内存

本地磁盘

共享磁盘

IP

数据库安装路径

配置文件路径

Kylin10

DSC0

2G

30G

20G

192.168.118.139

/dm8

/home/DSC

Kylin10

DSC1

2G

30G

20G

192.168.118.138

/dm8

/home/DSC

2.2 共享磁盘裸设备分区与绑定(在root命令下)

查看共享磁盘

对共享磁盘/dev/sdb进行分区,具体分区如下:

磁盘

空间

voting disk

100M

dcr disk

100M

Group log

4G

Group data

15.8G

以下创建了第一个分区,大小为100M,之后的分区与之相似。

依次创建四个分区,分区完成后需要输入w保存:

在两节点上编辑/etc/udev/rules.d/60-raw.rules文件

vim /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="dmdba", GROUP="dmdba", MODE="660"

在两节点上分别执行partprobe /dev/sdb,通知系统分区表的变化

[root@localhost raw]# partprobe /dev/sdb

最后执行裸设备绑定

[root@localhost raw]# udevadm trigger --action=add

执行裸设备绑定时:

一般执行:start_udev

但由于Linux系统版本不同,裸设备绑定命令也有所不同,还可使用以下命令进行裸设备绑定:

[root@localhost raw]# /sbin/udevadm trigger --type=devices --action=change

或者

[root@localhost raw]# /sbin/udevadm control --reload

或者

[root@localhost raw]# udevadm trigger --action=add

最后检查裸设备绑定是否成功:

[root@localhost raw]# ll /dev/raw/raw*

 

2.3 配置dmdcr_cfg.ini文件(在DSC0上配置)

DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635

[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.118.139
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.118.138
DCR_EP_PORT = 9343

[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.118.139
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.118.138
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742

2.4 使用DMASMCMD工具初始化(在DSC0节点上操作)

2.5 配置dmasvermal.ini文件(两节点都需配置)

两节点的配置内容一致

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.118.139
MAL_PORT = 7236

[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.118.138
MAL_PORT = 7236

2.6 准备dmdcr.ini配置文件(两节点都需配置)

两节点的dmdcr_seqo分别为0和1,其他内容一致

DSC0:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/DSC/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/home/DSC/dmdcr.ini

#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmasmsvr path=path=/dm8/data/DAMENG/dm.ini dcr_ini=/home/DSC/dmdcr.ini

DSC1:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/DSC/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/home/DSC/dmdcr.ini

#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmasmsvr path=path=/dm8/data/DAMENG/dm.ini dcr_ini=/home/DSC/dmdcr.ini

2.7 在DSC0和DSC1先后启动DMCSS、DMASM服务程序

[dmdba@localhost bin]$ ./dmcss DCR_INI=/home/DSC/dmdcr.ini

[dmdba@localhost bin]$ ./dmasmsvr DCR_INI=/home/DSC/dmdcr.ini

两节点都启动后,显示如下:

 

2.8 使用dmasmtool工具创建DMASM磁盘组

[dmdba@localhost bin]$./dmasmtool DCR_INI=/home/dmdba/dmdbms/data/dsc/dmdcr.ini

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'  

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

2.9 配置dminit.ini文件,将其配置在/home/DSC目录下

db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0

auto_overwrite = 1

[DSC0]
#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/DSC/dsc0_config
port_num = 5236
mal_host = 192.168.118.139
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log

[DSC1]
#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/DSC/dsc1_config
port_num = 5237
mal_host = 192.168.118.138
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

2.10 使用dminit初始化DB环境

[dmdba@localhost bin]$ ./dminit control=/home/DSC/dminit.ini

在/home/DSC目录下得到两个文件夹,将dsc1_config文件夹发送到DSC1的相同目录下

2.11 启动数据库服务器

DSC0:

[dmdba@localhost bin]$./dmserver /home/DSC/dsc0_config/dm.ini dcr_ini=/home/DSC/dmdcr.ini

DSC1:

[dmdba@localhost bin]$./dmserver /home/DSC/dsc1_config/dm.ini dcr_ini=/home/DSC/dmdcr.ini

2.12 搭建监视器,监视DCS集群的运行状况

配置dmcssm.ini

CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.118.139:9341
CSSM_CSS_IP = 192.168.118.138:9343
CSSM_LOG_PATH =../log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动监视器:

[dmdba@localhost bin]$ ./dmcssm INI_PATH=/home/DSC/dmcssm.ini

 

三、DMDSC启动与关闭流程

启动:

DMCSSDMASMSVR→dmserver

均要在每个节点操作

关闭:

dmserver→DMASMSVR→DMCSS

先关闭 dmserver,再依次关闭 DMASMSVR 和 DMCSS。

DMASMSVR 和 dmserver 控制台执行 exit 命令,会通知所有其他节点一起退出;

DMCSS没有同步功能,需要手动退出所有节点。

更多问题欢迎到达梦技术社区提问哦!首页 | 达梦云适配中心 (dameng.com)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
在本地自己的操作系统上,完全模拟生产环境,让学员跟着视频一步一步搭建一套在RHEL7操作系统上面的oracle19c的rac环境。同时学员还会学会DNS服务器,DNS客户端,NTP服务器,NTP客户端等操作系统知识。让学员在短时间内,oracle和操作系统知识,有一定的提升。让学员可以独自轻松安装一套oracle rac环境。一课程主题 模拟生产环境,用多路径共享存储,用虚拟软件安装一套RHEL7.5+oracle19c+rac+打补丁二课程特色 完成模拟生产环境,用openfiler软件模拟生产惠普的3par存储,用2个虚拟网卡模拟数据库服务器的2个HBA卡。课程以实践为主,从头到尾一步一步教学员怎样操作,实践性强模拟生产需求,完全可以把这套环境拿到生产环境安装三课程内容 1.课程结束成果演示    1.1 用workstation,安装一套rhel7+oracle19c+rac+multipath+共享存储+DNS服务器+DNS客户端+NTP服务器+NTP客户端的生产环境    1.2 怎样打oracle19c的rac补丁(包括GI补丁,oracle补丁,数据库补丁,OJVM补丁,bug补丁)2.安装openfiler软件,模拟共享存储+配置多路径访问    2.1安装openfiler软件   2.2配置openfiler软件(配置2个虚拟网卡,模拟服务器的2个HBA卡)   2.3创建ocr磁盘   2.4创建mgmt磁盘   2.5创建数据文件磁盘   2.6创建归档日志磁盘3.安装2台数据库服务器    3.1安装2台数据库服务器RHEL7.5   3.2配置服务器双网卡绑定+配置服务器心跳线4.安装多路径软件识别共享存储中的磁盘     4.1安装服务器本地yum源    4.2安装iscsi软件,配置多路径配置文件,识别共享存储中的磁盘    4.3识别ocr磁盘    4.4识别mgmt磁盘    4.5识别数据文件磁盘    4.6识别归档日志磁盘5.oracle19c的rac环境系统参数官方说明     5.1如何配置oracle19c的rac的系统参数(我们参考官方说明)    5.2oracle19c+rac环境Best Practices 官方说明文档6.安装oracle19c+rac之前的准备工作     6.1修改/etc/hosts文件    6.2配置DNS服务器+DNS客户端+NTP服务器+NTP客户端    6.3创建用户和组    6.4创建目录    6.5修改用户环境变量    6.6安装相关软件包    6.7配置ssh互信    6.9禁用服务器透明大页7.安装oracle+19c+rac软件    7.1安装GI软件   7.2创建ASM磁盘,主要是数据文件磁盘和归档日志磁盘   7.3安装数据库软件   7.4创建数据库实例   7.5日常常用维护集群命令(启停数据库,启停集群,查看监听,教同学们怎样不死记命令,而且命令还正确)8.打补丁   8.1打GI和ORACLE的操作系统补丁  8.2打OJVM补丁  8.3打ORA600的bug补丁9.课程总结和成果演示  9.1课程总结和成果演示 四学习必要工具 安装workstation软件  官网下载openfiler,rhel7.5软件下载oracle软件(包括19.3的rac安装包,19.4的补丁)以上软件我都已经在视频里面做了下载地址说明五课程纠错1)rac的私有ip应该是不同的网段,我在视频中设置错误。Ensure all private Ethernet interfaces are set to different subnets on each node. If different subnets are not used and connectivity is lost, this can cause a node reboot within the cluster2)配置好multipath,以及多路径的别名后,还要增加如下配置文件。[root@hellorac1 rules.d]# cat /etc/udev/rules.d/99-persistent.rulesENV==data, OWNER:=grid, GROUP:=asmadmin, MODE:=660上面的配置文件增加成功后,运行如下命令:#udevadm control --reload-rules#/sbin/udevadm trigger --type=devices --action=change执行完成之后,会发现/dev/dm*相应的磁盘权限变成grid.asmadmin. 视频中只运行了udevadm control --reload-rules。3)安装GI部分1和部分2,先看部分2,再看部分1.特此纠正上面的3个错误。谢谢大家的支持和厚爱。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值