DSC搭建
- 环境准备
IP资源规划
节点一:外网:192.168.0.11 内网:10.1.0.11
节点二:外网:192.168.0.12 内网:10.1.0.12
用udev绑定裸设备权限(两个节点都需要配置)
cd /etc/udev/rules.d/
Udev_start或者重启服务器生效
创建配置文件目录
Mkdir -p /dm8/data
Vi 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.1.0.11
DCR_EP_PORT =9343
[GRP_CSS]
DCR_EP_NAME =CSS0
DCR_EP_HOST =10.1.0.12
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 =20
DCR_EP_HOST =10.1.0.11
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 =20
DCR_EP_HOST =10.1.0.12
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 =5237
DCR_CHECK_PORT =9742
利用dmasmcmd工具初始化
注意:dmasmcmd工具需要在DM8软件安装完才能使用,只需在一个节点执行即可
准备DMASM的MAL配置文件,保存到/dm8/data下面(两个节点内容一样)
vi dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 10.1.0.11
mal_port = 7236
[mal_inst2]
MAL_INST_NAME = ASM1
MAL_HOST = 10.1.0.12
MAL_PORT = 7237
准备dmdcr.ini配置文件,保存到/dm8/data下面
节点一:
Vi dmdcr.ini dmdcr_path相同,dmdcr_seqo分别为0和1
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/data/dmasvrmal.ini //dmasmsvr使用的MAL配置文件路径
DMDCR_SEQNO = 0
//ASM重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr DCR_INI = /dm8/data/dmdcr.ini
//DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver PATH=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdcr.ini
节点二:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/data/dmasvrmal.ini //dmasmsvr使用的MAL配置文件路径
DMDCR_SEQNO = 1
//ASM重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr DCR_INI = /dm8/data/dmdcr.ini
//DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/data/dsc1_config/dm.ini dcr_ini=/dm8/data/dmdcr.ini
启动DMCSS、DMASM服务程序
在节点一、节点二先后分别启动dmcss、dmasmsvr程序
Cd /dm8/bin
分别在节点一、节点二执行
./dmcss DCR_INI=/dm8/data/dmdcr.ini
分别在节点一、节点二执行
./dmasmsvr DCR_INI=/dm8/data/dmdcr.ini
使用dmasmtool工具穿件DMASM磁盘组
在一个节点执行就可以
./dmasmtool DCR_INI=/dm8/data/dmdcr.ini
Create diskgroup ‘DMLOG’ asmdisk ‘/dev/raw/raw3’
Create diskgroup ‘DMDATA’ asmdisk ‘/dev/raw/raw4’
配置dminit.ini配置文件,保存到/dm8/data目录
Vi 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
[DSC0] //inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc0_config
port_num = 5236
mal_host = 10.1.0.11
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] //inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc1_config
port_num = 5237
mal_host = 10.1.0.12
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
使用dminit初始化DB环境
选择一个节点执行,dminit执行完成后,会在config_path目录(/dm8/data/dsc0_config和/dm8/data/dsc1_config)下生成配置文件dm.ini和dmmal.ini
./dminit control=/dm8/data/dminit.ini
启动数据库
首先将节点一机器上/dm8/data/dsc1_config目录拷贝到节点二相同目录下,然后再分别启动dmserver即可完成DMDSC集群搭建。
节点一启动数据库:
注册DMCSS、DMASM、DMDSC服务
root身份注册
cd /dm8/script/root
注册dmcss服务
./dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdcr.ini -p DMCSS
注册dmasm服务
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/data/dmdcr.ini -y DmCSSServicedmcss -p DMASM
注册DMDSC数据库服务(节点2注意dm.ini路径)
./dm_service_installer.sh -t dmserver -dcr_ini /dm8/data/dmdcr.ini -dm_ini /dm8/data/dsc0_config/dm.ini -y DmASMSvrServicedmasm -p DSC0
开机自启动(服务名根据自己实际情况)
Systemctl enable DmCSSServicedmcss
Systemctl enable DmASMSvrServicedmasm
Systemctl enable DmServiceDSC1
配置集群服务名
Vi /etc/dm_svc.conf
DMDSC=(192.168.0.11:5236,192.168.0.12:5237)
[DMDSC]
CLUSTER=(DSC)
SWITCH_TIMES=(60)
SWITCH_INTERVAL=(1000)
DSC集群新增节点
新节点为节点三,IP地址为 外网:192.168.0.13 内网:10.1.0.13
- 节点三安装好数据库软件
- 在节点一上用dmasmcmd工具导出dmdcr_cfg_bak.ini
export dcrdisk '/dev/raw/raw1' to '/dm8/data/dmdcr_cfg_bak.ini'
- 为节点三准备日志文件
使用disql登录任一节点添加日志文件
SQL> alter database add node logfile '+DMLOG/log/DSC2_log01.log' size 256,'+DMLOG/log/DSC2_log02.log' size 256;
使用dmctlcvt工具将dm.ctl转换为文本文件dmctl.txt
./dmctlcvt type=1 SRC=+DMDATA/data/dsc/dm.ctl DEST=/dm8/data/dmctl.txt DCR_INI=/dm8/data/dmdcr.ini
使用dmasmtool工具登录ASM文件系统,也可以看到新增的节点日志文件
- 为新增节点准备config_path
将节点1机器/dm8/data/dsc0_config 目录拷贝到节点3机器相同目录下,修改名字/dm8/data/dsc2_config
修改dsc2_config文件夹写的配置文件:
修改dm.ini
CONFIG_PATH = /dm8/data/dsc2_config
Instance_name = DSC2
如果打开了归档参数,修改dmarch.ini文件
- 在节点3新建dmdcr.ini配置文件,保存在/dm8/data下,注意dmdcr_seqo为2,修改dm.ini路径
Vi dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /dm8/data/dmasvrmal.ini
DMDCR_SEQNO = 2
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr DCR_INI = /dm8/data/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver PATH=/dm8/data/dsc2_config/dm.ini dcr_ini=/dm8/data/dmdcr.ini
- 修改当前环境的MAL配置文件
修改每个节点的dmasvrmal.ini文件,添加新增节点信息,三个节点信息配置一样,配置完拷贝到节点3机器的/dm8/data下
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 10.1.0.11
mal_port = 7236
[mal_inst2]
MAL_INST_NAME = ASM1
MAL_HOST = 10.1.0.12
MAL_PORT = 7237
[mal_inst3]
MAL_INST_NAME = ASM2
MAL_HOST = 10.1.0.13
MAL_PORT = 7238
修改三个节点的dmmal.ini信息,添加新增节点信息,保存到各自的dsc_config目录下
[mal_inst0]
mal_inst_name = DSC0
mal_host = 10.1.0.11
mal_port = 9340
[mal_inst1]
mal_inst_name = DSC1
mal_host = 10.1.0.12
mal_port = 9341
[mal_inst2]
mal_inst_name = DSC2
mal_host = 10.1.0.13
mal_port = 9342
- 修改dmdcr_cfg_bak.ini,添加新增节点信息,CSS/ASMSVR/DB都要配置所有组信息修改
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
每个组增加一个节点信息,注意DCR_EP_SHM_KEY、端口号不能冲突,各组信息要放在各自后面,即【GRP_CSS】中CSS2放在CSS1后面,【GRP_ASM】中ASM2放在ASM1后面,【GRP_DSC】中DSC2放在DSC1后面
DCR_GRP_N_EP = 3
DCR_GRP_EP_ARR = {0,1,2}
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 10.1.0.13
DCR_EP_PORT = 9343
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 10.1.0.13
DCR_EP_PORT = 9352
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 2
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9743
- 使用DMASMCMD工具新增节点信息写回磁盘,新增节点作为error节点
./dmasmcmd
extend dcrdisk '/dev/raw/raw1' from '/dm8/data/dmdcr_cfg_bak.ini'
- 在dmcss控制台执行扩展节点命令
./dmcssm /dm8/cssm/dmcssm.ini
Extend node
- 启动新节点DMCSS、DMASM服务程序
./dmcss DCR_INI=/dm8/data/dmdcr.ini
./dmasmsvr DCR_INI=/dm8/data/dmdcr.ini
./dmserver /dm8/data/dsc2_config/dm.ini dcr_ini=/dm8/data/dmdcr.ini
- 配置dmcssm.ini文件
CSSM_OGUID = 63635
CSSM_CSS_IP = 10.1.0.11:9343
CSSM_CSS_IP = 10.1.0.12:9343
CSSM_CSS_IP = 10.1.0.13:9343
CSSM_LOG_PATH = /dm8/cssm/log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
达梦共享集群监视器搭建
同一个DMDSC集群中,允许最多同事启动10个监视器,建议监视器放在独立的第三方机器上,避免由于节点间网络不稳定等原因导致监视器误判节点故障。
监视器配置步骤:
Cd /dm8/cssm
Vi dmcssm.ini
#和dmdcr_cfg.ini中的DCR_OGUID保持一致
CSSM_OGUID = 63635
#和dmdcr_cfg.ini中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致
CSSM_CSS_IP = 10.1.0.11:9343
CSSM_CSS_IP = 10.1.0.12:9343
CSSM_LOG_PATH = /dm8/cssm/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动dmcssm监视器
./dmcssm INI_PATH=/dm8/cssm/dmcssm.ini
监视器命令说明
报错及解决方法:
动态扩展节点失败
重新初始化DCR,初始化DCR不影响dmserver数据库数据,初始化前关闭所有节点集群服务
INIT DCRDISK '/DEV/RAW/RAW1' FROM '/HOME/ASM/DMDCR_CFG.INI' IDENTIFIED BY 'AAAAAA
添加节点后css正常,ASM和DSC启动失败,如下
解决方法:用dmasmcmd命令进入ASM命令行模式,从asm磁盘中导出dcr盘信息
Export dcrdisk ‘/dev/raw/raw1’ to ‘/dm8/dmdcr_cfg_bak.ini’
Cat dmdcr_cfg_bak.ini
Dmdcr_cfg.ini文件中DCR_GRP_N_ERR_EP为故障节点号,下图显示ASM和实例都标记了故障,我们需要手动清楚后才能正常启动DSC集群
./dmasmcmd进入ASM命令行模式
执行清楚命令,
清除ASM
Clear dcrdisk err_ep_arr ‘/dev/raw/raw1’ ‘GRP_ASM’
清除DSC
Clear dcrdisk err_ep_arr ‘/dev/raw/raw1’ ‘GRP_DSC’
注意:清除时需要停止相关的ASM和CSS以及实例服务,这里的GRP_ASM和GRP_DSC分别指DCR_GRP_NAME