达梦DMDSC集群部署搭建

环境准备

(1)需要2台虚机,内存最好2G以上。每台虚机装好DM8,装好后不需要初始化。
(2)本文为机器起名,第一台叫节点1,第二台叫节点2,方便称呼。因为是学习使用,因此使用vmware搭建。
(3)为节点1挂载一块磁盘,需关机,然后vmware上编辑虚机设置,添加一块硬盘(生产上可以找运维帮忙挂,必须是裸设备)。生产上建议挂2块及以上,数据和日志分开存放。
这边建议该硬盘为单个文件,“虚拟设备节点”,选择1:0。
(4)第二个节点,关机,添加硬盘,选择现有硬盘,浏览并选择节点1的硬盘文件(.vmdk),“虚拟设备节点”选择0:1。
然后,进入每台虚机的目录,记事本打开“xxxx.vmx”文件,末尾处添加:

disk.locking="FALSE"
scsi0:1.SharedBus="Virtual"
scsi1:1.SharedBus="Virtual"

注:末尾必须是回车结尾。
(5)若有多块硬盘,基本都是这么挂载,“虚拟设备节点”右边数字递增或使用默认的即可。

(6)配置文件目录:因为DMDSC的共享磁盘,实际就是存放数据等内容的,所以许多软件的.ini配置文件,都得放在虚机的本地上,不能放在共享磁盘,因此需要规划个地方存放。本文使用/dmdate,作为配置文件目录

(7)本文说所的“bin目录”,均为DM8的安装目录下的bin目录,例安装目录是/dmdbms,那么bin目录就是/dmdbms/bin

注:DMDSC集群后面会初始化,并配置实例信息,同时自动拉起实例。因此只需提前制定好数据库名、端口等信息即可。到时候2个节点的数据库都会建在共享磁盘上(即vmware的那个磁盘文件),而库的配置文件(包括其他软件的配置文件)都会在本机上(即你操作的虚机),这也是为何会有(6)的原因

DM8试用版下载地址:https://eco.dameng.com/download/?_blank


1、共享磁盘(裸设备)分区

(1)两台虚机都开机,使用root用户,关闭防火墙
(2)节点1,执行fdisk -l,能看到刚才挂载的共享硬盘就可以(若只挂了1块,那名字默认叫sdb,挂2块是sdb和sdc,以此类推)
(3)节点2,同样执行fdisk -l,查看是否能看到共享磁盘

共享磁盘需要划分为4份,用于存放 dcr信息、vote信息、redo log、data,分别绑定为raw1~raw4 

(4)节点1,执行fdisk /dev/sdb,进行磁盘分区
依次输入:
n→p→1→回车→+100M→回车
n→p→2→回车→+100M→回车
n→p→3→回车→+2048M→回车
n→p→回车→回车(即默认把剩余所有空间给分区4)
w→回车
(5)再次执行fdisk -l查看共享磁盘,下方是否有分区信息
(6)然后去节点2,也执行fdisk -l查看共享磁盘是否有分区信息,若没有,表示共享磁盘挂载有问题,没通,返回《1、环境准备》重新挂载

若挂了4个或以上磁盘,并且每个磁盘大小都足以存放上方内容,那可跳过这步 

两个节点,执行:

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="dinstall", MODE="660"

挂载多个磁盘的,注意修改KERNEL的磁盘名 


完成后,两个节点,都执行以下命令,使裸设备绑定生效 

udevadm trigger --type=devices --action=change

 查看裸设备:

ll /dev/raw/*


返回以下:

crw-rw----. 1 dmdba dinstall 162, 1 12月 24 16:49 /dev/raw/raw1
crw-rw----. 1 dmdba dinstall 162, 2 12月 28 21:25 /dev/raw/raw2
crw-rw----. 1 dmdba dinstall 162, 3 12月 28 21:22 /dev/raw/raw3
crw-rw----. 1 dmdba dinstall 162, 4 12月 28 19:25 /dev/raw/raw4
crw-rw----. 1 root  disk     162, 0 12月 24 16:49 /dev/raw/rawctl


#若看不到这些文件,或者文件的权限不对,没关系,暂时忽略
(7)两台机器,都重启
(8)重启后,再次查看:ll /dev/raw/*
若还是没变化,表示磁盘有问题,只能重新挂载了……

2、创建配置文件,切换回dmdba用户

su - dmdba
去配置文件目录,即/dmdata,创建配置文件

【dmdcr_cfg.ini】两个节点均配

vi dmdcr_cfg.ini


写入以下内容(除了ip要修改,其他基本不动):

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 = 节点1的ip
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 节点2的ip
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 = 节点1的ip
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 = 节点2的ip
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_CHECK_PORT = 9741
DCR_EP_PORT = 5238
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_CHECK_PORT = 9742
DCR_EP_PORT = 5238

 【初始化dcr】1个节点配置即可

使用dmasmcmd初始化磁盘组,两个方法:
第一,写个文件,将下列内容粘贴保存(注意最后两条的配置文件目录)

vi asmcmd.txt
#asm script file
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 '/dm8/data/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/dm8/data/dmdcr_cfg.ini'


然后去dmdbms的bin目录,执行:

./dmasmcmd script_file=/dmdata/asmcmd.txt

第二,直接去bin目录,执行:

./dmasmcmd

然后依次输入上方每条命令,并回车(注意第一行不用执行,末尾也不需要写分号)

【dmasvrmal.ini】两个节点都配,内容完全一致

vi dmasvrmal.ini


写入以下内容(注意改ip):

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 节点1的ip
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 节点2的ip
MAL_PORT = 7237

【dmdcr.ini】两个节点都配

节点1:

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

节点2:

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

DMDCR_SEQNO为0和1,对应节点1和节点2。末尾path是数据库名和配置文件,注意2个节点数据库名可能不一致,记得根据实际情况修改。

以上DMDCR_ASM_RESTART_INTERVAL、DMDCR_DB_RESTART_INTERVAL两个地方,是自动拉起dmasmsvr、dmserver。先配置0,即手动启动,后续配好后,再改成自动。

 3、启动dmcss、dmasmsvr两个服务(前台启动,注意新开会话),两个节点均起

两个节点,都去bin目录,执行:

./dmcss dcr_ini=/dmdata/dmdcr.ini


然后,两个节点,开新会话:

./dmasmsvr dcr_ini=/dmdata/dmdcr.ini

 返回dmcss启动的那个会话,看到节点1或节点2的返回,内容很多并且没有报错,表示成功

5、dmasmtool创建磁盘组

选择一个节点,再开个新会话,启动dmasmtool工具,在bin目录

./dmasmtool dcr_ini=/dmdata/dmdcr.ini

然后依次执行(同样无分号):

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
exit

【配置dminit.ini】,1个节点即可

注意:这里就是初始化数据库的地方,dminit.ini文件里就是初始化参数,记得根据现场情况、需求去修改!!!

去配置文件目录,即/dmdata,创建配置文件

vi dminit.ini

写入以下内容(注意改ip):

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_seqno = 0
auto_overwrite = 1
page_size = 16
[DSC0]
config_path = /dmdata/dsc0_config
port_num = 5241
mal_host = 节点1的ip
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /dmdata/dsc1_config
port_num = 5241
mal_host = 节点2的ip
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

上方的 port_num = 5241,并不代表数据库的端口是5241,数据库端口是dmdcr_cfg.ini中的DCR_EP_PORT = 5238决定的,有点奇怪但实验证明确实如此……

6、初始化数据库(1个节点)

(1)去bin目录,启动dminit

./dminit control=/dmdata/dminit.ini

末尾返回success和时间,表示成功


(2)然后去/dmdata目录下,会看到成功初始化后生成的配置文件,共2个节点,分别用目录装着,目录名是两个节点的数据库名
(3)每个目录里面都包含着dm.ini和dmmal.ini
(4)将节点2的这个目录,拷贝到节点2的机器上,放在同样的位置即可

scp -r dsc1_config/ dmdba@节点2的ip:/dmdata/


(5)然后删掉节点1上的这个dsc1_config目录

7、启动数据库服务,去bin目录

节点1:

./dmserver /dmdata/dsc0_config/dm.ini dcr_ini=/dmdata/dmdcr.ini

节点2:

./dmserver /dmdata/dsc1_config/dm.ini dcr_ini=/dmdata/dmdcr.ini

同样都是前台启动,注意开新会话。

8、配置远程归档

先将2个节点的dm.ini文件,ARCH_INI设置为1,再往下走

vi dmarch.ini

节点1: 

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/dsc0/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /dmarch/dsc0/arch_remote

节点2:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/dsc1/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = /dmarch/dsc1/arch_remote

这里需要预先建好归档日志存放的目录

9、配置后台启动

先将两个节点,数据库服务,停掉
然后dmcss会话都停掉,两个节点,输入exit,回车
再将dmasmsvr停掉,两个节点,输入exit,回车
去bin目录下的service_template目录下

节点1:

cp DmCSSService ../DmCSSService_dsc0
vi DmCSSService_dsc0

修改DCR_INI_PATH="/dm8/data/dmdcr.ini" 

节点2:

cp DmCSSService ../DmCSSService_dsc1
vi DmCSSService_dsc1

修改DCR_INI_PATH="/dmdata/dmdcr.ini" 

剩余的DmASMSvrService、DmService,也是如此操作

两个节点,返回配置文件目录,/dm8/data,修改dmdcr.ini
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_DB_RESTART_INTERVAL = 30

数字表示秒,即过10秒后拉起。配为0则不拉,需手动拉

然后返回bin目录,执行:

节点1:

./DmCSSService_dsc0 start

节点2:

./DmCSSService_dsc1 start

使用ps -ef | grep dm8,过1分钟后查看dmcss是否正常拉起dmasmsvr和dmserver,正常拉起即可。时间根据实例启动耗时而定,需耐心等待一会。

之后启动,就直接执行这个DmCSSService就行了,dmcss会自动拉起dmasmsvr和dmserver

10、配置DMCSSM监视器(任选一个节点即可)

去配置文件目录,/dmdata

【dmcssm.ini】

vi dmcssm.ini


写入以下内容(注意改ip):
 

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

启动监视器,查看实例情况
 

./dmcssm ini_path=/dmdata/dmcssm.ini

输入show
最后一个,以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。

11、关闭dsc集群

 【后台脚本关闭dsc】

按步骤,先关闭所有集群的数据库服务,可以直接去控制节点关闭,其他节点会跟着关闭。若不放心,那就所有节点都关闭。然后关闭asm,最后关闭css。注意:每台机器上必须等待上一个服务关闭后再继续关闭,不可同时关闭所有服务。css若配置了自动拉起功能,那操作要快一点,以防css拉起。

cd /dmdbms/bin

#先关闭数据库服务
./DmService stop

#然后关闭ASM
./DmASMSvrService stop

#最后关闭CSS
./DmCSSService stop

 【监视器关闭dsc】推荐

顾名思义,使用dmcssm监视器关闭dsc,这种方法最适合配置了自动拉起的dsc集群。

## 启动监视器
./dmcssm ini_path=/dmdata/dmcssm.ini

在监视器中, 输入如下内容(带#的那行是注释,不要复制):

## 查看dsc集群状态
show

## 关闭节点组(按组关闭的,GRP_DSC就是组名,执行上方show命令后能看到dmserver的每个组)
ep stop GRP_DSC

## 此时会看到监视器通知CSS把自动拉起功能临时关闭(注意只是临时,dmcss.ini配置文件没有更改),当看到监视器返回“所有*****已退出”时,表示节点都关闭了,继续下一步操作。

## 关闭ASM组(同样也是按组关闭的,执行show命令后能看到asm的每个组)
ep stop GRP_ASM

## 退出监视器
exit

此时就关闭了所有节点的dmserver进程、所有节点的ASM进程,但是此时CSS进程不会关闭(因为它是大哥),只能手动关闭,执行后台脚本关闭即可,每台节点机器都执行。

## 关闭CSS
./DmCSSService stop

 

社区地址:https://eco.dameng.com

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建达梦共享存储集群可以按照以下步骤进行: 1. 硬件准备: - 确保每个节点都配备高速网络连接和足够的存储空间。 - 选择适当的共享存储设备,如SAN(存储区域网络)或NAS(网络附加存储)。 2. 操作系统安装: - 在每个节点上安装适当的操作系统,如Linux或Windows Server。确保所有节点的操作系统版本和配置相同。 3. 数据库安装: - 按照达梦数据库的安装指南,在每个节点上分别安装达梦数据库软件。确保使用相同的版本和配置参数。 4. 共享存储设置: - 配置共享存储设备,确保所有节点都可以访问共享存储。 - 在共享存储上创建一个共享目录,用于存放数据库文件和日志文件。 5. 集群配置: - 在每个节点上编辑达梦数据库的配置文件,指定共享存储目录作为数据库文件和日志文件的存储路径。 - 配置集群管理工具,如达梦数据库提供的集群管理工具,以管理和监控集群的状态。 6. 启动集群: - 在每个节点上启动达梦数据库实例,并确保所有节点都成功启动。 - 使用集群管理工具,监控集群的状态,确保各个节点之间的通信正常。 7. 测试和验证: - 运行一些测试任务,验证集群的可用性和性能。 - 测试故障转移功能,确保在节点故障时集群可以自动切换到其他可用节点。 以上是达梦共享存储集群搭建的一般步骤。具体的操作步骤和配置可能会根据具体环境和需求有所不同。建议在搭建过程中参考达梦数据库的官方文档或咨询达梦数据库的技术支持团队。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值