达梦数据库DSC集群的搭建DM8+CentOS7.7+dmcss+dmasm

达梦数据库DSC集群的搭建DM8+CentOS7.7+dmcss+dmasm
1 环境准备
2 安装DM 软件
3 共享存储环境准备(虚拟化环境配置注意)
3.1 规划6个共享磁盘如下:
3.2 VMware vSphere配置注意
3.2.1 节点DSC1
3.2.2 节点DSC2
3.3 VMware Workstation配置注意
4 绑定UDEV
5 配置raw设备
6 配置dmdcr_cfg.ini 文件
7 使用 DMASMCMD 工具初始化
8 准备DMASM 的 MAL 配置文件(dmasvrmal.ini)
9 准备dmdcr.ini 配置文件
10 启动DMCSS、DMASM 服务程序
10.1 分别在2个节点注册DMCSS和DMASM服务
10.2 启动DMCSS和DMASM 服务
10.3 手工启动命令
11 创建DMASM磁盘组
12 准备dminit.ini 配置文件
13 使用dminit 初始化 DB 环境
14 启动数据库服务器
14.1 注册服务
14.2 启动数据库
14.3 手工启动命令
15 连接数据库验证
15.1 配置服务名文件
15.2 连接RAC集群
15.3 测试故障重连
1 环境准备
主机    IP地址    实例名    操作系统
DSC1    10.10.35.112(外部服务)1.1.1.41(内部通信)    RAC1    CentOs Linux 7.7
DSC2    10.10.35.113(外部服务)1.1.1.42(内部通信)    RAC2    CentOs Linux 7.7
2 安装DM 软件
关闭防火墙 和 Selinux

[root@DSC1 opt]# systemctl stop firewalld
[root@DSC1 opt]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@DSC1 opt]# vi /etc/selinux/config
1
2
3
4
5

创建DM用户:

[root@DSC1 opt]# groupadd dinstall
[root@DSC1 opt]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
[root@DSC1 opt]# passwd dmdba
1
2
3
创建目录:存储dm数据库文件的空间需要提前规划并挂载好,我这里放在/dm8目录下

[root@DSC1 ~]# mkdir -p /dm8/dmdbms
[root@DSC1 ~]# chown -R dmdba:dinstall /dm8
[root@DSC1 ~]# chmod -R 775 /dm8
1
2
3
配置系统限制,在/etc/security/limits.conf 文件中添加如下内容:

cat >> /etc/security/limits.conf << EOF   
dmdba  soft  nofile  65536
dmdba  hard  nofile  65536
EOF
1
2
3
4
重启之后,切换至dmdba用户验证是否生效

[dmdba@DEM ~]# ulimit -a
1
配置环境变量:在dmdba用户的~/.bash_profile 里添加如下内容:

export DM_HOME="/dm8/dmdbms"
export LD_LIBRARY_PATH="/dm8/dmdbms/bin:$LD_LIBRARY_PATH"
export PATH="/dm8/dmdbms/bin:$PATH"
1
2
3
至此我们用dmdba用户开始安装软件
[dmdba@DSC1 dm8]$ ./DMInstall.bin -i

3 共享存储环境准备(虚拟化环境配置注意)
3.1 规划6个共享磁盘如下:
Dcr disk: 1G
Voting disk: 2G
Log disk: 10G
Data disk1: 11G
Data disk2: 12G
Data disk3: 13G
1
2
3
4
5
6
3.2 VMware vSphere配置注意
3.2.1 节点DSC1
添加SCSI控制器 1(共享磁盘不能和本地磁盘使用一个SCSI控制器)

创建6个上面规划的共享磁盘,需要注意内容如下(否则无法DSC2节点无法开机)


Dcr disk: 1G        SCSI(1:0)
Voting disk: 2G    SCSI(1:1)
Log disk: 10G        SCSI(1:2)
Data disk1: 11G    SCSI(1:3)
Data disk2: 12G    SCSI(1:4)
Data disk3: 13G    SCSI(1:5)
1
2
3
4
5
6
3.2.2 节点DSC2
添加现有磁盘

SCSI控制器选择和节点DSC1一样就行

3.3 VMware Workstation配置注意
1、共享磁盘不能和本地磁盘使用一个SCSI控制器,可以如上面配置到SCSI 1
2、找到虚拟机的 .vmx文件添加如下内容,有几个共享磁盘就添加几个scsi1:x

disk.locking = "FALSE"
disk.enableUUID = "TRUE"
scsi1:1.SharedBus = "Virtual"
scsi1:2.SharedBus = "Virtual"
scsi1:3.SharedBus = "Virtual"
scsi1:4.SharedBus = "Virtual"
scsi1:5.SharedBus = "Virtual"
scsi1:6.SharedBus = "Virtual"
1
2
3
4
5
6
7
8
4 绑定UDEV
在之前步骤创建好raw设备之后,在操作系统层面可以直接看到这些硬盘:

[root@DSC2 ~]# fdisk -l|grep "/dev/sd*"
1


因为我们划分了多个磁盘,这些盘符在每次系统启动后并不唯一,所以我们先使用UDEV绑定后,再绑定成raw设备。

udev绑定脚本:

for i in b c d e f g;
do  
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\"" >> /etc/udev/rules.d/99-dm-devices.rules
done  
1
2
3
4
查看执行的结果内容

[root@DSC1 ~]# cat /etc/udev/rules.d/99-dm-devices.rules
1
#重启UDEV 查看绑定:

[root@DSC1 ~]# /sbin/udevadm trigger --type=devices --action=change
[root@DSC1 ~]# /sbin/udevadm control --reload-rules
[root@DSC1 ~]# ll /dev/asm*
1
2
3

上面同样的方法在DSC2上执行

5 配置raw设备
在官方文档raw的配置是写入到/etc/udev/rules.d/60-raw.rules 文件,但因为我们之前的UDEV 规则顺序比60-raw低,所以我们这里把raw配置直接写入到/etc/rc.local 中,以防映射失败。
在rc.local 中添加如下内容:

[root@DSC1 raw]# chmod +x /etc/rc.d/rc.local
[root@DSC1 raw]# vim /etc/rc.d/rc.local 

#DCR
raw /dev/raw/raw1 /dev/asm-diskb
sleep 2
chown dmdba:dinstall /dev/raw/raw1
chmod 660 /dev/raw/raw1

#Votingdisk
raw /dev/raw/raw2 /dev/asm-diskc
sleep 2
chown dmdba:dinstall /dev/raw/raw2
chmod 660 /dev/raw/raw2

#LOG
raw /dev/raw/raw3 /dev/asm-diskd
sleep 2
chown dmdba:dinstall /dev/raw/raw3
chmod 660 /dev/raw/raw3

#Data
raw /dev/raw/raw4 /dev/asm-diske
sleep 2
chown dmdba:dinstall /dev/raw/raw4
chmod 660 /dev/raw/raw4

touch /var/lock/subsys/local
#注意这里必须放在最后一行,否则开机不会自动映射raw设备。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
查看裸设备大小:

[root@DSC2 ~]# blockdev --getsize64 /dev/raw/raw1
1
6 配置dmdcr_cfg.ini 文件
在2个节点的/dm8/dmdbms/data目录下创建配置文件dmdcr_cfg.ini,在文件中添加如下内容:

[root@DSC2 ~]# su - dmdba
[dmdba@DSC2 ~]$ mkdir /dm8/dmdbms/data
[dmdba@DSC2 ~]$ vim /dm8/dmdbms/data/dmdcr_cfg.ini
1
2
3
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635

[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 1.1.1.41
DCR_EP_PORT = 9541
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 1.1.1.42
DCR_EP_PORT = 9542

[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
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.10.35.112
DCR_EP_PORT = 9641
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 = 10.10.35.113
DCR_EP_PORT = 9642
DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_RAC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_RAC]
DCR_EP_NAME = RAC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_RAC]
DCR_EP_NAME = RAC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
7 使用 DMASMCMD 工具初始化
在任意一台节点上用dmasmcmd工具执行如下命令:

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 '/dm8/dmdbms/data/dmdcr_cfg.ini' identified by 'dameng123'
init votedisk '/dev/raw/raw2' from '/dm8/dmdbms/data/dmdcr_cfg.ini'
1
2
3
4
5
6

8 准备DMASM 的 MAL 配置文件(dmasvrmal.ini)
在2个节点的/dm8/dmdbms/data目录下创建 DMASM 的 MAL 配置文件(命名为 dmasvrmal.ini),使用 DMASM 的所有节点都要配置,内容完全一样。

[dmdba@DSC2 ~]$ vim /dm8/dmdbms/data/dmasvrmal.ini
1
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 1.1.1.41
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 1.1.1.42
MAL_PORT = 7237
1
2
3
4
5
6
7
8
9 准备dmdcr.ini 配置文件
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
在2个节点的/dm8/dmdbms/data目录下创建dmdcr.ini 配置文件,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqo 分别为 0 和 1。
节点 1.1.1.41:

[dmdba@DSC1 ~]$ vim /dm8/dmdbms/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdbms/data/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dmdbms/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/dmdbms/data/rac0_config/dm.ini dcr_ini=/dm8/dmdbms/data/dmdcr.ini
1
2
3
4
5
6
7
8
9
10
11
12
节点 1.1.1.42:

[dmdba@DSC2 ~]$ vim /dm8/dmdbms/data/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dmdbms/data/dmasvrmal.ini  #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1

#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dmdbms/data/dmdcr.ini

#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/dmdbms/data/rac1_config/dm.ini dcr_ini=/dm8/dmdbms/data/dmdcr.ini
1
2
3
4
5
6
7
8
9
10
11
12
10 启动DMCSS、DMASM 服务程序
10.1 分别在2个节点注册DMCSS和DMASM服务
以root用户执行
节点DSC1:

#DMCSS:
[root@DSC1 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac1
1
2


#DMASM
[root@DSC1 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac1 -y DmCSSServicerac1
1
2


节点DSC2:

#DMCSS:
[root@DSC2 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac2
1
2


#DMASM
[root@DSC2 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac2 -y DmCSSServicerac2
1
2


10.2 启动DMCSS和DMASM 服务
节点1:

service DmCSSServicerac1 start
service DmASMSvrServicerac1 start
1
2

节点2:

service DmCSSServicerac2 start
service DmASMSvrServicerac2 start
1
2


10.3 手工启动命令
手工启动命令如下,手工启动后窗口不能关闭,所以这里仅作了解,不运行:
手动启动 dmcss 命令:

dmcss DCR_INI=/dm8/dmdbms/data/dmdcr.ini
1
手动启动 dmasmsvr 命令:

dmasmsvr DCR_INI=/dm8/dmdbms/data/dmdcr.ini
1
11 创建DMASM磁盘组
在任意节点使用 dmasmtool 工具创建 DMASM 磁盘组。

[dmdba@DSC1 ~]$ dmasmtool DCR_INI=/dm8/dmdbms/data/dmdcr.ini
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
1
2
3


12 准备dminit.ini 配置文件
在2个节点的/dm8/dmdbms/data目录下创建 dminit.ini 配置文件,添加如下内容。 在2个节点都创建。

[dmdba@DSC1 ~]$ vim /dm8/dmdbms/data/dminit.ini
1
db_name = rac
system_path = +DMDATA/data
system = +DMDATA/data/rac/system.dbf
system_size = 128
roll = +DMDATA/data/rac/roll.dbf
roll_size = 128
main = +DMDATA/data/rac/main.dbf
main_size = 128
ctl_path = +DMDATA/data/rac/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1

[RAC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /dm8/dmdbms/data/rac0_config
port_num = 5236
mal_host = 1.1.1.41
mal_port = 9340
log_path = +DMLOG/log/rac0_log01.log
log_path = +DMLOG/log/rac0_log02.log

[RAC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /dm8/dmdbms/data/rac1_config
port_num = 5236
mal_host = 1.1.1.42
mal_port = 9341
log_path = +DMLOG/log/rac1_log01.log
log_path = +DMLOG/log/rac1_log02.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
13 使用dminit 初始化 DB 环境
在任意节点启动 dminit 工具初始化数据库。dminit 执行完成后,会在 config_path 目录(/dm8/dmdbms/data/rac0_config 和/dm8/dmdbms/data/rac1_config)下生成配置文件 dm.ini 和 dmmal.ini。

[dmdba@DSC1 ~]$ dminit control=/dm8/dmdbms/data/dminit.ini
1


#将rac1的配置文件复制过去:

[dmdba@DSC1 ~]$ cd /dm8/dmdbms/data/
[dmdba@DSC1 data]$ scp -r rac1_config/ 10.10.35.113:`pwd`
1
2
14 启动数据库服务器
14.1 注册服务
在2个节点分别注册DM 数据库服务:

[root@DSC1 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdbms/data/rac0_config/dm.ini -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac1 -y DmASMSvrServicerac1
1


[root@DSC2 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/dmdbms/data/rac1_config/dm.ini -dcr_ini /dm8/dmdbms/data/dmdcr.ini -p rac2 -y DmASMSvrServicerac2
1


14.2 启动数据库
[root@DSC1 ~]# systemctl start DmServicerac1
[root@DSC2 ~]# systemctl start DmServicerac2
1
2
如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。

14.3 手工启动命令
手工启动命令如下,手工启动后窗口不能关闭,所以…

./dmserver /dm8/dmdbms/data/rac0_config/dm.ini dcr_ini=/dm/dmdbms/data/dmdcr.ini
./dmserver /dm8/dmdbms/data/rac1_config/dm.ini dcr_ini=/dm/dmdbms/data/dmdcr.ini
1
2
15 连接数据库验证
15.1 配置服务名文件
[dmdba@DSC1 ~]# vim /etc/dm_svc.conf

rac=(10.10.35.112:5236,10.10.35.113:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(100)
TIME_ZONE=(480)
LANGUAGE=(cn)
1
2
3
4
5
6
7
15.2 连接RAC集群
[dmdba@DSC1 data]$ disql SYSDBA/SYSDBA@rac
SQL> select instance_name from v$instance;
SQL> select * from v$dsc_ep_info;
1
2
3


15.3 测试故障重连
SQL> select instance_name from v$instance;

行号 INSTANCE_NAME

1 RAC0

已用时间: 0.323(毫秒). 执行号:486.
SQL>

#此时连接的rac0,我们kill 进程:

[root@DSC1 ~]# ps -ef|grep dm.ini
[root@DSC1 ~]#  kill -9 19530
1
2
#在查询,等了一分钟左右,故障重连成功:

SQL> select instance_name from v$instance;
[-70065]:Connection exception, switch the current connection sucessful.
[-70065]:Connection exception, switch the current connection sucessful.

Server[192.168.57.4:5236]:mode is normal, state is open
SQL> select instance_name from v$instance;
SQL> select * from v$rac_ep_info;
1
2
3
4
5
6
7
#启动rac0,节点0变成了normal:

service DmServicerac1 start

SQL> select * from v$dsc_ep_info;
————————————————
版权声明:本文为CSDN博主「dmdba1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengxiaozhenjay/article/details/104962081

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值