一、环境准备
虚拟机准备,添加共享磁盘
(1)共享存储规划
裸设备名 | 容量 | 用途 |
/dev/sdb | 10 G | /dev/asmdata0(数据磁盘) |
/dev/sdc | 5 G | /dev/asmdcr(DCR 磁盘) |
/dev/sdd | 5 G | /dev/asmvote(vote 磁盘) |
/dev/sde | 10 G | /dev/asmlog0(redo 日志磁盘) |
/dev/sdf | 10 G | /dev/asmarch0(归档日志磁盘) |
(2)cmd命令行创建共享磁盘(如果指定的共享磁盘的存放目录如果不存在需要提前创建)
在VMware安装目录下
.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-data0.vmdk"
.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-dcr.vmdk"
.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-vote.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-log0.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-arch0.vmdk"
(3)编辑两台虚拟机的vmx文件(需要在关闭虚拟机的情况下进行)
在最后面添加:
#shared disks configure
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "P:\VMtools\dsc1\sharedisk\share-data0.vmdk"
scsi1:0.redo = ""
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "P:\VMtools\dsc1\sharedisk\share-dcr.vmdk"
scsi1:1.redo = ""
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "P:\VMtools\dsc1\sharedisk\share-vote.vmdk"
scsi1:2.redo = ""
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "P:\VMtools\dsc1\sharedisk\share-log0.vmdk"
scsi1:3.redo = ""
scsi1:4.mode = "independent-persistent"
scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "P:\VMtools\dsc1\sharedisk\share-arch0.vmdk"
scsi1:4.redo = ""
(4)我们可以查看虚拟机配置,已经新增了5块磁盘
二、DM数据库安装
安装DM数据库,每个节点都要安装,无需初始化实例
三、DSC集群部署
3.1磁盘准备
(1)通过scsi_id 获取磁盘信息
虚拟机1
虚拟机2
可以看出两台虚拟机上的磁盘一一对应
(2)创建磁盘链接
在两台机器上编写/etc/udev/rules.d/66-dmdevices.rules 配置信息,创建磁盘链接。
vi /etc/udev/rules.d/99-dm-asmdevices.rules
添加以下内容
## DCR磁盘配置,且在软链接之前创建文件夹 /dev_DSC
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29df91b9169b65f5b9da848c4d3",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC; ln -s /dev/DCR /dev_DSC/DCR'"
## VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291f8f92e715034c312094b9273",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC/VOTE'"
## DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c96942ee1f19eaa8fb5f5d673",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC/DMDATA'"
## DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c292b3e6bf977b7252f414bb6fdb",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC/DMLOG ; chown -R dmdba:dmdba /dev_DSC '"
之所以要软链接到独立目录,是因为 DMDSC 启动时会扫描目录下所有磁盘,如果目录中存在与当前 DMDSC 系统无关的磁盘,则 DMDSC 将启动失败。
(3)重启 systemd-udev-trigger 服务
systemctl restart systemd-udev-trigger
可以看出磁盘权限信息如下:
3.2配置 DCR 初始化配置文件(2个节点)
创建配置文件存放目录
使用dmdba用户,新建下面的文件夹,并在该文件夹下新建 dmdcr_cfg.ini 文件
mkdir -p /home/dmdba/config
vi /home/dmdba/config/dmdcr_cfg.ini
添加以下内容:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev_DSC/VOTE
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.160.155
DCR_EP_PORT = 9836
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.160.156
DCR_EP_PORT = 9837
[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 = 512
DCR_EP_HOST = 192.168.160.155
DCR_EP_PORT = 5836
DCR_EP_ASM_LOAD_PATH = /dev_DSC
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 512
DCR_EP_HOST = 192.168.160.156
DCR_EP_PORT = 5837
DCR_EP_ASM_LOAD_PATH = /dev_DSC
[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 = DSC01
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
[GRP_DSC]
DCR_EP_NAME = DSC02
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
另一个节点同上
3.3初始化磁盘组 (1个节点)
在其中一个磁盘,使用dmdba用户,在bin目录下执行
./dmasmcmd
进入ASM后执行:
create dcrdisk '/dev_DSC/DCR' 'DCR'
create votedisk '/dev_DSC/VOTE' 'VOTE'
create asmdisk '/dev_DSC/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC/DMLOG' 'DMLOG'
init dcrdisk '/dev_DSC/DCR' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'DCRpsd_123'
init votedisk '/dev_DSC/VOTE' from '/home/dmdba/config/dmdcr_cfg.ini'
3.4配置ASM的MAL系统配置文件(2个节点)
vi /home/dmdba/config/dmasvrmal.ini
添加以下内容:
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.160.155
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.160.156
MAL_PORT= 4837
3.5配置 DCR 启动配置文件(2个节点)
vi /home/dmdba/config/dmdcr.ini
节点一添加以下内容:
DMDCR_PATH = /dev_DSC/DCR
DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
节点二添加以下内容:
DMDCR_PATH = /dev_DSC/DCR
DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
3.6启动DMCSS、DMASM服务
(1)在 2 个节点bin目录下分别启动 dmcss 命令:
./dmcss DCR_INI=/home/dmdba/config/dmdcr.ini
节点一
节点二
(2)在 2 个节点bin目录下分别启动 dmasmsvr 命令:
./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini
节点一
节点二
3.7创建 ASM 磁盘组(1个节点)
asm 启动成功后,节点 1 使用 dmdba 用户在bin目录下启动 dmasmtool 工具
创建一个 DATA 磁盘组和一个 LOG 磁盘组
创建DATA磁盘组
CREATE DISKGROUP DMDATA asmdisk '/dev_DSC/DMDATA'
创建LOG磁盘组
CREATE DISKGROUP DMLOG asmdisk '/dev_DSC/DMLOG'
3.8初始化DSC集群数据库实例
(1)节点 1 使用 dmdba 用户执行以下命令:
vi /home/dmdba/config/dminit.ini
添加以下内容:
DB_NAME= dsc2
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/system.dbf
SYSTEM_SIZE= 128
ROLL= +DMDATA/data/roll.dbf
ROLL_SIZE= 128
MAIN= +DMDATA/data/main.dbf
MAIN_SIZE= 128
CTL_PATH= +DMDATA/data/dm.ctl
LOG_SIZE= 2048
DCR_PATH= /dev_DSC/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE = 16
EXTENT_SIZE = 16
SYSDBA_PWD=DMdba_123
SYSAUDITOR_PWD=DMauditor_123
[DSC01]
CONFIG_PATH= /home/dmdba/config/DSC01_conf
PORT_NUM = 5236
MAL_HOST= 192.168.160.155
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC01_log1.log
LOG_PATH= +DMLOG/log/DSC01_log2.log
[DSC02]
CONFIG_PATH= /home/dmdba/config/DSC02_conf
PORT_NUM = 5237
MAL_HOST= 192.168.160.156
MAL_PORT= 6537
LOG_PATH= +DMLOG/log/DSC02_log1.log
LOG_PATH= +DMLOG/log/DSC02_log2.log
(2)初始化实例
bin目录下执行
./dminit control=/home/dmdba/config/dminit.ini
DMINIT 执行完成后,会在 config_path 目录下生成配置文件 DM.INI 和 DMMAL.INI
(3)将节点2的配置文件,从节点1复制到节点2对应目录
scp -r /home/dmdba/config/DSC02_conf dmdba@192.168.160.156:/home/dmdba/config/
3.9启动数据库服务器
分别在bin目录下启动两个节点的服务器
./dmserver dcr_ini=/home/dmdba/config/dmdcr.ini /home/dmdba/config/DSC01_conf/dm.ini
3.10配置并启动 DMCSSM 监视器
(1)创建DMCSSM 的日志存放路径
mkdir /home/dmdba/dm/cssmlog
(2)在任意节点上新建监视器配置文件,执行以下命令:
vi /home/dmdba/config/dmcssm.ini
添加以下内容
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635 #配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.160.155:9836
CSSM_CSS_IP = 192.168.160.155:9837
CSSM_LOG_PATH = /home/dmdba/dm/cssmlog #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
(3)bin目录下启动监视器
./dmcssm /home/dmdba/config/dmcssm.ini