DM8 DSC共享集群搭建部署
一、环境说明
主机规划:
IP Addr | DB Version | OS Version | |
---|---|---|---|
节点1 | 192.168.15.11(外网) 192.168.25.11(内网) |
DM V8 1-1-72-20.04.03-119959-ENT DSC Veriosn: V2.0 |
中标麒麟6 |
节点2 | 192.168.15.12(外网) 192.168.25.12(内网) |
DM V8 1-1-72-20.04.03-119959-ENT DSC Veriosn: V2.0 |
中标麒麟6 |
监视器 | 192.168.15.10(外网) 192.168.25.10(内网) |
DM V8 1-1-72-20.04.03-119959-ENT | 中标麒麟6 |
存储(Openfiler) | 192.168.15.100 | - | - |
数据库相关文件路径:
路径 | |
---|---|
DM_HOME | /dm8/dmdbms |
配置文件路径 | /dm8/data/dmdsc |
实例初始化后配置文件路径 | 节点1:/dm8/data/dsc0_config 节点2:/dm8/data/dsc1_config |
存储规划:
ASM磁盘名 | 大小 | 用途 |
---|---|---|
DCR | 512M | 存放DCR配置信息 |
VOTE | 512M | 存放表决文件 |
LOG01 | 1G | 存放在线日志文件 |
DATA01 | 10G | 存放数据文件 |
二、环境准备
2.1 操作系统配置(两节点)
1、关闭防火墙(或者将相关端口加入到防火墙)
service iptables stop
chkconfig --level 2345 iptables off
2、关闭SELINUX
#vi /etc/selinux/config
改成:SELINUX= disabled
#setenforce 0
3、调整资源限制
[[email protected] ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15697
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
参数使用限制:
(1)data seg size
data seg size (kbytes, -d)
建议用户设置为1048576(即1GB)以上或unlimited(无限制),此参数过小将导致数据库启动失败。
(2)file size
file size(blocks, -f)
建议用户设置为unlimited(无限制),此参数过小将导致数据库安装或初始化失败。
(3)open files
open files(-n)
建议用户设置为65536以上或unlimited(无限制)。
(4)virtual memory
virtual memory (kbytes, -v)
建议用户设置为1048576(即1GB)以上或unlimited(无限制),此参数过小将导致数据库启动失败。
vi /etc/security/limits.conf —添加
* soft nofile 65536
* hard nofile 65536
或者在/etc/profile中添加如下内容:
vi /etc/profile —添加:
ulimit -SHn 65536
保存退出。
source /etc/profile
2.2 共享存储配置(两节点)
本次使用openfiler软件通过iSCSI方式分配存储。(openfiler安装及划分存储操作略)
1、发现存储
[[email protected] ~]# iscsiadm -m discovery -t st -p 192.168.15.100
192.168.15.100:3260,1 iqn.2006-01.com.openfiler:tsn.0de9a678c051
2、登录iscsi存储
[[email protected] ~]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.0de9a678c051 -p 192.168.15.100 -l
3、检查存储挂载情况
[[email protected] ~]# fdisk -l|grep “Disk /dev/sd”
Disk /dev/mapper/VolGroup-LogVol01 doesn’t contain a valid partition table
Disk /dev/mapper/VolGroup-LogVol00 doesn’t contain a valid partition table
Disk /dev/sdb doesn’t contain a valid partition table
Disk /dev/sdc doesn’t contain a valid partition table
Disk /dev/sdd doesn’t contain a valid partition table
Disk /dev/sde doesn’t contain a valid partition table
Disk /dev/sda: 32.2 GB, 32212254720 bytes
Disk /dev/sdb: 536 MB, 536870912 bytes
Disk /dev/sdc: 536 MB, 536870912 bytes
Disk /dev/sdd: 1073 MB, 1073741824 bytes
Disk /dev/sde: 10.7 GB, 10737418240 bytes
4、设置开启自动登陆iSCSI
iscsiadm -m node –T iqn.2006-01.com.openfiler:tsn.0de9a678c051 -p 192.168.15.100 --op update -n node.startup -v automatic
5、绑定为raw设备
Linux 6上的操作如下:
[[email protected] ~]# vi /etc/udev/rules.d/60-raw.rules ---添加如下内容
ACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
保存退出。
[[email protected] ~]# start_udev
查看raw设备大小:
[[email protected] ~]# blockdev --getsize64 /dev/raw/raw1
536870912
[[email protected] ~]# blockdev --getsize64 /dev/raw/raw2
536870912
[[email protected] ~]# blockdev --getsize64 /dev/raw/raw3
1073741824
[[email protected] ~]# blockdev --getsize64 /dev/raw/raw4
10737418240
Linux 7上的操作如下:
[[email protected] ~]# cat /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc", RUN+="/usr/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/usr/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde", RUN+="/usr/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
udev rules生效
# udevadm trigger --action=add
查看raw device
[[email protected] ~]# raw -qa
/dev/raw/raw1: bound to major 8, minor 16
/dev/raw/raw2: bound to major 8, minor 32
/dev/raw/raw3: bound to major 8, minor 48
/dev/raw/raw4: bound to major 8, minor 64
[[email protected] ~]# ll /dev/raw/raw*
crw-rw---- 1 dmdba dinstall 162, 1 Jun 14 10:30 /dev/raw/raw1
crw-rw---- 1 dmdba dinstall 162, 2 Jun 14 10:30 /dev/raw/raw2
crw-rw---- 1 dmdba dinstall 162, 3 Jun 14 10:30 /dev/raw/raw3
crw-rw---- 1 dmdba dinstall 162, 4 Jun 14 10:30 /dev/raw/raw4
6、注意事项
当DMDSC集群服务注册到系统服务开机启动时,可能会因为存储udev规则未生效,导致启动失败。可以考虑将udev规则内容写到rc.local里面。
2.3 数据库软件安装(两节点)
DM8数据库软件安装略。
可参考链接:DM数据库安装
三、部署DMDSC集群
3.1 配置dmdcr_cfg.ini
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。 配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。
使用 dmasmcmd 工具初始化共享磁盘时,可以根据 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。
创建dmdcr_cfg.ini文件,文件路径:/dm8/data/dmdsc/,内容如下:
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 = 192.168.25.11
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.25.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 #与DMASM使用的dmmal.ini mal_inst_name相同
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.15.11
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1 #与DMASM使用的dmmal.ini mal_inst_name相同
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.15.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 = RAC0 #与数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = RAC1 #与数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
DMDCR_CFG.INI配置项说明:
配置项 | 说明 |
---|---|
集群环境全局信息 | |
DCR_VTD_PATH | Voting Disk 路径 |
DCR_N_GRP | 集群环境包括多少个 group,取值范围 1~16 |
DCR_OGUID | 消息标识, dmcssm 登录 dmcss 消息校验用 |
集群组信息 | |
DCR_GRP_TYPE | 组类型(CSS\ASM\DB |
DCR_GRP_NAME | 组名, 16 字节,配置文件内不可重复 |
DCR_GRP_N_EP | 组内节点个数 N,最大 16 |
DCR_GRP_EP_ARR | 组内包含的节点***, {0,1,2,…N-1}用户不能指定,仅用于从 DCR 磁盘 export 出来可见 |
DCR_GRP_N_ERR_EP | 组内故障节点个数用户不能指定,仅用于从 DCR 磁盘 export 出来可见 |
DCR_GRP_ERR_EP_ARR | 组内故障节点***用户不能指定,仅用于从 DCR 磁盘 export 出来可见 |
DCR_GRP_DSKCHK_CNT | 磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600 |
节点信息 | 某些属性可能只针对某一类型节点,比如 SHM_KEY 只针对 ASM 节点有效 |
DCR_EP_NAME | 节点名, 16 字节,配置文件内不可重复。 DB 的节点名必须和 dm.ini 里的INSTANCE_NAME 保持一致; ASM 的节点名必须和 dmmal.ini 里的 MAL_INST_NAME 一致; 同一类型节点的 EP_NAME 不能重复 |
DCR_EP_SEQNO | 组内序号, CSS/ASM 不能配置, 自动分配; DB 可以配置, 0 ~ n_ep -1, 组内不能重复,如不配置则自动分配 |
DCR_EP_HOST | 节点 IP(CSS/ASM 有效,表示登录 CSS/ASM 的 IP 地址) 对 DB 来说,是绑定 VIP 的网卡对应的物理 IP 地址 CSS 中设置表示 DMCSSM 通过该 IP 连接 CSS; ASM 中设置表示 DB 通过该 IP 连接 ASM |
DCR_EP_PORT | 节点 TCP 监听端口(CSS/ASM/DB 有效,对应登录 CSS/ASM/DB 的端口号),取值范围 1024~65534。 特别对 DB 来说, DB 的 DCR_EP_PORT与 dm.ini 中的 PORT_NUM 不一致时, DB 端口以 DCR_EP_PORT 为准。若要使用 VIP 功能, 则不同服务器上配置的 DCR_EP_PORT 要相同 |
DCR_EP_SHM_KEY | 共享内存标识,数值类型(ASM 有效,初始化共享内存的标识符),应为大于 0 的 4 字节整数 |
DCR_VIP | 节点 VIP(DB 有效,表示配置的虚拟 IP),需要和 DCR_EP_HOST 在同一网段。 若需要取消 VIP 配置,仅需要将 DB 组的 DCR_VIP 和DCR_EP_HOST 删除即可 |
DCR_CHECK_PORT | DCR 检查端口号。 检查实例是否活动的时候用,各实例不能冲突 |
DCR_EP_SHM_SIZE | 共享内存大小,单位 M, (ASM 有效,初始化共享内存大小),取值范围10~1024 |
DCR_EP_ASM_LOAD_PATH | ASM 磁盘扫描路径, Linux 下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径 |
使用说明:
(1)在用 dmasmcmd 工具执行 init votedisk disk_path from dcr_cfg_path时,指定的 disk_path 必须和 dcr_cfg_path 里面配置的 DCR_VTD_PATH 相同。
(2)如果配置 dmcssm, dmcssm 的 OGUID 必须和 DCR_OGUID 保持一致。
(3)DCR_N_GRP 必须和实际配置的组数目保持一致。
(4)CSS 和 ASM 组的 DCR_GRP_N_EP 要相等, DB 的 DCR_GRP_N_EP 要小于等于CSS/ASM 的 DCR_GRP_N_EP。
(5)ASM 节点的 DCR_EP_NAME 必须和 DMASM 系统使用的 dmmal.ini 配置文件里的MAL_INST_NAME 保持一致。
(6)DB 节点的 DCR_EP_NAME 必须和数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致。
(7)所有 DB 节点的 DCR_EP_NAME 都不能重复,DB 组内的 DCR_EP_SEQNO 不能重复。
3.2 初始化共享磁盘
使用DMASMCMD工具初始化共享磁盘:
(只需在配置好dmdcr_cfg.ini的1个节点上执行即可)
[[email protected] bin]$ ./dmasmcmd SCRIPT_FILE=/dm8/data/dmdsc/asmdisk.txt
DMASMCMD V8
ASM>create dcrdisk '/dev/raw/raw1' 'DCR'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMDCR
Used time: 12.088(ms).
ASM>create votedisk '/dev/raw/raw2' 'VOTE'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMVOTE
Used time: 11.641(ms).
ASM>create asmdisk '/dev/raw/raw3' 'LOG01'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG01
Used time: 18.544(ms).
ASM>create asmdisk '/dev/raw/raw4' 'DATA01'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA01
Used time: 18.921(ms).
ASM>init dcrdisk '/dev/raw/raw1' from '/dm8/data/dmdsc/dmdcr_cfg.ini' identified by 'abcd'
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
Used time: 00:00:10.774.
ASM>init votedisk '/dev/raw/raw2' from '/dm8/data/dmdsc/dmdcr_cfg.ini'
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
Used time: 00:00:09.939.
[[email protected] bin]$
asmdisk.txt 脚本内容如下:
[[email protected] dmdsc]$ cat asmdisk.txt
#asm script file
create dcrdisk '/dev/raw/raw1' 'DCR'
create votedisk '/dev/raw/raw2' 'VOTE'
create asmdisk '/dev/raw/raw3' 'LOG01'
create asmdisk '/dev/raw/raw4' 'DATA01'
init dcrdisk '/dev/raw/raw1' from '/dm8/data/dmdsc/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/dm8/data/dmdsc/dmdcr_cfg.ini'
可以启动 dmasmcmd 工具,依次输入以上命令,或者将命令写入 asmcmd.txt 文件,执行 dmasmcmd script_file=asmcmd.txt,以行为单位读取文件内容,并依次执行。只需在一台机器执行即可。
需要注意:
脚本文件必须以“#asm script file”开头,否则认为是无效脚本文件;
脚本中其它行以“#”表示注释;脚本文件大小不超过 1M。
3.3 配置dmasvrmal.ini(所有节点)
dmasvrmal.ini文件为DMASM的MAL配置文件,使用DMASM的所有节点都要配置,内容完全一样。文件路径:/dm8/data/dmdsc/
MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.25.11
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.25.12
MAL_PORT = 7237
3.4 配置dmdcr.ini
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 工具的输入参数。记录了当前节点***以及 DCR 磁盘路径。
使用DMASM 的两个节点分别配置dmdcr.ini,dmdcr_seqo分别为 0 和 1。文件路径:/dm8/data/dmdsc/
节点1:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
节点2:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc1_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
dmdcr.ini配置项说明:
配置项 | 说明 |
---|---|
DMDCR_PATH | 记录 DCR 磁盘路径 |
DMDCR_SEQNO | 记录当前节点序号(用来获取 ASM 登录信息) |
DMDCR_MAL_PATH | 保存 dmmal.ini 配置文件的路径,仅对 dmasmsvr 有效 |
DMDCR_ASM_RESTART_INTERVAL | DMCSS 认定 DMASM 节点故障重启的时间间隔(取值 0~86400s), DMCSS 只负责和 DMDCR_SEQNO 节点号相等的DMASM 节点的故障重启,超过设置的时间后,如果 DMASM 节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。如果配置为 0,则不会执行自动拉起操作,默认为60s |
DMDCR_ASM_STARTUP_CMD | DMCSS 认定 DMASM 节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动。 |
DMDCR_DB_RESTART_INTERVAL | DMCSS 认定 DMDSC 节点故障重启的时间间隔(取值 0~86400s), DMCSS 只负责和 DMDCR_SEQNO 节点号相等的DMDSC 节点的故障重启,超过设置的时间后,如果 DMDSC 节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。如果配置为 0,则不会执行自动拉起操作,默认为 60s。 |
DMDCR_DB_STARTUP_CMD | DMCSS 认定 DMDSC 节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动。 |
DMDCR_AUTO_OPEN_CHECK | 指定时间内如果节点实例未启动, DMCSS 会自动将节点踢出集群环境,单位为秒,取值范围应大于等于 30s。 |
3.5 启动DMCSS、DMASM服务程序
节点1和节点2先后分别启动 dmcss、dmasmsvr 程序。
节点1:
[[email protected] bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/dmdcr.ini
[[email protected] bin]$ ./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini
节点2:
[[email protected] bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/dmdcr.ini
[[email protected] bin]$ ./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini
主节点(此处节点1为主节点)dmcss启动后打印信息如下:
[[email protected] bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/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]
3.6 创建DMASM共享磁盘组
选择1个节点,启动dmasmtool工具,并创建共享磁盘组。
[[email protected] bin]$ ./dmasmtool DCR_INI=/dm8/data/dmdsc/dmdcr.ini
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
Used time: 176.881(ms).
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
Used time: 168.380(ms).
ASM>
###注意创建磁盘组的语句不需要以分号结尾,末尾加上分号会报错
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3';
syntax error
[code : -2007] 语法分析出错
3.7 初始化数据库实例
3.7.1 配置dminit.ini
准备 dminit.ini 配置文件,保存到/dm8/data/dmdsc目录。
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 = 128 #注意磁盘空间大小128*4
dcr_path = /dev/raw/raw1 #dcr磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[RAC0] #inst_name跟 dmdcr_cfg.ini 中DB类型group中DCR_EP_NAME对应
config_path = /dm8/data/dsc0_config
port_num = 5236 #最好与dmdcr_cfg.ini 中DB类型group中DCR_EP_PORT一致,不一致以DCR_EP_PORT为准
mal_host = 192.168.25.11
mal_port = 9340
log_path = +DMLOG/log/rac0_log01.log
log_path = +DMLOG/log/rac0_log02.log
[RAC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /dm8/data/dsc1_config
port_num = 5236 #最好与dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_PORT一致,不一致以DCR_EP_PORT为准
mal_host = 192.168.25.12
mal_port = 9341
log_path = +DMLOG/log/rac1_log01.log
log_path = +DMLOG/log/rac1_log02.log
3.7.2 使用dminit初始化实例
选择配置好dminit.ini配置文件的节点(可以选择任意1个集群节点),启动dminit工具初始化数据库。dminit 执行完成后,会在config_path目录(/dm8/data/dsc0_config和/dm8/data/dsc1_config)下生成配置文件dm.ini和dmmal.ini。
[[email protected] bin]$ ./dminit control=/dm8/data/dmdsc/dminit.ini
initdb V8
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2021-04-03
log file path: +DMLOG/log/rac0_log01.log
log file path: +DMLOG/log/rac0_log02.log
log file path: +DMLOG/log/rac1_log01.log
log file path: +DMLOG/log/rac1_log02.log
write to dir [+DMDATA/data/dsc].
create dm database success.
拷贝/dm8/data/dsc1_config 到节点2上/dm8/data
[[email protected] data]$ scp -r dsc1_config 192.168.15.12:/dm8/data/
[email protected]'s password:
dmmal.ini 100% 206 0.2KB/s 00:00
dm.ini 100% 47KB 47.0KB/s 00:00
sqllog.ini 100% 479 0.5KB/s 00:00
3.7.3 启动数据库服务
手动启动:
[[email protected] bin]$ ./dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
[[email protected] bin]$ ./dmserver path=/dm8/data/dsc1_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
测试时发现,在前台启动时,当关闭其中1个实例之后,另外一个实例也会关闭。
3.8 配置服务自启动
3.8.1 配置ASM和数据库实例随dmcss启动
所有节点修改dmdcr.ini中DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 配置项,可以都设置为60(默认60s)。
[[email protected] bin]$ cat /dm8/data/dmdsc/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 60
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
3.8.2 配置dmcss系统服务
可以通过dm_service_installer.sh脚本来配置,脚本用法如下:
[[email protected] root]# ./dm_service_installer.sh -h
Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file]
[-watch_ini watch_ini_file ] [-wmon_ini wmon_ini_file] [-rww_ini rww_ini_file]
[-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file]
[-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file]
[-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info]
[-m open|mount] [-y dependent_service] [-auto true|false]
or dm_service_installer.sh [-s service_file_path]
or dm_service_installer.sh -h
-t 服务类型,包括dmimon,dmap,dmserver,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr,dmdcs,dmdrs,dmdras,dmdss
-p 服务名后缀,对于dmimon,dmap服务类型无效
-dm_ini dm.ini文件路径
-watch_ini dmwatch.ini文件路径.
-wmon_ini dmwmon.ini文件路径.
-rww_ini dmrww.ini文件路径.
-watcher_ini dmwatcher.ini文件路径.
-monitor_ini dmmonitor.ini文件路径.
-dcr_ini dmdcr.ini文件路径.
-cssm_ini dmcssm.ini文件路径.
-dss_ini dss.ini文件路径.
-drs_ini drs.ini文件路径.
-dras_ini dras.ini文件路径.
-dcs_ini dcs.ini文件路径.
-dfs_ini dfs.ini文件路径.
-server 服务器信息(IP:PORT)
-auto 设置服务是否自动启动,值为true或false,默认true.
-m 设置服务器启动模式open或mount,只针对dmserver服务类型生效,可选
-y 设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效
-s 服务脚本路径,设置则忽略除-y外的其他参数选项
-h 帮助
配置dmcss系统服务(root用户):
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC0
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC1
[[email protected] ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC0
移动服务脚本文件(/dm8/dmdbms/bin/DmCSSServiceRAC0 到 /etc/rc.d/init.d/DmCSSServiceRAC0)
创建服务(DmCSSServiceRAC0)完成
[[email protected] ~]#
[[email protected] ~]# /etc/init.d/DmCSSServiceRAC0 start
Starting DmCSSServiceRAC0: [ OK ]
[[email protected] ~]#
------------------------------------------------------------------------------------------
[[email protected] ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC1
移动服务脚本文件(/dm8/dmdbms/bin/DmCSSServiceRAC1 到 /etc/rc.d/init.d/DmCSSServiceRAC1)
创建服务(DmCSSServiceRAC1)完成
[[email protected] ~]#
[[email protected] ~]# /etc/init.d/DmCSSServiceRAC1 start
Starting DmCSSServiceRAC1: [ OK ]
[[email protected] ~]#
3.9 配置DMCSSM监视器
在监视器服务器上配置dmcssm.ini,配置文件路径:/dm8/monitor
文件内容如下:
[[email protected] bin]$ cat /dm8/monitor/dmcssm.ini
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.25.11:9341
CSSM_CSS_IP = 192.168.25.12:9343
CSSM_LOG_PATH =/dm8/monitor/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动dmcssm监视器:
./dmcssm ini_path=/dm8/monitor/dmcssm.ini
show ----show命令查看所有组的信息
monitor current time:2020-06-12 21:46:19, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================
[CSS0] global info:
[ASM0] auto restart = TRUE
[RAC0] auto restart = TRUE
[CSS1] global info:
[ASM1] auto restart = TRUE
[RAC1] auto restart = TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 CSS0 0 9341 Control Node OPEN WORKING OK TRUE 633332346 633340573
2020-06-12 21:46:08 CSS1 1 9343 Normal Node OPEN WORKING OK TRUE 633329821 633338642
=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 ASM0 0 9349 Control Node OPEN WORKING OK TRUE 633337312 633346688
2020-06-12 21:46:08 ASM1 1 9351 Normal Node OPEN WORKING OK TRUE 633333868 633343275
=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 RAC0 0 5236 Control Node OPEN WORKING OK TRUE 2312282503 2312291731
2020-06-12 21:46:08 RAC1 1 5236 Normal Node OPEN WORKING OK TRUE 2312250192 2312259463
==================================================================================================================
DMCSSM监视器命令:
help 显示帮助信息
show [group_name] 显示指定的组信息,如果没有指定 group_name,则显示所有组信息
show config 显示 dmdcr_cfg.ini 的配置信息
show monitor 显示当前连接到主 CSS 的所有监视器信息
set group_name auto restart on 打开指定组的自动拉起功能(只修改 dmcss 内存值)
set group_name auto restart off 关闭指定组的自动拉起功能(只修改 dmcss 内存值)
open force group_name 强制 open 指定的 ASM 或 DB 组
ep startup group_name 启动指定的 ASM 或 DB 组
ep stop group_name 退出指定的 ASM 或 DB 组
ep halt group_name.ep_name 强制退出指定组中的指定节点
extend node 联机扩展节点
ep crash group_name.ep_name 手动指定节点故障
check crash over group_name 检查指定组故障处理是否真正结束
exit 退出监视器
4.0 配置dm_svc.conf
配置:
[[email protected] bin]$ vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
rac=(192.168.15.11:5236,192.168.15.12:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)
连接:
[[email protected] bin]$ ./disql sysdba/[email protected]
服务器[192.168.15.12:5236]:处于普通打开状态
登录使用时间: 221.175(毫秒)
disql V8
SQL> select * from v$instance;
行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION
---------- ---- ------------- --------------- --------- --------------------------
DB_VERSION
-------------------
START_TIME
----------------------------------------------------------------------------------------------------
STATUS$ MODE$ OGUID DSC_SEQNO DSC_ROLE
------- ------ ----------- ----------- -----------
1 RAC1 RAC1 2 dm8dw02 DM Database Server x64 V8
DB Version: 0x7000a
2020-06-12 18:48:45
OPEN NORMAL 0 1 Normal node
至此,DMDSC共享集群安装部署完成。