1 环境准备
- 准备两台配置相同的虚拟机,并按下面步骤新建共享存储硬盘。
1.1第一台机器环境准备
- 双击硬盘
- 添加硬盘
- 开始创建硬盘
- 创建完成
1.2 第二台机器环境准备
-
双击硬盘
-
添加硬盘
-
此时选择使用现有磁盘。
-
选择刚才创建的磁盘。
-
此时第二台机器和第一台机器共享磁盘
-
在两台虚拟机的 .vmx文件中加入disk.locking = “FALSE“ 参数。
-
准备完成,启动两台虚拟机
2 裸设备划分和绑定
- 查看磁盘情况(在任意一台机器上就可以,两台机器都可以看到)
2.1 裸设备划分
-
裸设备划分,在任意一台机器上操作就可以
-
划分磁盘
-
划分第1块磁盘:依次输入 ①n ②p ③1 ④回车 ⑤+100M
-
划分第2块磁盘:依次输入 ①n ②p ③2 ④回车 ⑤+100M
-
划分第3块磁盘:依次输入 ①n ②p ③3 ④回车 ⑤+4096M
-
划分第4块磁盘:依次输入 ①n ②p (后面都默认,直接回车就行)
-
输入w,保存更改信息
2.2 绑定裸设备
- 编辑 /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="root", GROUP="root", MODE="660"
- 执行partprobe /dev/sdb,通知系统分区表的变化(两台节点都要操作)
- 执行start_udev,完成裸设备绑定
- 可以查看一下裸设备大小
3 搭建DSC
- 首先在两个节点分别安装DM8
- 在第一个节点准备dmdcr_cfg.ini配置文件,注意IP地址需要换成自己的两个节点的IP
(保存到/home/data目录下,后续会用)
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.133.138
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.133.139
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 = 10
DCR_EP_HOST = 192.168.133.138
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.133.139
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 = 5236
DCR_CHECK_PORT = 9742
- 运行DMASMCDM,并使用进行初始化
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'
- 准备dmasvrmal.ini文件
(两个节点都要配置,内容完全一样,保存到/home/data目录下)
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.133.138
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.133.139
MAL_PORT = 7237
- 准备dmdcr.ini文件 (两个节点都要配置,dmdcr.ini,dmdcr_path相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqno 分别为 0 和 1,保存到/home/data目录下)注意DM数据库路径换成自己的。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
- 两个节点分别启动dmcss
- 两个节点分别启动dmasmsvr
- 使用dmasmtool工具创建DMASM磁盘组 (选任意节点操作即可)
- 准备dminit.ini文件 (选任意节点操作即可,保存到/home/data目录下)
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
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc0_config
port_num = 5236
mal_host = 192.168.133.138
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 = 192.168.133.139
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
- 授权,并初始化库
- 将/home/data/dsc1_config目录拷到另一台节点相同目录下
- 两节点分别启动dmserver服务
- 可以查看一下两个节点的状态