一、安装前准备
1.关闭防火墙
service iptables stop
chkconfig iptables off或iptables -F 关闭防火墙 centos6及以下
cnetos7及以上
查看防火墙状态
firewall-cmd --state
停止firewall
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
vim /etc/selinux/config disabled
setenforce 0
2. 创建用户
操作步骤
步骤 1: 查看 dmdba 用户是否存在。
# id dmdba
id: dmdba:无此用户
步骤 2:创建用户组
groupadd dinstall -g 2001;useradd -g dinstall dmdba -u 1001;passwd dmdba
步骤 3:给用户设置密码(我这里是 dmdba)
# passwd dmdba
步骤 4:校验用户是否创建成功
# id dmdba
uid=10001 (dmdba) gid=10001 (dinstall) 组=10001 (dinstall)
3.创建目录
操作步骤
mkdir -p /opt/dsc/setup /opt/dsc/dmdbms /opt/dsc/config /opt/dsc/arch_0 /opt/dsc/arch_0_remote /opt/dsc/bak
4.修改权限
操作步骤
chown dmdba.dinstall /opt/dsc -R;chmod 777 /opt/dsc -R
5 环境变量
步骤 1:在.bash_profile 最后增加
# su - dmdba
# vi ~/.bash_profile
export DM_HOME=/opt/dsc/dmdbms
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/dsc/dmdbms/bin"
export DM_INSTALL_TMPDIR=/tmp
export PATH=$DM_HOME/bin:$PATH
步骤 2:验证是否配置成功
# source ~/.bash_profile
# echo $DM_HOME
/opt/dmdba/dmdbms
6 修改文件限制
步骤 1:在最后增加
# vi /etc/security/limits.conf
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
* hard core unlimited
* soft core unlimited
步骤 2 查看配置(需要重启)
# ulimit -a
二、配置ASM共享磁盘
1、第一台虚拟机添加共享磁盘
两台虚拟机都需要在关机的条件下进行设置
2、第二台虚拟机添加共享磁盘
两台虚拟机都需要在关机的条件下进行设置
采用同样的方法进行创建磁盘,注意选择使用现有磁盘,也就是第一台已经创建的磁盘
3、参数设置
当两台虚拟机添加完磁盘后先不要开机,需要修改配置文件(使用文本编辑软件编辑两台服务器的安装目录中的CentOS 64 位.vmx),不然不但不会生效,还有可能起不来第二台服务器,只要添加相关参数到第一台,第二台直接复制进去就可。
参数
scsi1.sharedBus = "virtual"
scsi1:1.deviceType = "disk"
scsi1:2.deviceType = "disk"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"
scsi0:1.redo = ""
两台虚拟机可以开机,使用fdisk -l查看效果
三、规划存储
1、在共享磁盘上裸设备划分并配置UDEV 进行持久化:可以根据自己的需求和资源的大小进行划分
sdb1用于dcr信息 | 100M |
sdb2用于存放vote信息 | 100M |
sdb3用于存放redo log | 20480M |
sdb4用于存放data | 剩下的全部空间 |
第一台虚拟机
[root@~]# fdisk /dev/sdb
1) 依次输入 n p 1 回车 +100M,完成第一块磁盘划分
2) 依次输入 n p 2 回车 +100M,完成第二块磁盘划分
3) 依次输入 n p 3 回车 +20480M,完成第三块磁盘划分
4) 依次输入 n p 回车 回车 回车,完成第四块磁盘划分
5) 输入w命令,将裸设备划分的设置进行保存
第一台和第二台虚拟机执行
[root@~]# partprobe /dev/sdb
2、直接挂存储(第一台和第二台虚拟机执行)
[root@~]# vi /etc/udev/rules.d/70-persistent-ipoib.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="dmdba", GROUP="dinstall", MODE="660"
[root@~]# partprobe /dev/sdb
[root@~]# reboot
四、搭建DSC
1、配置dmdcr_cfg.ini
第一台和第二台虚拟机执行
[dmdba@~]# vi /opt/dsc/config/dmdcr_cfg.ini
DCR_N_GRP = 3 #集群环境有多少个GROUP,范围:1~16
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 45331
[GRP] #新建一个GROUP
DCR_GRP_TYPE = CSS #组类型(CSS/ASM/DB)
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 2 #组内节点个数
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳容错时间,单位:秒
[GRP_CSS]
DCR_EP_NAME = CSS0 #CSS节点名
DCR_EP_HOST = 192.168.124.146 #心跳地址
DCR_EP_PORT = 5336 #CSS端口
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.124.147
DCR_EP_PORT = 5337
[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 #ASM节点名,和dmasvrmal.ini的MAL_INST_NAME一致
DCR_EP_SHM_KEY = 93360 #共享内存标识
DCR_EP_SHM_SIZE = 10 #共享内存大小
DCR_EP_HOST = 192.168.124.146 #业务地址
DCR_EP_PORT = 5436 #ASM端口
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.124.147
DCR_EP_PORT = 5437
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 #实例名,和dm.ini的INSTANCE_NAME一致
DCR_EP_SEQNO = 0 #组内序号,不能重复
DCR_EP_PORT = 5236 #实例端口,和dm.ini的PORT_NUM一致
DCR_CHECK_PORT = 5536 #DCR检查端口
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 5537
2、初始化磁盘组
第一台虚拟机
[dmdba@~]# /opt/dsc/dmdbms/bin/dmasmcmd
ASM> create dcrdisk '/dev/raw/raw1' 'dcr'
ASM> create votedisk '/dev/raw/raw2' 'vote'
ASM> create asmdisk '/dev/raw/raw3' 'LOG0'
ASM> create asmdisk '/dev/raw/raw4' 'DATA0'
ASM> init dcrdisk '/dev/raw/raw1' from '/opt/dsc/config/dmdcr_cfg.ini' identified by 'abcd'
ASM> init votedisk '/dev/raw/raw2' from '/opt/dsc/config/dmdcr_cfg.ini'
3、配置dmasvrmal.ini
- 两台虚拟机配置相同
[dmdba@~]# vi /opt/dsc/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.124.146 #心跳地址
MAL_PORT = 5636 #MAL监听端口
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.124.147
MAL_PORT = 5637
4、配置dmdcr.ini
- 第一台虚拟机
[dmdba@~]# vi /opt/dsc/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#DMDCR_ASM_RESTART_INTERVAL = 30 #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvr dcr_ini=/opt/dsc/config/dmdcr.ini
#DMDCR_DB_RESTART_INTERVAL = 60 #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
- 第二台虚拟机
[dmdba@~]# vi /opt/dsc/config/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmasmsvr dcr_ini=/opt/dsc/config/dmdcr.ini
#DMDCR_DB_RESTART_INTERVAL = 60
#DMDCR_DB_STARTUP_CMD = /opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。
- 两台虚拟机依次执行
[dmdba@~]# /opt/dsc/dmdbms/bin/dmcss DCR_INI=/opt/dsc/config/dmdcr.ini
第一台虚拟机
第二虚拟机
- 两台虚拟机依次执行
[dmdba@~]# /opt/dsc/dmdbms/bin/dmasmsvr DCR_INI=/opt/dsc/config/dmdcr.ini
第一台虚拟机
第二台虚拟机
6、使用dmsamtool工具创建DMASM磁盘组
第一台虚拟机
启动 dmasmtool 工具。
[dmdba@~]# /opt/dsc/dmdbms/bin/dmasmtool DCR_INI=/opt/dsc/config/dmdcr.ini
输入下列语句创建 DMASM 磁盘组:
#创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
#创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
- 两台配置相同
[dmdba@~]# vi /opt/dsc/config/dminit.ini
db_name = dsc
system_path = +DMDATA/data
main = +DMDATA/data/dsc/main.dbf
main_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
system = +DMDATA/data/dsc/system.dbf
system_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 2048
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
PAGE_SIZE = 32
CASE_SENSITIVE = Y
CHARSET = 0
LENGTH_IN_CHAR = Y
[DSC0]
config_path = /opt/dsc/config/dsc0_config
port_num = 5236
mal_host = 192.168.124.146
mal_port = 5736
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /opt/dsc/config/dsc1_config
port_num = 5236
mal_host = 192.168.124.147
mal_port = 5737
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
8、初始化实例
- 第一台虚拟机
--初始化实例
[dmdba@~]# /opt/dsc/dmdbms/bin/dminit control=/opt/dsc/config/dminit.ini
--拷贝文件
[dmdba@~]# scp -r /opt/dsc/config/dsc1_config dmdba@192.168.124.147:/opt/dsc/config/
- 第一台虚拟机
--配置dm.ini
[dmdba@~]# vi /opt/dsc/config/dsc0_config/dm.ini
ARCH_INI = 1
--配置dmarch.ini
[dmdba@~]# vi /opt/dsc/config/dsc0_config/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dsc/arch_0
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = /opt/dsc/arch_0_remote
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
- 第二台虚拟机
--配置dm.ini
[dmdba@~]# vi /opt/dsc/config/dsc1_config/dm.ini
ARCH_INI = 1
--配置dmarch.ini
[dmdba@~]# vi /opt/dsc/config/dsc1_config/dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dsc/arch_1
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = /opt/dsc/arch_1_remote
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 51200
- 第一台虚拟机
[dmdba@~]# /opt/dsc/dmdbms/bin/dmserver /opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
- 第二台虚拟机
[dmdba@~]# /opt/dsc/dmdbms/bin/dmserver /opt/dsc/config/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
- 第一台虚拟机
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /opt/dsc/config/dmdcr.ini -p CSS
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dsc/config/dsc0_config/dm.ini -dcr_ini /opt/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
- 第二台虚拟机
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /opt/dsc/config/dmdcr.ini -p CSS
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dsc/config/dsc1_config/dm.ini -dcr_ini /opt/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
五、配置监视器
- 两台虚拟机配置相同
[dmdba@~]# vi /opt/dsc/dmdbms/bin/dmcssm.ini
CSSM_OGUID = 45331
CSSM_CSS_IP = 192.168.124.146:5336
CSSM_CSS_IP = 192.168.124.147:5337
CSSM_LOG_PATH = ../log
CSSM_LOG_FILE_SIZE = 256
CSSM_LOG_SPACE_LIMIT = 2048
[root@~]# /opt/dsc/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /opt/dsc/dmdbms/bin/dmcssm.ini -p Monitor
六、启停服务
[dmdba@~]# /opt/dsc/dmdbms/bin/DmCSSMonitorServiceMonitor start
启动:A/B机器CSS
A机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmCSSServiceCSS start
B机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmCSSServiceCSS start
说明:须同时启动AB机器CSS服务。根据脚本配置,CSS启动后30秒自动拉起ASM,ASM启动后60秒自动拉起DMSERVER,可以通过进程查看。
停止:A/B机器CSS→A/B机器DMSERVER→A/B机器ASM
A机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmCSSServiceCSS stop
B机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmCSSServiceCSS stop
A机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmServiceDSC stop
B机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmServiceDSC stop
A机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmASMSvrServiceASM stop
B机器:[dmdba@~]# /opt/dsc/dmdbms/bin/DmASMSvrServiceASM stop
七、配置dm_svc.conf文件
1、dm_svc.conf配置内容
DSC1=(192.168.124.146:5236,192.168.124.147:5236)
TIME_ZONE=(480)
LANGUAGE=(cn)
LOGIN_ENCRYPT=(0)
loadBalance=(true)
loadBalanceFreq=(60000)
loadBalancePercent=(10)
- 文件存放
Linux:将dm_svc.conf文件放在应用服务器/etc目录下。
Windows32位:将dm_svc.conf文件放在应用服务器system32目录下。
Windows64位:将dm_svc.conf文件放在应用服务器system32和syswow64目
达梦学习社区地址:https://eco.dameng.com