注册
达梦数据库守护集群安装和准备
专栏/培训园地/ 文章详情 /

达梦数据库守护集群安装和准备

于 安 2024/01/25 715 0 0
摘要

DM8守护集群 (对标于Oracle的DataGuard) 但是通过搭建过程 感觉 部署十分方便,搭建难度小于oracle的 DataGuard

其原理也是操作系统平台,达梦版本相同的数据库通过主库传输归档日志到备库,备库通过实时应用主库的归档日志,使主库和备份 数据实时同步并且,备库可以对外提供查询服务。

搭建的过程如下:

修改操作系统限制 (两台机器都做)

dmdba soft nproc 16384
dmdba hard nproc 16384
dmdba soft nofile 65536
dmdba hard nofile 65536

关闭防火墙 (两台机器都做)

systemctl disable firewalld
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

挂载DM光盘: (两台机器都做)

mount -o loop dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso /mnt

配置 YUM (两台机器都做)

/dev/sr0 3.7G 3.7G 0 100% /run/media/root/RHEL-7.1 Server.x86_64

umount /run/media/root/RHEL-7.6\ Server.x86_64/
mount /dev/cdrom /media -o loop

cd /etc/yum.repos.d

vi rhel7.repo ----------------或者--------------- local.repo

[local]
baseurl=file:///media
name=this is a local repo
enabled=1
gpgcheck=0

yum clean all;
yum list all;

安装依赖包

yum install *glibc* -y
yum install *libXp* -y
yum install *libXt* -y
yum install *libXtst* -y

下一步 修改 主库 dmdw1 的dm.ini文件

vi /dmdata/dmdw/dm.ini

MAL_INI = 1 ## 0 变为 1
ARCH_INI = 1 ## 0 变为 1

ALTER_MODE_STATUS = 0 #Whether to permit database user to alter database mode and status by SQLs, 1: yes, 0: no
ENABLE_OFFLINE_TS = 2 #Whether tablespace can be offline

新建文件 vi /dmdata/dmdw/dmmal.ini

MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = dmdw1 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 10.10.10.150 #MAL系统监听TCP连接的IP地址 心跳地址
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.115.150 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52141 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 33141 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = dmdw2 #### 需要修改
MAL_HOST = 10.10.10.160
MAL_PORT = 61142
MAL_INST_HOST = 192.168.115.160
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142

新建立和 配置 vi /dmdata/dmdw/dmarch.ini

su - dmdba
mkdir -p /dmdata/arch

[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = dmdw2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdata/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M


新建立和 配置 vi /dmdata/dmdw/dmwatcher.ini

修改dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式。

[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一OGUID值
INST_INI = /dmdata/dmdw/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

主库脱机备份:

cd /dm/dmdbms/bin
./dmrman

一号机 dmdw1 上执行脱机备份
备份出来的 dbfull 是个目录

backup database '/dmdata/dmdw/dm.ini' full backupset '/dmdata/dbfullbackup';

把脱机备份集拷贝到2号机 dmdw2

scp -rp dbfullbackup/ 192.168.115.138:/dmdata/.

在2号机器dmdw2进行还原

cd /dm/dmdbms/bin
./dmrman

restore database '/dmdata/dmdw/dm.ini' from backupset '/dmdata/dbfullbackup';

recover database '/dmdata/dmdw/dm.ini' from backupset '/dmdata/dbfullbackup';

recover database '/dmdata/dmdw/dm.ini' update db_magic;

启动 主库 dmdw1 到 mount状态 设置 OGUID

cd /dm/dmdbms/bin
./dmserver /dmdata/dmdw/dm.ini mount

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

alter database primary;

启动 主库 dmdw2 到 mount状态 设置 OGUID

cd /dm/dmdbms/bin
./dmserver /dmdata/dmdw/dm.ini mount

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

alter database standby;

主库启动守护进程

/dm/dmdbms/bin/dmwatcher /dmdata/dmdw/dmwatcher.ini

备库启动守护进程

/dm/dmdbms/bin/dmwatcher /dmdata/dmdw/dmwatcher.ini

注册守护进程为服务的形式

su - root

cd /dm/dmdbms/script/root
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/dmdw/dmwatcher.ini -p dmdw1

su - root
cd /dm/dmdbms/script/root
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/dmdw/dmwatcher.ini -p dmdw2

注册 监视器 服务的形式

su - root

vi /dmdata/dmdw/dmmonitor.ini

cd /dm/dmdbms/script/root
./dm_service_installer.sh -t dmmonitor -monitor_ini /dmdata/dmmonitor.ini -p dmdw150160

7、启动监视器


/dm/dmdbms/bin/dmmonitor /dmdata/dmmonitor.ini

MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /dmdata/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453331 #组GRP1的唯一OGUID值

以下配置为监视器到组GRP1的守护进程的连接信息,以―IP:PORT‖的形式配置IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT

MON_DW_IP = 192.168.100.10:52141
MON_DW_IP = 192.168.100.11:52142

其他命令:

监视器里输入:

show global info

show arch send info DMDW2
show apply stat DMDW2


5 s 自动刷新显示

show i 5
stop dmwatcher grp1
startup dmwatcher grp1

停止 组里所有的数据库

stop group grp1

startup group grp1

停止单库

login

detach database dmdw2
stop database dmdw2
startup database dmdw2

attach database dmdw2

查看 系统运行状态
tip

切换命令 :
正常切换 switchover

login
choose switchover grp1

switchover grp1.dmdw2

switchover grp1.dmdw1

choose takeover grp1

check recover dmdw2

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服