一.搭建前的准备工作,两个节点都操作
1.创建用户和组
执行以下命令,新建用户组 dinstall:
groupadd dinstall
执行以下命令,新建用户 dmdba:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
执行以下命令,修改 dmdba 用户密码:
passwd dmdba
输入密码并确认。
2.用户资源限制
执行以下命令,修改 dmdba 用户资源限制:
vim /etc/security/limits.conf
文件末尾添加如下内容:
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
3.设置用户环境变量
执行以下命令,修改 dmdba 用户环境变量:
vi /home/dmdba/.bash_profile
文件末尾添加如下内容:
export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
4.安装软件,软件目录为/home/dmdba/dmdbms
5.创建需要的目录,并且修改权限
mkdir /dmarch
mkdir /remote_arch
mkdir /dmbak
chown dmdba:dinstall /dmarch
chown dmdba:dinstall /remote_arch
chown dmdba:dinstall /dmbak
二.创建共享磁盘
1.在VMware Workstation目录下创建共享磁盘文件夹Sharedisk
2.使用VM工具创建4块磁盘
vmware-vdiskmanager.exe -c -s 1G -a lslogic -t 2 "D:\VMware Workstation\Sharedisk\sdb.vmdk"
vmware-vdiskmanager.exe -c -s 1G -a lslogic -t 2 "D:\VMware Workstation\Sharedisk\sdc.vmdk"
vmware-vdiskmanager.exe -c -s 2G -a lslogic -t 2 "D:\VMware Workstation\Sharedisk\sdd.vmdk"
vmware-vdiskmanager.exe -c -s 2G -a lslogic -t 2 "D:\VMware Workstation\Sharedisk\sde.vmdk"
3.在共享磁盘目录下查看磁盘文件是否都创建成功了
三.在两台节点机器上添加共享磁盘
1.两个节点机器关机后都分别添加之前创建的4块共享磁盘,注意添加后不要立即启动节点机器,否则后启动的那台机器会提示磁盘已被占用,无法启动机器
2.修改两个节点机器的配置信息,在配置文件中添加以下信息,保存
scsi0:1.mode = "independent-persistent"
scsi0:1.SharedBus = "Virtual"
scsi0:2.mode = "independent-persistent"
scsi0:2.SharedBus = "Virtual"
scsi0:3.mode = "independent-persistent"
scsi0:3.SharedBus = "Virtual"
scsi0:4.mode = "independent-persistent"
scsi0:4.SharedBus = "Virtual"
disk.locking = "FALSE"
disk.EnableUUID = "TRUE"
注意四块盘的盘号要和机器显示的一样
3.启动两台机器,确认是否都能正常启动,若不能启动,检查之前步骤中修改的配置文件中的参数添加/修改是否有误
4.在两台机器上lsblk查看添加的共享磁盘是否都能正常展示
四.配置共享存储,两个节点上都操作
1.执行以下命令,新建 udev 规则文件:
vi /etc/udev/rules.d/90-raw.rules
2.在90-raw.rules文件中添加以下内容:
ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdc",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdd",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sde",RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
3.执行以下命令,使 udev 生效:
udevadm trigger --type=devices --action=change
4.执行以下命令,检查是否配置成功:
ll /dev/raw/raw*
注意:这一步若看不到配置的裸设备,则重启节点面器材后再次确认下,一般配置没问题重启后就能看到了
五.配置 DCR 初始化配置文件
1.创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /home/dmdba/config
2.新建 dmdcr_cfg.ini 文件,2个节点都执行,用dmdba用户,执行以下命令:
vim /home/dmdba/config/dmdcr_cfg.ini
添加以下内容:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.0.0.208
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 10.0.0.209
DCR_EP_PORT = 9341
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.0.0.208
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.0.0.209
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
六.创建 ASM 磁盘
1.使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)。
./dmasmcmd
2.进入 ASM 提示符后执行以下命令:
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'
3.创建 asm 磁盘
使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'
七.配置ASM的MAL系统配置文件
2个节点都需要配置,且文件内容相同,执行以下命令:
vi /home/dmdba/config/dmasvrmal.ini
添加以下内容:
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 10.0.0.208
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 10.0.0.209
MAL_PORT = 7236
八.配置 DCR 启动配置文件
Vim /home/dmdba/config/dmdcr.ini
节点 1 添加以下内容:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
节点 2 添加以下内容:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
注意:两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0
九.启动 DMCSS 服务
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
注意:先启动的节点是控制节点,本次实验配置了 css 自动启动 asm 和 db,等待 css 启动 asm 和 db 即可。
css 启动 asm 成功,(出现 asm server is ready 即表明启动成功)。
十.创建 ASM 磁盘组
1.asm 启动成功后,不要断开DMCSS服务,新开一个会话窗口,节点 1 使用 dmdba 用户
2.启动 dmasmtool 工具。
./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
3.在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令:
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
4.创建数据文件磁盘组,执行以下命令:
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
十一.初始化共享存储集群数据库实例
1.配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:
vi /home/dmdba/config/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 = 100
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1
port_num = 5236
mal_host = 10.0.0.208
mal_port = 9236
log_path = +DMLOG/log/DSC1_log01.log
log_path = +DMLOG/log/DSC1_log02.log
[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc2
port_num = 5236
mal_host = 10.0.0.209
mal_port = 9236
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log
2.初始化实例,节点 1 使用 dmdba 用户执行以下命令:
./dminit control=/home/dmdba/config/dminit.ini
初始化完成后会在config控制文件配置的目录下生成 2 个实例的配置文件夹:
3.在节点1上将 dsc2 目录复制到节点 2 上对应的目录下
scp -r dsc2 192.168.161.209:/home/dmdba/config/
观察两个节点的 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例都启动成功
十二.注册服务
1.以上启动方式为前台启动,仅用于搭建过程中验证集群配置是否正常。在确认配置正常后需要注册为系统服务,方便启动和关闭集群以及实现开机自动启动。
两个节点都需要操作,使用 root 用户执行,到数据库安装目录的 script/root 目录下
节点 1 执行以下命令:
./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini
节点 2 执行以下命令:
./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini
2.关闭前台启动的 css,以服务方式启动 css。
节点 1 执行以下命令:
systemctl start DmCSSServicecss1
节点 2 执行以下命令:
systemctl start DmCSSServicecss2
重启集群顺序
关闭数据库:监视器中执行 ep stop dsc
关闭 asm:监视器中执行 ep stop asm
关闭css:各节点关闭各自的 css 服务 systemctl stop DmCSSServicecss1/DmCSSServicecss2
启动 css: 各节点启动各自的 css 服务 systemctl start DmCSSServicecss1/DmCSSServicecss2
启动 asm:配置了自动拉起,等待 asm 自动启动
启动数据库:配置了自动拉起,等待数据库自动启动
十三.验证集群状态
1.配置监视器查看
1.1.任意节点新建监视器配置文件,执行以下命令:
vim /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 = 10.0.0.208:9341
CSSM_CSS_IP = 10.0.0.209:9341
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
1.2.启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:
./dmcssm ini_path=/home/dmdba/config/dmcssm.ini
然后输入show查看状态,确认集群状态正常
十四.配置归档
生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:
设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB)。
定期删除归档日志(设置定时作业)。
共享存储集群归档需要配置本地归档和远程归档(保证每个节点都有所有归档日志)。
实例 dsc1 上配置,执行以下命令:
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc2, TYPE=REMOTE, FILE_SIZE=64, SPACE_LIMIT=102400, INCOMING_PATH=/remote_arch';
alter database open;
实例 dsc2 上配置,执行以下命令:
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/dmarch, TYPE=LOCAL, FILE_SIZE=64, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc1, TYPE=REMOTE, FILE_SIZE=64, SPACE_LIMIT=102400, INCOMING_PATH=/remote_arch';
alter database open;
更多资讯请上达梦技术社区了解:https://eco.dameng.com