Linux+DM8集群DSC部署

该文详细介绍了如何在VMwareWorkstation中配置两台虚机,搭建DM8数据库集群,包括环境准备、前期环境配置、集群搭建、服务启停和应用连接等步骤,强调了生产环境中对网络和硬件冗余的要求。

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

一、环境准备

  1. 本次学习实验采用VMware Workstation创建2台虚机,每台机器至少分配2GB内存。每台虚机部署完成DM8不需要初始化。

  1. 集群群规划,节点A机器、B机器,添加2块网卡模拟业务和心跳网段IP。

为节点A挂载一块磁盘作为裸设备管理,然后vmware上编辑虚机设置,添加一块硬盘生产上建议挂2块及以上,配置文件分存放A\B本地,数据存放共享磁盘。

  1. 为节点B添加硬盘,选择现有硬盘,浏览并选择节点A的硬盘文件(.vmdk),“虚拟设备节点”选择0:1。

  1. 进入每台虚机的目录,编辑xxxx.vmx”文件,末尾处添加:

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

scsi1:1.SharedBus="Virtual"

因为上述环境准备为VM虚拟比较简易,仅供学习实验使用参考。

生产环境建议:

  • 集群间的心跳网络要走数据,最好走两个交换机,来实现冗余和负载均衡

  • 需要把服务器多个心跳网卡绑定为一个逻辑网卡来使用(比如bond方式)。

  • 交换机速度建议为万兆。

  • 每台数据库服务器上必须有两块HBA卡连接光纤交换机,做冗余和负载均衡。

前期环境准备好后开始配置安装DMDSC集群

二、前期环境配置

  1. 修改主机名

  • A机器

[root@~]#hostname dmdsc01

[root@~]#vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=dmdsc01

[root@~]#vi /etc/hostsname

dmdsc01

  • B机器

[root@~]#hostname dmdsc02

[root@~]#vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=dmdsc02

[root@~]#vi /etc/hostsname

dmdsc02

  1. 关闭防火墙

  • A机器、B机器依次执行

[root@~]#systemctl stop firewalld

[root@~]#systemctl disable firewalld

[root@~]#systemctl status firewalld

  1. 设置网卡自启

  • A机器、B机器依次修改

[root@~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes

[root@~]#systemctl restart network

  1. 创建用户、目录、安装数据库

  • A机器:将数据库安装在/opt/dsc/dmdbms目录下

[root@~]#groupadd dinstall -g 2001;useradd -g dinstall dmdba -u 1001;passwd dmdba

[root@~]#<输入密码>

[root@~]#<再次输入密码>

[root@~]#mkdir -p /opt/dsc/setup /opt/dsc/dmdbms /opt/dsc/config /opt/dsc/arch_0/opt/dsc/arch_0_remote /opt/dsc/bak

[root@~]#chown dmdba.dinstall /opt/dsc -R;chmod 777 /opt/dsc -R

[dmdba@~]#/opt/dsc/setup/DMInstall.bin -i

  • B机器:将数据库安装在/opt/dsc/dmdbms目录下

[root@~]#groupadd dinstall -g 2001;useradd -g dinstall dmdba -u 1001;passwd dmdba

[root@~]#<输入密码>

[root@~]#<再次输入密码>

[root@~]#mkdir -p /opt/dsc/setup /opt/dsc/dmdbms /opt/dsc/config /opt/dsc/arch_1/opt/dsc/arch_1_remote /opt/dsc/bak

[root@~]#chown dmdba.dinstall /opt/dsc -R;chmod 777 /opt/dsc -R

[dmdba@~]#/opt/dsc/setup/DMInstall.bin -i

  1. 存储准备

两台虚机都开机,使用root用户,关闭防火墙

节点A,执行fdisk -l,能看到刚才挂载的共享硬盘就可以(若只挂了1块,那名字默认叫sdb,挂2块是sdb和sdc,以此类推)

节点B,同样执行fdisk -l,查看是否能看到共享磁盘

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

[root@~]#fdisk /dev/sdb

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

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

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

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

5) 输入w命令,将裸设备划分的设置进行保存

  1. 挂存储方法

  • A机器、B机器依次修改

[root@~]#vi /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"

[root@~]#partprobe /dev/sdb

[root@~]#reboot

注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。

三、集群搭建

  1. 创建dmdcr_cfg.ini

  • A机器、B机器配置相同

[dmdba@~]#vi /opt/dsc/config/dmdcr_cfg.ini

DCR_N_GRP = 3 #集群环境有多少个GROUP,范围:1~16

DCR_VTD_PATH = /dev/raw/raw2

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.1 #心跳地址

DCR_EP_PORT = 5336 #CSS端口

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.1.2

DCR_EP_PORT = 5337

[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.1 #心跳地址

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

DCR_EP_PORT = 5437

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

  1. 初始化磁盘组

  • A机器

[dmdba@~]#/opt/dsc/dmdbms/bin/dmasmcmd

ASM> create dcrdisk '/dev/raw/raw1' 'dcr'

ASM> create votedisk '/dev/raw/raw2''vote'

ASM> create asmdisk '/dev/raw/raw3' 'LOG0'

ASM> create asmdisk '/dev/raw/raw4''DATA0'

ASM> init dcrdisk '/dev/raw/raw1' from'/opt/dsc/config/dmdcr_cfg.ini' identified by 'admin1234'

ASM> init votedisk '/dev/raw/raw2' from'/opt/dsc/config/dmdcr_cfg.ini'

  1. 创建dmasvrmal.ini

  • A机器、B机器配置相同

[dmdba@~]#vi /opt/dsc/config/dmasvrmal.ini

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 192.168.1.1 #心跳地址

MAL_PORT = 5636 #MAL监听端口

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.1.2

MAL_PORT = 5637

  1. 创建dmdcr.ini

  • A机器

[dmdba@~]#vi /opt/dsc/config/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini

DMDCR_SEQNO = 0

DMDCR_AUTO_OPEN_CHECK = 9

#DMDCR_ASM_RESTART_INTERVAL= 30 #CSS认定ASM故障重启的时间

#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvrdcr_ini=/opt/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL = 60 #CSS认定DSC故障重启的时间

#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserverpath=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini

  • B机器

[dmdba@~]#vi /opt/dsc/config/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1

DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini

DMDCR_SEQNO = 1

DMDCR_AUTO_OPEN_CHECK = 90

#DMDCR_ASM_RESTART_INTERVAL= 30

#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvrdcr_ini=/opt/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL = 60

#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserverpath=/opt/dsc/config/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini

注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini井号)。

  1. 启动CSS、ASM服务

  • A机器、B机器依次执行

[dmdba@~]#/opt/dsc/dmdbms/bin/dmcss DCR_INI=/opt/dsc/config/dmdcr.ini

...

DMCSS IS READY

  • A机器、B机器依次执行

[dmdba@~]#/opt/dsc/dmdbms/bin/dmasmsvr DCR_INI=/opt/dsc/config/dmdcr.ini

...

the ASM server is Ready.

  1. 创建DMASM磁盘组

  • A机器

[dmdba@~]#/opt/dsc/dmdbms/bin/dmasmtool DCR_INI=/opt/dsc/config/dmdcr.ini

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

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

  1. 创建dminit.ini

  • A机器、B机器配置相同

[dmdba@~]#vi /opt/dsc/config/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 = Y

CHARSET = 0

[DSC0]

config_path = /opt/dsc/config/dsc0_config

port_num = 5236

mal_host = 192.168.1.1

mal_port = 5736

log_path = +DMLOG/log/dsc0_log01.log

log_path = +DMLOG/log/dsc0_log02.log

[DSC1]

config_path = /opt/dsc/config/dsc1_config

port_num = 5236

mal_host = 192.168.1.2

mal_port = 5737

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

  1. 初始化实例

  • A机器

--初始化实例

[dmdba@~]#/opt/dsc/dmdbms/bin/dminit control=/opt/dsc/config/dminit.ini

...

create dm database success. 2023-1-7 11:45:31

--拷贝文件

[dmdba@~]#scp -r /opt/dsc/config/dsc1_config dmdba@192.168.1.2:/opt/dsc/config/

  1. 创建dmarch.ini

  • A机器

--修改dm.ini

[dmdba@~]#vi /opt/dsc/config/dsc0_config/dm.ini

ARCH_INI = 1

--创建dmarch.ini

[dmdba@~]#vi /opt/dsc/config/dsc0_config/dmarch.ini

[ARCHIVE_LOCAL]

ARCH_TYPE = LOCAL

ARCH_DEST = /opt/dsc/arch_0

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC1

ARCH_INCOMING_PATH = /opt/dsc/arch_0_remote

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

  • B机器

--修改dm.ini

[dmdba@~]#vi /opt/dsc/config/dsc1_config/dm.ini

ARCH_INI = 1

--创建dmarch.ini

[dmdba@~]#vi /opt/dsc/config/dsc1_config/dmarch.ini

[ARCHIVE_LOCAL]

ARCH_TYPE = LOCAL

ARCH_DEST = /opt/dsc/arch_1

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

[ARCHIVE_REMOTE]

ARCH_TYPE = REMOTE

ARCH_DEST = DSC0

ARCH_INCOMING_PATH = /opt/dsc/arch_1_remote

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 51200

  1. 启动DMSERVER服务

  • A机器

[dmdba@~]#/opt/dsc/dmdbms/bin/dmserver /opt/dsc/config/dsc0_config/dm.ini

dcr_ini=/opt/dsc/config/dmdcr.ini

  • B机器

[dmdba@~]#/opt/dsc/dmdbms/bin/dmserver /opt/dsc/config/dsc1_config/dm.ini

dcr_ini=/opt/dsc/config/dmdcr.ini

  1. 注册CSS、ASM、DMSERVER后台服务

  • A机器

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini/opt/dsc/config/dmdcr.ini -p CSS

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini/opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini/opt/dsc/config/dsc0_config/dm.ini -dcr_ini /opt/dsc/config/dmdcr.ini -yDmASMSvrServiceASM.service -p DSC

  • B机器

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini/opt/dsc/config/dmdcr.ini -p CSS

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini/opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM

[root@~]#/opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini/opt/dsc/config/dsc1_config/dm.ini -dcr_ini /opt/dsc/config/dmdcr.ini -yDmASMSvrServiceASM.service -p DSC

四、配置监视器

  1. 创建dmcssm.ini

  • A机器、B机器配置相同

[dmdba@~]#vi /opt/dsc/dmdbms/bin/dmcssm.ini

CSSM_OGUID = 45331

CSSM_CSS_IP = 192.168.1.1:5336

CSSM_CSS_IP = 192.168.1.2:5337

CSSM_LOG_PATH = ../log

CSSM_LOG_FILE_SIZE = 512

CSSM_LOG_SPACE_LIMIT = 2048

五、启停服务

  1. 启动监视器

[dmdba@~]#/opt/dsc/dmdbms/bin/DmCSSMonitorServiceMonitor start

前台启动:[dmdba@~]#/opt/dsc/dmdbms/bin/dmcssm INI_PATH=/opt/dsc/dmdbms/bin/dmcssm.ini

  1. 启停集群

启动:A/B机器CSS

A/B机器:[dmdba@~]#/opt/dsc/dmdbms/bin/DmCSSServiceCSS start

说明:CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。

停止:A/B机器DMSERVER→A/B机器ASM→A/B机器CSS

A/B机器:[dmdba@~]#/opt/dsc/dmdbms/bin/DmServiceDSC stop

A/B机器:[dmdba@~]#/opt/dsc/dmdbms/bin/DmASMSvrServiceASM stop

A/B机器:[dmdba@~]#/opt/dsc/dmdbms/bin/DmCSSServiceCSS stop

说明:1)DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。2)ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。3)服务全部停止后,要检查后台进程是否全部停止。

六、配置应用连接

Linux环境:dm_svc.conf放在应用服务器/etc目录下。

Windows32环境:dm_svc.conf放在应用服务器System32目录下。

Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下。

  • 创建dm_svc.conf

[root@~]#vi /etc/dm_svc.conf

TIME_ZONE=(+8:00)

LANGUAGE=(cn)

DSC1=(172.16.1.1:5236,172.16.1.2:5236)

[DSC1]

LOGIN_ENCRYPT=(0)

SWITCH_TIME=(20)

SWITCH_INTERVAL=(2000)

达梦学习社区:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值