达梦8 DSC 集群安装 DSC 集群安装
一、系统规划
|
节点01
|
节点02
|
|
eth0:192.168.157.100
|
eth0:192.168.157.101
|
二、vmvare 虚拟机环境创建虚拟共享磁盘
|
磁盘规划
|
磁盘大小
|
|
Dcr disk
|
100MB
|
|
Voting disk
|
100MB
|
|
Log disk
|
1GB
|
|
Data disk
|
2GB
|
共享存储目录规划:
|
用途
|
磁盘/分区
|
备注
|
|
存放 dcr 信息
|
/dev/sdb
|
1 GB 左右
|
|
存放 vote 信息
|
/dev/sdc
|
1 GB 左右
|
|
存放 redo 日志
|
/dev/sdd
|
10 GB 左右
|
|
存放数据文件
|
/dev/sde
|
根据实际数据大小分配
|
注意:两台虚拟机添加磁盘的顺序需要保持一致、避免造成设备盘符与实际不一致
三、配置环境信息
- 创建用户与组
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd 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
- 用户环境变量配置
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:$DM_HOME/tool
三、vmvare 虚拟机创建磁盘
可以在界面添加也可以在共享裸设备上划分共享逻辑分区
四、安装dm8 数据库
(略)
五、配置共享存储
两个节点上执行:
lsblk
- 新建udv 规则文件
# vim /etc/udev/rules.d/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"
# udevadm trigger --type=devices --action=change
ll /dev/raw/raw*
注意
如果查看不到配置的裸设备,请重启服务器再验证。
六、配置DCR初始化配置文件
两个节点使用dmdba用户执行:
# mkdir -p /home/dmdba/config
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 = 192.168.157.100
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.157.101
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 = 192.168.157.100
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 = 192.168.157.101
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 用户(软件安装目录 bin 下)执行:
$ ./dmasmcmd
进入 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'
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'
注意:进去asmcmd 命令行工具后执行命令后不能加分号
八、配置 ASM 的MAL 系统配置文件
两个节点都执行、且文件内容相同:
$ vim /home/dmdba/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.30.100
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.30.101
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
十、启动集群
1、 启动 DMCSS 服务
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:
$ ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
提示:
先启动的节点是控制节点,本次实验配置了 css 自动启动 asm 和 db,等待 css 启动 asm 和 db 即可。
css 启动 asm 成功,(出现 asm is ready 即表明启动成功)
2、创建ASM 磁盘组
asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具
$ ./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令:
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
创建数据文件磁盘组,执行以下命令:
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
3、初始化共享存储集群数据库实例
配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:
$ vim /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.11
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.12
mal_port = 9236
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log
-------------------
初始化实例,节点 1 使用 dmdba 用户执行以下命令:
./dminit control=/home/dmdba/config/dminit.ini
初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件:
将 dsc2 目录复制到节点 2 上对应的目录下
scp -r dsc2 192.168.157.101:/home/dmdba/config/
观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功
十一、注册服务:
以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。
2 个节点都需要注册,使用 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
|

关闭前台启动的 css,以服务方式启动 css。
节点 1 执行以下命令:
|
systemctl start DmCSSServicecss1
|
节点 2 执行以下命令:
|
systemctl start DmCSSServicecss2
|
验证集群状态
配置监视器查看
任意节点新建监视器配置文件,执行以下命令:
|
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 = 10.0.0.11:9341
CSSM_CSS_IP = 10.0.0.12:9341
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
|
启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:
|
./dmcssm ini_path=/home/dmdba/config/dmcssm.ini
|
输入 show 命令,查看 css、asm 和 db 的状态。
以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。
客户端验证
任意节点配置 dm_svc.conf 文件,执行以下命令:
|
vi /etc/dm_svc.conf
|
添加以下内容:
|
dmdsc=(192.168.157.100:5236,192.168.157.101:5236)
|
使用 disql 工具登录集群(数据库安装目录的 bin 下):
|
./disql SYSDBA/SYSDBA@dmdsc
|
查询视图 v$dsc_ep_info,查看集群状态,执行以下命令:
|
select * from v$dsc_ep_info;
|

验证故障自动重连
以上 disql 连接不断开的情况下(连接的是节点 1 实例),关闭节点 1 服务器,再次查询。
故障节点重新加入
启动节点 1 服务器后,再次查询。

参数优化
集群部署完成后,需要优化 dm.ini 参数,共享存储集群所有节点都需要修改,参数值优化详见参数优化部分。
重启集群
- 关闭数据库:监视器中执行 ep stop dsc
- 关闭 asm:监视器中执行 ep stop asm
- 关闭 css:各节点关闭各自的 css 服务 systemctl stop DmCSSServicecss1/DmCSSServicecss2
- 启动 css: 各节点启动各自的 css 服务 systemctl start DmCSSServicecss1/DmCSSServicecss2
- 启动 asm:配置了自动拉起,等待 asm 自动启动
- 启动数据库:配置了自动拉起,等待数据库自动启动
归档配置
生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法:
- 设置归档空间大小限制即指定 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;
|
定制备份策略
备份与单机部署相同,详见定制备份策略部分。
客户端连接集群
客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
- 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
- 在 Linux 平台下,此文件位于/etc 目录。
文件内容:
|
# 以#开头的行表示是注释
# 全局配置区
DMDSC=(192.168.157.100:5236,192.168.157.101:5236)
TIME_ZONE=(+480) #表示+8:00 时区
LOGIN_ENCRYPT=(0)
DIRECT=(Y)
# 服务配置区
[DMDSC]
TIME_ZONE=(+540) #表示+9:00 时区
LOGIN_MODE=(0)
SWITCH_TIME=(3) #在服务器之间切换的次数
SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒
|
客户端程序连接数据库时,需要指定 IP 端口处替换为服务名即可,例如:
disql SYSDBA/SYSDBA@DMDSC
注意当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。
更多资讯请上达梦技术社区了解: https://eco.dameng.com

浙公网安备 33010602011771号