一.虚拟机搭建共享磁盘
- 选择一台虚拟机添加硬盘
- 为第二台虚拟机增加硬盘(步骤基本一致,除选择磁盘时选择现有磁盘,添加第一步时创立的虚拟磁盘)
- 配置文件参数
VM需要在两台虚拟机路径下xxx.vmx文件中加入disk.locking = “FALSE”参数,否则后启动的虚拟机会启动失败。
- 常见问题
出现如上问题,原因为未修改步骤3中文件参数。
上图所示独立选项可能不能选择,原因为此虚拟机存在快照。
配置文件输入语句有问题,注意中英文引号。
二.裸设备划分
可以查看共享磁盘
fdisk -l
上图所显示的 /dev/sda即为共享磁盘路径
- 在共享磁盘上裸设备划分
1) 输入 fdisk /dev/sdb
2) 依次输入 n p 1 回车 +100M 回车,完成第一块磁盘划分
3) 依次输入 n p 2 回车 +100M 回车,完成第二块磁盘划分
4) 依次输入 n p 3 回车 +2048M 回车,完成第三块磁盘划分
5) 依次输入 n p 4 回车 回车
6)输入w命令,将裸设备划分的设置进行保存;
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"
最后执行 start_udev,完成裸设备绑定
出现问题:
在linux 7.x 中已经没有start_udev命令,在配置完UDEV 后,需要执行:
/sbin/udevadm trigger --type=devices --action=change
或者
/sbin/udevadm control --reload
如果没有生效,重启系统 reboot
3.查看裸设备大小
blockdev --getsize64 /dev/raw/raw1
可能出现问题:查看裸设备大小的时候,报错说找不到哪个文件或者目录。
问题原因:没有执行绑定裸设备的命令。
解决方法:执行正确的命令,或者重启虚拟机
4.配置文件(保存在/home/dmdba/data路径下,注意当配置文件出错更改时注意 将所有服务关闭)
1)配置dmdcr_cfg.ini,后续 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 = CSS1
DCR_EP_HOST = 192.168.1.107
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.106
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.107
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 = 5237
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5237
DCR_CHECK_PORT = 9742
2)准备 DMASM 的 MAL 配置文件(命名为 dmasvrmal.ini),使用 DMASM 的 所有节点都 要配置,内容完全一样
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.1.106 #心跳地址
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.1.107 #心跳地址
MAL_PORT = 7237
3)准备 dmdcr.ini 配置文件,此文件基本相同,除dmdcr_seqo 分别为 0 和 1
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH= /home/dmdba/data/dmasvrmal.ini #dmasmsvr 使用的MAL 配置文件路径
DMDCR_SEQNO =0/1
#ASM重启参数,命令行方式启动
#DMDCR_ASM_RESTART_INTERVAL =0
#DMDCR_ASM_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/data/dmdcr.ini
#DB重启参数,命令行方式启动
#DMDCR_DB_RESTART_INTERVAL=0
#DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/data/dsc0_config/dm.inidcr_ini=/home/dmdba/data/dmdcr.ini
4)配置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
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/data/dsc0_config
port_num = 5237 #此处端口后一定要保证与dmdcr_cfg.ini一致
mal_host = 192.168.1.106
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/dmdba/data/dsc1_config
port_num = 5237 #此处端口后一定要保证与dmdcr_cfg.ini一致
mal_host = 192.168.1.107
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
5. 初始化磁盘组(此处对应之后可能出现的ASM连接异常问题,注意当重新进行裸 设备绑定后,一定要重新初始化磁盘组)
vim /etc/rc.local(需要两节点都执行,执行完注意执行磁盘初始化)
#DMDSC disks
raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw4 /dev/sdb4
chown dmdba:dinstall /dev/raw/raw1
chown dmdba:dinstall /dev/raw/raw2
chown dmdba:dinstall /dev/raw/raw3
chown dmdba:dinstall /dev/raw/raw4
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chmod 660 /dev/raw/raw3
chmod 660 /dev/raw/raw4
然后赋予执行权限;chmod 775 /etc/rc.d/rc.local
然后重启,或者source /etc/rc.local 使当前生效
在两节点上启动dmasmcmd工具,依次输入以下命令:
cd /home/dmdba/dmdbms/dmdbms/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/dmdba/data/dmdcr_cfg.ini'identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/data/dmdcr_cfg.ini'
6.启动 DMCSS、DMASM 服务程序
在两节点分别启动dmcss、dmasmsvr 程序
手动启动 dmcss 命令:
./dmcss DCR_INI=/home/dmdba/data/dmdcr.ini
可能出现问题:启动DMCSS服务的时候,ASM0[0]节点一直启动失败。
问题原因:
1) 配置文件有误。
2) 防火墙没有关。
解决方法:
1) 仔细检查配置文件,主要查看IP、参数以及路径是否有误。
2)检查虚拟机防火墙状态,关闭防火墙,或者将用到的端口放在白名单里。
手动启动 dmasmsvr 命令:
./dmasmsvr DCR_INI=/home/dmdba/data/dmdcr.ini
一节点显示如下:
二节点显示如下:
7.使用 dmasmtool 工具创建 DMAS
选择一个节点启动 dmasmtool 工具
./dmasmtool DCR_INI=/home/dmdba/data/dmdcr.ini #创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' #创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
此处出现问题:
可能原因为:
1)ASM服务没有开。
2)CSS服务还没有执行完毕,等打印完毕可以仅需进行操作。
3)配置文件IP有误。
4)重新绑定裸设备后未重新初始化磁盘组。
解决办法:
1)打开DMASM服务。
2)等待CSS服务页面打印完毕。
3)仔细检查配置文件,修改为正确的IP。
4)重新初始化磁盘组,详细返回步骤5。
8.使用 dminit 初始化 DB 环境
选择一个节点(192.168.1.106),启动 dminit 工具初始化数据库。 dminit 执行完成 后,会在目录(/home/data/dsc0_config和/home/data/dsc1_config)下生成配置 文件 dm.ini 和 dmmal.in
./dminit control=/home/data/dminit.ini
生成文件:
将dsc1_config文件传给二节点
scp -r dsc1_config dmdba@192.168.107:/home/dmdba/data
9.分别启动数据库服务
./dmserver /home/dmdba/data/dsc0_config/dm.ini dcr_ini=/home/dmdba/data/dmdcr.ini
./dmserver/home/dmdba/data/dsc1_config/dm.inidcr_ini=/home/dmdba/data/dmdcr.ini
使用sql语句查看集群状态:
select * from V$dsc_ep_info;
二.启动脚本注册
以root用户创建后台启动脚本:
cd /home/dmdba/dmdbms/script/root
此下为一节点注册过程,二节点基本相同,注意将脚本名称更改
创建CSS服务:
./dm_service_installer.sh -t dmcss -p _dsc0 -dcr_ini /home/dmdba/data/dmdcr.ini
创建DMASM服务:
./dm_service_installer.sh -t dmasmsvr -p _dsc0 -dcr_ini /home/dmdba/data/dmdcr.ini -y DmCSSService_dsc0.service
创建DMSERVER服务:
./dm_service_installer.sh -t dmserver -p _dsc0 -dm_ini /home/dmdba/data/dsc0_config/dm.ini -dcr_ini /home/dmdba/data/dmdcr.ini -y DmASMSvrService_dsc0.service
查看服务
systemctl list-unit-files|grep Dm //查看达梦服务
三.注册监视器
在节点A、节点B的/home/dmdba/dmdbms/bin目录下,配置dmcssm.ini文件,内 容如下:
CSSM_OGUID = 63635 #此处上面配置文件时说明过,保持一致
CSSM_CSS_IP =192.168.1.106:9341
CSSM_CSS_IP =192.168.1.107:9343
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
启动监视器
./dmcssm INI_PATH=dmcssm.ini
show