搭建DSC达梦数据共享集群
文章目录
- 搭建DSC达梦数据共享集群
- DSC简介:
- 一、搭建前准备
- 二、创建共享磁盘
- 三、编辑配置文件,DSC1、DSC2两台虚拟机都要(在dm8/config/目录下)
- 四、创建ASM磁盘(其中一台)
- 六、配置dmdcr.ini文件(两台都要)
- 七、启动DMCSS(两台都启动,先启动的为控制节点)
- 八、启动ASM,新开窗口执行,(两台都要启动)
- 九、使用 dmasmtool 工具创建 DMASM 磁盘组(DSC1创建)
- 十、使用 dminit 初始化 DB 实例(主控dsc1)
- 十一、注册服务启动
- 启动:
- 十二、设置自动拉起功能
- 十三、配置监视器(其中一台都可以)
- 十四、测试:1.插入数据、2.故障重连
- 十五、使用用监视器启停集群
DSC简介:
DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上,各个节点有自己独立的联机日志和归档日志。
DMDSC 集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。以部署了 DMASM 的 DMDSC 集群为例,展示 DMDSC 集群系统结构,如下图所示:
一、搭建前准备
1.准备两台虚拟机,DSC1,DSC2分别为50G的硬盘,虚拟机关闭防火墙和selinux。
systemctl --now disable firewalld.ervice
getenforce
setenforce 0 #临时关闭selinux
vi /etc/selinux/config #永久关闭selinux
# 进入文件后修改 SELINUX = disabled
# 保存退出文件
#重启生效
2.安装dm8数据库,但不用初始化实例,数据库安装路径为:/dm8。
二、创建共享磁盘
1.使用虚拟机工具vmware-vdiskmanager.exe创建20G的共享磁盘。
"D:\VMware Wordstation16\vmware-vdiskmanager.exe" -c -s 20GB -a lsilogic -t 2 "D:\Centos7_DM\DCS_share\DCS-share-20G.vmdk"
2.打开DSC1、DSC2两台虚拟机添加新建的共享磁盘。
另一台同样的步骤。
3.DSC1、DSC2虚拟机编辑 .vmx文件。
两台虚拟机都在末尾添加如下代码:
disk.locking="FALSE"
disk.EnableUUID = "TRUE"
4.其中一台虚拟机进行磁盘分区(DSC1)
lsblk查看磁盘
开始分区:
fdisk /dev/sdb
n → p → 1 → “回车” →+1G # dcr
n → p → 2 → “回车” → +1G # vote
n → p → 3 → “回车” → +8G # log0
n → p → 4 → “回车” → 回车 # data0
w #保存
另一台虚拟机查看lsblk查看,已经分区。
5.绑定裸设备(DSC1、DSC2两台虚拟机都需要进行如下操作):
vim /etc/udev/rules.d/80-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"
KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
使裸设备生效:
partprobe /dev/sdb
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
查看:ll /dev/raw/
三、编辑配置文件,DSC1、DSC2两台虚拟机都要(在dm8/config/目录下)
su - dmdba
mkdir /dm8/config
vim /dm8/config/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.239.101
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.239.102
DCR_EP_PORT = 9343
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.239.101
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.239.102
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5700
DCR_CHECK_PORT = 9741
[DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5700
DCR_CHECK_PORT = 9742
四、创建ASM磁盘(其中一台)
到dm8的安装目录下的bin目录下:
./dmasmcmd
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG'
create asmdisk '/dev/raw/raw4' 'DATA'
init dcrdisk '/dev/raw/raw1' from '/dm8/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/raw/raw2' from '/dm8/config/dmdcr_cfg.ini'
五、配置ASM的MAL文件(DSC1、DSC2都要配置)
vim /dm8/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.239.101
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.239.102
MAL_PORT = 7237
六、配置dmdcr.ini文件(两台都要)
vim /dm8/config/dmdcr.ini
DSC1:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL =0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/config/dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
DSC2:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL =0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/config/dsc2/dm.ini dcr_ini=/dm8/config/dmdcr.ini
七、启动DMCSS(两台都启动,先启动的为控制节点)
cd /dm8/bin
./dmcss dcr_ini=/dm8/config/dmdcr.ini
DSC1
DSC2:
八、启动ASM,新开窗口执行,(两台都要启动)
cd /dm8/bin
./dmasmsvr DCR_INI=/dm8/config/dmdcr.ini
DSC1
DSC2:
九、使用 dmasmtool 工具创建 DMASM 磁盘组(DSC1创建)
bin目录下:
./dmasmtool dcr_ini=/dm8/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
十、使用 dminit 初始化 DB 实例(主控dsc1)
1.编辑配置文件:
vim /dm8/config/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
PAGE_SIZE = 32
log_size = 1024
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
[DSC1]
config_path = /dm8/config/dsc1
port_num = 5700
mal_host = 192.168.239.101
mal_port = 9255
log_path = +DMLOG/log/DSC1_log01.log
log_path = +DMLOG/log/DSC1_log02.log
[DSC2]
config_path = /dm8/config/dsc2
port_num = 5700
mal_host = 192.168.239.102
mal_port = 9266
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log
1.dminit 工具初始化数据库
./dminit control=/dm8/config/dminit.ini
3.初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件 dsc1和dsc2.
4.将 dsc2 目录复制到节点 2 上对应的目录下。
scp -r dsc2 192.168.239.102:/dm8/config/
5.启动dmserver数据库服务(两台都要)
DSC1:
./dmserver /dm8/config/dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
DSC2:
./dmserver /dm8/config/dsc2/dm.ini dcr_ini=/dm8/config/dmdcr.ini
6.观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。
DSC1 CSS窗口 show命令查看
查看nst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。至此DSC数据共享集群搭建完成!!!
十一、注册服务启动
由于前台启动比较麻烦,不仅需要通过命令行启动还需要开启多个窗口,因此可将css、asm、db实例注册服务,以服务的方式启动。
root开机启动的方式:
2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。
注册CSS服务:
/dm_service_installer.sh -t dmcss -dcr_ini /dm8/config/dmdcr.ini -p DMCSS
注册ASM服务:
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/config/dmdcr.ini -y DmCSSServiceDMCSS -p DMASM
注册dmserver服务:
./dm_service_installer.sh -t dmserver -dm_ini /dm8/config/dsc1/dm.ini -dcr_ini /dm8/config/dmdcr.ini -y DmASMSvrServiceDMASM -p DMSERVER
启动:
./DmCSSServiceDMCSS start
./DmASMSvrServiceDMASM start
./DmServiceDMSERVER start
十二、设置自动拉起功能
修改dmdcr.ini的DMDCR_ASM_RESTART_INTERVAL与DMDCR_DB_RESTART_INTERVAL为1。
vim /dm8/config/dmdcr.ini
DMDCR_ASM_RESTART_INTERVAL = 1 #自动拉起ASM
DMDCR_DB_RESTART_INTERVAL = 1 #自动拉起数据库实例
十三、配置监视器(其中一台都可以)
vim /dm8/config/dmcssm.ini
CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.239.101:9341
CSSM_CSS_IP = 192.168.239.102:9343
CSSM_LOG_PATH =/dm8/log
CSSM_LOG_FILE_SIZE = 256
CSSM_LOG_SPACE_LIMIT = 2048
到bin目录下、启动监视器:
./dmcssm ini_path=/dm8/config/dmcssm.ini
十四、测试:1.插入数据、2.故障重连
1.在DSC1创建表、插入数据,在DSC2查看
DSC1:
DSC2:
2.模拟DSC1故障自动重连
将DSC1关机:
DSC1重连:
十五、使用用监视器启停集群
关闭数据库:监视器中执行 ep stop dsc
关闭 asm:监视器中执行 ep stop asm
启动数据库:监视器中执行 ep stop dsc
启动 asm:监视器中执行 ep stop asm