达梦DSC集群搭建

 1.安装前的规划

集群的规划

A机器

B机器

C机器

IP

192.168.40.128

192.168.40.129

192.168.40.130

实例名

DSC0

DSC1

DSC2

实例端口

5236

5237

5238

OGUID

63635

63635

63635

CSS

DCR_EP_NAME

CSS0

CSS1

CSS2

DCR_EP_HOST

192.168.40.128

192.168.40.129

192.168.40.130

DCR_EP_PORT

9341

9343

9345

ASM

DCR_EP_NAME

ASM0

ASM1

ASM2

DCR_EP_HOST

192.168.40.128

192.168.40.129

192.168.40.130

DCR_EP_PORT

9349

9351

9353

DB

DCR_EP_NAME

DSC0

DSC1

DSC2

DCR_EP_PORT

5236

5237

5238

DCR_CHECK_PORT

9741

9742

9743

dmasvrmal

MAL_INST_NAME

ASM0

ASM1

ASM2

MAL_HOST

192.168.40.128

192.168.40.129

192.168.40.130

MAL_PORT

7236

7236

7236

dminit

实例名

DSC0

DSC1

DSC2

PORT_NUM

5236

5237

5238

MAL_HOST

192.168.40.128

192.168.40.129

192.168.40.130

MAL_PORT

9340

9341

9342

2.创建共享磁盘

A机器:

编辑虚拟机设置

选择硬盘添加

B和C机器:

添加硬盘,选择使用现有磁盘,找到共享磁盘存放位置,点击完成

以上完成共享磁盘的挂载

A,B,C三台机器找到虚拟机安装目录,在.vmx文件中添加

disk.locking="FALSE"

3.共享磁盘分区

在共享磁盘上裸设备划分(任一机器即可)

fdisk -l  #查看信息

fdisk /dev/sdb  #分区,划分完成后,输入w保存

依次输入 n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分

依次输入 n -> p -> 2 -> 回车 -> +100M ->  回车,完成第二块磁盘划分

依次输入 n ->  p ->   3 -> 回车 ->   +2048M ->  回车,完成第三块磁盘划分

依次输入 n ->   p ->   回车 -> 回车 ->  回车 ->  回车,完成第四块磁盘划分

再次查看磁盘

fdisk -l

A,B,C机器都需要操作, 编辑 /etc/udev/rules.d/60-raw.rules 文件,增加以下语句:

vi /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

udevadm trigger --action=add

查看是否绑定成功

ll /dev/raw/raw*

给dmdba用户赋予目录权限

chown dmdba:dinstall -R /dev/raw

chmod -R 755 /dev/raw

4.安装达梦数据库

按照单机部署步骤在A,B,C三台机器上完成数据库安装

5.配置文件

在数据库安装目录下新建config文件夹

mkdir /home/dm8/config

配置dmdcr_cfg.ini文件,三个节点都要执行,使用dmdba用户

vi /home/dm8/config/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 = 3

DCR_GRP_DSKCHK_CNT = 60

[GRP_CSS]

DCR_EP_NAME = CSS0

DCR_EP_HOST = 192.168.40.128

DCR_EP_PORT = 9341

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.40.129

DCR_EP_PORT = 9343

[GRP_CSS]

DCR_EP_NAME = CSS2

DCR_EP_HOST = 192.168.40.130

DCR_EP_PORT = 9345

[GRP]

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = GRP_ASM

DCR_GRP_N_EP = 3

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.40.128

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.40.129

DCR_EP_PORT = 9351

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP_ASM]

DCR_EP_NAME = ASM2

DCR_EP_SHM_KEY = 93362

DCR_EP_SHM_SIZE = 20

DCR_EP_HOST = 192.168.40.130

DCR_EP_PORT = 9353

DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_DSC

DCR_GRP_N_EP = 3

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

[GRP_DSC]

DCR_EP_NAME = DSC2

DCR_EP_SEQNO = 2

DCR_EP_PORT = 5238

DCR_CHECK_PORT = 9743

使用DMASMCMD工具初始化

在DM数据库安装bin目录下(任一机器执行即可)

cd /home/dm8/bin

./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/dm8/config/dmdcr_cfg.ini'identified by 'dm123'

init votedisk '/dev/raw/raw2' from '/home/dm8/config/dmdcr_cfg.ini'

配置DMASM的MAL文件

三个节点都要执行,内容如下:

vi /home/dm8/config/dmasvrmal.ini

[MAL_INST1]

 MAL_INST_NAME = ASM0

 MAL_HOST = 192.168.40.128

 MAL_PORT = 7236

[MAL_INST2]

 MAL_INST_NAME = ASM1

 MAL_HOST = 192.168.40.129

 MAL_PORT = 7236

[MAL_INST3]

 MAL_INST_NAME = ASM2

 MAL_HOST = 192.168.40.130

 MAL_PORT = 7236

配置dmdcr.ini文件

三台机器的DMDCR_SEQNO 参数分别设置为0,1,2

A机器:

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH =/home/dm8/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 10

DMDCR_ASM_STARTUP_CMD = /home/dm8/bin/dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 30

DMDCR_DB_STARTUP_CMD = /home/dm8/bin/dmserver path=/home/dm8/config/dsc1/dm.ini     dcr_ini=/home/dm8/config/dmdcr.ini

B机器:

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH =/home/dm8/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 1

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 10

DMDCR_ASM_STARTUP_CMD = /home/dm8/bin/dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 30

DMDCR_DB_STARTUP_CMD = /home/dm8/bin/dmserver path=/home/dm8/config/dsc2/dm.ini dcr_ini=/home/dm8/config/dmdcr.ini

C机器:

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH =/home/dm8/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 2

#ASM 重启参数,命令行方式启动

DMDCR_ASM_RESTART_INTERVAL = 10

DMDCR_ASM_STARTUP_CMD = /home/dm8/bin/dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

#DB 重启参数,命令行方式启动

DMDCR_DB_RESTART_INTERVAL = 30

DMDCR_DB_STARTUP_CMD = /home/dm8/bin/dmserver path=/home/dm8/config/dsc2/dm.ini dcr_ini=/home/dm8/config/dmdcr.ini

启动DMCSS,DMASM服务

在数据库安装bin目录下,三台机器都执行

 ./dmcss DCR_INI=/home/dm8/config/dmdcr.ini

./dmasmsvr DCR_INI=/home/dm8/config/dmdcr.ini

使用 dmasmtool 工具创建 DMASM 磁盘组

一个节点执行即可

./dmasmtool DCR_INI=/home/dm8/config/dmdcr.ini

#创建日志磁盘组

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

#创建数据磁盘组

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

配置dmini.ini文件

在A机器上执行如下命令:

vi /home/dm8/config/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/dm8/config/dsc1

port_num = 5236

mal_host = 192.168.40.128

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/dm8/config/dsc2

port_num = 5237

mal_host = 192.168.40.129

mal_port = 9341

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path = /home/dm8/config/dsc3

port_num = 5238

mal_host = 192.168.40.130

mal_port = 9342

log_path = +DMLOG/log/dsc2_log01.log

log_path = +DMLOG/log/dsc2_log02.log

使用 dminit 初始化 DB 环境

A机器执行如下命令:

./dminit control=/home/dm8/config/dminit.ini

会在config_path配置的目录下生成dm.ini和dmmal.ini配置文件

将dsc目录拷贝到B/C机器上

scp -r dsc2 192.168.40.129:/home/dm8/config/

scp -r dsc3 192.168.40.130:/home/dm8/config/

6.启动数据库服务

A机器

 启动css        ./dmcss DCR_INI=/home/dm8/config/dmdcr.ini

 启动asmvr      ./dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

 启动实例       ./dmserver /home/dm8/config/dsc1/dm.ini dcr_ini=/home/dm8/config/dmdcr.ini

B机器

 启动css        ./dmcss DCR_INI=/home/dm8/config/dmdcr.ini

 启动asmvr      ./dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

 启动实例       ./dmserver /home/dm8/config/dsc2/dm.ini dcr_ini=/home/dm8/config/dmdcr.ini

C机器

 启动css        ./dmcss DCR_INI=/home/dm8/config/dmdcr.ini

 启动asmvr      ./dmasmsvr dcr_ini=/home/dm8/config/dmdcr.ini

 启动实例       ./dmserver /home/dm8/config/dsc3/dm.ini dcr_ini=/home/dm8/config/dmdcr.ini

7.配置监视器

可以在B机器上配置dmcssm.ini文件

vi /home/dm8/config/dmcssm.ini

内容如下:

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致

CSSM_OGUID = 63635

#配置所有 CSS 的连接信息,

#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致

CSSM_CSS_IP = 192.168.40.128:9341

CSSM_CSS_IP = 192.168.40.129:9343

 CSSM_CSS_IP = 192.168.40.130:9345

CSSM_LOG_PATH = /home/dm8/data/cssm/log #监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M

CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

8.启动监视器

./dmcssm ini_path=/home/dm8/config/dmcssm.ini

9.测试数据同步

在B机器上创建TEST表,插入一条数据

登录A,C机器查看数据同步情况

测试故障后,集群正常提供服务

通过命令行查询数据库服务进程id,使用kill -9 命令结束进程

在监视器中查看集群变化情况

集群恢复正常

  更多关于达梦数据库详细内容请关注达梦在线服务平台官网:

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值