目录
机器名 | IP地址 | 初始状态 | 操作系统 |
DM_P | 192.168.174.130(外网) 192.168.158.130(内网) |
主库 DMDB1 |
CentOS-7-x86_64-DVD-2009 |
DM_S1 | 192.168.174.131(外网) 192.168.158.131(内网) |
备库 DMDB2 |
CentOS-7-x86_64-DVD-2009 |
DM_M | 192.168.174.134(外网) |
监视器 | CentOS-7-x86_64-DVD-2009 |
端口规划
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
DMDB1 | 32141 | 32141 | 192.168.158.130 | 61141 | 52141 |
DMDB2 | 32142 | 32142 | 192.168.158.131 | 61142 | 52142 |
配置数据守护之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。备库在备份还原前,需要先准备初始化一个新库。
不能使用分别初始化库或者直接拷贝数据文件的方法来直接配置数据库守护,原因如下:
1.每个库都有一个永久魔数(permanent_magic),一经生成,永远不会改变,主库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不了日志。
2.由于dminit初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据。
3.每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。
如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据,如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数据。
克隆的已经安装达梦数据库,初始化了实例的虚拟机的话,在操作之前是需要关闭数据库的。总之脱机备份之前要保证数据库是关闭的。
数据准备的具体步骤包括:
后台关闭:
systemctl stop DmServiceDMSERVER.service
数据库在初始化实例之后必须前台启动刷新一下!不然会出现守护进程无法自动将数据库转变为open状态,数据库将一直处于mount状态。
前台打开:切换到达梦数据库安装的bin目录下执行下面语句,我的达梦数据库bin目录路径为:/dm8/bin
./dmserver /dm8/data/DAMENG/dm.ini
前台关闭:Ctrl+C
到bin目录下使用dmrman工具进行脱机备份。
./dmrman.sh
RMAN> backup database '/dm8/data/DAMENG/dm.ini' full backupset '/dm8/fullbak';
[dmdba@localhost ~]$ scp -r 192.168.174.130:/dm8/fullbak /dm8/
执行/dm8/bin目录下的dmrman工具
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/fullbak';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
切忌:如果你已经初始化过实例,或者采用克隆的方式克隆已经安装达梦数据库,且实例化的虚拟机,请不要再初始化了!!会出现overwrite一些文件的情况。
DW_P机器上初始化主库至目录/dm8/data:
./dminit path=/dm8/data
DW_S1机器上初始化备库至目录/dm8/data:
./dminit path=/dm8/data
vi /dm8/data/DAMENG/dm.ini
一般只修改前面四个参数值。
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开 归档
ALTER_MODE_SATUS= 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
INSTANCE_NAME = DMDB1 #实例名
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 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 = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口
当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。
vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M
修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。
vi /dm8/data/DAMENG/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 = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
./dmserver /dm8/data/DAMENG/dm.ini mount
启动命令行工具disql,登录主库设置OGUID值。
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;
vi /dm8/data/DAMENG/dm.ini
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开 归档
ALTER_MODE_SATUS= 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS= 2 #不允许备库 OFFLINE 表空间
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
INSTANCE_NAME = DMDB2 #实例名
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
vi /dm8/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMDB1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.130 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.174.130 #实例的对外服务 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 = DMDB2 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.158.131
MAL_PORT = 61142
MAL_INST_HOST = 192.168.174.131 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 33142 #实例监听守护进程 TCP 连接的端口
当前实例DMDB1是主库,需要向DMDB2(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为DMDB2。
vi /dm8/data/DAMENG/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMDB1 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位 Mb, 0 表示无限制,范围 1024~4294967294M
修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。
vi /dm8/data/DAMENG/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 = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
./dmserver /dm8/data/DAMENG/dm.ini mount
启动命令行工具disql,登录设置OGUID值为453331
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
sp_set_oguid(453331);
SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);
修改数据库为 Standby 模式
alter database standby;
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。
vi /dm8/data/dmmonitor.ini
修改 dmmonitor.ini 配置确认监视器, 其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
MON_DW_Confirm = 1 #确认监视器模式
MON_LOG_PATH = /dm8/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
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.158.130:52141
MON_DW_IP = 192.168.158.131:52142
启动各个主备库上的守护进程:
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
守护进程启动后,进入Startup状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态,如果在监视器中没有看见主备库处于Open状态,那就说明数据库状态存在问题。
./dmmonitor /dm8/data/dmmonitor.ini
监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help命令,查看各种命令说明使用,结合实际情况选择使用。 至此实时守护类型的数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。
数据守护集群的关闭:
stop GROUP GRP1
至此数据守护集群搭建完毕。更多详细信息请参考达梦数据库官方社。
文章浏览阅读234次。2020年9月10日,华为开发者大会发布了鸿蒙(HarmonyOS)2.0。HarmonyOS是一套全场景操作系统。从理论上讲,HarmonyOS可以在任何平台上运行(包括但不限于PC、手机、平板电脑、车载电脑、手表、iot设备等)。那么,想要在如此优秀的操作系统运行App,固然需要我们自己去手动开发。因此,华为也发布了自己的IDE,即HUAWEI DevEco Studio(以下简称D..._deveco studio车载系统在哪
文章浏览阅读2.3k次。1. 什么是workqueueLinux中的Workqueue机制就是为了简化内核线程的创建。通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的创建,方便了用户的编程.工作队列(workqueue)是另外一种将工作推后执行的形式.工_kernel队列
文章浏览阅读4.4k次。 我们都知道,API就是接口,那是什么鬼呢? 1.什么是API?api接口开发,其实和平时开发逻辑差不多;但是也有略微差异;平时使用mvc开发网站的思路一般是都 由控制器 去 调用模型,模型返回数据,再由控制器把数据放到视图中,展现给用户;api开发是:使用控制器 去调用模型,模型返回数据,在有控制器 输出 json格式字符串 或者 XML 字符串,不用考虑视图,..._api和interface
文章浏览阅读527次。1.在components中创建Loading文件夹,然后在Loading中新建loading.vue文件<template> <div v-if="loading" class="shade"> <div class="sk-wave"> <div class="sk-rect sk-rect1"></div> <div class="sk-rect sk-rect2"></d_vue.prototype.$loading 在axios怎么取
文章浏览阅读672次,点赞4次,收藏3次。导出的postman V2转成V1。_yapi导入数据时解析数据为空
文章浏览阅读2.5k次。邮件发送与接收,支持163邮箱、outlook邮箱、exchange邮箱依赖的jar包邮件收发公共服务层实现package com.example.demo.service.impl;import com.example.demo.model.EmailMessageBO;import com.example.demo.model.EmailSendBO;import com.example.demo.model.FileBean;import com.example.demo.serv_. 集成&自动化中配置发送邮件节点,发件人邮箱账号支持哪些邮箱类型
贴图像素化风格实现
文章浏览阅读605次。1.Polar:http://www.polarinstruments.com/Si6000b是目前广泛使用的阻抗计算软件,Cits25的升级版,功能强大,不仅能正向计算阻抗和延迟,还能根据目标阻抗逆向计算其它参数,支持平面型的传输线和波导,包括:单端 表面微波传输带覆膜表面微波传输带嵌入式微波传输带对称带状线偏移(不对称)带状线差分 表面边缘耦合微波传..._cad design impedance calculator
文章浏览阅读963次,点赞21次,收藏16次。Zotero是一款功能强大的免费开源文献管理软件,旨在帮助用户轻松管理和组织各种类型的研究资料。作为一款知识管理工具,Zotero可以帮助用户收集、整理和引用参考文献,从而提高学术写作和研究工作的效率。该软件支持多种操作系统,并提供灵活的文献云存储同步功能,让用户随时随地都能获取到他们需要的信息。通过Zotero,用户可以轻松管理各类参考文献和知识资源,极大地简化了学术研究过程中的信息管理工作。Zotero是一款功能强大的文献管理软件,具有自动化抓取参考文献信息、多种引用格式支持和文献云存储同步等特点。_科研文件管理软件
文章浏览阅读63次。为消费者所需的最低预算提供了一个条件,并使用现实数据进行案例研究,其中显示了高达30%的潜在节约和具有低波动性的均衡价格。在Stackelberg博弈中建立了相互作用的模型,公司设定价格,而消费者选择他们的需求作为回应。证明了潜在博弈具有一个独特的均衡,公司的收益最大化而消费者的效用最大化受当地约束。构造了一个具有唯一纯策略纳什均衡的权力分配博弈,并给出了该博弈的封闭形式表达式。也研究在周期的数量(时间范围的细分和消费者的数量变化的影响。给出了所有参与方的最优策略的封闭表达式。
文章浏览阅读230次,点赞11次,收藏8次。小小练习
它是一个元包管理器,它使用自己的系统知识和依赖关系来查找要安装在特定平台上的适当包。rosdep通过检索本地计算机上的中央索引来工作,这样它就不必在每次运行时访问网络(在 Debian/Ubuntu 上,它的配置存储在/etc/ros/rosdep/sources.list.d/20-default.list)。上,还有另一个名称类似的软件包,称为python3-rosdep2.如果安装了该软件包,请确保在安装之前将其删除python3-rosdep。这是推荐的获取方式rosdep。