达梦8-DMDSC共享存储集群安装部署+单机DW

1、概述

DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。

DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。

DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。DMDSC 集群最多支持 8 个数据库实例节点。下图展示了一个两节点的 DMDSC 集群系统结构图。

DMDSC主要特点:

(1)高可用性

(2)高吞吐量

(3)负载均衡

2、搭建环境规划

本次DMDSC搭建共2台主机。

操作系统版本

银河麒麟Linux kylin10 4.19.90-24.4.v2101.ky10.x86_64

数据库版本

DM Database Server 64 V8

2.1 IP地址和端口规划

主机1(dm01)

主机2(dm02)

业务IP

192.168.7.110

192.168.7.111

内部数据交换网络IP

192.168.50.10

192.168.50.20

配置项

参数

主机1(dm01)

主机2(dm02)

dmdcr_cfg

CSS

DCR_EP_NAME

CSS0

CSS1

DCR_EP_HOST

192.168.50.10

192.168.50.20

DCR_EP_PORT

11286

11286

ASM

DCR_EP_NAME

ASM0

ASM1

DCR_EP_HOST

192.168.50.10

192.168.50.20

DCR_EP_PORT

11276

11276

DB

DCR_EP_NAME

DSC0

DSC1

DCR_EP_PORT

5236

5236

DCR_CHECK_PORT

11256

11256

dmasvrmal

MAL_INST_NAME

ASM0

ASM1

MAL_HOST

192.168.50.10

192.168.50.20

MAL_PORT

11266

11266

dminit

INSTANCE_NAME

DSC0

DSC1

PORT_NUM

5236

5236

MAL_HOST

192.168.50.10

192.168.50.20

MAL_PORT

11246

11246

OGUID

210715

2.2 本地磁盘规划

名称

主机1(dm01)

主机2(dm02)

数据库安装目录

/dm8

/dm8

数据库备份目录

/dm8/backup

/dm8/backup

数据库SQL日志目录

/dm8/dmsqllog

/dm8/dmsqllog

集群配置文件目录

/dm8/dsc_config

/dm8/dsc_config

2.3 共享磁盘规划

使用openfiler共享存储服务器。 

用途

磁盘名

大小

共享磁盘映射路径

UDEV配置路径

DCR盘

DCR

5G

/dev/sdb

/dev/dm/asm-diskb

vote磁盘

VOTE

5G

/dev/sdc

/dev/dm/asm-diskc

redo日志盘

DMLOG

50G

/dev/sdd

/dev/dm/asm-diskd

data数据盘

DMDATA

500G

/dev/sde

/dev/dm/asm-diske

arch归档盘

DMARCH

500G

/dev/sdf

/dev/dm/asm-diskf

3、数据库软件安装

本章节的操作在集群的两个节点主机都需要进行,步骤相同

3.1 关闭防火墙

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

3.2 创建数据库用户和组

groupadd dinstall
useradd -g dinstall dmdba

#用户密码Dameng123
passwd dmdba

3.3 安装数据库软件

#创建安装目录
mkdir -p /dm8
chown dmdba.dinstall -R /dm8
ls -ld /dm8/

#解压安装包,并挂载
unzip dm8_20240712_x86_rh7_64.zip
mount -o loop dm8_20240712_x86_rh7_64.iso /mnt

#命令行安装
cd /mnt
./DMInstall.bin -i
过程略,注意将软件安装到/dm8目录,主库和备库的安装步骤相同。

 4、共享存储配置

本次搭建的存储使用openfiler映射的磁盘进行操作。

openfiler系统搭建和磁盘划分,请参考:

http://t.csdnimg.cn/QQC0Eicon-default.png?t=O83Ahttp://t.csdnimg.cn/QQC0E

4.1 安装iSCSI启动器软件包

[root@DM01 opt]# yum -y install iscsi-initiator*

[root@DM01 ~]# rpm -qa | grep iscsi
iscsi-initiator-utils-iscsiuio-6.2.0.874-7.el7.x86_64
iscsi-initiator-utils-6.2.0.874-7.el7.x86_64
[root@DM01 ~]#

4.2 配置iSCSI 

配置iSCSI配置文件

[root@DM01 ~]# vi /etc/iscsi/iscsid.conf

 设置iSCSI自启

[root@DM01 opt]# systemctl enable iscsi.service
[root@DM01 opt]# systemctl list-unit-files|grep iscsi

4.3 注册openfiler存储

Kylin主机上扫描openfiler iscsi控制器,将客户端Kylin主机注册到openfiler存储上。

[root@DM01 opt]# iscsiadm -m discovery -t sendtargets -p 192.168.50.50
192.168.50.50:3260,1 iqn.2006-01.com.openfiler:tsn.fee309ff79a0

重启

[root@DM01 opt]#reboot 

验证

[root@DM01 ~]# fdisk -l
Disk /dev/sda:80 GiB,85899345920 字节,167772160 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x4d59a9f1

设备       启动    起点      末尾      扇区 大小 Id 类型
/dev/sda1          2048      6143      4096   2M 83 Linux
/dev/sda2  *       6144   2103295   2097152   1G 83 Linux
/dev/sda3       2103296 144726015 142622720  68G 8e Linux LVM


Disk /dev/mapper/klas-root:40 GiB,42949672960 字节,83886080 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/mapper/klas-swap:4 GiB,4294967296 字节,8388608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/mapper/klas-home:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/mapper/klas-tmp:4 GiB,4294967296 字节,8388608 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sdb:5 GiB,5368709120 字节,10485760 个扇区
磁盘型号:VIRTUAL-DISK    
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sdc:5 GiB,5368709120 字节,10485760 个扇区
磁盘型号:VIRTUAL-DISK    
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sdd:50 GiB,53687091200 字节,104857600 个扇区
磁盘型号:VIRTUAL-DISK    
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sde:500 GiB,536870912000 字节,1048576000 个扇区
磁盘型号:VIRTUAL-DISK    
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/sdf:500 GiB,536870912000 字节,1048576000 个扇区
磁盘型号:VIRTUAL-DISK    
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@DM01 ~]# 

4.4 使用UDEV挂载存储

使用脚本获取udev配置信息

for i in b c d e f;
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+=\"dm/asm-disk$i\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\""
done; 

编辑udev配置文件 

[root@DM01 rules.d]# vi /etc/udev/rules.d/99-dameng-asmdevices.rules
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526542485334382d6a4d32692d45396a53", SYMLINK+="dm/asm-diskb",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45523330506c57422d685030362d38496258", SYMLINK+="dm/asm-diskc",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526f386a3376452d613577542d51516c58", SYMLINK+="dm/asm-diskd",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c45526f5a66496b582d6b4457362d56354563", SYMLINK+="dm/asm-diske",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="14f504e46494c4552706b365767582d725349472d5877386f", SYMLINK+="dm/asm-diskf",OWNER="dmdba", GROUP="dinstall",MODE="0660"

重启udev

udevadm control --reload-rules
udevadm trigger 

验证

[root@DM01 rules.d]# ll /dev/dm/asm*
lrwxrwxrwx 1 root root 6  9月 11 9:08 /dev/dm/asm-diskb -> ../sdb
lrwxrwxrwx 1 root root 6  9月 11 9:08 /dev/dm/asm-diskc -> ../sdc
lrwxrwxrwx 1 root root 6  9月 11 9:08 /dev/dm/asm-diskd -> ../sdd
lrwxrwxrwx 1 root root 6  9月 11 9:08 /dev/dm/asm-diske -> ../sde
lrwxrwxrwx 1 root root 6  9月 11 9:08 /dev/dm/asm-diskf -> ../sdf

两个主机都要进行配置,步骤相同。 

5、搭建DMDSC集群

5.1 创建配置文件目录

用户:dmdba

主机1
mkdir -p /dm8/dsc_config/DSC0
主机2
mkdir -p /dm8/dsc_config/DSC1

与 DMDSC 相关的配置文件包括:

(1)DMDCR_CFG.INI 是格式化非镜像环境下 DCR DISK、VOTE DISK 和镜像环境下 DCRV 磁盘的配置文件。
(2)DMDCR.INI 是 DMCSS、DMASMSVR、DMASMTOOL 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
(3)DMINIT.INI是 DMINIT 工具初始化数据库环境的配置文件。
(4)MAL 系统配置文件(DMMAL.INI、DMASVRMAL.INI)。
(5)DM.INI是 DMSERVER 使用的配置文件。
(6)DMARCH.INI 是开启本地归档或远程归档时使用的配置文件。
(7)DMCSSM.INI 是 DMCSSM 监视器的配置文件。

 5.2 创建dmdcr_cfg.ini

主机1(dm01)、主机2(dm02)配置相同

[dmdba@DM01 dsc_config]$ vi /dm8/dsc_config/dmdcr_cfg.ini

[dmdba@DM01 dsc_config]$ vi /dm8/dsc_config/dmdcr_cfg.ini
DCR_N_GRP = 3     ##集群环境有多少个 GROUP,范围:1~16
DCR_VTD_PATH = /dev/dm/asm-diskb   ##规划为 vote 的磁盘路径
DCR_OGUID = 210715   ## 消息标识,一个组里面只有一个。

[GRP]  #新建一个 GROUP
  DCR_GRP_TYPE = CSS  ##组类型(CSS/ASM/DB)
  DCR_GRP_NAME = GRP_CSS  ##组名
  DCR_GRP_N_EP = 2  ##组内节点个数
  DCR_GRP_DSKCHK_CNT = 65  ##磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME = CSS0   ##CSS 节点名
  DCR_EP_HOST = 192.168.50.10   ##心跳地址
  DCR_EP_PORT = 11286   ##CSS 端口
[GRP_CSS]
  DCR_EP_NAME = CSS1
  DCR_EP_HOST = 192.168.50.20
  DCR_EP_PORT = 11286

[GRP]
  DCR_GRP_TYPE = ASM
  DCR_GRP_NAME = GRP_ASM
  DCR_GRP_N_EP = 2
  DCR_GRP_DSKCHK_CNT = 61
[GRP_ASM]
  DCR_EP_NAME = ASM0  ##ASM 节点名,和 dmasvrmal 的 MAL_INST_NAME 一致
  DCR_EP_SHM_KEY = 42424  ##共享内存标识
  DCR_EP_SHM_SIZE = 1024  ##共享内存大小
  DCR_EP_HOST = 192.168.50.10  ##心跳地址
  DCR_EP_PORT = 11276  ##ASM 端口
  DCR_EP_ASM_LOAD_PATH = /dev/dm  ## ASM磁盘扫描路径
[GRP_ASM]
  DCR_EP_NAME = ASM1
  DCR_EP_SHM_KEY = 42425
  DCR_EP_SHM_SIZE = 1024
  DCR_EP_HOST = 192.168.50.20
  DCR_EP_PORT = 11276
  DCR_EP_ASM_LOAD_PATH = /dev/dm
[GRP]
  DCR_GRP_TYPE = DB
  DCR_GRP_NAME = GRP_DSC
  DCR_GRP_N_EP = 2
  DCR_GRP_DSKCHK_CNT = 57
[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 = 11256   ##DCR 检查端口
[GRP_DSC]
  DCR_EP_NAME = DSC1
  DCR_EP_SEQNO = 1
  DCR_EP_PORT = 5236
  DCR_CHECK_PORT = 11256

5.3 初始化磁盘

主机1 (dm01)进行操作

[dmdba@DM01 dsc_config]$ cd /dm8/bin
[dmdba@DM01 bin]$ ./dmasmcmd 
dmasmcmd V8

create dcrdisk '/dev/dm/asm-diskb' 'dcr'
create votedisk '/dev/dm/asm-diskc' 'vote'
create asmdisk '/dev/dm/asm-diskd' 'LOG0'
create asmdisk '/dev/dm/asm-diske' 'DATA0'
create asmdisk '/dev/dm/asm-diskf' 'ARCH0'
init dcrdisk '/dev/dm/asm-diskb' from '/dm8/dsc_config/dmdcr_cfg.ini' identified by 'admin1234'
init votedisk '/dev/dm/asm-diskc' from '/dm8/dsc_config/dmdcr_cfg.ini'

5.4 创建dmasvrmal.ini

主机1(dm01)、主机2(dm02)配置相同

vi /dm8/dsc_config/dmasvrmal.ini
[MAL_INST0]
MAL_INST_NAME            = ASM0
MAL_HOST                  = 192.168.50.10  #心跳地址
MAL_PORT                  = 11266  #MAL 监听端口
[MAL_INST1]
MAL_INST_NAME            = ASM1
MAL_HOST                  = 192.168.50.20
MAL_PORT                  = 11266

将该文件分别拷贝至 dm01 和 dm02 主机下的 /dm8/dsc_config/DSC0和/dm8/dsc_config/DSC1 目录下。 

5.5 创建dmdcr.ini

主机1(dm01)配置

vi /dm8/dsc_config/dmdcr.ini
DMDCR_PATH  = /dev/dm/asm-diskb  ##记录DCR磁盘路径
DMDCR_MAL_PATH  = /dm8/dsc_config/DSC0/dmasvrmal.ini  ##保存DMMAL.INI配置文件的路径,仅对DMASMSVR有效
DMDCR_SEQNO = 0   ##当前节点序列号
DMDCR_AUTO_OPEN_CHECK = 90 ##时间内节点实例未启动,节点将被踢出集群,大于30S,单位秒
##DMDCR_ASM_TRACE_LEVEL = 2

##DMDCR_ASM_RESTART_INTERVAL = 30
##DMDCR_ASM_STARTUP_CMD  = /dm8/bin/dmasmsvr dcr_ini=/dm8/dsc_config/dmdcr.ini
##DMDCR_DB_RESTART_INTERVAL = 60
##DMDCR_DB_STARTUP_CMD = /dm8/bin/dmasmsvr path=/dm8/dsc_config/DSC0/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini

主机2(dm02)配置

vi /dm8/dsc_config/dmdcr.ini
DMDCR_PATH  = /dev/dm/asm-diskb
DMDCR_MAL_PATH  = /dm8/dsc_config/DSC1/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 90
##DMDCR_ASM_TRACE_LEVEL = 2

##DMDCR_ASM_RESTART_INTERVAL = 30
##DMDCR_ASM_STARTUP_CMD  = /dm8/bin/dmasmsvr dcr_ini=/dm8/dsc_config/dmdcr.ini
##DMDCR_DB_RESTART_INTERVAL = 60
##DMDCR_DB_STARTUP_CMD = /dm8/bin/dmasmsvr path=/dm8/dsc_config/DSC1/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini

当前为手动拉起两台主机的ASM和DMSERVER服务,待集群配置完成后,再修改为自动拉起,删除配置文件中的“##” 

 5.6 启动CSS、ASM服务

主机1(dm01)、主机2(dm02)依次执行

5.6.1 手动启动CSS服务

主机1(dm01)

[dmdba@DM01 bin]$ /dm8/bin/dmcss DCR_INI=/dm8/dsc_config/dmdcr.ini

主机2(dm02)

[dmdba@DM02 bin]$ /dm8/bin/dmcss DCR_INI=/dm8/dsc_config/dmdcr.ini

5.6.2 手动启动ASM服务

主机1(dm01)

[dmdba@DM01 ~]$ /dm8/bin/dmasmsvr DCR_INI=/dm8/dsc_config/dmdcr.ini

主机2(dm02)

[dmdba@DM02 ~]$ /dm8/bin/dmasmsvr DCR_INI=/dm8/dsc_config/dmdcr.ini 

 

5.7 创建DMASM磁盘组

主机1(dm01)

create diskgroup 'DMLOG' asmdisk '/dev/dm/asm-diskd'

create diskgroup 'DMDATA' asmdisk '/dev/dm/asm-diske'

create diskgroup 'DMARCH' asmdisk '/dev/dm/asm-diskf' 

[dmdba@DM01 ~]$ /dm8/bin/dmasmtool DCR_INI=/dm8/dsc_config/dmdcr.ini
DMASMTOOL V8
ASM>
ASM>create diskgroup 'DMLOG' asmdisk '/dev/dm/asm-diskd'
Used time: 244.463(ms).
ASM>
ASM>create diskgroup 'DMDATA' asmdisk '/dev/dm/asm-diske'
Used time: 593.892(ms).
ASM>create diskgroup 'DMARCH' asmdisk '/dev/dm/asm-diskf'
Used time: 620.568(ms).
ASM>

5.8  创建dminit.ini

主机1(dm01)、主机2(dm02)配置相同

vi /dm8/dsc_config/dminit.ini

vi /dm8/dsc_config/dminit.ini
DB_NAME                  = DSC  ##数据库名称
SYSDBA_PWD               = Dameng123
SYSTEM_PATH              = +DMDATA/data  ##初始化数据库存放的路径
SYSTEM                   = +DMDATA/data/SYSTEM.dbf  ##SYSTEM表空间路径
SYSTEM_SIZE              = 1024  ##SYSTEM表空间大小
ROLL                     = +DMDATA/data/ROLL.dbf 
ROLL_SIZE                = 10000
MAIN                     = +DMDATA/data/MAIN.dbf
MAIN_SIZE                = 1024
CTL_PATH                 = +DMDATA/data/dm.ctl
CTL_SIZE                 = 8
LOG_SIZE                 = 2048
DCR_PATH                 = /dev/dm/asm-diskb
DCR_SEQNO                = 0
AUTO_OVERWRITE           = 1  ##是否覆盖建库目录下所有同名文件。0不覆盖、1部分覆盖、2完全覆盖 
PAGE_SIZE                = 32
EXTENT_SIZE              = 16
BLANK_PAD_MODE           = 1 

[DSC0]
CONFIG_PATH              = /dm8/dsc_config/DSC0
PORT_NUM                 = 5236
MAL_HOST                 = 192.168.50.10
MAL_PORT                 = 11246
LOG_PATH                 = +DMLOG/DSC0_LOG01.log
LOG_PATH                 = +DMLOG/DSC0_LOG02.log
[DSC1]
CONFIG_PATH              = /dm8/dsc_config/DSC1
PORT_NUM                 = 5236
MAL_HOST                 = 192.168.50.20
MAL_PORT                 = 11246
LOG_PATH                 = +DMLOG/DSC1_LOG01.log
LOG_PATH                 = +DMLOG/DSC1_LOG02.log

 5.9 初始化实例

主机1(dm01)

[dmdba@DM01 ~]$ /dm8/bin/dminit control=/dm8/dsc_config/dminit.ini
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-07-03
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: +DMLOG/DSC0_LOG01.log


 log file path: +DMLOG/DSC0_LOG02.log


 log file path: +DMLOG/DSC1_LOG01.log


 log file path: +DMLOG/DSC1_LOG02.log

write to dir [+DMDATA/data/DSC].
create dm database success. 

将主机1初始化实例产生的配置文件目录/dm8/dsc_config/DSC1,拷贝到主机2

[dmdba@DM01 dsc_config]$ scp -r /dm8/dsc_config/DSC1 dmdba@192.168.50.20:/dm8/dsc_config/

5.10 创建dmarch.ini

 主机1(dm01)

 修改dm.ini,打开归档

[dmdba@DM01 DSC0]$ pwd
/dm8/dsc_config/DSC0

将ARCH_INI参数值0改为1
[dmdba@DM01 DSC0]$ vi dm.ini 
ARCH_INI                        = 1

编辑归档配置文件

[dmdba@DM01 DSC0]$ pwd
/dm8/dsc_config/DSC0

[dmdba@DM01 DSC0]$ vi dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE ##远程归档
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400

 主机2(dm02)

 修改dm.ini,打开归档

[dmdba@DM02 DSC1]$ pwd
/dm8/dsc_config/DSC1

将ARCH_INI参数值0改为1
[dmdba@DM02 DSC1]$ vi dm.ini
ARCH_INI                        = 1 

编辑归档配置文件

[dmdba@DM02 DSC1]$ pwd
/dm8/dsc_config/DSC1

[dmdba@DM02 DSC1]$ vi dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400

5.11 手动启动DMSERVER服务 

 主机1(dm01)

[dmdba@DM01 DSC0]$ /dm8/bin/dmserver /dm8/dsc_config/DSC0/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini

 主机2(dm02) 

[dmdba@DM02 DSC1]$ /dm8/bin/dmserver /dm8/dsc_config/DSC1/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini

6、监视器配置

配置监视器,两个主机配置相同,监视器可以在任何一个主机上启动,也可以使用第三台主机。本次不使用第三台主机。

 主机1(dm01) 

[dmdba@DM01 ~]$ pwd
/home/dmdba
[dmdba@DM01 ~]$ vi dmcssm.ini
CSSM_OGUID = 210715  ##用于和 DMCSS 通信校验使用,和 DMDCR_CFG.INI 中的 DCR_OGUID 值保持一致
CSSM_CSS_IP = 192.168.50.10:11286  ##对应 DMDCR_CFG.INI 中 DMCSS 节点的 DCR_EP_HOST 和 DCR_EP_PORT。
CSSM_CSS_IP = 192.168.50.20:11286
CSSM_LOG_PATH = /dm8/log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 2048

 主机2(dm02)  

[dmdba@DM02 ~]$ pwd
/home/dmdba
[dmdba@DM02 ~]$ vi dmcssm.ini
CSSM_OGUID                 = 210715
CSSM_CSS_IP                = 192.168.50.10:11286
CSSM_CSS_IP                = 192.168.50.20:11286
CSSM_LOG_PATH              = /dm8/log
CSSM_LOG_FILE_SIZE         = 32
CSSM_LOG_SPACE_LIMIT       = 2048

手动前台启动

/dm8/bin/dmcssm INI_PATH=/home/dmdba/dmcssm.ini 

6.1 监视器使用 

命令

说明

show

查看所有组的信息

show config

查看dmdcr_cfg.ini的配置信息

show monitor

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

 说明

group[]行显示的内容为:
name: 集群名称。
seq: 集群编号。
type: 集群组类型。包含:CSS、ASM、DB。
control_node: 集群内控制节点。
ep 行显示的内容为:
inst_name:节点实例名。
seqno:节点编号。
port:实例对外提供服务的端口号。
mode:节点模式。包括:CONTROL(控制节点)、NORMAL(普通节点)。
inst_status:实例系统状态。包括:INSTALL(初始化数据库)、STARTUP(节点启动)、AFTER REDO(启动,REDO 完成)、MOUNT(挂载)、OPEN(正常打开)、SUSPEND(挂起)、SHUTDOWN(关闭)、CRASH_RECV(出现节点故障)、INVALID EP STATUS(集群非 OPEN 状态下,不支持故障处理,可能是集群同步服务 DMCSS 或监视器 DMCSSM 版本过旧导致)。
vtd_status:实例的集群状态。包括:STARTUP(启动)、STARTUP2(启动第二步)、WORKING(工作中)、TO SHUTDOWN(准备关闭)、SHUTDOWN(已经关闭)、SYSHALT(系统崩溃)、STOP(停止)、ADD_DCRV(添加 DCRV 磁盘)、DEL_DCRV(删除 DCRV 磁盘)。
is_ok:实例在集群内是否正常。OK 是,ERROR 否。ERROR 节点暂时从集群内踢出。
active: 实例是否活动。TRUE 是,FALSE 否。
guid:实例的 GUID 值。

集群关闭:

完整退出 DMDSC 集群的正确步骤为:依次退出 DMSERVER、DMASMSVR、DMCSS,未按照该顺序进行将导致节点异常退出。

先关闭主机1/主机2的 DMSERVER

关闭主机1/主机2的DMASM

关闭主机1/主机2的DMCSS

集群启动:

(1)手动启动依次是共享存储

-->主机1/主机2的DMCSS

-->主机1/主机2的DMASM

-->主机1/主机2的DMSERVER

(2)如果注册了后台服务,依次启动主机1/主机2的DMCSS,CSS启动后会自动拉起ASM和DMSERVER

7、相关视图

视图

说明

V$DSC_EP_INFO

显示实例信息。

V$DSC_LOCK

显示全局活动的事务锁信息

V$DSC_TRX

显示所有系统中所有的事务以及相关信息,如锁信息等。

V$ASMGROUP

ASM磁盘组信息

V$ASMDISK

ASM磁盘信息

V$ASMFILE

所有的ASM文件信息

V$DCR_INFO

显示配置的全局信息

--示例 查看实例信息 

SQL> select * from v$DSC_EP_INFO;

行号     EP_NAME EP_SEQNO    EP_GUID              EP_TIMESTAMP         EP_MODE      EP_STATUS
---------- ------- ----------- -------------------- -------------------- ------------ ---------
1          DSC0    0           1634                 7920                 Control Node OK
2          DSC1    1           1693                 7957                 Normal Node  OK

--示例 查看ASM磁盘组信息 

SQL> select * from v$ASMGROUP;
行号     GROUP_ID    GROUP_NAME N_DISK      AU_SIZE     EXTENT_SIZE(AU) TOTAL_SIZE  FREE_SIZE   TOTAL_FILE_NUM TYPE   REDO_SIZE(MB) RBL_STAT RBL_PWR     AU_SIZE_MB  TOTAL_MB   
---------- ----------- ---------- ----------- ----------- --------------- ----------- ----------- -------------- ------ ------------- -------- ----------- ----------- -----------
           FREE_MB    
           -----------
1          0           DMLOG      1           1048576     4               51167       42964       5              EXTERN 1             DISABLE  0           1           51167
           42964

2          1           DMDATA     1           1048576     4               511967      499700      18             EXTERN 1             DISABLE  0           1           511967
           499700

3          2           DMARCH     1           1048576     4               511967      507832      8              EXTERN 1             DISABLE  0           1           511967
           507832

4          125         VOTE       1           1048576     4               5120        5096        2              EXTERN 1             DISABLE  0           1           5120
           5096

5          126         DCR        1           1048576     4               5120        5096        2              EXTERN 1             DISABLE  0           1           5120
           5096


已用时间: 1.741(毫秒). 执行号:104.

8、两节点 DSC + 实时备机集群安装部署

单机备库环境规划

名称

路径

数据库安装目录

/dm8

数据库备份目录

/dm8/backup

数据库归档目录

/dm8/arch

数据文件目录

/dm8/data

配置项

信息

数据库服务器主机名

DM03

业务IP

192.168.7.112

内部数据交换IP

192.168.50.30

INSTANCE_NAME

DW01

DB_NAME

DW01

PORT_NUM

5236

MAL_PORT

11246

MAL_DW_PORT

52141

MAL_INST_DW_PORT

5276

8.1 备库安装数据库软件

略,请参考本文章节3 进行安装。与DSC集群的两台安装方式相同。

8.2 搭建单机DW备库

8.2.1 备份DSC集群数据

DSC集群两个节点启动CSS和ASM。

CSS启动-主机1(dm01) 

[dmdba@DM01 bin]$ /dm8/bin/dmcss DCR_INI=/dm8/dsc_config/dmdcr.ini

CSS启动-主机2(dm02) 

[dmdba@DM02 bin]$ /dm8/bin/dmcss DCR_INI=/dm8/dsc_config/dmdcr.ini

ASM启动-主机1(dm01) 

[dmdba@DM01 ~]$ /dm8/bin/dmasmsvr DCR_INI=/dm8/dsc_config/dmdcr.ini

ASM启动-主机2(dm02) 

[dmdba@DM02 ~]$ /dm8/bin/dmasmsvr DCR_INI=/dm8/dsc_config/dmdcr.ini

DSC集群-主机1(dm01) 备份数据,并发送备份目录到备库(dm03)。

(1)备份 dm01 机器数据

backup database '/dm8/dsc_config/DSC0/dm.ini' full backupset '/dm8/backup/BACKUP_FILE'  compressed level 5 parallel 8;

(2)检查备份文件的有效性

check backupset '/dm8/backup/BACKUP_FILE'; 

(3)将备份文件发送到主机dm03

scp -r /dm8/backup/BACKUP_FILE/ dmdba@192.168.50.30:/dm8/backup

8.2.2 备库初始化实例

/dm8/bin/dminit path=/dm8/data db_name=DW01 instance_name=DW01 sysdba_pwd=Dameng123 port_num=5236 page_size=32 extent_size=16

8.2.3 备库还原DSC集群数据

#登录dmrman
/dm8/bin/dmrman
#检查备份文件有效性
check backupset '/dm8/backup/BACKUP_FILE';
#还原
RESTORE DATABASE  '/dm8/data/DW01/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE';
#恢复
RECOVER DATABASE '/dm8/data/DW01/dm.ini' FROM BACKUPSET '/dm8/backup/BACKUP_FILE';
更新魔数
RECOVER DATABASE '/dm8/data/DW01/dm.ini' UPDATE DB_MAGIC;

8.2.4 修改dm.ini 

(1)修改dm01和 dm02主机中dm.ini参数。

dm01和 dm02主机配置相同。

主机1(dm01) 

vi /dm8/dsc_config/DSC0/dm.ini

DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置 
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

 主机2(dm02) 

vi /dm8/dsc_config/DSC1/dm.ini

DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID 
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置 
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

(2)主机3(dm03)备库中的dm.ini参数

vi /dm8/data/DW01/dm.ini

INSTANCE_NAME = DW01   #实例名
PORT_NUM = 5236   #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

8.2.5 创建 dmmal.ini

dm01、dm02 和 dm03 主机配置 dmmal.ini(dmmal.ini 和 dm.ini 放在同一路径下),三台主机的 dmmal.ini 文件内容必须一致

##主机1(dm01)
vi /dm8/dsc_config/DSC0/dmmal.ini

##主机2(dm02)
vi /dm8/dsc_config/DSC1/dmmal.ini

##主机3(dm03)
vi /dm8/data/DW01/dmmal.ini

##配置文件内容

MAL_CHECK_INTERVAL=87
MAL_CONN_FAIL_INTERVAL=33

[MAL_INST0]
MAL_INST_NAME            = DSC0
MAL_HOST                 = 192.168.50.10
MAL_PORT                 = 11246
MAL_INST_HOST            = 192.168.7.110
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
[MAL_INST1]
MAL_INST_NAME            = DSC1
MAL_HOST                 = 192.168.50.20
MAL_PORT                 = 11246
MAL_INST_HOST            = 192.168.7.111
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276
[MAL_INST2]
MAL_INST_NAME            = DW01
MAL_HOST                 = 192.168.50.30
MAL_PORT                 = 11246
MAL_INST_HOST            = 192.168.7.112
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52141
MAL_INST_DW_PORT         = 5276

8.2.6 创建 dmarch.ini

(1)主机1(dm01) 节点配置 dmarch.ini

[dmdba@DM01 DSC0]$ vi /dm8/dsc_config/DSC0/dmarch.ini 
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REALTIME1]
ARCH_TYPE         = REALTIME
ARCH_DEST         = DW01

(2)主机2(dm02) 节点配置 dmarch.ini

[dmdba@DM02 DSC1]$ vi /dm8/dsc_config/DSC1/dmarch.ini 
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/ARCH/DSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMARCH/ARCH/DSC0/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REALTIME1]
ARCH_TYPE         = REALTIME
ARCH_DEST         = DW01

(3)主机3(dm03) 节点配置 dmarch.ini

[dmdba@DM03 DW01]$ vi /dm8/data/DW01/dmarch.ini
[ARCHIVE_REALTIME] 
ARCH_TYPE = REALTIME
ARCH_DEST = DSC0/DSC1
[ARCHIVE_LOCAL1] 
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 2048  
ARCH_SPACE_LIMIT = 204800

8.2.7 创建 dmwatcher.ini

(1)主机1(dm01)节点配置 dmwatcher.ini

[dmdba@DM01 dsc_config]$ cat /dm8/dsc_config/DSC0/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /dm8/dsc_config/DSC0/dm.ini
DCR_INI=/dm8/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /dm8/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

[dmdba@DM01 dsc_config]$ 

(2)主机2(dm02) 节点配置 dmwatcher.ini 

[dmdba@DM02 dsc_config]$ cat /dm8/dsc_config/DSC1/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331 
INST_INI = /dm8/dsc_config/DSC1/dm.ini
DCR_INI=/dm8/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /dm8/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

(3)主机3(dm03)  节点配置 dmwatcher.ini

[dmdba@DM03 DW01]$ cat /dm8/data/DW01/dmwatcher.ini
[GRP1] 
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = MANUAL#手动切换模式 
DW_ERROR_TIME = 120 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 120 #本地实例故障认定时间 
INST_OGUID = 453331 #守护系统唯一 OGUID 值 
INST_INI = /dm8/data/DW01/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 0  #设置实例不自动拉起
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

8.2.8 启动数据库并修改参数 

关闭已经启动的ASM和CSS服务,再分别依次重启 DSC 2 节点的 CSS及 ASM 服务,然后以 mount 方式分别启动 DSC 及备库 的DMSERVER 服务。

主机1(dm01)

/dm8/bin/dmserver /dm8/dsc_config/DSC0/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini mount

主机2(dm02)

/dm8/bin/dmserver /dm8/dsc_config/DSC1/dm.ini dcr_ini=/dm8/dsc_config/dmdcr.ini mount

主机3(dm03)

/dm8/bin/dmserver /dm8/data/DW01/dm.ini mount

(1)主机1(dm01)  节点使用 disql 连接 DSC数据库执行:

[dmdba@DM01 dsc_config]$ /dm8/bin/disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 3.849(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 10.039(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 64.393(毫秒). 执行号:2.
SQL> alter database primary;
操作已执行
已用时间: 78.625(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 9.616(毫秒). 执行号:3.
SQL> 

(2)主机3(dm03)  节点使用 disql 连接备库数据库执行 :

[dmdba@DM03 DW01]$ /dm8/bin/disql sysdba/Dameng123

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 3.175(ms)
disql V8
SQL> 
SQL> 
SQL> 
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 4.470(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 1.653(毫秒). 执行号:2.
SQL> alter database standby;
操作已执行
已用时间: 16.899(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 4.416(毫秒). 执行号:3.
SQL> 

8.2.9 启动守护进程 

 主机1(dm01)

/dm8/bin/dmwatcher /dm8/dsc_config/DSC0/dmwatcher.ini

主机2(dm02)

 /dm8/bin/dmwatcher /dm8/dsc_config/DSC1/dmwatcher.ini

主机3(dm03)

 /dm8/bin/dmwatcher /dm8/data/DW01/dmwatcher.ini

8.2.10 配置监视器DSC+DW

主机1(dm01)、主机2(dm02)和主机3(dm03)的配置相同。

在DSC的2个节点和备库上分别创建配置文件dmmonitor.ini。

vi /dm8/bin/dmmonitor.ini

MON_DW_CONFIRM         = 1
MON_LOG_PATH           = /dm8/log
MON_LOG_INTERVAL       = 60 
MON_LOG_FILE_SIZE      = 32 
MON_LOG_SPACE_LIMIT    = 0 
[GRP1]
MON_INST_OGUID    = 453331
MON_DW_IP         = 192.168.7.110:52141/192.168.7.111:52141
MON_DW_IP         = 192.168.7.112:52141

启动监视器

[dmdba@DM03 ~]$ /dm8/bin/dmmonitor /dm8/bin/dmmonitor.ini 

8.2.11 主备库数据同步测试

(1)登录主库(DM01主机)和备库(DM03主机)的disql

(2) 主库创建表t1,插入数据,备库查询

(3)主库提交数据,备库查询

可以看到备库已经能够查询到主库提交的数据。

——.——

参考文档:

共享存储集群安装部署 | 达梦技术文档

DMDSC 概述 | 达梦技术文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值