首页 > 数据库 > 国内数据库 > DM8共享集群DSC搭建
这里准备两台机器做DSC集群,首先将两台机器都关机,准备创建共享盘。





至此,磁盘准备完成。
在虚拟机关闭的情况下,修改配置文件( 位于虚拟机目录下的一个 .vmx文件),
在最后一行添加如下两行:
disk.locking="FALSE"
scsi0:1.SharedBus="Virtual"
两台机器的配置文件都要这么改,改完以后,将上面创建的盘加到主机2上面来:


添加后,开启两台机器,输入 lsblk 都可以看到新增盘sdb:


在服务器1上面操作,对共享磁盘划分:
1) 输入 fdisk /dev/sdb
2) 依次输入 n → p → 1 →回车 → +100M →回车,完成第一块磁盘划分
3) 依次输入 n → p → 2 →回车 → +100M →回车,完成第二块磁盘划分
4) 依次输入 n → p → 3 → 回车→ +2048M→回车,完成第三块磁盘划分
5) 依次输入 n → p → 4 → 回车→回车→回车,完成第四块磁盘划分
6)识别分区:
[root@db1 ~]# partprobe /dev/sdb
7) 编辑/etc/udev/rules.d/60-raw.rules 文件,增加以下语句:
vi /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"
保存,退出
8)裸设备绑定
[root@db1 ~]# /sbin/udevadm trigger --type=devices --action=change
或者
[root@db1 ~]# /sbin/udevadm control --reload
查看绑定信息
[root@db1 ~]# partprobe /dev/sdb
[root@db1 ~]# raw -qa

查看裸设备大小
[root@db1 ~]# blockdev --getsize64 /dev/raw/raw1
服务器2上操作:
#识别分区
[root@db1 ~]# partprobe /dev/sdb
#增加配置文件
[root@db1 ~]# vi /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"
保存,退出
查看绑定信息
[root@db1 ~]# raw -qa
前提准备:两个节点都安装了DM8软件,但不用初始化实例。
DM8安装目录 /home/dmdba/dmdbms
数据目录准备: /home/data/
[root@db1 home]# mkdir -p /home/data/
[root@db1 home]# chown -R dmdba:dinstall /home/data
[root@db1 home]# su – dmdba
[dmdba@db1 ~]$ cd /home/data
创建配置文件:使用 dmdba用户在 /home/data/ 下创建文件dmdcr_cfg.ini,
只需要在dsc1主节点上配置。
后续DMASMCMD工具执行 init 语句会使用到。
需要根据实际环境修改IP配置为rac节点的IP,其他内容可以保持不变。
注:不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASM的DCR_EP_SHM_KEY不能相同。
配置文件内容如下
[dmdba@db1 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 = 192.168.93.101
DCR_EP_PORT = 9340
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.93.102
DCR_EP_PORT = 9341
[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 = 192.168.93.101
DCR_EP_PORT = 9350
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 = 192.168.93.102
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 = 9740
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
注:只在一台机器上执行即可,此处 dmdcr_cfg.ini 配置文件在主节点上,所以就在主节点完成以下操作:
进入安装目录 /bin
[dmdba@db1 data]$ cd /home/dmdba/dmdbms/bin
[dmdba@db1 bin]$ ./dmasmcmd
依次执行下面几句:
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'
init dcrdisk '/dev/raw/raw1' from '/home/data/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/data/dmdcr_cfg.ini'

同样是dmdba用户,目录 /home/data/
先在主节点新增 dmasvrmal.ini,然后scp传到节点2上:
[dmdba@db1 bin]$ cd /home/data/
[dmdba@db1 data]$ vi dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.93.101
MAL_PORT = 7230
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.93.102
MAL_PORT = 7231
#传输文件:
[dmdba@db1 data]$ scp dmasvrmal.ini dmdba@192.168.93.102:/home/data
两个节点都要配置,dmdcr_seqo 分别为 0 和 1,保存到/home/data 目录下面。
此处配置为不会自动拉起,需要手动执行启动 asm 与 server 操作,方便在控制台查看节点信息,
部署成功后可配置为自动拉起,注册服务。
节点1 192.168.93.101
[dmdba@db1 bin]$ cd /home/data/
[dmdba@db1 data]$ vi dmdcr.ini
DMDCR_PATH=/dev/raw/raw1
#dmasmsvr使用的 MAL 配置文件路径
DMDCR_MAL_PATH=/home/data/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

节点2 192.168.93.102
[dmdba@db1 bin]$ cd /home/data/
[dmdba@db1 data]$ vi dmdcr.ini
DMDCR_PATH=/dev/raw/raw1
#dmasmsvr使用的 MAL 配置文件路径
DMDCR_MAL_PATH=/home/data/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
注意:需要改两个地方: DMDCR_SEQNO = 1 和 path=/home/data/dsc1_config

在 192.168.93.101、192.168.93.102 节点先后分别启动 dmcss、dmasmsvr 程序。
用dmdba用户,进入安装目录/bin路径:
[dmdba@db1 data]$ cd /home/dmdba/dmdbms/bin
手动启动 dmcss 命令:
[dmdba@db1 bin]$ ./dmcss DCR_INI=/home/data/dmdcr.ini
( 正常情况下 两台服务器都识别CSS0为控制节点)
手动启动 dmasmsvr 命令:
[dmdba@db1 bin]$ ./dmasmsvr DCR_INI=/home/data/dmdcr.ini
注意:节点2也同样开启两个窗口,一共四个窗口,不要关闭!!!
选择一个节点,启动 dmasmtool 工具:
这里用主节点操作:
su – dmdba
cd /home/dmdba/dmdbms/bin
./dmasmtool DCR_INI=/home/data/dmdcr.ini
登录后,执行以下两段:
#创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
#创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
使用 dmdba 用户,只需要在一个节点上创建,此处选择在 dsc1 主节点中创建
[dmdba@db1 bin]$ cd /home/data/
[dmdba@db1 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 磁盘路径,目前不支持 asm ,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
page_size = 16
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc0_config
port_num = 5236
mal_host = 192.168.93.101
mal_port = 8330 # 注意:这里的 MAL_PORT 不同于 dmasvrmal.ini 的 MAL_PORT
log_path = +DMLOG/dsc0_log01.log
log_path = +DMLOG/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc1_config
port_num = 5236
mal_host = 192.168.93.102
mal_port = 8331 # 注意:这里的 MAL_PORT 不同于 dmasvrmal.ini 的 MAL_PORT
log_path = +DMLOG/dsc1_log01.log
log_path = +DMLOG/dsc1_log02.log
注:需使用 dmdba 用户,在一个节点上初始化数据库就可以,因为 dminit.ini 配置文件在 dsc1 主节点上,所以初始化数据库操作在此节点执行即可。
[dmdba@db1 data]$ cd /home/dmdba/dmdbms/bin
[dmdba@db1 bin]$ ./dminit control=/home/data/dminit.ini

可以看到创建数据库成功,
进入 /home/data/ 目录后可以看到生成两个文件夹:

因为一直在主节点上进行初始化操作, dsc1_config 文件夹应该是节点 2 需要使用的配置文件,
所以需要将 dsc1_config 文件夹传输至节点 2 的 /home/data/ 目录下:
[dmdba@db1 data]$ scp -r dsc1_config/ dmdba@192.168.93.102:/home/data/
节点 1 上可以仅保留 dsc0_config , 删除该文件夹 rm -rf dsc1_config
节点1 192.168.93.101:
[dmdba@db1 data]$ cd /home/dmdba/dmdbms/bin
[dmdba@db1 data]$ ./dmserver /home/data/ dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
节点2 192.168.93.102:
[dmdba@db1 data]$ cd /home/dmdba/dmdbms/bin
[dmdba@db1 data]$ ./dmserver /home/data/ dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
至此,集群部署完毕。
可用disql登录,查看集群状态:
select * from v$dsc_ep_info;
上述2.5【启动DMCSS和DMASM服务】中,四个窗口服务可以注册为后台运行:
节点1、2相同操作:
su – root
cd /home/dmdba/dmdbms/script/root
#注册CSS服务,名为DmCSSServiceDSC
./dm_service_installer.sh -t dmcss -p DSC -dcr_ini /home/data/dmdcr.ini
#启动服务( 启动前需要先关掉之前的窗口CSS服务,否则这里起不来)
service DmCSSServiceDSC start
#注册一个ASM服务,名为DmASMSvrServiceDSC,且必须-y指定依赖的CSS服务:
./dm_service_installer.sh -t dmasmsvr -p DSC -dcr_ini /home/data/dmdcr.ini -y DmCSSServiceDSC
#启动服务( 同样需要先停掉窗口ASM服务,且ASM关闭以后,实例也会自动关闭)
service DmASMSvrServiceDSC start
#查看后台进程运行情况
ps -ef |grep dmdcr.ini
su – root
cd /home/dmdba/dmdbms/script/root
#注册一个名为DmServiceDSC的服务, 需要-y指定ASM服务:
如果是节点1:
./dm_service_installer.sh -t dmserver -p DSC -dm_ini /home/data/dsc0_config/dm.ini -dcr_ini /home/data/dmdcr.ini -y DmASMSvrServiceDSC
如果是节点2:
./dm_service_installer.sh -t dmserver -p DSC -dm_ini /home/data/ dsc1_config/dm.ini -dcr_ini /home/data/dmdcr.ini -y DmASMSvrServiceDSC
#启动服务,(由于上面ASM窗口服务关闭过,因此实例已经关了。这里可以直接启动)
service DmService DSC start
至此,DSC集群启动成功,并注册为后台服务运行。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69998466/viewspace-2768563/ ,如需转载,请注明出处,否则将追究法律责任。