DM8部署两节点DSC
一、安装前准备
1.1 集群规划
1.2 修改主机名
A机器:
[root@localhost ~]# hostname dsc1
[root@localhost ~]#vim /etc/sysconfig/network
添加:
NETWORKING=yes
HOSTNAME=dsc1
[root@localhost ~]# vim /etc/hosts
添加:
192.168.179.130 dsc1
B机器:
[root@localhost ~]# hostname dsc2
[root@localhost ~]#vim /etc/sysconfig/network
添加:
NETWORKING=yes
HOSTNAME=dsc2
[root@localhost ~]# vim /etc/hosts
添加:
192.168.179.131 dsc2
1.3 关闭防火墙和安全策略
A、B机器依次执行:
关闭防火墙:
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl status firewalld
禁用安全策略:
[root@localhost ~]# vim /etc/sysconfig/selinux
修改SELINUX=disabled
1.4 创建用户、目录、安装数据库
A机器:
创建组、用户、设置密码:
[root@dsc1 ~]# groupadd -g 2001 dinstall
[root@dsc1 ~]# useradd -g dinstall -u 1001 dmdba
[root@dsc1 ~]# passwd dmdba
创建目录、修改权限和所属组:
[root@dsc1 ~]# mkdir -p /opt/dsc/dmdbms
[root@dsc1 ~]# mkdir -p /opt/dsc/config
[root@dsc1 ~]# mkdir -p /opt/dsc/arch_0
[root@dsc1 ~]# mkdir -p /opt/dsc/arch_0_remote
[root@dsc1 ~]# mkdir -p /opt/dsc/bak
[root@dsc1 ~]# chown -R dmdba:dinstall /opt/dsc
[root@dsc1 ~]# chmod -R 777 /opt/dsc
修改用户资源限制:
[dmdba@dsc1~]$ ulimit -a
[root@dsc1 ~]# vim /etc/security/limits.conf
添加:
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
安装数据库:
[root@dsc1 ~]# mount dm8_20220304_x86_rh6_64.iso /mnt
[root@dsc1 ~]#su - dmdba
[dmdba@dsc1~]$ cd /mnt
[dmdba@dsc1 mnt]$ ./DMInstall.bin -i
B机器:
创建组、用户、设置密码:
[root@dsc2 ~]# groupadd -g 2001 dinstall
[root@dsc2 ~]# useradd -g dinstall -u 1001 dmdba
[root@dsc2 ~]# passwd dmdba
创建目录、修改权限和所属组:
[root@dsc2 ~]# mkdir -p /opt/dsc/dmdbms
[root@dsc2 ~]# mkdir -p /opt/dsc/config
[root@dsc2 ~]# mkdir -p /opt/dsc/arch_1
[root@dsc2 ~]# mkdir -p /opt/dsc/arch_1_remote
[root@dsc2 ~]# mkdir -p /opt/dsc/bak
[root@dsc2 ~]# chown -R dmdba:dinstall /opt/dsc
[root@dsc2 ~]# chmod -R 777 /opt/dsc
修改用户资源限制:
[dmdba@dsc2~]$ ulimit -a
[root@dsc2 ~]# vim /etc/security/limits.conf
添加:
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
安装数据库:
[root@dsc2 ~]# mount dm8_20220304_x86_rh6_64.iso /mnt
[root@dsc2 ~]#su - dmdba
[dmdba@dsc2~]$ cd /mnt
[dmdba@dsc2 mnt]$ ./DMInstall.bin -i
二、存储准备
2.1 划存储
A机器:进行分区划分
[root@dsc1 ~]# fdisk -l
[root@dsc1 ~]# fdisk /dev/sdb
1) 依次输入 n p 1 回车 +100M,完成第一块磁盘划分
2) 依次输入 n p 2 回车 +100M,完成第二块磁盘划分
3) 依次输入 n p 3 回车 +15360M,完成第三块磁盘划分
4) 依次输入 n p 回车 回车 回车,完成第四块磁盘划分
5) 输入w命令,将裸设备划分的设置进行保存
A、B机器依次执行:[root@dsc1~]# partprobe /dev/sdb
2.2 挂存储
A、B机器依次修改
[root@dsc1 ~]# vim /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@dsc1 ~]# partprobe /dev/sdb
[root@dsc1 ~]# reboot
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。
三、搭建DSC
3.1 创建dmdcr_cfg.ini
A、B机器配置相同
[dmdba@dsc1~]$ vim /opt/dsc/config/dmdcr_cfg.ini
添加:
DCR_N_GRP = 3 #集群环境有多少个GROUP,范围:1~16
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 220615
[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.179.130 #心跳地址
DCR_EP_PORT = 5336 #CSS端口
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.179.131
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的MAL_INST_NAME一致
DCR_EP_SHM_KEY = 93360 #共享内存标识
DCR_EP_SHM_SIZE = 10 #共享内存大小
DCR_EP_HOST = 192.168.179.130 #心跳地址
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.179.131
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
3.2 初始化磁盘组
A机器:
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 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 'admin1234'
ASM> init votedisk '/dev/raw/raw2' from '/opt/dsc/config/dmdcr_cfg.ini'
3.3 创建dmasvrmal.ini
A、B机器配置相同
[dmdba@dsc1~]$ vim /opt/dsc/config/dmasvrmal.ini
添加:
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.179.130 #心跳地址
MAL_PORT = 5636 #监听端口
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.179.131
MAL_PORT = 5637
3.4 创建dmdcr.ini
A机器:
[dmdba@dsc1~]$ vim /opt/dsc/config/dmdcr.ini
添加:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#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
B机器:
[dmdba@dsc2~]$ vim /opt/dsc/config/dmdcr.ini
添加:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /opt/dsc/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#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/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
3.5 启动CSS、ASM服务
A机器、B机器依次执行注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。
待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 bin]$ ./dmcss DCR_INI=/opt/dsc/config/dmdcr.ini
A机器、B机器依次执行:
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 bin]$ ./dmasmsvr DCR_INI=/opt/dsc/config/dmdcr.ini
3.6 创建DMASM磁盘组
A机器:
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 bin~]$ ./dmasmtool DCR_INI=/opt/dsc/config/dmdcr.ini
ASM> create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
ASM> create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
3.7创建dminit.ini
A、B机器配置相同
[dmdba@dsc1~]$ vim /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
[DSC0]
config_path = /opt/dsc/config/dsc0_config
port_num = 5236
mal_host = 192.168.179.130
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.179.131
mal_port = 5737
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
3.8 初始化实例
A机器:
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 bin~]$ ./dmint control=/opt/dsc/config/dminit.ini
拷贝文件:
[dmdba@dsc1~]$ cd /opt/dsc/config
[dmdba@dsc1 config~]$ scp dsc1_config dmdba@192.168.179.131:/opt/dsc/config/
3.9创建dmarch.ini
A机器:
修改dm.ini文件
[dmdba@dsc1~]$ vim /opt/dsc/config/dsc0_config/dm.ini
ARCH_INI = 1
创建dmarch.ini文件
[dmdba@dsc1~]$ vim /opt/dsc/config/dsc0_config/dmarch.ini
添加:
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dsc/arch_0
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = /opt/dsc/arch_0_remote
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
B机器:
修改dm.ini文件
[dmdba@dsc2~]$ vim /opt/dsc/config/dsc1_config/dm.ini
ARCH_INI = 1
创建dmarch.ini文件
[dmdba@dsc2~]$ vim /opt/dsc/config/dsc1_config/dmarch.ini
添加:
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dsc/arch_1
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = /opt/dsc/arch_1_remote
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
3.10 启动DMSERVER服务
A机器:
[dmdba@dsc1~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc1 bin~]$ ./dmserver /opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
B机器:
[dmdba@dsc2~]$ cd /opt/dsc/dmdbms/bin
[dmdba@dsc2 bin~]$ ./dmserver /opt/dsc/config/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini
登录数据库查看节点信息
3.10 注册CSS、ASM、DMSERVER后台服务
A机器:
[root@dsc1~]# cd /opt/dsc/dmdbms/script/root
[root@dsc1 root~]# ./dm_service_installer.sh -t dmcss -dcr_ini /opt/dsc/config/dmdcr.ini -p CSS
[root@dsc1 root~]# ./dm_service_installer.sh -t dmasmsvr -dcr_ini /opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@dsc1 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
B机器:
[root@dsc2~]# cd /opt/dsc/dmdbms/script/root
[root@dsc2 root~]# ./dm_service_installer.sh -t dmcss -dcr_ini /opt/dsc/config/dmdcr.ini -p CSS
[root@dsc2 root~]# ./dm_service_installer.sh -t dmasmsvr -dcr_ini /opt/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@dsc2 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
四、配置监视器
4.1 创建dmcssm.ini
配置在B机器
[dmdba@dsc2~]$ cd /opt/dsc/dmdbms
[dmdba@dsc2 dmdbms~]$ vim dmcssm.ini
添加:
CSSM_OGUID = 220615
CSSM_CSS_IP = 192.168.179.130:5336
CSSM_CSS_IP = 192.168.179.131:5337
CSSM_LOG_PATH = /opt/dsc/dmdbms/log
CSSM_LOG_FILE_SIZE = 512
CSSM_LOG_SPACE_LIMIT = 2048
4.2 注册服务
[root@dsc2~]# cd /opt/dsc/dmdbms/script/root
[root@dsc2 root~]# ./dm_service_installer.sh -t dmcssm -cssm_ini /opt/dsc/dmdbms/dmcssm.ini -p Monitor
五、启停服务
5.1 启动监视器
[dmdba@dsc2~]$ /opt/dsc/dmdbms/bin/DmCSSMonitorServiceMonitor start
前台启动:
[dmdba@dsc2~]$ /opt/dsc/dmdbms/bin/dmcssm INI_PATH=/opt/dsc/dmdbms/dmcssm.ini
5.2 启停集群
启动:A、B机器CSS:
A、B机器:[dmdba@~]$ /opt/dsc/dmdbms/bin/DmCSSServiceCSS start
说明:CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。
停止: A、B机器DMSERVER→A、B机器ASM→A、B机器CSS
A、B机器:[dmdba@~]$ /opt/dsc/dmdbms/bin/DmServiceDSC stop
A、B机器:[dmdba@~]$ /opt/dsc/dmdbms/bin/DmASMSvrServiceASM stop
A、B机器:[dmdba@~]$ /opt/dsc/dmdbms/bin/DmCSSServiceCSS stop
注:
1)、DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。
2)、ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。
3)、服务全部停止后,要检查后台进程是否全部停止。
六、配置应用连接
Linux环境:dm_svc.conf放在应用服务器/etc目录下。
Windows32环境:dm_svc.conf放在应用服务器System32目录下。
Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下。
6.1 创建dm_svc.conf
[root@dsc1~]# vim /etc/dm_svc.conf
TIME_ZONE=(+8:00)
LANGUAGE=(cn)
DSC1=(192.168.179.130:5236,192.168.179.131:5236)
[DSC1]
LOGIN_ENCRYPT=(0)
SWITCH_TIME=(20)
SWITCH_INTERVAL=(2000)
6.2 应用连接
<DRIVER>dm.jdbc.driver.DmDriver</DRIVER>
<URL>jdbc:dm://DSC1:5236?compatibleMode=oracle</URL>
达梦技术社区:https://eco.dameng.com