先创建两个虚拟机,分别为DSC1,DSC2
Ip地址:
DSC01:192.168.1.156
DSC02:192.168.1.157
DSC1:
创建虚拟磁盘share.vmx
DSC02:
使用现有磁盘
编辑DSC1.vmx 和 DSC2.vmx文件后面加disk.locking = "FALSE"
用于可以解锁同时打开两个共享磁盘的虚拟机
检测是否共享磁盘是否添加成功:
fdisk -l
磁盘 /dev/sdb为共享的磁盘,此为共享成功
然后进行分区操作
分别对1-4号分区进行划分操作
并分配磁盘大小
使用fdisk /dev/sdb 命令进行分区操作
依次输入 n p 1 默认值 +200M
然后依次输入n p 2 默认值 +200M
再依次输入n p 3 默认值 +4096M
最后依次输入n p 4 默认值 默认值
输入w保存:
继续用fdisk -l查看两个虚拟机:
绑定裸设备:
修改权限,编辑两台虚拟机的/etc/dev/rules.d/60-raw.rules 文件,将以下内容添加至文件:
vi /etc/dev/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"
在两台虚拟机上测试:
dsc1:
partprobe /dev/sdb
dsc2:
partprobe /dev/sdb
输入
raw -qa 查询共享磁盘的情况
blockdev --getsize64 /dev/raw/raw1 raw1、raw2、raw3、raw4 每个查看啊每个分区的磁盘大小
DSC1上执行
udevadm trigger --action=add 重启磁盘再查看裸设备同步。
配置dmdcr_cfg.ini:
切换至dmdba用户。
准备配置文件dmdcr_cfg.ini,保存在 /home/dmdata/ 下,只需要在DMDSC01 主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。
配置文件内容如下:
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.1.156
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.1.157
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 = 20
DCR_EP_HOST = 192.168.1.156
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 = 20
DCR_EP_HOST = 192.168.1.157
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 = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742
授权:
chown -R dmdba:dinstall /dev/raw /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4
切换至dmdba用户
使用 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/dmdata/DAMENG/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdata/DAMENG/dmdcr_cfg.ini'
然后exit退出。
进入/home/dmdata/DAMENG 配置dmasvrmal.ini文件
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.1.156
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.1.157
MAL_PORT = 7236
配置dmdcr.ini文件。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdata/DAMENG/dmasvrmal.ini
#dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdata/dmdcr.ini
#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr path=path=/home/dmdata/DAMENG/dm.ini dcr_ini=/home/dmdata/DAMENG/dmdcr.ini
在DMDSC02中操作,在dmdata目录下创建dmdcr.ini文件,复制以下内容。
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/dmdata/DAMENG/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/dmdata/DAMENG/dmdcr.ini
#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr path=path=/home/dmdata/DAMENG/dm.ini dcr_ini=/home/dmdata/DAMENG/dmdcr.ini
在DMDSC01和DMDSC02先后启动dmcss、dmasmsvr
./dmcss DCR_INI=/home/dmdata/DAMENG/dmdcr.ini #dmcss
./dmasmsvr DCR_INI=/home/dmdata/DAMENG/dmdcr.ini #dmasmsvr
启动dmcss后:
启动dmasmsvr后:
./dmasmtool DCR_INI=/dmdata/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' #创建磁盘日志组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4' #创建数据磁盘组
配置dminit.ini文件
db_name = dsc
system_path = +DMDATA/dmdata
system = +DMDATA/dmdata/dsc/system.dbf
system_size = 128
roll = +DMDATA/dmdata/dsc/roll.dbf
roll_size = 128
main = +DMDATA/dmdata/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/dmdata/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 =/dmdata
port_num = 5236
mal_host = 192.168.30.156
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/dmdata/dsc1_config
port_num = 5237
mal_host = 192.168.30.157
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
初始化数据库
cd /home/dmdba/dmdbms/bin
./dminit control=/dmdata/dminit.ini
13.启动
cd /home/dmdba/dmdbms/bin
./dmserver /dmdata/dsc0_config/dm.ini dcr_ini=/dmdata/dmdcr.ini
./dmserver /dmdata/dsc1_config/dm.ini dcr_ini=/dmdata/dmdcr.ini
使用Disql或者manager执行以下代码可查看集群信息
select * from v$dsc_ep_info;
- 配置监视器
cd /home/dmdba/dmdbms
mkdir dmcssm
cd dmcssm
vi dmcssm.ini
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.30.156:9341
CSSM_CSS_IP = 192.168.30.157:9343
CSSM_LOG_PATH =../log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动:
cd /home/dmdba/dmdbms/bin
./dmcssm INI_PATH=/home/dmdba/dmdbms/dmcssm/dmcssm.ini
实例:
./dm_service_installer.sh -t dmcss -p DSC -dcr_ini /dmdata/dmdcr.ini
CSS:
./dm_service_installer.sh -t dmasmsvr -p DSC -dcr_ini /dmdata/dmdcr.ini -y DmCSSServiceDSC
ASM:
./dm_service_installer.sh -t dmserver -p DSC -dm_ini /dmdata/dsc0_config/dm.ini -dcr_ini /dmdata/dmdcr.ini -y DmASMSvrServiceDSC
./dm_service_installer.sh -t dmserver -p DSC -dm_ini /dmdata/dsc1_config/dm.ini -dcr_ini /dmdata/dmdcr.ini -y DmASMSvrServiceDSC注意注册服务记得加 -y
安装虚拟机的时候报unpxpected error:disk I/O error的错误
解决方法:对流程的理解出现了错误,第一次搭建的时候,把第一个磁盘和共享的磁盘同时一起新建了,导致虚拟机初始化的时候导致磁盘损坏,后来先建一个新磁盘,初始化安装虚拟机之后,再关机新建共享的磁盘,再在第二个节点上创建现有的磁盘就不会出错了
第二个问题:
在使用dmasmcmd工具初始化的时候,出现打开文件失败
解决方案:
切换到root用户,发现/dev/raw/的raw四个文件不是dmdba的权限,用root用户给四个文件授权给dmdba用户既可解决
第三个问题:
查看裸设备大小blockdev --getsize64 /dev/raw/raw1的时候报错
在划分盘,通过udevadm trigger --action=add命令执行后,尝试关机重启虚拟机后恢复正常。
第四个问题:
DSC1和DSC2无法通信成功的情况下,首先检查三个配置文件,如果三个配置文件没有出问题的话,
Systemctl stop firewalld 关闭防火墙
更多资讯请上达梦技术社区了解: https://eco.dameng.com