DSC搭建,总结之前搭建的一些问题:
(1)创建共享磁盘,两台虚机会启动失败:
在两台虚拟机路径下xxx.vmx文件中加入disk.locking ="FALSE"参数,可以正常启动;
(2)之前搭建DSC集群,拍快照集群就会坏掉;
原因是在创建共享存储时未选择独立;虚机创建快照页后,也无法选择磁盘独立。全新的虚拟机,设置好以后,可以拍摄快照。
(3)共享存储设置过小,分盘后在使用磁盘时会报磁盘不足等问题;
搭建环境时,没有特别指定大小;设置共享存储最少10G;
(4)安装数据库后,不要着急初始化数据库实例;
DSC有专门的初始化参数,根据文档步骤来做;
本机测试环境搭建:
1.安装数据库,切记不要初始化数据库!!!
参考达梦数据库Linux命令行安装
https://blog.csdn.net/weixin_48588449/article/details/107786517
2.添加共享磁盘:(虚机关闭状态下)
创建新建的虚拟机磁盘。
共享存储最少10G,将虚拟磁盘存储为单个文件。
方便记忆,给共享存储起个方便记忆的名字。
磁盘创建成功,与另一台虚机做共享;
磁盘选择,使用现有磁盘;
选择第一个虚机添加的磁盘位置,完成共享磁盘创建;
共享做成功后,启动虚机会启动失败:
方法一:
VM需要在两台虚拟机路径下xxx.vmx文件中加入disk.locking = “FALSE” 参数,否则后启动的虚拟机会启动失败
方法二:
先启动虚机1,将共享盘拉出到上一层目录,才可以启动虚机2;(这种方法不推荐,每次启动都需要拉出到上一层)
3.划分磁盘
输入 fdisk /dev/sdb
依次输入 n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分
依次输入 n -> p -> 2 -> 回车 -> +100M -> 回车,完成第二块磁盘划分
依次输入 n -> p -> 3 -> 回车 -> +2048M -> 回车,完成第三块磁盘划分
依次输入 n -> p -> 4 -> 回车 -> 回车 -> 回车,完成第四块磁盘划分
分盘后首先在两台机器上刷新磁盘状态,刷新后分别查看;
partprobe /dev/sdb ;
[root@localhost ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Aug 20 21:11 /dev/sdb
brw-rw---- 1 root disk 8, 17 Aug 20 21:11 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Aug 20 21:11 /dev/sdb2
brw-rw---- 1 root disk 8, 19 Aug 20 21:11 /dev/sdb3
brw-rw---- 1 root disk 8, 20 Aug 20 21:11 /dev/sdb4
[root@localhost ~]#
4.裸设备绑定
方法一:(命令绑定,写到开机自启脚本)
vim /etc/rc.local
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw4 /dev/sdb4
chown dmdba:dinstall /dev/raw/raw1
chown dmdba:dinstall /dev/raw/raw2
chown dmdba:dinstall /dev/raw/raw3
chown dmdba:dinstall /dev/raw/raw4
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
加执行权限,生效文件
chmod +x /etc/rc.d/rc.local
source /etc/rc.local
查看绑定的裸设备
ll /dev/raw*
查看裸设备大小
blockdev --getsize64 /dev/raw/raw*
方法二:(通过设备号绑定)
编辑 /etc/udev/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"
最后执行 start_udev ,完成裸设备绑定
#rehl6操作系统需将ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"写入到/etc/udev/rules.d/99-fuse.rules 才能生效
最后执行
(contos系统执行)udevadm control --reload-rules
(红帽系统执行)start_udev,完成裸设备绑定
systemctl restart systemd-udev-trigger.service
查看绑定的裸设备
ll /dev/raw*
查看裸设备大小
blockdev --getsize64 /dev/raw/raw*
[root@localhost ~]# ll /dev/raw*
total 0
crw-rw---- 1 dmdba dinstall 162, 1 Aug 20 21:24 raw1
crw-rw---- 1 dmdba dinstall 162, 2 Aug 20 21:24 raw2
crw-rw---- 1 dmdba dinstall 162, 3 Aug 20 21:24 raw3
crw-rw---- 1 dmdba dinstall 162, 4 Aug 20 21:24 raw4
crw-rw---- 1 root disk 162, 0 Aug 20 21:11 rawctl
[root@localhost ~]#
[root@localhost ~]# blockdev --getsize64 /dev/raw/raw*
104857600
104857600
2147483648
8379170816
blockdev: ioctl error on BLKGETSIZE64: Invalid argument
[root@localhost ~]#
两边虚机都要能查看到,分盘成功,做下一步操作;
5.添加配置文件
创建配置文件目录,添加dmdba权限,编辑配置文件
mkdir -p /dm8/config
chown dmdba:dinstall /dm8/config
vim dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45330
[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.10.2 #心跳地址
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.10.4 #心跳地址
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 = 192.168.10.131 #业务地址
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 = 192.168.10.133 #业务地址
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_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45330
注意:AB机器该文件相同。
初始化磁盘组,一台机器上执行即可 /dm8/bin
[dmdba@localhost bin]$ ./dmasmcmd
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 7.792(ms).
ASM> create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 1.468(ms).
ASM> create asmdisk '/dev/raw/raw3' 'LOG0'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 2.882(ms).
ASM> create asmdisk '/dev/raw/raw4' 'DATA0'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 2.718(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/dm8/config/dmdcr_cfg.ini' identified by 'abcd'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 33.865(ms).
ASM> init votedisk '/dev/raw/raw2' from '/dm8/config/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 14.934(ms).
ASM>
配置dmasvrmal.ini
vim dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.10.2
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.10.4
MAL_PORT = 7237
注意:AB机器该文件相同。
配置dmdcr.ini
A机器配置如下
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM重启参数,命令行方式启动 第一次启动,可以先注释掉下面几行
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /dm8/bin/DmASMSvrService_DSC0 start
#DB重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /dm8/bin/DmService_DSC0 start
B机器配置如下
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM重启参数,命令行方式启动 第一次启动,可以先注释掉下面几行
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /dm8/bin/DmASMSvrService_DSC1 start
#DB重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /app/dmdbms/bin/DmService_DSC1 start
注:dmdcr.ini中先将ASM和DMSERVER配置为手动服务,待所有配置完成后,再修改dmdcr.ini将ASM和DMSERVER配置成自动拉起。
6.启动CSS,ASM
分别启动AB机器的CSS、ASM服务 /dm8/bin
[dmdba@bin]$ ./dmcss DCR_INI=/dm8/config/dmdcr.ini
[dmdba@bin]$ ./dmasmsvr DCR_INI=/dm8/config/dmdcr.ini
启动后,虚机1CSS会打印出以下内容:
[dmdba@localhost bin]$ ./dmcss DCR_INI=/dm8/config/dmdcr.ini
DMCSS V8
DMCSS IS READY
[CSS]: 设置EP CSS0[0]为控制节点
[ASM]: 设置EP ASM0[0]为控制节点
[ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]
[ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
7.创建DMASM磁盘组,在一个节点执行即可 /dm8/bin
[dmdba@localhost bin]$ ./dmasmtool DCR_INI=/dm8/config/dmdcr.ini
DMASMTOOL V8
ASM>
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
Used time: 12.018(ms).
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
Used time: 9.898(ms).
ASM>
8.配置初始化文件dm.init.ini
配置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 = 2048
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
PAGE_SIZE = 32
[DSC0]
config_path = /dm8/config/dsc0_config
port_num = 5236
mal_host = 192.168.10.2
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /dm8/config/dsc1_config
port_num = 5236
mal_host = 192.168.10.4
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
注意:AB机器该文件相同。
初始化数据库,一台机器上执行即可 /dm8/bin
[dmdba@localhost bin]$ ./dminit control=/dm8/config/dminit.ini
initdb V8
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2021-06-24
log file path: +DMLOG/log/dsc0_log01.log
log file path: +DMLOG/log/dsc0_log02.log
log file path: +DMLOG/log/dsc1_log01.log
log file path: +DMLOG/log/dsc1_log02.log
write to dir [+DMDATA/data/dsc].
create dm database success. 2020-08-20 21:50:46
[dmdba@localhost bin]$
在A机器上启动dminit工具初始化数据库,然后会在config目录下生成dsc0_config和dsc1_config目录,每个目录下都有dm.ini和dmmal.ini。将A机器上生成的dsc1_config目录剪贴到B机器的config目录下
9.修改dm.ini参数,配置归档;
将A/B机器上 dm.ini 中的 ARCH_INI 设置为1 ,然后配置dmarch.ini
A机器 配置文件存放目录 /dm8/config/dsc0_config
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/dmarch/arch_0 #本地路径
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = /dm8/data/dmarch/arch_0_remote #本地路径
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
B机器 配置文件存放目录 /dm8/config/dsc1_config
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/data/dmarch/arch_1 #本地路径
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = /dm8/data/dmarch/arch_1_remote #本地路径
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
注意:B机器未执行初始化操作,如果没有data目录,创建一个data目录即可;
归档日志根据机器情况,可自己设置
10.启动数据库
启动 DMSERVER 服务 /dm8/bin
A机器
[dmdba@bin]S ./dmserver /dm8/config/dsc0_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
B机器
[dmdba@bin]# ./dmserver /dm8/config/dsc1_config/dm.ini dcr_ini=/dm8/config/dmdcr.ini
启动比较慢,稍等一会;
11.注册后台启动服务;
注册后台启动脚本(DSC1/DSC2)
在正式生产环境下,要求所有的服务采用后台启动的方式进行,需要准备以下三个后台启动脚本:DMCSS后台服务脚本,DMASM后台服务启动脚本,数据库实例DMSERVER后台启动脚本。
记得要給dmdba相关的执行这几个脚本的权限,而且也要试用dmdba用户去启动这几个后台脚本;
[root@localhost ~]# cd /dm8/script/root/
注册CSS服务
./dm_service_installer.sh ‐t dmcss ‐dcr_ini /dm8/config/dmd
cr.ini ‐p DSC0
注册ASM服务
./dm_service_installer.sh ‐t dmasmsvr ‐dcr_ini
/dm8/config/dmdcr.ini ‐y DmCSSServiceDSC0 ‐p DSC0
注册SERVER服务
./dm_service_installer.sh ‐t dmserver ‐p DSC0 ‐dm_ini
/dm8/data/dsc0_config/dm.ini ‐dcr_ini /dm8/conf
ig/dmdcr.ini ‐y DmASMSvrServiceDSC0
12.可以在第三*立的机器上配置监视器,查看DMRAC集群的整体运行情况,编辑一个dmcssm.ini文件,放在/dm8/config目录下,内容如下:
CSSM_OGUID = 45330
CSSM_CSS_IP = 192.168.10.2:9341
CSSM_CSS_IP = 192.168.10.4:9343
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
启动监视器
cd /dm8/bin
./dmcssm INI_PATH=../config/dmcssm.ini
后期若想要CSS将ASM和实例直接拉起,需要将dmdcr.ini下注释的行取消注释