达梦DSC集群搭建

DMDSC原理:一句话总结就是能实现多个实例控制一个数据库;DSC的每一个节点就是一个实例,而数据库存在于共享磁盘里,每个节点上的实例操作数据库的效果都是等效的,因此,多个节点的实例操作数据库的效果是等效于一个实例控制一个数据库的效果;如果其中的一个节点(控制节点)意外损坏了,系统会自动将另一个节点更换为控制节点,提高的数据库的防灾能力。

总体思路:准备两台虚拟机(DSC的两个节点),DSC01节点(外网IP:192.168.222.130;内网IP:10.0.0.130),DSC02节点(外网IP:192.168.222.131;内网IP:10.0.0.131),两个节点都安装上DM8数据库软件,而不先初始化;两个节点关机后,进行共享磁盘的挂载,而后对共享磁盘(裸设备)进行分区,进行裸设备绑定;之后在其中一个节点上使用dmasmcmd工具进行初始化磁盘组;再前台启动dmcss和dmasmsvr服务,第一个启动服务的节点会被赋予成控制节点,在控制节点上用dmasmtool工具创建磁盘组后,进行初始化数据库,后再启动数据库;再配置远程归档,配置后台启动数据库;最后配置DMCSSM监视器,就可以监视到两个节点的实例情况了。

---------------------------------------------------------------------------------------------------------------------------------

目录

一、两节点的环境准备

1. 两节点安装DM8数据库软件

2. 挂载共享磁盘

3. 共享磁盘(裸设备)分区

4. 创建配置文件,初始化DCR

二、启动DSC集群

1. 前台启动dmcss、dmasmsvr服务

2. dmasmtool创建磁盘组

三、初始化库

1. 初始化数据库实例

2. 启动数据库服务

四、后台启动数据库服务

1. 配置后台启动

2. 查看启动情况

五、配置监视器

1. 配置dmcssm.ini文件

2. $DM_HOME/bin目录下启动监视器

3. 查看数据库实例情况


一、两节点的环境准备

1. 两节点安装DM8数据库软件

        安装DM8软件的过程请参考博文:(先不进行初始化实例)达梦数据库单机安装(CentOS7版)_world of qiqi的博客-CSDN博客总体流程:用ssh终端,连接上虚拟机;用远程连接工具如XShell、WinSCP等,将CentOS7版DM8镜像文件挂载至虚拟机里;在虚拟机里创建dmdba用户组,创建dm8文件夹,将DM8数据库安装路径放到这里;安装好后,配置环境变量,初始化实例,再后台启动数据库服务,能成功进入到disql工具,就算是完成了.https://blog.csdn.net/weixin_61894388/article/details/122712105?spm=1001.2014.3001.5502

2. 挂载共享磁盘

(1)两个节点关机,在其中一台虚拟机点击编辑虚拟机设置;点击添加,选择硬盘,点击下一步进入硬盘的设置;磁盘类型选择SCSI,下一步后,选择创建新虚拟磁盘,下一步进行虚拟磁盘设置容量大小,并将虚拟磁盘设置为单个文件,下一步就为虚拟磁盘选择安放的路径,点击完成即可创建好虚拟磁盘;如下图显示:

节点DSC02连接共享磁盘过程与节点DSC01的过程一样,只是在选择磁盘时要连接到共享磁盘的路径;两个节点都点击磁盘的高级设置,两个节点的磁盘设备节点要一致,如下图显示:

(2)两个节点都挂好磁盘后,进入各自的虚拟机目录,将虚拟机文件以记事本打开,在文件里添加内容:

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

scsi1:1.SharedBus="Virtual"

末尾加回车结束。

 

3. 共享磁盘(裸设备)分区

        共享磁盘划分为4个分区,用于存放dcr、vote、redo log、data,分别依次绑定为raw1、raw2、raw3、raw4;

(1)两节点查看共享磁盘挂载情况:如图

[root@DSC01 ~]# fdisk -l
[root@DSC02 ~]# fdisk -l

 载共享磁盘;如果存在多个共享磁盘,系统会依次命名为sdc、sdd等以此类推。

(2)共享磁盘划分分区(在DSC01节点上进行即可)

[root@DSC01 ~]# fdisk /dev/sdb

        依次输入:(输入m查看帮助)
        n→p→1→回车→+100M→回车
        n→p→2→回车→+100M→回车
        n→p→3→回车→+2048M→回车
        n→p→回车→回车(默认将剩余空间给分区4)
        w→回车 

 (3)在DSC01上划好分区后,在DSC02上要关机,在启动后才能查看到分区;

 (4)修改KERNEL磁盘分区名

[root@DSC01 ~]# vim /etc/udev/rules.d/70-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"

        执行绑定裸设备生效:

[root@DSC01 ~]# udevadm trigger --type=devices --action=change

(5)查看裸设备

[root@DSC01 ~]# ll /dev/raw/*
[root@DSC02 ~]# ll /dev/raw/*

 注:如果没有显示绑定信息,则两个节点都重启一下,再查看。

4. 创建配置文件,初始化DCR

(1)配置dmdcr_cfg.ini文件(两节点内容一致)

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/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 = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 10.0.0.130
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.0.0.131
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 = 10.0.0.130
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 = 10.0.0.131
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

保存退出后,建此文件发送一份到DSC02节点上:

[dmdba@DSC01 data]# scp dmdcr_cfg.ini dmdba@10.0.0.131:/home/dmdba/dmdbms/data

(2)初始化dmdcr(DSC01节点配置即可)

方法一:指定脚本文件执行

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/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 '/home/dmdba/dmdbms/data/dmdcr_cfg.ini' identified by '123'
init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/data/dmdcr_cfg.ini'

        进入dmasmcmd工具,script_file指定此文本执行命令:

[dmdba@DSC01 ~]# cd /home/dmdba/dmdbms/bin
[dmdba@DSC01 bin]#./dmasmcmd script_file=/home/dmdba/dmdbms/data/asmcmd.txt

方法二:逐条执行

        将上述的文本中的命令,在dmasmcmd中逐条执行:

(3)配置dmasvrmal.ini文件(两节点内容一致)

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/dmasvrmal.ini

        添加内容:

[MAL_INST1]
MAL_INST_NAME     = ASM0
MAL_HOST          = 10.0.0.130
MAL_PORT          = 7236
[MAL_INST2]
MAL_INST_NAME     = ASM1
MAL_HOST          = 10.0.0.131
MAL_PORT          = 7237

        保存退出后,建此文件发送一份到DSC02节点上:

[dmdba@DSC01 data]# scp dmasvrmal.ini dmdba@10.0.0.131:/home/dmdba/dmdbms/data

(4)配置dmdcr.ini文件

DSC01节点:

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/dmdcr.ini

        添加内容:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/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/dmdba/dmdbms/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver 		path=/home/dmdba/dmdbms/data/dsc0_config/dm.ini 		dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

DSC02节点:

[dmdba@DSC02 ~]# vim /home/dmdba/dmdbms/data/dmdcr.ini

        添加内容:

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/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/dmdba/dmdbms/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver 		path=/home/dmdba/dmdbms/data/dsc1_config/dm.ini 		dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

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

二、启动DSC集群

1. 前台启动dmcss、dmasmsvr服务

(1)两节点分别都在$DM_HOME/bin目录下执行:

[dmdba@DSC01 bin]# ./dmcss dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

         DSC01节点先执行,系统会将DSC01分配为控制节点(CSS0);

[dmdba@DSC02 bin]# ./dmcss dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

 (3)新开两个窗口,两节点都执行:

[dmdba@DSC01 bin]# ./dmasmvr dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini
[dmdba@DSC01 bin]# ./dmasmvr dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

 

2. dmasmtool创建磁盘组

(1)新开一个窗口,在DSC01节点(其中一个节点执行即可)的$DM_HOME/bin目录下:

[dmdba@DSC01 bin]# ./dmasmtool DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

        执行以下命令: 

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

(2)配置dminit.ini文件(在DSC01节点上配置即可)

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/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_seqno = 0
auto_overwrite = 1
page_size = 16
[DSC0]
config_path = /home/dmdba/dmdata/dsc0_config
port_num = 5241
mal_host = 10.0.0.130
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /home/dmdba/dmdata/dsc1_config
port_num = 5241
mal_host = 10.0.0131
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

三、初始化库

1. 初始化数据库实例

(1)新开会话窗口,在DSC01节点上执行即可,进入$DM_HOME/bin目录下,启动dmint.ini:

[dmdba@DSC01 bin]# ./dminit control=/home/dmdba/dmdbms/data/dminit.ini

(2)初始化后,会生成两个配置文件,分别为dsc0_config和dsc1_config,里面有dm.ini和dmmal.ini文件,将属于DSC02节点的dsc1_config里的文件发送到DSC02节点上:

[dmdba@DSC01 dmdata]# scp -r dsc1_config/ dmdba@10.0.0.131:/home/dmdba/dmdata

发送完毕后,将dsc1_config目录删掉。

2. 启动数据库服务

(1)新开两个会话窗口,进入$DM_HOME/bin目录下,分别启动DSC01和DSC02:

[dmdba@DSC01 bin]# ./dmserver /home/dmdba/dmdata/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini
[dmdba@DSC01 bin]# ./dmserver /home/dmdba/dmdata/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dmdcr.ini

(2)两节点都开启远程归档

[dmdba@DSC01 ~]# vim /home/dmdba/dmdata/dsc0_config/dm.ini
[dmdba@DSC02 ~]# vim /home/dmdba/dmdata/dsc1_config/dm.ini

        修改内容:

ARCH_INI=1

(3)两节点都配置远程归档

DSC01节点:

[dmdba@DSC01 ~]# vim /home/dmdba/dmdata/dsc0_config/dmarch.ini

        添加内容:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/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 = /home/dmdba/dmarch/dsc0/arch_remote

DSC02节点:

[dmdba@DSC01 ~]# vim /home/dmdba/dmdata/dsc0_config/dmarch.ini

        添加内容:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/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 = /home/dmdba/dmarch/dsc1/arch_remote

四、后台启动数据库服务

1. 配置后台启动

(1)两节点先将的前台数据库服务关闭和dmcss与dmasmsvr服务关闭,进入$DM_HOME/bin/service_template目录,将DmService、DmCSSService、DmASMvrService复制到bin目录下:

[dmdba@DSC01 service_template]# cp DmService ..
[dmdba@DSC01 service_template]# cp DmCSSService ..
[dmdba@DSC01 service_template]# cp DmASMvrService ..
[dmdba@DSC01 bin]# vim DmService_dsc0

        修改内容为:

INI_PATH=/home/dmdba/dmdata/dm.ini
DCR_INI_PATH=/home/dmdba/dmdbms/data/dmdcr.ini
[dmdba@DSC01 bin]# vim DmCSSService
    修改内容为:
DCR_INI_PATH=/home/dmdba/dmdbms/data/dmdcr.ini

[dmdba@DSC01 bin]# vim DmASMvrService
    修改内容为:
DCR_INI_PATH=/home/dmdba/dmdbms/data/dmdcr.ini

DSC02节点也是同样的操作;

(2)修改dmdcr.ini文件参数(两节点都修改)

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/dmdcr.ini

        修改内容为:数字10表示10秒后拉起。配为0则需手动拉,DSC02节点配置同理;

DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_DB_RESTART_INTERVAL  = 30

(3)$DM_HOME/bin目录下,启动DmCSSService

[dmdba@DSC01 bin]# ./DmCSSService start
[dmdba@DSC02 bin]# ./DmCSSService start

2. 查看启动情况:(dmcss后台启动后会拉起dmasmsvr和dmserver)

[dmdba@DSC01 bin]# ps -ef|grep dmdba

五、配置监视器

1. 配置dmcssm.ini文件

        监视器选择配置在DSC01节点上

(1)编辑文件

[dmdba@DSC01 ~]# vim /home/dmdba/dmdbms/data/dmcssm.ini

        编辑内容为:

#CSSM_OGUID与dmdcr_cfg.ini 中的 DCR_OGUID 保持一致,与dmdcr_cfg.ini中CSS 配置DCR_EP_HOST和DCR_EP_PORT保持一致
CSSM_OGUID           = 63635
CSSM_CSS_IP          = 10.0.0.130:9341
CSSM_CSS_IP          = 10.0.0.131:9343
CSSM_LOG_PATH        =/home/dmdba/sqllog 
CSSM_LOG_FILE_SIZE   = 32 
CSSM_LOG_SPACE_LIMIT = 0 

 

2. $DM_HOME/bin目录下启动监视器

[dmdba@DSC01 bin]# ./dmcssm INI_PATH=/home/dmdba/dmdbms/data/dmcssm.ini

3. 查看数据库实例情况

        输入命令:show

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

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咀个栗子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值