达梦共享存储跟Oracle RAC结构类似,但是搭建和管理跟Oracle相比较简单易懂
- 安装前规划
- 路径规划
注:测试环境,创建对应目录进行模拟,生产环境必须单独挂载磁盘或者分配磁盘阵列
mkdir /dmdsc
mkdir /remote_arch
mkdir /dmarch
mkdir /dmbak
参数 | 说明 |
/dmdsc | 数据库安装路径 |
/remote_arch | 远程归档放路径 |
/dmarch | 归档日志存放路径 |
/dmbak | 备份文件存放路径 |
共享存储规划
参数 | 说明 | 备注 |
/dev/sdc | 存放dcr信息 | 1G左右 |
/dev/sde | 存放vote信息 | 1G左右 |
/dev/sdd | 存放redo日志 | 10G左右 |
/dev/sdb | 存放数据文件 | 根据实际数据文件大小决定 |
- 集群规划
服务器名称 | IP地址 | 用途 |
db14 | 192.168.0.214/192.168.56.114 | 节点1 |
db15 | 192.168.0.215/192.168.56.115 | 节点2 |
- 端口规划
主机名称 | 端口 | 用途 |
db14 | 5236 | 数据库实例端口 |
db14 | 9741 | 节点1DCR检查数据库实例监听端口 |
db14 | 9341 | 节点1CSS进程TCP连接端口 |
db14 | 9351 | 节点1ASM进程TCP连接端口 |
db14 | 7236 | 节点1ASM的MAL系统TCP端口 |
db14 | 9236 | 节点1数据库实例的MAL系统TCP端口 |
db15 | 5236 | 数据库实例端口 |
db15 | 9741 | 节点2DCR检查数据库实例监听端口 |
db15 | 9341 | 节点2CSS进程TCP连接端口 |
db15 | 9351 | 节点2ASM进程TCP连接端口 |
db15 | 7236 | 节点2ASM的MAL系统TCP端口 |
db15 | 9236 | 节点2数据库实例的MAL系统TCP端口 |
- 实例规划
参数 | 参数值 | 说明 |
库名 | dmdsc | 生产环境根据实际用途进行命名 |
实例名 | dmdsc | 可以跟库名不同 |
端口号 | 5236 | 单机多实例必须不同,多服务器可以相同 |
页大小 | 16 | |
大小写敏感 | 是 |
- 日志规划
参数 | 参数值 | 说明 |
在线日志文件大小 | 1G | |
在线日志文件数量 | 4 | |
归档日志文件大小 | 512M | |
归档日志文件可使用空间 | 10240M | 大约10G,可存放20个归档日志,生产环境根据实际存储大小进行调整 |
- 用户规划
参数 | 说明 |
SYSDBA | 超级管理员 |
DMDBA | 数据库管理员,供日常使用 |
USR_业务_PROD | 业务用户,命名方式以USR开头,中间为实际业务,后缀用来区分数据库环境,如测试环境为TEST,生产环境为PROD。生产环境业务用户权限要注意 |
- 安装前环境检查
操作系统检查:more /etc/*release
uname -a
CPU检查:lscpu
内存检查:more /proc/meminfo或free -m
存储空间检查:主要针对安装路径规划中的磁盘进行确认df -h
- 安装
- 创建用户和组,并修改用户密码
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
- 用户资源限制调整
修改/etc/security/limits.conf添加
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
设置用户环境变量
切换到dmdba用户,修改.bash_profile
export DM_HOME=/dmdsc
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
添加后,使环境变量生效source .bash_profile
- 防火墙设置
关闭防火墙,生产环境建议打开防火墙,开启5236/61141/52141/33141端口
- 下载数据库软件
根据实际操作系统下载对应版本
wget https://package.dameng.com/eco/adapter/DM8/202203/dm8_20220304_x86_rh6_64_ent.zip
- 解压缩
unzip dm8_20220304_x86_rh6_64_ent.zip
mount -oloop dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/
- 切换用户,执行安装
./DMInstall.bin -i
切换到root用户执行脚本
sh /dmdsc/script/root/root_installer.sh
- 配置共享存储
lsblk查看挂在的共享磁盘
规划:
sdb DATA 存放数据
sdc DCR 存放DCR信息
sdd REDO 存放REDO日志
sde VOTE 存放VOTE信息
新建udev规则
vi /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
节点1添加配置文件
vim /home/dmdba/config/dmdcr_cfg.ini
添加一下内容
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw4
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.56.114
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.56.115
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.56.114
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.56.115
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
注意:DCR_VTD_PATH指定的是votedisk的路径
- 创建ASM磁盘
节点1执行
cd /dmdsc/bin
./dmasmcmd
create asmdisk '/dev/raw/raw1' 'DATA0'
create dcrdisk '/dev/raw/raw2' 'dcr'
create asmdisk '/dev/raw/raw3' 'LOG0'
create votedisk '/dev/raw/raw4' 'vote'
使用dmdcr_cfg.ini初始化dcrdisk和votedisk
init dcrdisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/raw/raw4' from '/home/dmdba/config/dmdcr_cfg.ini'
- 配置ASM的MAL系统配置文件
vim /home/dmdba/config/dmasvrmal.ini
添加
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.56.114
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.56.115
MAL_PORT = 7236
- 配置DCR启动配置文件
vi /home/dmdba/config/dmdcr.ini
节点一添加:
DMDCR_PATH = /dev/raw/raw2
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /dmdsc/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dmdsc/bin/dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
节点2添加:
DMDCR_PATH = /dev/raw/raw2
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL =10
DMDCR_ASM_STARTUP_CMD = /dmdsc/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dmdsc/bin/dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
注意:两个节点的DMDCR_SEQNO不能相同
- 启动集群
在两个节点启动DMCSS服务
./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
- 创建ASM磁盘组
ASM启动后在节点1启动dmasmtool工具
./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
执行
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw1'
- 初始化共享存储集群数据库实例
节点1使用dmdba用户创建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 = 1024
dcr_path = /dev/raw/raw2 #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 = 192.168.0.214
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 = 192.168.0.215
mal_port = 9236
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log
执行初始化命令
./dminit control=/home/dmdba/config/dminit.ini
初始化完成后,会在/home/dmdba/config/下生成dsc1和dsc2目录
将dsc2拷贝到db15
scp -r dsc2/ dmdba@192.168.0.215:/home/dmdba/config
观察css窗口日志
- 注册服务
切换到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
systemctl start DmCSSServicecss1.service
- 验证集群
节点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.0.214:9341
CSSM_CSS_IP = 192.168.0.215:9341
CSSM_LOG_PATH =/tmp/ #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动监视器
./dmcssm ini_path=/home/dmdba/config/dmcssm.ini
使用show命令查看
- 客户端验证
修改/etc/dm_svc.conf文件
添加
dmdsc=(192.168.0.214:5236,192.168.0.215:5236)
登陆客户端
./disql SYSDBA/SYSDBA@dmdsc
- 故障重连
节点1关闭
重新启动节点1
启动后节点1自动恢复正常
更多请访问达梦社区
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台