一、确定安装环境
操作系统信息、防火墙关闭、网络正常、是否关闭swap2台服务器之间相互ping通
请参考《Linux系统环境:DM8数据库安装》
查看防火墙状态
systemctl status firewalld
检查SELinux是否关闭
cat /etc/selinux/config
检查ip
ip a
检查内存
free
检查参数设置
su - dmdba ulimit -a
二、环境说明
准备2台机器 DMDSC0、DMDSC1 ,其中 DMDSC0和DMDSC1 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机。
| 机器名 | IP地址 | 初始状态 | 操作系统 | 备注 |
| DMDSC0 | 192.168.xxx.20 192.168.99.3 | 实例名DSC0 | Linux dm_s1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux | 外部服务 IP:192.168.xxx.20 内部通信 IP:192.168.99.3 |
| DMDSC1 | 192.168.xxx.21 192.168.99.4 | 实例名DSC1 | Linux dm_s1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux | 外部服务 IP:192.168.xxx.21
内部通信 IP:192.168.99.4 |
共享磁盘:30G
在两台服务器上,安装好数据库软件
DM各种工具路径:/home/dmdba/dmdbms/bin
配置文件路径: /home/dmdba/dmdbms/config
安装数据库用户及密码:dmdba/dm123456
注:真实的生产环境中,建议至少配置两块共享磁盘,分别用来存放联机日志文件和数据文件
三、DMDSC搭建步骤
1. 裸设备划分
1.1 挂载磁盘
路径:D:Program Files (x86)VMwareVMDiskCentOS_20G.vmdk
1.2 使用fdisk命令将共享存储划分为四个分区
前面两个分区大小为100M,第三个分区不少于2G(该分区过小可能会出现启动dmserver闪退、创建ASM磁盘组时连接失败等报错)
1).输入 fdisk /dev/sdb
2).依次输入 n p 1 回车 +100M 回车,完成第一块磁盘划分
3).依次输入 n p 2 回车 +100M 回车,完成第二块磁盘划分
4).依次输入 n p 3 回车 +2048M 回车,完成第三块磁盘划分
5).依次输入 n p 4 回车 回车 回车,完成第四块磁盘划分
6).w #保存退出
查看分区情况
fdisk -l2. 绑定裸设备
【两节点执行绑定裸设备】
vi /usr/lib/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"
那么在 linux7 中该如何通过 udev 实现持久化:
如下配置完 udev 后需要执行
udevadm trigger --type=devices --action=change
或
两节点执行,通知系统分区表的变化
partprobe /dev/sdb
查看裸设备挂载情况
ll /dev/raw
查看裸设备大小命令
blockdev --getsize64 /dev/raw/raw1
三、配置共享存储相关配置文件
3.1安装数据库软件,创建配置文件目录[2个节点]
3.1.1软件安装
请查看《Linux系统环境:DM8数据库安装》
注:只需安装软件即可,不需要进行初始化实例的操作
3.1.2创建配置文件目录
su - dmdba mkdir -p /home/dmdba/dmdbms/config cd /home/dmdba/dmdbms/config
3.2 编辑配置文件dmdcr_cfg.ini[2个节点]
vi dmdcr_cfg.ini
添加内容:
DCR_N_GRP = 3 #集群环境包括多少个 group,取值范围 1~16 DCR_VTD_PATH = /dev/raw/raw2 #Voting Disk 路径 DCR_OGUID = 63635 #消息标识,dmcssm 登录 dmcss 消息校验用 [GRP] #[GRP]表示新建一个 Group DCR_GRP_TYPE = CSS #组类型(CSSASMDB) DCR_GRP_NAME = GRP_CSS #组的名字 DCR_GRP_N_EP = 2 #组内节点个数 N,最大 16 DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600 [GRP_CSS] DCR_EP_NAME = CSS0 DCR_EP_HOST = 192.168.99.3 DCR_EP_PORT = 9341 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = 192.168.99.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 #共享内存标识,数值类型(ASM 有效,初始化共享内存的标识符),应为大于 0 的 4 字节整数 DCR_EP_SHM_SIZE = 20 #共享内存大小,单位 M,(ASM 有效,初始化共享内存大小),取值范围10~1024 DCR_EP_HOST = 192.168.99.3 DCR_EP_PORT = 9349 DCR_EP_ASM_LOAD_PATH = /dev/raw # ASM 磁盘扫描路径,Linux 下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径 [GRP_ASM] DCR_EP_NAME = ASM1 #组成员2的名字 DCR_EP_SHM_KEY = 93361 DCR_EP_SHM_SIZE = 20 DCR_EP_HOST = 192.168.99.4 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 #组成员1的名字 DCR_EP_SEQNO = 0 #组内序号,CSS/ASM 不能配置,自动分配 DB 可配置0到n_ep -1,组内不能重复,不配置则自动分配 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 9741 # DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突 [GRP_DSC] DCR_EP_NAME = DSC1 DCR_EP_SEQNO = 1 DCR_EP_PORT = 5236 # 此端口信息决定数据库访问的最终端口信息,此端口指定后dm.ini文件中在指定默认无效 DCR_CHECK_PORT = 9742 # DCR 检查端口号。检查实例是否活动的时候用,各实例不能冲突3.3 创建DMASM磁盘[节点1]
使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在1个节点执行)。
# cd /home/dmdba/dmdbms/bin ./dmasmcmd
3.3.1 格式化裸设备
使用 DMASMCMD 工具,将裸设备格式化为DCR磁盘,Voting Disk,ASM Disk:
create dcrdisk '/dev/raw/raw1' 'dcr' create votedisk '/dev/raw/raw2' 'vote' create asmdisk '/dev/raw/raw3' 'LOG0' create asmdisk '/dev/raw/raw4' 'DATA0'
3.3.2 初始化DCR & Voting Disk
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'
3.4 编辑配置文件dmasvrmal.ini[2个节点]
配置DMASM的MAL系统配置文件
vi /home/dmdba/dmdbms/config/dmasvrmal.ini
添加内容:
[MAL_INST1] MAL_INST_NAME = ASM0 MAL_HOST = 192.168.99.3 MAL_PORT = 7236 [MAL_INST2] MAL_INST_NAME = ASM1 MAL_HOST = 192.168.99.4 MAL_PORT = 72373.5 编辑配置文件dmdcr.ini[2个节点]
第1个节点:
vi /home/dmdba/dmdbms/config/dmdcr.ini
添加内容:
DMDCR_PATH =/dev/raw/raw1 DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径 DMDCR_SEQNO = 0 #ASM 重启参数,命令行方式启动 DMDCR_ASM_RESTART_INTERVAL =0 #为0,不自动拉起dmasm DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini #DB 重启参数,命令行方式启动 DMDCR_DB_RESTART_INTERVAL = 0 #为0,不自动拉起dmserver DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/DSC0/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
第2个节点:
vi /home/dmdba/dmdbms/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1 DMDCR_MAL_PATH =/home/dmdba/dmdbms/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径 DMDCR_SEQNO = 1 #ASM 重启参数,命令行方式启动 DMDCR_ASM_RESTART_INTERVAL =0 DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini #DB 重启参数,命令行方式启动 DMDCR_DB_RESTART_INTERVAL = 0 DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/DSC1/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
3.6 启动DMCSS,DMASM服务
2个节点分别开2个窗口,先后分别启动 dmcss、dmasmsvr 程序。
【2个节点】手动启动dmcss命令:
cd /home/dmdba/dmdbms/bin ./dmcss dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
【2个节点】手动启动dmasmsvr命令:
cd /home/dmdba/dmdbms/bin ./dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
主屏幕打印相关信息:
[/opt/dmdbms/bin]# ./dmcss dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini dmcss V8 设置 CSS[0]为主 CSS [ASM]: 设置 EP[0]为控制节点 [ASM]: 设置命令[START NOTIFY], 目标节点[0], 命令序号[2] [ASM]: 设置命令[EP START], 目标节点[0], 命令序号[3] [ASM]: 设置命令[NONE], 目标节点[0], 命令序号[0] [ASM]: 设置命令[EP START], 目标节点[1], 命令序号[9] [ASM]: 设置命令[NONE], 目标节点[1], 命令序号[0] [ASM]: 设置命令[EP OPEN], 目标节点[0], 命令序号[12] [ASM]: 设置命令[EP OPEN], 目标节点[1], 命令序号[13
查看服务是否正常
ps -ef |grep css3.7 使用dmasmtool工具创建DMASM磁盘组[1个节点]
使用dmasmtool工具创建
$cd /home/dmdba/dmdbms/bin
./dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini
输入下列语句创建 DMASM 磁盘组:
#创建日志磁盘组 create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' #创建数据磁盘组 create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'3.8 编辑配置文件dminit.ini【1个节点】
准备dminit.ini配置文件,保存到/home/dmdba/config目录
vi /home/dmdba/dmdbms/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 log_size = 256 dcr_path = /dev/raw/raw1 dcr_seqno = 0 auto_overwrite = 1 [DSC0] config_path = /home/dmdba/dmdbms/data/DSC0 port_num = 5236 mal_host = 192.168.99.3 mal_port = 9236 log_path = +DMLOG/log/dsc0_log01.log log_path = +DMLOG/log/dsc0_log02.log [DSC1] config_path = /home/dmdba/dmdbms/data/DSC1 port_num = 5236 mal_host = 192.168.99.4 mal_port = 9236 log_path = +DMLOG/log/dsc1_log01.log log_path = +DMLOG/log/dsc1_log02.log3.9 初始化实例[1个节点]
节点1:
使用dmdba用户,初始化实例 ,执行以下命令:
./dminit control=/home/dmdba/dmdbms/config/dminit.ini
节点2:
mkdir -p /home/dmdba/dmdbms/data #创建目录
节点1:
将192.168.99.3机器上/home/dmdba/dmdbms/data/dsc1目录拷贝到 192.168.99.4机器相同目录下
[dmdba@dw_p data]$ scp -r /home/dmdba/dmdbms/data/DSC1 192.168.99.4:/home/dmdba/dmdbms/data/DSC13.10 前台启动数据库服务
分别启动 dmserver 即可完成 DMDSC集群搭建。如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。
如果需要手动启动,可参考下面的操作步骤:
192.168.99.3机器:(分别在三个窗口按顺序启动服务)
cd /home/dmdba/dmdbms/bin ./dmcss dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini ./dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini ./dmserver /home/dmdba/dmdbms/data/DSC0/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini
192.168.99.4机器:
cd /home/dmdba/dmdbms/bin ./dmcss dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini ./dmasmsvr dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini ./dmserver /home/dmdba/dmdbms/data/DSC1/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini3.11 配置监视器dmcssm.ini【1个节点】
cd /home/dmdba/dmdbms/config vi dmcssm.ini
添加:
CSSM_OGUID = 63635 #和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致 #配置所有 CSS 的连接信息, #和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致 CSSM_CSS_IP = 192.168.99.3:9341 CSSM_CSS_IP = 192.168.99.4:9343 CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径 CSSM_LOG_FILE_SIZE = 64 #每个日志文件最大 32 MB CSSM_LOG_SPACE_LIMIT = 2048 #不限定日志文件总占用空间3.12 启动监视器
$cd /home/dmdba/dmdbms/bin/ ./dmcssm ini_path=/home/dmdba/dmdbms/config/dmcssm.ini
show命令查看CSS,ASM,DSC 状态
show3.13 客户端工具查看
select * from SYS."$DSC_EPV_INFO"3.14 注册DMCSS和监视器服务
注册DMCSS服务分别在两个节点执行
节点1:
cd /home/dmdba/dmdbms/script/root ./dm_service_installer.sh -t dmcss -p DMCSS0 -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini
节点2:
cd /home/dmdba/dmdbms/script/root ./dm_service_installer.sh -t dmcss -p DMCSS1 -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini
将3.5节的配置时间改一下,方面服务自动拉起CSS,ASM和DB,如图:
使用服务启动节点1:
systemctl restart DmCSSServiceDMCSS0
使用服务启动节点2:
systemctl restart DmCSSServiceDMCSS1
注册DMCSSM监视器服务
cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -p DMCSSM -t dmcssm -cssm_ini /home/dmdba/dmdbms/config/dmcssm.ini
启动监视器命令:
systemctl start DmCSSMonitorServiceDMCSSM3.15 配置dm_svc.conf连接服务名[节点1]
vi /etc/dm_svc.conf
添加:
dmsvc=(192.168.153.20:5236,192.168.153.21:5236) [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA@dmsvc
服务器[192.168.153.20:5236]:处于普通打开状态
登录使用时间 : 15025.798(ms)
disql V8



