DM8主备守护集群部署

9 篇文章 0 订阅
3 篇文章 0 订阅

1. 安装前准备工作

1.1 创建数据库用户

1.2 创建目录

1.3 磁盘管理

1.4 测试性能

1.5 修改系统配置文件

1.6 挂载软件ISO文件

1.7 设置安装目标

2. 安装数据库

2.1 执行DMInstall.bin安装

2.2 设置环境变量

2.3 初始化实例

2.4 主库集群配置

2.5 脱机备份数据库

2.6 主库修改模式

2.7 备库还原恢复

2.8 备库集群配置

2.9 备库修改模式

2.10 注册服务

2.11 监视器配置


1. 安装前准备工作

1.1 创建数据库用户

groupadd dinstall -g 2001
useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
passwd dmdba
密码:

1.2 创建目录

若能使用dmdba进行创建目录的话使用dmdba,后续无须重新修改用户/用户组

mkdir  -p /dm/dmdata
mkdir  -p /dm/dmarch
mkdir  -p /dm/dmbak
mkdir  -p /dm/dmiso/dmsoft
mkdir  -p /dm/dmdbms  

修改用户/用户组
 chown -R dmdba:dinstall  /dm/dmdata

1.3 磁盘管理

#创建PV
pvcreate /dev/vdc
#创建VG
vgcreate vg_dm /dev/vdc
#创建LV 
#查看pe,可以使用两种方法
vgdisplay vg_dm
1.PE方式
lvcreate -l 192000 -n lv_dmdata vg_dm
lvcreate -l 115200 -n lv_dmbak vg_dm
lvcreate -l 76800 -n lv_dmarch vg_dm
2.具体容量方式
lvcreate -L 1020G -n lv_dmdata vg_dm
lvcreate -L 1020G -n lv_dmbak vg_dm
lvcreate -L 1020G -n lv_dmarch vg_dm
#格式化逻辑卷LV
mkfs.ext4 /dev/mapper/vg_dm-lv_dmdata
mkfs.ext4 /dev/mapper/vg_dm-lv_dmbak
mkfs.ext4 /dev/mapper/vg_dm-lv_dmarch
#挂载
mount /dev/mapper/vg_dm-lv_dmdata  /dm/dmdata
mount /dev/mapper/vg_dm-lv_dmdata  /dm/dmarch
mount /dev/mapper/vg_dm-lv_dmdata  /dm/dmbak

1.4 测试性能

I/O性能监控工具:iostat -k -x 2 

1.使用dd命令测试
iostat -k -x 2
mkdir -p /dmdata/iotest
cd /dmdata/iotest
dd if=/dev/zero of=testfile1 bs=4k count=4k oflag=dsync;
dd if=/dev/zero of=testfile2 bs=8k count=4k oflag=dsync;
dd if=/dev/zero of=testfile3 bs=16k count=4k oflag=dsync;
dd if=/dev/zero of=testfile4 bs=32k count=4k oflag=dsync;
dd if=/dev/zero of=testfile5 bs=64k count=4k oflag=dsync;
dd if=/dev/zero of=testfile6 bs=4k count=4k oflag=sync;
dd if=/dev/zero of=testfile7 bs=8k count=4k oflag=sync;
dd if=/dev/zero of=testfile8 bs=16k count=4k oflag=sync;
dd if=/dev/zero of=testfile9 bs=32k count=4k oflag=sync;
dd if=/dev/zero of=testfile10 bs=64k count=4k oflag=sync;
2.使用FIO测试
上传fio压缩包,rz+选择压缩包
解压tar -zxfz fio文件名
进入数据盘后使用下面语句进行测试
fio -filename=fiotestfile -direct=1 -iodepth 1 -thread -rw=randrw -ioengine=psync -bs=16k -size=500M -numjobs=10 -runtime=10 -group_reporting -name=mytest

1.5 修改系统配置文件

检查、关闭防火墙

systemctl list-unit-files | grep fire
systemctl stop firewalld.service
systemctl disable firewalld.service

 1. 修改资源限制

  vi /etc/security/limits.conf

dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

切换到dmdba检查资源限制是否生效
  ulimit  -a

2. 修改内核函数

  vi /etc/sysctl.conf

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152
kernel.core_pattern = /dm/dmdata/core.%p

最后一个参数根据情况设定,软件安装目录空间够存放core文件,那么久不需要指定core目录

使内核参数生效:sysctl -p

1.6 挂载软件ISO文件

把iso文件上传至服务器,再把iso挂载到/dm/dmiso
mkdir -p /dm/dmiso

mount -o loop dm8_xxx.iso /dm/dmiso

进入/dm/dmiso,把DMInstall.bin复制到/dm/dmiso/dmsoft

cp /dm/dmiso/DMInstall.bin /dm/dmiso/dmsoft

修改用户和用户组为安装数据库的用户、用户组

chown -R dmdba.dinstall /dm/dmdata /dm/dmarch /dm/dmbak 

1.7 设置安装目标

  设置临时安装目标并安装软件,在进行安装数据库是会进行解压,解压文件会默认放在tmp临时目录下,该目录空间一般较小。

mkdir -p /dm/dmiso/dmsoft/dm_install_tmp
export DM_INSTALL_TMPDIR= /dm/dmiso/dmsoft/dm_install_tmp
export DM_INSTALL_TMPDIR

2. 安装数据库

2.1 执行DMInstall.bin安装

  在安装前检查下用户是否为dmdba,上传key文件

  cd /dm/dmiso/dmsoft

  ./DMInstall.bin -i

2.2 设置环境变量

vi ~/.bash_profile
export DM_HOME="/home/dmdba/dmdbms"     
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DM_HOME/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool 

  对数据库初始化实例,只有主备两台数据库才需要进行初始化实例,监控器服务器无须初始化实例

节点1作为主库

cd /dm/dmdbms/bin
 ./dminit path=/dm/dmdata DB_NAME=GXZY INSTANCE_NAME=GXZY01 PORT_NUM=5135 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=Y CHARSET=0 LENGTH_IN_CHAR=0 BLANK_PAD_MODE=0 SYSDBA_PWD="Sysdba@12345" SYSAUDITOR_PWD="Sysauditor@12345" ELOG_PATH= /dm/dmdbms/log/slog

节点2作为备库

cd /dm/dmdbms/bin
 ./dminit path=/dm/dmdata DB_NAME=GXZY INSTANCE_NAME=DMSERVER_01 PORT_NUM=5135 EXTENT_SIZE=32 PAGE_SIZE=32 LOG_SIZE=2048 CASE_SENSITIVE=Y CHARSET=0 LENGTH_IN_CHAR=0 BLANK_PAD_MODE=0 SYSDBA_PWD="Sysdba@12345" SYSAUDITOR_PWD="Sysauditor@12345" ELOG_PATH= /dm/dmdbms/log/slog

  初始化数据库后必须使用前台启动方式启动一次数据库

 ./dmserver  /dm/dmdata/DAMENG/dm.ini

当前台启动界面出现“SYSTEM IS READY”字样说明数据库已完成启动

打开另一个窗口确认数据库能够正常登录

cd /dm/dmdbms/bin
 ./disql SYSDBA/'"Sysdba@12345"'@localhost:5135

创建一个用户表空间,并将SYSDBA默认表空间修改为新表空间

CREATE TABLESPACE "USERTBS" DATAFILE 'USERTBS.DBF' size 128;
ALTER USER "SYSDBA" DEFAULT TABLESPACE "USERTBS" DEFAULT INDEX TABLESPACE "USERTBS";

2.3 主库集群配置

配置节点01的dm.ini配置文件

vi /dmdata/GXZY/dm.ini

INSTANCE_NAME = GXZY01 
PORT_NUM = 5135 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID,1允许,后面需要才修改
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
#HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动(新版本中已无此参数,待确认是否还需要设置)

配置节点01的dmarch.ini配置文件

 $ vi /dmdata/GXZY/dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE               = REALTIME
ARCH_DEST               = DMSERVER_01
[ARCHIVE_LOCAL]
ARCH_TYPE               = LOCAL
ARCH_DEST               = /dm/dmarch
ARCH_FILE_SIZE          = 256
ARCH_SPACE_LIMIT        = 5120

配置节点01的dmwatcher.ini配置文件

$ vi /dmdata/GXZY/dmwatcher.ini

[ARCHIVE_REALTIME]
ARCH_TYPE 		= REALTIME
ARCH_DEST 		= DMSERVER_01
[ARCHIVE_LOCAL]
ARCH_TYPE 		= LOCAL
ARCH_DEST 		= /dm/dmarch
ARCH_FILE_SIZE 		= 256
ARCH_SPACE_LIMIT 	= 5120
[root@DMNode1 ~]# cat /dmdata/GXZY/dmwatcher.ini
[GRP1]
DW_TYPE 		= GLOBAL 	#守护类型,默认为LOCAL:本地守护,GLOBAL:全局守护
DW_MODE 		= AUTO 		#切换模式,默认为 MANUAL故障手动切换模式,AUTO:故障自动切换模式
DW_ERROR_TIME 		= 30 		#守护进程故障认定时间,取值范围为(3s~32767s),缺省 15 秒没有收到远程守护进程消息,即认定远程守护进程故障,对本地守护无效。
INST_RECOVER_TIME 	= 60 		#主库守护进程启动恢复的间隔时间
INST_ERROR_TIME 	= 20 		#本地实例故障认定时间
INST_OGUID 		= 666666 	#守护系统唯一OGUID值
#INST_INI = /dmsoft/dmdata/DAMENG/dm.ini#dm.ini配置文件路径
INST_INI 		= /dmdata/GXZY/dm.ini 		#dm.ini配置文件路径
INST_AUTO_RESTART 	= 1 				#打开实例的自动启动功能
INST_STARTUP_CMD 	= /dm/dmdbms/bin/dmserver  	#命令行方式启动
#INST_STARTUP_CMD 	= /dmsoft/dmdbms/bin/DmServiceDMSERVER start #命令行方式启动
RLOG_SEND_THRESHOLD 	= 0				 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD 	= 0 				#指定备库重演日志的时间阈值,默认关闭

配置节点01的dmmal.ini配置文件

 $ vi /dmdata/GXZY/dmmal.ini

MAL_CHECK_INTERVAL 		= 5	 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL 		= 5 	#判定MAL链路断开的时间

[MAL_INST01]
MAL_INST_NAME 			=GXZY01 	#实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST 			=192.168.3.181 	#MAL系统监听TCP连接的IP地址,MAL_HOST 使用内部网IP
MAL_PORT 			= 7331 		#MAL系统监听TCP连接的端口
MAL_INST_HOST 			= 192.168.3.181 #实例的对外服务IP地址(如果只有一个内网就配一样,如果有外网配置取对外服务端口)
MAL_INST_PORT 			= 5135   	#实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT 			= 7332 		#实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT 		= 5137 		#实例监听守护进程 TCP 连接的端口

[MAL_INST02]
MAL_INST_NAME 			= DMSERVER_01
MAL_HOST 			= 192.168.3.182
MAL_PORT 			= 7431
MAL_INST_HOST 			= 192.168.3.182
MAL_INST_PORT 			= 5135
MAL_DW_PORT 			= 7432
MAL_INST_DW_PORT 		= 5137

配置节点01的sqllog.ini配置文件及路径

 vi /dmdata/GXZY/sqllog.ini

BUF_TOTAL_SIZE          = 10240         #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE                = 1024          #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT            = 6             #SQLs Log buffer keeped count(1~100)

[SLOG_ALL]
    FILE_PATH           = /dm/dmdbms/log
    PART_STOR            = 0
    SWITCH_MODE         = 2
    SWITCH_LIMIT         = 128
    ASYNC_FLUSH          = 1
    FILE_NUM             = 5
    ITEMS                = 0 
    SQL_TRACE_MASK      = 1 
    MIN_EXEC_TIME       = 0 
    USER_MODE           = 0 
    USERS                =   #要记录的用户名,如此处为空USER_MODE需设置为0

2.4 脱机备份数据库

脱机备份数据库

$ cd /dm/dmdbms/bin
./dmrman CTLSTMT="BACKUP DATABASE '/dmdata/GXZY/dm.ini' FULL TO DB_BACKUP_DAMENG_INIT01 BACKUPSET '/dm/dmbak/DB_BACKUP_DAMENG_INIT01'"

将数据库目录和备份文件从节点01主节点分别拷贝到备库节点上

备份文件用于还原数据库,数据库目录减少重新配置备库节点ini文件

scp -P 22 -r /dm/dmbak/DB_BACKUP_DAMENG_INIT01 192.168.3.182:/dmsoft/dmbak
scp -P 22 -r /dm/dmbak/DB_BACKUP_DAMENG_INIT01 192.168.3.182:/dmsoft/dmbak

2.5 主库修改模式

配置节点01的数据库模式及OGUID

一个窗口启动数据库实例到配置模式

$  ./dmserver /dmdata/GXZY/dm.ini mount
一个窗口登录实例配置进行配置
$ cd /home/dmdba/dmdbms/bin
$ ./disql SYSDBA/'"Sysdba@12345"'@localhost:5135
SQL> sp_set_oguid(666666);
SQL> alter database primary;
exit

配置好后退出实例

OGID是守护系统唯一OGUID值,在配置dmwatcher.ini进行修改

2.6 备库还原恢复

初始化各备库

还原、恢复备份到备库并更新魔术值(在所有备库节点执行)

$ cd /dmsoft/bin
$ ./dmrman
校验备份集
CHECK BACKUPSET '/dmsoft/dmbak/DB_BACKUP_DAMENG_INIT01';
还原
RESTORE DATABASE '/dmsoft/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmsoft/dmbak/DB_BACKUP_DAMENG_INIT01';
恢复
RECOVER DATABASE '/dmsoft/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmsoft/dmbak/DB_BACKUP_DAMENG_INIT01';
##恢复时提示该内容属于正常现象,因为还没开启归档模式:备份集[/dm/dmbak/DB_BACKUP_DAMENG_INIT01]备份过程中未产生日志
更新DB_Magic
RECOVER DATABASE '/dmsoft/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;

2.7 备库集群配置

配置02节点

修改节点02的dm.ini配置文件

vi /dmsoft/dmdata/DAMENG/dm.ini

修改以下参数
INSTANCE_NAME = DMSERVER_01
MAL_INI=1
ARCH_INI=1
ALTER_MODE_STATUS=0
ENABLE_OFFLINE_TS=2

修改节点02的dmarch.ini配置文件

 vi /dmsoft/dmdata/DAMENG/dmarch.ini

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GXZY01
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmsoft/dmarch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 5120

注:主库的信息

配置02节点

修改节点02的dmmal.ini配置文件

vi /dmsoft/dmdata/DAMENG/dmmal.ini

MAL_CHECK_INTERVAL 			= 5 	#MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL 			= 5 	#判定MAL链路断开的时间

[MAL_INST01]
MAL_INST_NAME 				=GXZY01 			#实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST 				=192.168.3.181 			#MAL系统监听TCP连接的IP地址,MAL_HOST 使用内部网IP
MAL_PORT 				= 7331 				#MAL系统监听TCP连接的端口
MAL_INST_HOST 				= 192.168.3.181			#实例的对外服务IP地址
MAL_INST_PORT 				= 5135 			#实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT 				= 7332 				#实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT 			= 5137 				#实例监听守护进程 TCP 连接的端口

[MAL_INST02]
MAL_INST_NAME 				= DMSERVER_01
MAL_HOST 				= 192.168.3.182
MAL_PORT 				= 7431
MAL_INST_HOST 				= 192.168.3.182
MAL_INST_PORT 				= 5135
MAL_DW_PORT 				= 7432
MAL_INST_DW_PORT 			= 5137

配置02节点

修改节点02的dmwatcher.ini配置文件

vi /dmsoft/dmdata/DAMENG/dmwatcher.ini

[GRP1]
DW_TYPE                = GLOBAL                  #守护类型,默认为LOCAL:本地守护,GLOBAL:全局守护
DW_MODE                = AUTO                    #切换模式,默认为 MANUAL故障手动切换模式,AUTO:故障自动切换模式
DW_ERROR_TIME          = 30                      #守护进程故障认定时间,取值范围为(3s~32767s),缺省 15 秒没有收到远程守护进程消息,即认定远程守护进程故障,对本地守护无效。
INST_RECOVER_TIME      = 60                      #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME        = 20                      #本地实例故障认定时间
INST_OGUID             = 666666                                                 #守护系统唯一OGUID值
INST_INI               = /dmsoft/dmdata/DAMENG/dm.ini	#dm.ini                    #配置文件路径
INST_AUTO_RESTART      = 1                                                      #打开实例的自动启动功能
# INST_STARTUP_CMD       = /dmsoft/dmdbms/bin/DmServiceDMSERVER start             #命令行方式启动
INST_STARTUP_CMD       = /dmsoft/bin/dmserver         #命令行方式启动
RLOG_SEND_THRESHOLD    = 0                       #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD   = 0                       #指定备库重演日志的时间阈值,默认关闭

2.8 备库修改模式

配置节点02的数据库模式及OGUID

一个窗口前台方式启动数据库实例到配置模式

./dmserver /dm/dmdata/DAMENG/dm.ini mount(在bin目录下操作)
一个窗口登录实例配置进行配置
cd /dm/dmdbms/bin
./disql SYSDBA/'"Sysdba@12345"'@localhost:5135
SQL> sp_set_oguid(666666);
SQL> alter database  standby;
Exit;

OGID是守护系统唯一OGUID值,在配置dmwatcher.ini进行修改

配置好后退出实例

2.9 注册服务

服务注册在主备库都执行,在root目录下执行

主库服务注册:

注册数据守护服务
/dm/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMSERVER -watcher_ini /dmdata/GXZY/dmwatcher.ini -m mount
注册数据库实例服务
/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dmdata/GXZY/dm.ini -m mount

备库服务注册:

注册数据守护服务
/dmsoft/script/root/dm_service_installer.sh -t dmwatcher -p DMSERVER -watcher_ini /dmsoft/dmdata/DAMENG/dmwatcher.ini -m mount
注册数据库实例服务
/dmsoft/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dmsoft/dmdata/DAMENG/dm.ini -m mount


2.10 监视器配置

注:可准备一台机子,按数据库安装前准备那开始到执行DMInstall.bin进行安装那一步,再开始部署监控器

确认监控器: vi /dm/dmdbms/bin/dmmonitor1.ini

MON_DW_CONFIRM         = 1                #监视器模式
MON_LOG_PATH           = /dm/dmdbms/log   #监视器日志文件存放路径
MON_LOG_INTERVAL       = 60               #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE      = 32               #每个日志文件最大32M
MON_LOG_SPACE_LIMIT    = 1024             #不限定日志文件总占用空间

[GRP1]
MON_INST_OGUID     = 666666            #组GRP1的唯一OGUID值
MON_DW_IP          = 192.168.3.181:7332
MON_DW_IP          = 192.168.3.182:7432

普通监控器: vi /dm/dmdbms/bin/dmmonitor0.ini

MON_DW_CONFIRM         = 0                #监视器模式
MON_LOG_PATH           = /dm/dmdbms/log   #监视器日志文件存放路径
MON_LOG_INTERVAL       = 60               #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE      = 32               #每个日志文件最大32M
MON_LOG_SPACE_LIMIT    = 1024             #不限定日志文件总占用空间

[GRP1]
MON_INST_OGUID     = 666666            #组GRP1的唯一OGUID值
MON_DW_IP          = 192.168.3.181:7332
MON_DW_IP          = 192.168.3.182:7432

各节点启动数据收据进程,观察监控器是否能够正常监控到各节点守护进程信息(.dmmonitor /dmmonitor0.ini,及各节点能否自动拉起数据库进程

启动顺序为主->备

systemctl start DmWatcherServiceDMSERVER

在监控服务器前台启动普通监控器
/dm/dmdbms/bin/dmmonitor  /dm/dmdbms/bin/dmmonitor0.ini

确认集群正常后退出前台普通监控器
注册监控器服务并后台启动
/dm/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p DMSERVER -monitor_ini /home/dmdba/dmdbms/bin/dmmonitor.ini 
systemctl start DmMonitorServiceDMSERVER

总结

本文简单介绍了主备集群部署,详细安装请参考 https://eco.dameng.com/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值