【达梦数据库】两节点DSC集群安装部署


1 DSC集群及其组成

DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。

2 准备工作

2.1 软硬件环境

  • 硬件:

2台相同配置的虚拟机:DSC0 和 DSC1。

2GB RAM,1×2核 x86_64 CPU,1块网卡。

100GB 共享盘。

IP:192.168.1.10(DSC0)、192.168.1.11(DSC1)

  • 软件:
软件版本命令
OSCentOS Linux release 7.9.2009 (Core)cat /etc/*release
数据库DM Database Server x64 V8select * from v$instance;
数据库软件目录/home/dmdba/dmdbms

2.2 新建共享磁盘

一、配置DSC0的磁盘
  1. 在DSC1的虚拟机设置中点击“添加”,选择“硬盘”、“SCSI”、“创建新虚拟磁盘”,设置好磁盘大小,勾选“立即分配”和“存储为单个文件”,将磁盘命名为DSC.vmdk,点击“完成”开始创建磁盘。

image-20230817100227465

  1. 磁盘创建完成后,在高级设置中设置磁盘模式,最后点击“确定”,不然修改不会生效。

image-20230817101731183

二、配置DSC1的磁盘
  1. 在虚拟机DSC1的安装目录下找到DSC1.vmx文件,用记事本打开,添加以下几行:
disk.locking="FALSE"
scsi1:0.SharedBus="Virtual"
scsi1:1.SharedBus="Virtual"
scsi2:0.SharedBus="Virtual"
scsi2:1.SharedBus="Virtual"

以上的设置表示所有的BUS都共享。

如果不是所有的BUS都要共享,可以将上面的设置参数改为“true",如:scsi1:0.SharedBus=“true”

  1. 在DSC1的虚拟机设置中添加硬盘,前面的步骤与DSC1相同,选择“使用吸纳有虚拟磁盘”。选择DSC0虚拟机目录中的磁盘文件DSC0.vmdk,点击完成。最后在高级设置中修改磁盘模式即可。

image-20230815110532945

image-20230817101951806

三、裸设备划分
  1. 打开虚拟机,输入fdisk -l查看共享磁盘路径,路径为/dev/sdb

image-20230818094604762

  1. 执行命令fdisk /dev/sdb,在共享磁盘上进行裸设备划分==(只在DSC0节点上做)==,n为新增分区
  • 第一块磁盘划分(放dcr信息):输入np,回车,回车,+100M

  • 第二块磁盘划分(放vote信息):输入np,回车,回车,+100M

  • 第三块磁盘划分(放redo log):输入np,回车,回车,+4G

  • 第四块磁盘划分(放data):输入np,回车,回车,回车。

最后输入w,保存配置。

清除全部分区:dd if=/dev/zero of=/dev/sdb bs=10M count=10

image-20230816100853787

  1. 编辑 /etc/udev/rules.d/70-persistent-ipoib.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"

3 部署DSC

3.1 创建目录

两机器都要做。

配置文件存放目录:/home/dmdba/dmdbms/dsc/config

su - dmdba
mkdir -p /home/dmdba/dmdbms/dsc/config

3.2 创建配置文件

DSC0:dmdcr.ini 、dmdcr_cfg.ini 、dmasvrmal.ini 、dminit.ini
cd /home/dmdba/dmdbms/dsc/config
touch dmdcr.ini dmdcr_cfg.ini dmasvrmal.ini dminit.ini

dmdcr.ini

DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /home/dmdba/dmdbms/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

dmdcr_cfg.ini

  DCR_N_GRP                = 3  #集群环境有多少个GROUP,范围:1~16
  DCR_VTD_PATH             = /dev/raw/raw2  #Voting Disk Path
  DCR_OGUID                = 45331

[GRP]  #新建一个GROUP
  DCR_GRP_TYPE             = CSS  #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_CSS  #组名
  DCR_GRP_N_EP             = 2  #组内节点个数
  DCR_GRP_DSKCHK_CNT       = 60  #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS0  #CSS节点名
  DCR_EP_HOST              = 192.168.1.10  #心跳地址
  DCR_EP_PORT              = 5336  #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS1
  DCR_EP_HOST              = 192.168.1.11
  DCR_EP_PORT              = 5336

[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  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 93360  #共享内存标识
  DCR_EP_SHM_SIZE          = 10  #共享内存大小
  DCR_EP_HOST              = 192.168.1.10  #心跳地址
  DCR_EP_PORT              = 5436  #ASM端口
  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              = 192.168.1.11
  DCR_EP_PORT              = 5436
  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  #实例名,和dm.ini的INSTANCE_NAME一致
  DCR_EP_SEQNO             = 0  #组内序号,不能重复
  DCR_EP_PORT              = 5236  #实例端口,和dm.ini的PORT_NUM一致
  DCR_CHECK_PORT           = 5536  #DCR检查端口
[GRP_DSC]
  DCR_EP_NAME              = DSC1
  DCR_EP_SEQNO             = 1
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 5536

dmasvrmal.ini

[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.1.10  #心跳地址
  MAL_PORT                 = 5636  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.1.11
  MAL_PORT                 = 5636

dminit.ini

  db_name                  = dsc
  system_path              = +DMDATA/data
  main                     = +DMDATA/data/dsc/main.dbf
  main_size                = 128
  roll                     = +DMDATA/data/dsc/roll.dbf
  roll_size                = 128
  system                   = +DMDATA/data/dsc/system.dbf
  system_size              = 128
  ctl_path                 = +DMDATA/data/dsc/dm.ctl
  ctl_size                 = 8
  log_size                 = 2048
  dcr_path                 = /dev/raw/raw1
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32
  CASE_SENSITIVE           = 0
  CHARSET                  = 1
  EXTENT_SIZE              = 32

[DSC0]
  config_path              = /home/dmdba/dmdbms/dsc/config/dsc0_config
  port_num                 = 5236
  mal_host                 = 192.168.1.10
  mal_port                 = 5736
  log_path                 = +DMDATA/log/dsc0_log01.log
  log_path                 = +DMDATA/log/dsc0_log02.log 
[DSC1]
  config_path              = /home/dmdba/dmdbms/dsc/config/dsc1_config
  port_num                 = 5236
  mal_host                 = 192.168.1.11
  mal_port                 = 5736
  log_path                 = +DMDATA/log/dsc1_log01.log
  log_path                 = +DMDATA/log/dsc1_log02.log
DSC1:dmdcr.ini 、dmasvrmal.ini
cd /home/dmdba/dmdbms/dsc/config
touch dmdcr.ini dmasvrmal.ini

dmdcr.ini

DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /home/dmdba/dmdbms/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

dmasvrmal.ini(跟DSC1一样)

[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.1.10  #心跳地址
  MAL_PORT                 = 5636  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.1.11
  MAL_PORT                 = 5636

3.3 在 DSC0 使用 DMASMCMD 工具初始化

/home/dmdba/dmdbms/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/dmdba/dmdbms/dsc/config/dmdcr_cfg.ini' identified by 'SYSDBA'

init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/dsc/config/dmdcr_cfg.ini'

3.4 启动 CSS、ASM 服务

在 DSC0、DSC1 节点分别启动 dmcss、dmasmsvr。(复制窗口分别启动)

su - dmdba
cd /home/dmdba/dmdbms/bin
./dmcss DCR_INI=/home/dmdba/dmdbms/dsc/config/dmdcr.ini
./dmasmsvr DCR_INI=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

3.5 创建 DMASM 磁盘组

## 在 DSC0 节点启动 dmasmtool 工具
cd /home/dmdba/dmdbms/bin
./dmasmtool DCR_INI=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

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

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

3.6 使用 dminit 初始化 DB 环境

在 DSC0 节点启动 dminit 工具初始化数据库。dminit 执行完成后,会在/home/dmdba/dmdbms/dsc/config下生成两个文件夹:dsc0_configdsc1_config

cd /home/dmdba/dmdbms/bin
./dminit control=/home/dmdba/dmdbms/dsc/config/dminit.ini

## 拷贝 dsc1_config 文件夹到 DSC1 的相同位置
scp -r /home/dmdba/dmdbms/dsc/config/dsc1_config dmdba@192.168.1.11:/home/dmdba/dmdbms/dsc/config

3.7 启动数据库集群

## 启动数据库
## DSC0
./dmserver /home/dmdba/dmdbms/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini
## DSC1
./dmserver /home/dmdba/dmdbms/dsc/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/dsc/config/dmdcr.ini

3.8 配置监视器

在 DSC1 上创建 dmcssm.ini

[dmdba@~]$ vi /home/dmdba/dmdbms/dmcssm.ini

CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 192.168.1.10:5336
CSSM_CSS_IP                = 192.168.1.11:5336
CSSM_LOG_PATH              = ../log
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048

3.9 注册 CSS、ASM、DMSERVER 后台服务

## DSC0 机器
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -p CSS0
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -y DmCSSServiceCSS0.service -p ASM0
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/dsc/config/dsc0_config/dm.ini -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -y DmASMSvrServiceASM0.service -p DSC0

## DSC1 机器
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -p CSS1
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -y DmCSSServiceCSS1.service -p ASM1
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/dsc/config/dsc1_config/dm.ini -dcr_ini /home/dmdba/dmdbms/dsc/config/dmdcr.ini -y DmASMSvrServiceASM1.service -p DSC1
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /home/dmdba/dmdbms/bin/dmcssm.ini -p MON

3.10 开启集群归档

DSC0

cd /home/dmdba/dmdbms/dsc/config/dsc0_config
vi dm.ini
ARCH_INI = 1

vi dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480

DSC1

cd /home/dmdba/dmdbms/dsc/config/dsc1_config
vi dm.ini
ARCH_INI = 1

vi dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 20480

3.11 使用服务方式启动各项内容

DSC0
./DmCSSServiceCSS0 start
DSC1
./DmCSSServiceCSS1 start
DSC0
./DmASMSvrServiceASM0 start
DSC1
./DmASMSvrServiceASM1 start
DSC0
./DmServiceDSC0 start
DSC1
./DmServiceDSC1 start

3.12 启动cssm监视器

DSC1

cd /home/dmdba/dmdbms/bin
./dmcssm ../dmcssm.ini

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值