# 达梦数据库-RAC-DMDSC部署的关键点

# 达梦数据库-RAC-DMDSC部署的关键点


>说明:这里的操作系统版本版本为Centos7
>这里的数据库版本为:1-1-19-19.09.16-112838-ENT    ([下载链接](http://huanan2.vipgz2.idcfengye.com/f/3726ad373e324218b6f0/?dl=1) 密码:woshiyigemima)
>这里参考的数据库手册为:[\DBMS_20190917-v8\doc\special\DM8_DMDSC.pdf](http://huanan2.vipgz2.idcfengye.com/f/0ac1ded4340e4ec4b49e/?dl=1)

## 环境准备


1. 网络准备(ip地址分配)、共享磁盘准备和挂载
ifconfig enp0s8 10.1.2.101;ifconfig enp0s9 192.168.56.101
ifconfig enp0s8 10.1.2.102;ifconfig enp0s9 192.168.56.102

2. 关闭防火墙
service  firewalld stop

## 确认用的东西


确认所参考的手册、以及所用的dmserver的版本

## 裸设备挂载


怎么绑定(使用多路径,还是使用sdx的名称绑定),在不同的操作系统版本(rh6系列和rh7系列可能不同),实际的挂载方法不同,是各种部署手册的实际差异。
而其他内容,在做好了“环境准备、确认用的东西”之后,一般都是不会碰到问题的。

### 怎么绑定?


使用多路径绑定、使用sdx名称绑定的不同,实际上,就是同一个配置文件的写法不同。

### 怎么生效绑定?


这个也是一个新手常见的拦路虎,有下面几种可用的方法:
1.写好配置文件后:执行 start_udev,完成裸设备绑定。(from dm8_dmdsc.pdf 手册)
2.写好配置文件后:依次执行 /sbin/udevadm control --reload 和/sbin/udevadm trigger --type=devices --action=change,完成裸设备绑定。(from 刘欣dmdsc搭建手册,通过多路径绑定的名称,实际上使用的就是uuid)
3.写好配置文件后,执行partprobe /dev/sdb,完成裸设备绑定。(from https://blog.csdn.net/fengxiaozhenjay/article/details/104449068/ )这里实际上就是对应第一种的start_udev方法,只是在rh7上(rh6 start_udev,rh7 partprobe /dev/sdb),使用的命令方式不一样而已。

> /sbin/udevadm control --reload;/sbin/udevadm trigger --type=devices --action=change;partprobe /dev/sdb;partprobe /dev/sdc

## 其他注意事项


1.配置dmdcr.ini时,对于两个xxSTARTUP_CMD 后面是一个命令+一个参数,一定注意后面的参数(是配置文件路径),一定不要另起一行。


## 其他可能碰到的错误


### ASM无法起来-->防火墙和权限问题


![file](https://graph.baidu.com/resource/222a60448f42ef6f1923201582441675.png)
1.注意裸设备绑定文件的所有者,和权限。
2.注意防火墙是否关闭,或者开启了对应通行策略。

### dminit创建信号量失败-->需要在控制节点dminit


![file](https://graph.baidu.com/resource/222829494905c6140d59401582442505.png)

## 最后搭建成功的效果


![file](https://graph.baidu.com/resource/22264656947b61c32a42e01582443058.png)

## 一些重要的步骤


1.绑定裸设备配置文件
[root@bogon bin]# cat /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=="sdc1", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dmdba", MODE="660"
[root@bogon bin]#

2.绑定裸设备命令
/sbin/udevadm control --reload;/sbin/udevadm trigger --type=devices --action=change;partprobe /dev/sdb;partprobe /dev/sdc

如果是 rh6,可能用到 start_udev 来替换 partprobe

3.asm的配置
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'

4.dminit前的初始化,datadisk初始化
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

5.初始化数据库(要现有dminit.ini)
./dminit control=/home/data/dminit.ini

6.启动dmserver的命令复制用
./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

## 需要用的几个配置文件

1.最核心的配置文件dmdcr.ini

DMASM 的两个节点分别配置 dmdcr.ini, dmdcr_path 相同, dmasvrmal.ini 文件内容也相同, dmdcr_seqno 分别为 0 和 1。

dmdcr.ini 文件,各个节点不一样,dmdcr_path要一样,只有dmdcr_seqno要不同,这是核心的文件,要设置 位在四。
一是raw绑文件,二是cfg(dmdcr_cfg.ini),三是mal 都一样(dmasvrmal.ini),
第四个就是最核心的dmdcr.ini,
第五个就是dminit.ini和拷贝dminit后的文件。

raw-->partprobe->cfg(SHM_SIZE)-->4+2 asmcmd-->mal-->dcr-->css asm-->asmtool diskgroup-->dminit.ini-->start

磁盘组等同于表空间,asmdick等同于数据文件,在部署过程中,我们是先初始化好数据文件后,再用数据文件来建立磁盘组(表空间的)—— 这个是dmdsc和非dmdsc实例,新建表空间的一个小差异,因为在非dmdsc上,os系统可以完成这个,dmdsc中我们预做的工作。所以,需要我们先来做好。

理解好下面这个图:动态添加磁盘,dmasmcmd create asmdisk 'xxx/rawx' 'NewName',dmasmtool alter diskgroup 'Name' add asmdisk 'xxxx/rawxxx'
![file](https://graph.baidu.com/resource/2228e591457ee1ee3c03c01582461909.png)

注意事项:

1.添加磁盘时

所有RAC节点上都运行以下两条语句,完成裸设备的绑定
partprobe /dev/sdb
/sbin/udevadm trigger --type=devices --action=change
可以通过blockdev --getsize64 /dev/raw/raw5命令查看裸设备大小或者 ll /dev/raw
rh6 start_udev

2.不用格式化但是要分区

基础需要四加二 dmasmcmd,在dmdcr_cfg.ini后
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'

再配mal dmasvrmal.ini,就搞dmdcr.ini

启动css、asm,dmasmtool待dmdcr.ini把磁盘组来建,磁盘组 表空间。dminit就可以,在启服务就完毕。

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

![file](https://graph.baidu.com/resource/222a82d6ad3f0525c15c801582460457.png)

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

用到这个配置文件的命令:

[dmdba@bogon bin]$ ./dmcss dcr_ini=/home/data/dmdcr.ini
[dmdba@bogon bin]$ ./dmasmsvr dcr_ini=/home/data/dmdcr.ini
[dmdba@bogon bin]$ ./dmasmtool DCR_INI=/home/data/dmdcr.ini
[dmdba@bogon bin]$ ./dmserver /home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

3.最基础的一个配置文件dminit.ini(实例相关)


[dmdba@bogon bin]$ cat /home/data/dminit.ini
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/data/dsc0_config
port_num = 5236
mal_host = 10.1.2.101
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/data/dsc1_config
port_num = 5237
mal_host = 10.1.2.102
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
[dmdba@bogon bin]$

4.最早的一个配置文件dmdcr_cfg.ini--> 要注意DCR_EP_SHM_SIZE 10 M 可以管理500G


[dmdba@bogon bin]$ cat /home/data/dmdcr_cfg.ini
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 = 10.1.2.101
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.1.2.102
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 = 10
DCR_EP_HOST = 10.1.2.101
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 = 10
DCR_EP_HOST = 10.1.2.102
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 = 5236
DCR_CHECK_PORT = 9742
[dmdba@bogon bin]$

5.这个文件,多个节点一样dmasvrmal.ini

[dmdba@bogon bin]$ cat /home/data/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 10.1.2.101
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 10.1.2.102
MAL_PORT = 7237
[dmdba@bogon bin]$

猜你喜欢

转载自blog.51cto.com/12196785/2473113