二节点的搭建请参考其他博客《在虚拟机cetos7上搭建2节点dsc(一)》,以下内容主要介绍在2节点正常运行的的基础上,动态扩展dsc节点,请关闭第三个节点的防火墙。
注意事项:
1. 扩展节点前由用户保证所有 dmcss/dmasmsvr/dmserver 节点都是 OK 的,且都是活动的;
2. 每次扩展节点只能扩一个节点,扩展完成后可以再继续扩展节点;
3. 扩展节点的过程中不能出现修改实例状态或模式的操作;
4. 扩展节点的过程中,如果发生 dmcss/dmasmsvr/dmserver 实例故障,会导致扩展失败;
5. 扩展过程中操作失误(比如未修改 dmmal.ini、asmsvrmal.ini,未增加日志文件),会导致扩展失败;
6. 执行完 extend node 命令,用户需要查看 log 文件,确认扩展操作是否成功;
7. 扩展失败可能会导致集群环境异常,需要退出所有 dmcss/dmasmsvr/dmserver,重新 init dcr 磁盘。
8. 搭建 DMDSC 环境时,应注意 DMDSC 中各实例使用的 DM 数据库版本应一致,同时还应
注意各实例所在主机的操作系统位数、大小端模式、时区及时间设置都应一致。
一、添加共享磁盘
使用root用户,fdisk -l,查看磁盘
执行编辑/etc/udev/rules.d/60-raw.rules 文件,增加以下语句:
ACTION=="add" , KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdc3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdc4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add", KERNEL=="raw[1-5]", OWNER="dmdba", GROUP="dinstall", MODE="755"
执行以下脚本:udevadm trigger --action=add使配置文件生效
二、 动态添加节点
1、为新增节点准备日志文件
1)使用任意节点登录disql添加日志文件,至少两个日志文件,路径必须是ASM文件格式,大小可以参考其他两个活动节点
SQL> alter database add node logfile '+DMLOG/log/DSC2_log01.log' size 256,'+DMLOG/log/DSC2_log02.log' size 256;
2)使用dmctlcvt工具将dm.ctl 转换为文本文件 dmctl.txt,查看 dmctl.txt,新增节点的日志文件信息已经添加进 dm.ctl
./dmctlcvt type=1 src=+DMDATA/data/dsc/dm.ctl dest=/opt/dmdbms/data/config/dmctl.txt DCR_INI=/opt/dmdbms/data/config/dmdcr.ini
3)使用 dmasmtool 工具登录 ASM 文件系统,也可以看到新增的节点日志文件
2、为新增节点准备 config_path
将 192.168.1.213 机器/opt/dmdbms/data/dsc0_config 目录拷贝到192.168.1.225 机器相同目录下,修改名字为/opt/dmdbms/data/dsc2_config。
修改 dsc2_config 文件夹下的配置文件:
1) 修改 dm.ini
CONFIG_PATH = /opt/dmdbms/data/dsc2_config
instance_name = DSC2
2) 如果打开了归档参数,修改 dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/arch_dsc2
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = /opt/dmdbms/data/arch_dsc0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024
[ARCH_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = /opt/dmdbms/data/arch_dsc1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 1024
3. 新建 dmdcr.ini 配置文件,保存到节点 新增加节点 的/opt/dmdbms/data/config目录下面,注意设置 dmdcr_seqo 为 2,修改 dm.ini 路径。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/opt/dmdbms/data/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 2
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 1
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/opt/dmdbms/data/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 1
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/opt/dmdbms/data/dsc2_config/dm.ini dcr_ini=/opt/dmdbms/data/config/dmdcr.ini
4. 修改当前环境的 MAL 配置文件
直接修改当前环境的 dmasvrmal.ini 文件,添加新增节点信息,使用 DMASM 的所有节点都要配置,内容完全一样,并且将新增信息后的 dmasvrmal.ini 文件拷贝到各节点的/opt/dmdbms/data/config 目录下。
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.1.213
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.1.214
MAL_PORT = 7237
[MAL_INST3]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.1.225
MAL_PORT = 7238
直接修改 dmserver 三个实例的 dmmal.ini,添加新增节点信息,所有节点都要配置相同内容,保存到各自的 config 目录下。
MAL_CHECK_INTERVAL = 30
MAL_COMBIN_BUF_SIZE = 0
MAL_CONN_FAIL_INTERVAL = 10
MAL_LOGIN_TIMEOUT = 15
MAL_BUF_SIZE = 100
MAL_SYS_BUF_SIZE = 0
MAL_VPOOL_SIZE = 128
MAL_COMPRESS_LEVEL = 0
MAL_TEMP_PATH =
[MAL_INST0]
MAL_INST_NAME = DSC0
MAL_HOST = 192.168.1.213
MAL_PORT = 9340
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.1.214
MAL_PORT = 9341
[MAL_INST2]
MAL_INST_NAME = DSC2
MAL_HOST = 192.168.1.225
MAL_PORT = 9342
后续实例会重新读 MAL 配置文件,更新内存信息。
5. 在第一台服务器将dmdcr_cfg.ini备份一份,在dmdcr_cfg.ini中添加新增节点信息,CSS/ASMSVR/DB 都要配置
每个组增加一个节点信息,注意 DCR_EP_SHM_KEY、端口号不能冲突;各组信息要放
在各自的后面,即[GRP_CSS]中 CSS2 放在 CSS1 后面,[GRP_ASM]中 ASM2 放在 ASM1
后面,DSC2 放在 DSC1 后面。
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 = 3
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.1.213
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.1.214
DCR_EP_PORT = 9343
[GRP_CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.1.225
DCR_EP_PORT = 9500
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 3
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.1.213
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.1.214
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.1.225
DCR_EP_PORT = 9501
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 3
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
[GRP_DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 2
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9502
6. 使用 DMASMCMD 工具将新增节点信息写回磁盘,新增节点作为 error 节点
[/opt/dmdbms/bin]# ./dmasmcmd
Asm> extend dcrdisk '/dev/raw/raw1' from '/opt/dmdbms/data/config/dmdcr_cfg.ini'
7.在 dmcssm 控制台执行扩展节点命令
extend node
8.前台启动新服务器的DMCSS\DMASM\DMSERVER
./dmcss DCR_INI=/opt/dmdbms/data/config/dmdcr.ini
./dmasmsvr DCR_INI=/opt/dmdbms/data/config/dmdcr.ini
./dmserver /opt/dmdbms/data/dsc2_config/dm.ini dcr_ini=/opt/dmdbms/data/config/dmdcr.ini
三、配置监视器
启动成功后,动态搭建已经成功,配置监视器配置文件dmcssm.ini
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.1.213:9341
CSSM_CSS_IP = 192.168.1.214:9343
CSSM_CSS_IP = 192.168.1.225:9500
CSSM_LOG_PATH =/opt/dmdbms/log/cssm #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 1024 #不限定日志文件总占用空间
前台启动监视器
cd /opt/dmdbms/bin
./dmcssm /opt/dmdbms/data/config/dmcssm.ini
以上状态都是OK,OPEN,WORKING说明集群是正常的
四、动态配置归档
在已运行的节点1和节点2添加节点3的归档文件,不添加则无法备份文件,会报以下错误
动态添加归档文件需要将正在运行的数据库设置为mount状态
Alter database mount;
alter database add archivelog 'DEST=DSC2, TYPE=REMOTE, FILE_SIZE=128, SPACE_LIMIT=1024, INCOMING_PATH=/opt/dmdbms/data/arch_dsc2';
Alter database open;
以上添加归档需要在节点1和节点2都执行一次。
五、配置开机启动服务
./dm_service_installer.sh -t dmcss -p SERVICE -dcr_ini /opt/dmdbms/data/config/dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p SERVICE -dcr_ini /opt/dmdbms/data/config/dmdcr.ini -y DmCSSServiceSERVICE.service
./dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /opt/dmdbms/data/dsc2_config/dm.ini -dcr_ini /opt/dmdbms/data/config/dmdcr.ini -y DmASMSvrServiceSERVICE.service
重启服务器验证,可以cd /opt/dmdbms/bin
启动集群CSS\ASM\SERVER
./DmCSSServiceSERVICE start
./DmASMSvrServiceSERVICE start
./DmCSSServiceSERVICE start