本次任务为使用uuid绑定磁盘后安装数据库
找到对应安装在vmware目录下的vmware-vdiskmanager.exe
使用命令行打开(可用cmd,本文使用powershell)
cd 'C:\Program Files (x86)\VMware\VMware Workstation'
ls vmware-vdiskmanager.exe
有以下输出证明路径正确
本次规划的目标
磁盘名称 | 空间大小 |
---|---|
DCR | 100MB |
VOTE | 200MB |
REDO | 1GB |
DATA | 10GB |
ARCHIVE | 5GB |
存放目标目录为D:\vmware\share_disk
.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "D:\vmware\share_disk\DCR.vmdk"
.\vmware-vdiskmanager.exe -c -s 200MB -a lsilogic -t 2 "D:\vmware\share_disk\VOTE.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "D:\vmware\share_disk\REDO.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\vmware\share_disk\DATA.vmdk"
.\vmware-vdiskmanager.exe -c -s 5GB -a lsilogic -t 2 "D:\vmware\share_disk\ARCHIVE.vmdk"
回到目录,磁盘已经创建完成
重复操作4次
添加5个磁盘到虚拟机1中(由于篇幅问题,步骤已经省略,步骤可以在过去的博文中找到)
在虚拟机1的文件夹中找到.vmx加入
disk.locking=false
disk.EnableUUID = "TRUE"
#如果想要使用uuid,可以加入EnableUUID
添加5个磁盘到虚拟机2中(由于篇幅问题,步骤已经省略,步骤可以在过去的博文中找到)
进入第二台虚拟机中,在虚拟机2的文件夹中找到.vmx加入设置所有的bus 共享
disk.locking=false
disk.EnableUUID = "TRUE"
#如果想要使用uuid,可以加入EnableUUID
虚拟机1和虚拟机2同样的磁盘需要在虚拟机中设定好对应的SCSI(添加磁盘的顺序不能错)
启动虚拟机即可查看到共享磁盘组
虚拟机1
在虚拟机中如果发现新增磁盘之后fdisk -l 不显示
则进入root输入
(虚拟机有三根总线)
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host2/scan
查询对应的uuid是否一致
#使用SCSI绑定检测uuid是否一致
for i in b c d e f g;
do
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i
done
如果使用的是nvme硬盘
for i in b c d e f g;
do
ls -la /dev/disk/by-id|grep nvme
之后搭建dsc集群
- 修改权限,编辑两个节点的/etc/udev/rules.d/60-raw.rules 文件
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c410a60e54ae604a731e06cc9", SYMLINK+="dmdcr",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e912d081ee6282add0327fff7", SYMLINK+="dmvote",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2902354c5b2f6ebcdfe4d2a5df4", SYMLINK+="asm-d",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298c722c8de0493319f9773fb91", SYMLINK+="dmdata",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c295920294d45bf9f8505767866a", SYMLINK+="dmarchive",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29cd90c725f9731eaff1a18ae24", SYMLINK+="asm-diskg",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c296a2b878077c8972d18c2de926", SYMLINK+="dmredo",OWNER="dmdba", GROUP="dinstall",MODE="0660"
- 执行
udevadm trigger --action=add
配置DSC节点文件
- 在DSC0上配置/dm/data/dsc/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/dmvote
DCR_OGUID = 210331
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 65
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.48.20
DCR_EP_PORT = 31286
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.48.21
DCR_EP_PORT = 31286
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 61
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 42424
DCR_EP_SHM_SIZE = 200
DCR_EP_HOST = 192.168.48.20
DCR_EP_PORT = 31276
DCR_EP_ASM_LOAD_PATH = /dev
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 42425
DCR_EP_SHM_SIZE = 200
DCR_EP_HOST = 192.168.48.21
DCR_EP_PORT = 31277
DCR_EP_ASM_LOAD_PATH = /dev
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 57
[GRP_DSC]
DCR_EP_NAME = DSC_DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
- 双节点使用DMASMCMD初始化
create dcrdisk '/dev/dmdcr' 'dcr'
create votedisk '/dev/dmvote' 'vote'
create asmdisk '/dev/dmarchive' 'LOG0'
create asmdisk '/dev/dmdata' 'DATA0'
init dcrdisk '/dev/dmdcr' from '/dm/data/dsc/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/dmvote' from '/dm/data/dsc/dmdcr_cfg.ini'
- 双节点配置dmasvrmal.ini
两节点内容完全一样
[MAL_INST0]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.48.20
MAL_PORT = 31266
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.48.21
MAL_PORT = 31266
- DSC0节点配置dmdcr.ini
DMDCR_PATH = /dev/dmdcr
DMDCR_MAL_PATH = /dm/dsc_config/DSC_DSC0/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 71
DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmServiceDSC_DSC0 start
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmServiceDSC_DSC0 start
DMDCR_AUTO_OPEN_CHECK = 111
- DSC1节点配置dmdcr.ini
DMDCR_PATH = /dev/dmdcr
DMDCR_MAL_PATH = /dm/dsc_config/DSC_DSC1/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 71
DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmServiceDSC_DSC1 start
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmServiceDSC_DSC1 start
DMDCR_AUTO_OPEN_CHECK = 111
- 在DSC0和DSC1先后启动dmcss、dmasmsvr
./dmcss DCR_INI=/dm/data/dsc/dmdcr.ini #dmcss
./dmasmsvr DCR_INI=/dm/data/dsc/dmdcr.ini #dmasmsvr
-
单独启动dmcss只有如下输出
-
只启动DSC0dmcss与dmasmsvr会只有以下输出
-
两集群真正启动之后就会有如下效果
-
Dsc0节点启动dmasmtool创建共享磁盘
./dmasmtool DCR_INI=/dm/data/dsc/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/dmarchive' #创建磁盘日志组
create diskgroup 'DMDATA' asmdisk '/dev/dmdata' #创建数据磁盘组
- 在/dm/data/dsc目录下新建一个dminit.ini文件
DB_NAME = DSC_DSC
SYSDBA_PWD = SYSDBA_PWD
SYSTEM_PATH = +DMDATA/data
SYSTEM = +DMDATA/data/SYSTEM.dbf
SYSTEM_SIZE = 1024
ROLL = +DMDATA/data/ROLL.dbf
ROLL_SIZE = 1024
MAIN = +DMDATA/data/MAIN.dbf
MAIN_SIZE = 1024
CTL_PATH = +DMDATA/data/dm.ctl
CTL_SIZE = 8
LOG_SIZE = 256
DCR_PATH = /dev/dmdcr
DCR_SEQNO = 0
AUTO_OVERWRITE = 1
PAGE_SIZE = 16
EXTENT_SIZE = 16
CASE_SENSITIVE = 1
UNICODE_FLAG = 0
[DSC_DSC0]
CONFIG_PATH = /dm/dsc_config/DSC_DSC0
PORT_NUM = 5236
MAL_HOST = 192.168.48.20
MAL_PORT = 31246
LOG_PATH = +DMLOG/DSC_DSC0_LOG01.log
LOG_PATH = +DMLOG/DSC_DSC0_LOG02.log
[DSC_DSC1]
CONFIG_PATH = /dm/dsc_config/DSC_DSC1
PORT_NUM = 5236
MAL_HOST = 192.168.48.21
MAL_PORT = 31246
LOG_PATH = +DMLOG/DSC_DSC1_LOG01.log
LOG_PATH = +DMLOG/DSC_DSC1_LOG02.log
- 启动dminit初始化DB环境
DSC0执行以下命令
./dminit control=/dm/data/dsc/dminit.ini
- 将dsc1_config文件夹发送到dsc1的相同目录下
启动DMDSC集群
- 分别在dsc0和dsc1下启动dmserver即可完成dsc搭建
./dmserver /dm/data/dsc0_config/dm.ini dcr_ini=/dm/data/dsc/dmdcr.ini #dsc0
./dmserver /dm/data/dsc1_config/dm.ini dcr_ini=/dm/data/dsc/dmdcr.ini`#dsc1
monitor配置
配置dmcssm.ini
CSSM_OGUID = 210331
CSSM_CSS_IP = 192.168.48.20:31286
CSSM_CSS_IP = 192.168.48.21:31286
CSSM_LOG_PATH = /dm/log
CSSM_LOG_FILE_SIZE = 16
CSSM_LOG_SPACE_LIMIT = 512
在monitor启动监视器
./dmcssm INI_PATH=/dm/data/dmcssm.ini
输入show命令即可看到当前状态