达梦8集群部署之DSC集群(2节点)

1 安装前准备

1.1 硬件准备

类别

配置

服务器

2台数据库服务器(物理机)。

网卡

每台机器至少3块网卡。

2块必须为万兆网卡,分别连到不同的万兆交换机上,并在服务器端做冗余,给服务器1个IP地址。

1块为千/万兆网卡,对外提供服务。

交换机

2台万兆交换机。

HBA

每台数据库服务器必须有两块HBA卡连接光纤交换机,做冗余和负载均衡。

磁盘阵列

1台共享存储,两台服务器都连接到同一个存储上(共享存储只需要映射到服务器端fdisk -l可以查看到就行,不需要格式化)。

另:可在主节点上挂第2台存储(需格式化好),用于备份数据文件等。

1.2 集群架构

                                    

1.3 硬件环境建议

心跳网络方面:①集群间的心跳网络要走数据,最好走两个交换机,来实现冗余和负载均衡。②需要把服务器多个心跳网卡绑定为一个逻辑网卡来使用(比如bond方式)。③交换机速度建议为万兆。
存储网络方面:①每台数据库服务器上必须有两块HBA卡连接光纤交换机,做冗余和负载均衡。
存储方面:①两台服务器都连接到同一个存储上(共享存储只需要映射到服务器端fdisk -l可以查看到就行,不需要格式化)。②节点1所在服务器单独挂存储,需要格式化好,用来备份数据等,文件系统建议使用ext4。

1.4 硬件环境环境验证

心跳网络方面:①关闭其中一台交换机或者模拟其中一条线路故障,是否能做到网络方面的冗余。②测试心跳网络的稳定性,会不会出现断连或者丢包等情况。

1.5 集群规划

A机器

B机器

业务IP

10.238.154.182

10.238.154.183

心跳IP

10.238.155.9

10.238.155.10

软件目录

/install

/install

安装目录

/dmdba/dmdbms

/dmdba/dmdbms

配置文件目录

/dmdba/dmdsc

/dmdba/dmdsc

归档日志目录

+DMDATA/arch/arch_0

+DMDATA/arch/arch_1

远程归档目录

+DMDATA/arch/arch_1

+DMDATA/arch/arch_0

备份目录

/dmdba/dmdsc/bak

/dmdba/dmdsc/bak

dmdcr_cfg

CSS

DCR_EP_NAME

CSS0

CSS1

DCR_EP_HOST

10.238.155.9

10.238.155.10

DCR_EP_PORT

5336

5337

ASM

DCR_EP_NAME

ASM0

ASM1

DCR_EP_HOST

10.238.155.9

10.238.155.10

DCR_EP_PORT

5436

5437

DB

DCR_EP_NAME

DSC0

DSC1

DCR_EP_PORT

5236

5236

DCR_CHECK_PORT

5536

5537

dmasvrmal

MAL_INST_NAME

ASM0

ASM1

MAL_HOST

10.238.155.9

10.238.155.10

MAL_PORT

5636

5637

dminit

PORT_NUM

5236

5236

MAL_HOST

10.238.155.9

10.238.155.10

MAL_PORT

5736

5737

归档上限

51200

51200

OGUID

45331

1.6 设置网卡自启

A机器、B机器依次修改
[root@~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
  ONBOOT=yes
[root@~]# systemctl restart network

1.7 创建用户、目录、安装数据库

A/B机器:将数据库安装在/dmdba/dmdbms目录下
[root@~]# mkdir -p /dmdba/dmdbms /dmdba/dmdsc /dmdba/dmbak
[root@~]# chown dmdba.dinstall /dmdba -R;

2 存储准备

2.1 划存储

用途    空间规划(总共6T)
sdb1用于dcr信息    100M
sdb2用于存放vote信息    100M
sdb3用于存放redo log    20480M
sdb4用于存放data    剩下的全部空间
A机器:小于2TB的存储使用fdisk命令来划分
[root@~]# fdisk /dev/sdb
  1) 依次输入  n  p  1  回车  +100M,完成第一块磁盘划分
  2) 依次输入  n  p  2  回车  +100M,完成第二块磁盘划分
  3) 依次输入  n  p  3  回车  +20480M,完成第三块磁盘划分
  4) 依次输入  n  p  回车  回车  回车,完成第四块磁盘划分
  5) 输入w命令,将裸设备划分的设置进行保存
    A机器:大于2TB的需要使用parted命令来划分
[root@~]# parted /dev/sdb
  1)  输入  mklabel gpt  回车,将MBR磁盘磁盘转换为gpt格式
  2)  输入  mkpart primary 0 100 回车,完成第一块磁盘划分
  3)  输入  mkpart primary 100 200 回车,完成第二块磁盘划分
  4)  输入  mkpart primary 200 20680 回车,完成第三块磁盘划分
  5)  输入  mkpart primary 20680 5498G 回车,完成第四块磁盘划分
  6)  输入  quit  回车,完成磁盘划分
    A机器、B机器依次执行
[root@~]# partprobe /dev/sdb

2.2 挂存储方法1:直接挂

A机器、B机器依次修改
[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
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。

2.3 挂存储方法2:多路径绑定

1.设置了多路径的块设备,可通过fdisk –l查看多路径的路径,
2. 利用脚本,生成配置文件。假设路径名称为/dev/mapper/mpathb 至/dev/mapper/mpathe,共4个lun
# cat mpath.sh
curr=$(cd "$(dirname "$0")";pwd)
rm -f $curr/88-dm-asmdevices.rules
for i in mpathb mpathc mpathd mpathe;
do
str1="$i:`udevadm info --query=all --name=/dev/mapper/$i | grep DM_UUID`"
str2=${str1#*=}
echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${str2}\",SYMLINK+=\"asm-${i}\",OWNER=\"dmdba\",GROUP=\"dinstall\",MODE=\"0755\"" >> $curr/88-dm-asmdevices.rules
done
#执行上述脚本,生成88-dm-asmdevices.rules
./mpath.sh
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342697bdcefdae7fd52cfd1b00db",SYMLINK+="asm-mpathb",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342449774d0d2c16d990fd6300db",SYMLINK+="asm-mpathc",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342a2b1bd08d28e0d58c5db300db",SYMLINK+="asm-mpathd",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b34208f0b5c5d515dd41dfde300db",SYMLINK+="asm-mpathe",OWNER="dmdba",GROUP="dinstall",MODE="0755"
手动修改SYMLINK
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342697bdcefdae7fd52cfd1b00db",SYMLINK+="asm-dcr",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342449774d0d2c16d990fd6300db",SYMLINK+="asm-vote",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b342a2b1bd08d28e0d58c5db300db",SYMLINK+="asm-log",OWNER="dmdba",GROUP="dinstall",MODE="0755"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600b34208f0b5c5d515dd41dfde300db",SYMLINK+="asm-data",OWNER="dmdba",GROUP="dinstall",MODE="0755"

3. 复制 88-dm-asmdevices.rules 配置文件到DSC集群的所有节点的相关目录下
cp 88-dm-asmdevices.rules /etc/udev/rules.d/88-dm-asmdevices.rules
4. 使配置文件生效
systemctl  restart  multipathd.service 
systemctl restart systemd-udevd.service
检查是否生效:
blockdev --getsize64 /dev/asm-dcr
blockdev --getsize64 /dev/asm-vote
blockdev --getsize64 /dev/asm-log
blockdev --getsize64 /dev/asm-data

#保证每节点能正常显示磁盘大小,说明磁盘绑定成功

3 搭建DSC

3.1 创建dmdcr_cfg.ini

A机器、B机器配置相同
[dmdba@~]# vi /dmdba/dmdsc/dmdcr_cfg.ini
  DCR_N_GRP                = 3  #集群环境有多少个GROUP,范围:1~16
  DCR_VTD_PATH             = /dev/asm-vote
  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       = 120  #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS0  #CSS节点名
  DCR_EP_HOST              = 10.238.155.9  #心跳地址
  DCR_EP_PORT              = 5336  #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS1
  DCR_EP_HOST              = 10.238.155.10
  DCR_EP_PORT              = 5337

[GRP]
  DCR_GRP_TYPE             = ASM
  DCR_GRP_NAME             = GRP_ASM
  DCR_GRP_N_EP             = 2
  DCR_GRP_DSKCHK_CNT       = 120
[GRP_ASM]
  DCR_EP_NAME              = ASM0  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 93360  #共享内存标识
  DCR_EP_SHM_SIZE          = 10  #共享内存大小
  DCR_EP_HOST              = 10.238.155.9  #心跳地址
  DCR_EP_PORT              = 5436  #ASM端口
  DCR_EP_ASM_LOAD_PATH     = /dev
[GRP_ASM]
  DCR_EP_NAME              = ASM1
  DCR_EP_SHM_KEY           = 93361
  DCR_EP_SHM_SIZE          = 10
  DCR_EP_HOST              = 10.238.155.10
  DCR_EP_PORT              = 5437
  DCR_EP_ASM_LOAD_PATH     = /dev

[GRP]
  DCR_GRP_TYPE             = DB
  DCR_GRP_NAME             = GRP_DSC
  DCR_GRP_N_EP             = 2
  DCR_GRP_DSKCHK_CNT       = 120
[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@~]# /dmdba/dmdbms/bin/dmasmcmd
  ASM> create dcrdisk '/dev/asm-dcr' 'dcr'
  ASM> create votedisk '/dev/asm-vote' 'vote'
  ASM> create asmdisk '/dev/asm-log' 'LOG0'
  ASM> create asmdisk '/dev/asm-data' 'DATA0'
  ASM> init dcrdisk '/dev/asm-dcr' from '/dmdba/dmdsc/dmdcr_cfg.ini' identified by 'admin1234'
  ASM> init votedisk '/dev/asm-vote' from '/dmdba/dmdsc/dmdcr_cfg.ini'

3.3 创建dmasvrmal.ini

 A机器、B机器配置相同
[dmdba@~]# vi /dmdba/dmdsc/dmasvrmal.ini
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 10.238.155.9  #心跳地址
  MAL_PORT                 = 5636  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 10.238.155.10
  MAL_PORT                 = 5637 

3.4 创建dmdcr.ini

A机器
[dmdba@~]# vi /dmdba/dmdsc/dmdcr.ini
DMDCR_PATH                 = /dev/asm-dcr
DMDCR_MAL_PATH             = /dmdba/dmdsc/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdba/dmdsc/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /dmdba/dmdbms/bin/dmserver path=/dmdba/dmdsc/dsc0_config/dm.ini dcr_ini=/dmdba/dmdsc/dmdcr.ini
B机器
[dmdba@~]# vi /dmdba/dmdsc/dmdcr.ini
DMDCR_PATH                 = /dev/asm-dcr
DMDCR_MAL_PATH             = /dmdba/dmdsc/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD      = /dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdba/dmdsc/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60
#DMDCR_DB_STARTUP_CMD       = /dmdba/dmdbms/bin/dmserver path=/dmdba/dmdsc/dsc1_config/dm.ini dcr_ini=/dmdba/dmdsc/dmdcr.ini
注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。

3.5 启动CSS、ASM服务

 A机器、B机器依次执行
[dmdba@~]# /dmdba/dmdbms/bin/dmcss DCR_INI=/dmdba/dmdsc/dmdcr.ini
  ...
  DMCSS IS READY
A机器、B机器依次执行
[dmdba@~]# /dmdba/dmdbms/bin/dmasmsvr DCR_INI=/dmdba/dmdsc/dmdcr.ini
  ...
  the ASM server is Ready.

3.6 创建DMASM磁盘组

A机器
[dmdba@~]# /dmdba/dmdbms/bin/dmasmtool DCR_INI=/dmdba/dmdsc/dmdcr.ini
  ASM> create diskgroup 'DMLOG' asmdisk '/dev/asm-log'
  ASM> create diskgroup 'DMDATA' asmdisk '/dev/asm-data'

3.7 创建dminit.ini

A机器、B机器配置相同
[dmdba@~]# vi /dmdba/dmdsc/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/asm-dcr
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32 #页大小
  CASE_SENSITIVE           = Y  #大小写是否敏感,Y敏感,N不敏感
  CHARSET                  = 0 #字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
  EXTENT_SIZE             = 32  #簇大小
  BLANK_PAD_MODE   = 0       #是否开启空格填充,默认0,0不开启,1开启

[DSC0]
  config_path              = /dmdba/dmdsc/dsc0_config
  port_num                 = 5236
  mal_host                 = 10.238.155.9
  mal_port                 = 5736
  log_path                 = +DMLOG/log/dsc0_log01.log
  log_path                 = +DMLOG/log/dsc0_log02.log 
[DSC1]
  config_path              = /dmdba/dmdsc/dsc1_config
  port_num                 = 5236
  mal_host                 = 10.238.155.10
  mal_port                 = 5737
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log

3.8 初始化实例

A机器
--初始化实例
[dmdba@~]# /dmdba/dmdbms/bin/dminit control=/dmdba/dmdsc/dminit.ini
  ...
  create dm database success. 2020-11-14 21:25:31

--拷贝文件
[dmdba@~]# scp -r /dmdba/dmdsc/dsc1_config dmdba@10.238.155.10:/dmdba/dmdsc/

3.9 创建dmarch.ini

A机器
--修改dm.ini
[dmdba@~]# vi /dmdba/dmdsc/dsc0_config/dm.ini
  ARCH_INI                 = 1

--创建dmarch.ini
[dmdba@~]# vi /dmdba/dmdsc/dsc0_config/dmarch.ini
ARCH_LOCAL_SHARE = 1 
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = +DMDATA/arch/arch_0
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC1
  ARCH_INCOMING_PATH       = +DMDATA/arch/arch_1
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
B机器
--修改dm.ini
[dmdba@~]# vi /dmdba/dmdsc/dsc1_config/dm.ini
  ARCH_INI                 = 1

--创建dmarch.ini
[dmdba@~]# vi /dmdba/dmdsc/dsc1_config/dmarch.ini
ARCH_LOCAL_SHARE = 1 
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = +DMDATA/arch/arch_1
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC0
  ARCH_INCOMING_PATH       = +DMDATA/arch/arch_0
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200

3.10 启动DMSERVER服务

A机器
[dmdba@~]# /dmdba/dmdbms/bin/dmserver /dmdba/dmdsc/dsc0_config/dm.ini dcr_ini=/dmdba/dmdsc/dmdcr.ini
B机器
[dmdba@~]# /dmdba/dmdbms/bin/dmserver /dmdba/dmdsc/dsc1_config/dm.ini dcr_ini=/dmdba/dmdsc/dmdcr.ini

3.11 注册CSS、ASM、DMSERVER后台服务

A机器
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdba/dmdsc/dmdcr.ini -p CSS
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdba/dmdsc/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdba/dmdsc/dsc0_config/dm.ini -dcr_ini /dmdba/dmdsc/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
B机器
[root@~]# /dmdba/dmdbms/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdba/dmdsc/dmdcr.ini -p CSS
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdba/dmdsc/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
[root@~]# /dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdba/dmdsc/dsc1_config/dm.ini -dcr_ini /dmdba/dmdsc/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC

4 配置监视器

4.1 创建dmcssm.ini

A机器、B机器配置相同
[dmdba@~]# vi /dmdba/dmdbms/bin/dmcssm.ini
CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 10.238.155.9:5336
CSSM_CSS_IP                = 10.238.155.10:5337
CSSM_LOG_PATH              = /dmdba/dmdbms/log
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048

4.2 监视器使用

命令

含义

show

查看所有组的信息

show config

查看dmdcr_cfg.ini 的配置信息

show monitor

查看当前连接到主 CSS 的所有监视器信息

5 启停服务

5.1 启动监视器

[dmdba@~]# /dmdba/dmdbms/bin/dmcssm INI_PATH=/dmdba/dmdbms/bin/dmcssm.ini

5.2 启停集群

启动:A/B机器CSS→A/B机器ASM→A/B机器DMSERVER
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmCSSServiceCSS start
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmASMSvrServiceASM start
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDSC start

停止: A/B机器DMSERVER→A/B机器ASM→A/B机器CSS
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmServiceDSC stop
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmASMSvrServiceASM stop
A/B机器:[dmdba@~]# /dmdba/dmdbms/bin/DmCSSServiceCSS stop


说明:1)DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。2)ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。3)服务全部停止后,要检查后台进程是否全部停止。
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值