dsc共享磁盘搭建

本文详细介绍了如何配置达梦数据库集群,包括虚拟机设置、磁盘共享、分区操作、裸设备绑定、权限调整、配置文件编辑以及初始化数据库等步骤。过程中遇到的磁盘I/O错误、文件权限问题、裸设备大小查询错误等故障,均提供了相应的解决方案。最后,还提到了防火墙关闭和监控器的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先创建两个虚拟机,分别为DSC1,DSC2

Ip地址:

DSC01:192.168.1.156 

DSC02:192.168.1.157

DSC1:

创建虚拟磁盘share.vmx

DSC02:

使用现有磁盘

编辑DSC1.vmx 和 DSC2.vmx文件后面加disk.locking = "FALSE"

用于可以解锁同时打开两个共享磁盘的虚拟机

检测是否共享磁盘是否添加成功:

fdisk -l

磁盘 /dev/sdb为共享的磁盘,此为共享成功

然后进行分区操作

分别对1-4号分区进行划分操作

并分配磁盘大小

使用fdisk /dev/sdb 命令进行分区操作

依次输入 n p 1 默认值 +200M

然后依次输入n p 2 默认值 +200M

再依次输入n p 3 默认值 +4096M

最后依次输入n p 4 默认值 默认值

输入w保存:

继续用fdisk -l查看两个虚拟机:

绑定裸设备:

修改权限,编辑两台虚拟机的/etc/dev/rules.d/60-raw.rules 文件,将以下内容添加至文件:

vi /etc/dev/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"

在两台虚拟机上测试:

dsc1:

partprobe /dev/sdb

dsc2:

partprobe /dev/sdb

输入

raw -qa   查询共享磁盘的情况

blockdev --getsize64 /dev/raw/raw1   raw1、raw2、raw3、raw4 每个查看啊每个分区的磁盘大小

DSC1上执行

udevadm trigger --action=add   重启磁盘再查看裸设备同步。

配置dmdcr_cfg.ini:

切换至dmdba用户。

准备配置文件dmdcr_cfg.ini,保存在 /home/dmdata/ 下,只需要在DMDSC01 主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。

配置文件内容如下:

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

DCR_EP_PORT = 9341

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.1.157

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

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

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 = DSC1

DCR_EP_SEQNO = 0

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9741

[GRP_DSC]

DCR_EP_NAME = DSC2

DCR_EP_SEQNO = 1

DCR_EP_PORT = 5237

DCR_CHECK_PORT = 9742

授权:

chown -R dmdba:dinstall /dev/raw /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

切换至dmdba用户

使用 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/dmdata/DAMENG/dmdcr_cfg.ini' identified by 'abcd'

init votedisk '/dev/raw/raw2' from '/home/dmdata/DAMENG/dmdcr_cfg.ini'

然后exit退出。

进入/home/dmdata/DAMENG 配置dmasvrmal.ini文件

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 192.168.1.156 

MAL_PORT = 7236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.1.157

MAL_PORT = 7236  

配置dmdcr.ini文件。

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /home/dmdata/DAMENG/dmasvrmal.ini

#dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 0

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

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdata/dmdcr.ini

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

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr path=path=/home/dmdata/DAMENG/dm.ini dcr_ini=/home/dmdata/DAMENG/dmdcr.ini

在DMDSC02中操作,在dmdata目录下创建dmdcr.ini文件,复制以下内容。

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /home/dmdata/DAMENG/dmasvrmal.ini

#dmasmsvr 使用的 MAL 配置文件路径

DMDCR_SEQNO = 1

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

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdata/DAMENG/dmdcr.ini

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

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr path=path=/home/dmdata/DAMENG/dm.ini dcr_ini=/home/dmdata/DAMENG/dmdcr.ini

在DMDSC01和DMDSC02先后启动dmcss、dmasmsvr

./dmcss DCR_INI=/home/dmdata/DAMENG/dmdcr.ini #dmcss

./dmasmsvr DCR_INI=/home/dmdata/DAMENG/dmdcr.ini #dmasmsvr

启动dmcss后:

启动dmasmsvr后:

./dmasmtool DCR_INI=/dmdata/dmdcr.ini

 

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

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

 

配置dminit.ini文件

db_name = dsc

system_path = +DMDATA/dmdata

system = +DMDATA/dmdata/dsc/system.dbf

system_size = 128

roll = +DMDATA/dmdata/dsc/roll.dbf

roll_size = 128

main = +DMDATA/dmdata/dsc/main.dbf

main_size = 128

ctl_path = +DMDATA/dmdata/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 =/dmdata

port_num = 5236

mal_host = 192.168.30.156

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/dmdata/dsc1_config

port_num = 5237

mal_host = 192.168.30.157

mal_port = 9341

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

初始化数据库

cd /home/dmdba/dmdbms/bin

./dminit control=/dmdata/dminit.ini

 

13.启动

cd /home/dmdba/dmdbms/bin

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

 

 

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

 

使用Disql或者manager执行以下代码可查看集群信息
select * from v$dsc_ep_info;

 

 

  1. 配置监视器

cd /home/dmdba/dmdbms

mkdir dmcssm

cd dmcssm

vi dmcssm.ini

CSSM_OGUID = 63635

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

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

CSSM_CSS_IP = 192.168.30.156:9341

CSSM_CSS_IP = 192.168.30.157:9343

CSSM_LOG_PATH =../log #监视器日志文件存放路径

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

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

 

启动:

cd /home/dmdba/dmdbms/bin

./dmcssm INI_PATH=/home/dmdba/dmdbms/dmcssm/dmcssm.ini

 

实例:

./dm_service_installer.sh -t dmcss -p DSC -dcr_ini /dmdata/dmdcr.ini

CSS:

./dm_service_installer.sh -t dmasmsvr -p DSC -dcr_ini /dmdata/dmdcr.ini -y DmCSSServiceDSC

ASM:

./dm_service_installer.sh -t dmserver -p DSC -dm_ini /dmdata/dsc0_config/dm.ini -dcr_ini /dmdata/dmdcr.ini -y DmASMSvrServiceDSC

./dm_service_installer.sh -t dmserver -p DSC -dm_ini /dmdata/dsc1_config/dm.ini -dcr_ini /dmdata/dmdcr.ini -y DmASMSvrServiceDSC注意注册服务记得加  -y

安装虚拟机的时候报unpxpected error:disk I/O error的错误

解决方法:对流程的理解出现了错误,第一次搭建的时候,把第一个磁盘和共享的磁盘同时一起新建了,导致虚拟机初始化的时候导致磁盘损坏,后来先建一个新磁盘,初始化安装虚拟机之后,再关机新建共享的磁盘,再在第二个节点上创建现有的磁盘就不会出错了

第二个问题:

在使用dmasmcmd工具初始化的时候,出现打开文件失败

解决方案:

切换到root用户,发现/dev/raw/的raw四个文件不是dmdba的权限,用root用户给四个文件授权给dmdba用户既可解决

第三个问题:

查看裸设备大小blockdev --getsize64 /dev/raw/raw1的时候报错

在划分盘,通过udevadm trigger --action=add命令执行后,尝试关机重启虚拟机后恢复正常。

第四个问题:

DSC1和DSC2无法通信成功的情况下,首先检查三个配置文件,如果三个配置文件没有出问题的话,

Systemctl stop firewalld  关闭防火墙

更多资讯请上达梦技术社区了解: https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值