失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > DM7 达梦 数据库 数据守护(Data Watch) -- 实时主备环境搭建

DM7 达梦 数据库 数据守护(Data Watch) -- 实时主备环境搭建

时间:2022-05-01 18:20:24

相关推荐

DM7 达梦 数据库 数据守护(Data Watch) -- 实时主备环境搭建

1 环境说明

本示例中组名为“GRP1”,配置为实时主备,主库命名为“GRP1_RT_01 ”,备库命名为“GRP1_RT_02 ”。

配置环境说明:

主机类型 IP地址 实例名操作系统

主库 192.168.80.161 (外部服务)

192.168.227.161(内部通信) GRP1_RT_01redhat6.6

备库 192.168.80.162 (外部服务)

192.168.227.162(内部通信) GRP1_RT_02redhat6.6

监控 192.168.80.160redhat6.6

端口规划:

实例名 PORT_NUM DW_PORT MAL_HOST MAL_PORT MAL_DW_PORT

GRP1_RT_01 5236 5237 192.168.227.161 5238 5239

GRP1_RT_02 5236 5237 192.168.227.162 5238 5239

一、数据准备

注:为了简化搭建流程,建议在主库上完成数据库的初始化,并进行相关配置文件的创建和修改后,

再将主机中数据库的文件夹scp到备机上并在备机修改部分配置文件的参数即可。

2集群实施步骤

2.1配置A机器

2.1.1实例、备份数据

(一)在主机上初始化数据库

若主机上之前没有数据库,则需要按如下步骤初始化数据库:

1、进入安装目录下的bin文件夹,执行./dminit工具

(dminit工具的相关参数可查阅《DM7系统管理员手册》7.3节表7.1),此处仅制定数据库安装路径,其他参数不指定即使用默认值:

dminit path=数据库实例路径

[dmdba@localhost ~]$ dminit help 默认的

SYSDBA_PWD set SYSDBA password(SYSDBA), password length must between 9 and 48

SYSAUDITOR_PWD set SYSAUDITOR password(SYSAUDITOR), password length must between 9 and 48

DB_NAME database name(DAMENG)

INSTANCE_NAME instance name(DMSERVER) --修改数据库实例名字即可

PORT_NUM listener port(5236)

--初始化实例

source .bash_profile

[dmdba@bin]# dminit PATH=/dm7/data/

--启动服务

[dmdba@bin]# dmserver /dm7/data/DAMENG/dm.ini

......

nsvr_process_before_open begin.

nsvr_process_before_open success.

SYSTEM IS READY.

已经启动成功,另起一个窗口执行,如果要结束的话,直接ctrl+C

在/data/dm7/script/root目录下有2个可执行程序,注意,均需要用root账号执行。

其中dm_service_installer.sh为安装服务的脚本,dm_service_uninstaller.sh为卸载脚本,本次安装执行过程如下:

其中dm_service_installer.sh命令参数及说明如下

-t 服务类型,包括dmimon,dmap,dmserver,dmwatch,dmrww,dmwmon,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr

-p 服务名后缀,对于dmimon,dmap服务类型无效 --实例名就可

-i ini文件路径,对于dmimon,dmap服务类型无效

-d dmdcr.ini文件路径,只针对dmserver服务类型生效,可选

-m 设置服务器启动模式open或mount,只针对dmserver服务类型生效,可选

-y 设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效

-s 服务脚本路径,设置则忽略除-y外的其他参数选项

-h 帮助

其中-i 参数中的/data/dm/data/testdb/dm.ini文件是在上一步初始化数据库后生成的。

2、注册数据库服务

进入安装路径下/script/root文件夹,执行./dm_service_installer.sh即可注册服务:

./dm_service_installer.sh -t dmserver -p 服务名后缀 -i ini文件路径

注册成功后将在安装目录下的bin文件夹生成以“”DmService+服务名后缀”命名的执行文件,

使用该文件并配合{start|stop|status|condrestart|restart}命令即可对数据库服务进行相应的操作。

3、对于新初始化的库,需要先正常启动并正常退出,关闭数据库后再进行后面的步骤。

4、在主库对各个配置文件进行配置,然后将整个数据文件夹(/opt/dmdbms/bin/DAMENG)scp到备库。

5、在备库对配置文件相关参数进行修改。

[root@localhost ~]# /dm7/script/root/dm_service_installer.sh -t dmserver -i /dm7/data/DAMENG/dm.ini -p GRP1_RT_01

Move the service script file(/dm7/bin/DmServiceGRP1_RT_01 to /etc/rc.d/init.d/DmServiceGRP1_RT_01)

Finished to create the service (DmServiceGRP1_RT_01)

ctrl+C关闭前一个启动的窗口,正常启停服务一次,

root@localhost ~]# service DmServiceGRP1_RT_01 start

Starting DmServiceGRP1_RT_01: stty: standard input: Inappropriate ioctl for device

[ OK ]

[root@localhost ~]# service DmServiceGRP1_RT_01 stop

Stopping DmServiceGRP1_RT_01: [ OK ]

[root@localhost ~]#

状态停留的stop,然后修改主库的文件

注册成功后将在安装目录下的bin文件夹生成以“”DmService+服务名后缀”命名的执行文件,使用该文件并配合{start|stop|status|condrestart|restart}命令即可对数据库服务进行相应的操作。

3、对于新初始化的库,需要先正常启动并正常退出,关闭数据库后再进行后面的步骤。(开归档,正常启动)

4、在主库对各个配置文件进行配置,然后将整个数据文件夹(/opt/dmdbms/bin/DAMENG)scp到备库。

5、在备库对配置文件相关参数进行修改。

--------------------------------------------------------

3.数据守护搭建

在搭建数据守护系统前,应注意数据守护系统中各实例使用的 DM 服务器版本应一致,同时还应注意各实例所在主机的操作系统位数、大小端模式、时区及时间设置都应一致,以

免系统在运行时出现意想不到的错误。

3.1 数据准备

配置数据守护之前,必须先同步实例数据,确保两者保持完全一致;主库可以是新初始化的数据,也可以是正在生产、使用中的数据。DM 提供了两种方式初始化同步实例数据,

数据文件拷贝以及备份还原方式。不能使用分别初始化库的方法,原因如下:

1. 每个库都有一个永久魔数(permenant_magic),主库传送日志时会判断这个值是否一样,确保来自同一个库,不同的库传送不了日志

2. 由于 dminit 初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不相同,备库无法解析采用主库密钥加密的数据

对于新初始化的库,首次启动不允许使用 mount 方式,需要先正常启动并正常退出,然后才允许 mount 方式启动。

准备数据时,如果主库是新初始化的库,先正常启动并正常退出,然后再使用数据文件拷贝或者备份还原方式准备备库数据。3.1.1 数据文件拷贝

如果搭建数据守护之前,数据库系统已经上线运行了,那么我们可以通过拷贝数据文件

的方式实现主库和备库的数据同步。具体步骤包括:

1. 正常关闭数据库

service DmServiceGRP1_RT_01 stop

2. 严格按照数据文件在主库上的分布,拷贝数据文件到备库的对应目录

3. 如果数据文件统一存放在一个目录下,则直接拷贝整个目录即可

scp -r /dm7/data/ dmdba@192.168.80.162:/dm7/data/

3. 使用 scp 命令拷贝目录时要加上 /

我在使用 scp 命令从主库向备库拷贝全库备份目录时,提示目录不存在,在目录后加上斜杠后问题解决。

或者创建目录:

备机创建目录data

mkdir /dm7/data

[dmdba@localhost DAMENG]$ pwd

/dm7/data/DAMENG

[dmdba@localhost DAMENG]$ ll *ini

-rw-r--r-- 1 dmdba dinstall 252 Jun 3 17:23 dmarch.ini

-rw-r--r-- 1 dmdba dinstall 44029 Jun 3 17:22 dm.ini

-rw-r--r-- 1 dmdba dinstall 479 Jun 3 17:16 sqllog.ini

[dmdba@localhost DAMENG]$

#####数据守护搭建 官网文档--136页

配置实时主备

以下配置可以先在主库完成,完成所有配置后将整个数据库文件夹scp到备库后,再在备库对部分主备不同的配置参数进行局部修改即可。

这样可以减少配置工作量,还能确保主备必须一致的参数一定相同。

注意:在初始化数据库后,部分配置文件可能不存在,需要自己手动创建。

cd /dm7/data/DAMENG

3.1.2配置 dm.ini 备份之后,清空源文件,直接添加以下内容 ####这样还不行,必须得在里面修改 ,实例名和DW_PORT这两个

注:备库需要修改INSTANCE_NAME。

INSTANCE_NAME = GRP1_RT_01 #数据库实例名 ### 修改

PORT_NUM = 5236 #数据库实例监听端口

DW_PORT= 5237 #守护环境下,监听守护进程连接端口 ### 修改

DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 ###最后添加

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 ### 修改

ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间 ### 修改

MAL_INI = 1 #打开MAL系统 ### 修改

ARCH_INI = 1 #打开归档配置 ### 修改

RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息

3.1.4配置 dmmal.ini

配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,

MAL_HOST 使用内部网络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,

MAMAL_DW_PORT 是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间

[MAL_INST1]

MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致

MAL_HOST = 192.168.227.161 #MAL 系统监听 TCP 连接的 IP 地址 ---(内网1)

MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口

MAL_INST_HOST = 192.168.80.161 #实例的对外服务 IP 地址---(外网1)

MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致

MAL_DW_PORT = 5239 #实例对应的守护进程监听 TCP 连接的端口

[MAL_INST2]

MAL_INST_NAME = GRP1_RT_02

MAL_HOST = 192.168.227.162 ---(内网2)

MAL_PORT = 5238

MAL_INST_HOST = 192.168.80.162---(外网2)

MAL_INST_PORT = 5236

MAL_DW_PORT = 5239

3.3 配置 dmarch.ini

修改 dmarch.ini,配置本地归档和实时归档。除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。

当前实例 GRP1_RT_01 是主库,需要向 GRP1_RT_02(实时备库)同步数据,因此实时归档的 ARCH_DEST 配置为 GRP1_RT_02。

注:备库需要修改ARCH_DEST为GRP1_RT_01。

[ARCHIVE_TIMELY1]

ARCH_TYPE = TIMELY #即时归档类型

ARCH_DEST = GRP1_RT_02 #即时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /dm7/data/DAMENG/arch/ #本地归档文件存放路径

ARCH_FILE_SIZE = 256 #单位MB,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位MB,0表示无限制,范围1024~4294967294MB

4 配置 dmwatcher.ini及dmwatcher.ctl

注:dmwatcher.ini主要用于后面生成dmwatcher.ctl,两个文件主备一致,无需修改任何参数。

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = MANUAL #故障手动切换模式----修改

DW_ERROR_TIME = 10 #远程守护进程故障认定时间

INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 10 #本地实例故障认定时间

INST_OGUID = 453331 #守护系统唯一 OGUID 值

INST_INI = /dm7/data/DAMENG/dm.ini #dm.ini 配置文件路径

INST_AUTO_RESTART = 1 #打开实例的自动启动功能

INST_STARTUP_CMD = /dm7/bin/dmserver #命令行方式启动

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭

3.5 配置 dmwatcher.ctl

同一个守护进程组,必须使用同一份 dmwatcher.ctl。因此,只需要使用 dmctlcvt 工具生成一份 dmwatcher.ctl 文件,然后分别拷贝到各个数据库目录下即可。

在配置完成 dmwatcher.ini 后,使用 dmctlcvt 工具生成 dmwatcher.ctl:

[dmdba@localhost DAMENG]$ pwd

/dm7/data/DAMENG

[dmdba@localhost DAMENG]$ vim dmmal.ini

[dmdba@localhost DAMENG]$ vim dmarch.ini

[dmdba@localhost DAMENG]$ vim dmwatcher.ini

[dmdba@localhost DAMENG]$ dmctlcvt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data/DAMENG

DMCTLCVT V7.6.0.142-Build(.03.12-103811)ENT

Can not open ini file !

convert txt to ctl success!

[dmdba@localhost DAMENG]$

dmdba@localhost DAMENG]$ cd GRP1/

[dmdba@localhost GRP1]$ ll

total 4

-rw-r--r-- 1 dmdba dinstall 512 Jun 3 17:45 dmwatcher.ctl

[dmdba@localhost GRP1]$ mv dmwatcher.ctl ../

[dmdba@localhost GRP1]$

#默认生成控制文件有个子目录,需要移动到父目录中:

#拷贝生成的 dmwatcher.ctl 文件到数据文件目录/dm7/data/DAMENG

[dmdba@localhost DAMENG]$ ll dmwatcher.ctl

-rw-r--r-- 1 dmdba dinstall 512 Jun 3 17:52 dmwatcher.ctl

[dmdba@localhost DAMENG]$ pwd

/dm7/data/DAMENG

3.1. 主备库配置文件能拷贝就不要手工设置。

dm.ini、dmmal.ini、dmarch.ini、dmwatcher.ini这四个配置文件必须进行设置和创建才能启动数据守护,适合拷贝的配置文件有下面几个。

dmmal.ini:这个文件两个节点的配置完全一样,在主节点配置好后直接复制到备节点即可。

我在实验时主节点实例能 mount 启动,备节点相应实例不能 mount 启动,我手工反复修改备节点 dmmal.ini文件半小时未能解决。

最后,直接删除备节点 dmmal.ini 文件,再将主节点 dmmal.ini 文件拷贝到 备节点,再次以 mount 方式启动 备节点成功。

**dmarch.ini:**基本一样,将 ARCH_DEST=DW01 改成对方的实例名即可。

dmwatcher.ini:两个节点的配置完全一样,在主节点配置好后直接复制到备节点即可。

dm.ini: 里面有实例的大量配置信息,不适合拷贝

命令:

scp /dm/data/DW01/dmmal.ini 192.168.1.20:dm/data/DW02/

3.2 配置B机器,只需要修改以下两个文件即可

vim dm.ini ###INSTANCE_NAME = GRP1_RT_02

vim dmarch.ini ###ARCH_DEST = GRP1_RT_01

4、以mount启动主库和备库

4.1 检查数据一致性

依次到每个实例上,切换到执行码目录/dm7/bin,以 mount 方式启动数据库。

dmserver /dm7/data/DAMENG/dm.ini mount

[dmdba@localhost ~]$ dmserver /dm7/data/DAMENG/dm.ini mount

version info: enterprise

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V7.6.0.142-Build(.03.12-103811)ENT startup...

License will expire on -09-10

ckpt lsn: 39931

ndct db load finished

ndct fill fast pool finished

nsvr_startup end.

aud sys init success.

aud rt sys init success.

systables desc init success.

ndct_db_load_info success.

SYSTEM IS READY.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

到这个状态,数据库已经可以登录了,但是必须得另外打开一个窗口去用disql登录

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

启动命令行工具 DIsql,分别登录各个实例查询 LSN 值,如果主库和备库的 FILE_LSN和 CUR_LSN 值相同,可以确保数据完全一致。

SQL>select file_LSN, cur_LSN from v$rlog;

--结果如下;

行号 FILE_LSN CUR_LSN

LINEID FILE_LSN CUR_LSN

---------- -------------------- --------------------

1 39931 39931

检查实例的永久魔数是否一致:

SQL>select permanent_magic;

--结果如下;

行号 PERMANENT_MAGIC

LINEID PERMANENT_MAGIC

---------- --------------------

1 1370451585

确保 LSN 和永久魔数都一致的情况下,正常关闭各个实例,继续配置数据守护。

4.2 守护进程控制文件

对于故障场景中,某个全局守护类型的实例所在机器故障,数据无法继续使用的情况下,

从当前的有效主库直接拷贝数据文件或者备份还原方式重新准备数据后,需要同时拷贝主库

的守护进程控制文件 dmwatcher.ctl 到实例的数据文件目录下。

[dmdba@localhost ~]$ disql

disql V7.6.0.142-Build(.03.12-103811)ENT

username:

password:

Server[LOCALHOST:5236]:mode is normal, state is mount

login used time: 6.353(ms)

SQL> sp_set_oguid(453331);

DMSQL executed successfully

used time: 31.936(ms). Execute id is 1.

系统通过 OGUID 值确定一个守护进程组,由用户保证 OGUID 值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的 OGUID 值。

主库修改数据库模式

在主库的bin文件夹下执行./disql启动命令行工具,并执行以下语句修改数据库为 primary 模式:

SQL>alter database primary;

配置备库

1)以mount方式启动;

dmserver /dm7/data/DAMENG/dm.ini mount

2)设置OGUID值,值需要和主库的值保持一致;

sp_set_oguid(453331);

3)修改数据库模式,如果当前数据库不是 normal 模式,需要先修改 dm.ini 中ALTER_MODE_STATUS 值为 1,

允许修改数据库模式,修改 Standby 模式成功后再改回为 0。如果是 normal 模式,请忽略下面的第 1 步和第 3 步:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); ----第 1 步

SQL>alter database standby; ----第 2 步

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0); ----第 3 步

4.3配置监视器

确认监视器的主要功能是在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

配置监视器主要是在监视器服务器或虚拟机上配置dmmonitor.ini文件,该文件建议与dm.ini放在同一个文件夹中。

配置文件MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致:

4.3.1配置 dmmonitor.ini

MON_DW_CONFIRM = 1 #确认监视器模式

MON_LOG_PATH = /dm7/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.227.161:5239 (内网1)

MON_DW_IP = 192.168.227.162:5239 (内网2)

有中文注释可能不行,另外需要注意[GRP1]需要与dmwatcher.ini中的一致

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dm7/data/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.227.161:5239

MON_DW_IP = 192.168.227.162:5239

5 启动守护进程

启动各个主备库上的守护进程:

[dmdba@localhost DAMENG1]$ dmwatcher /dm7/data/DAMENG/dmwatcher.ini

DMWATCHER[2.1] V7.6.0.142-Build(.03.12-103811)ENT

DMWATCHER[2.1] IS READY

[dmdba@localhost DAMENG2]$ dmwatcher /dm7/data/DAMENG/dmwatcher.ini

DMWATCHER[2.1] V7.6.0.142-Build(.03.12-103811)ENT

DMWATCHER[2.1] IS READY

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。

守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例 Open,并切换为 Open 状态。

6启动监视器

6.1启动监视器:

dmmonitor /dm7/data/DAMENG/dmmonitor.ini

监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入 help 命令,

查看各种命令说明使用,结合实际情况选择使用。

至此一主一备的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,

在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处

于 Open 状态,即为正常运行状态。

/dave/article/3866?tdsourcetag=s_pctim_aiomsg

6.2 监视器使用

命令 含义

list 列出所有实例对应守护进程的配置信息

show 显示所有实例组的信息

tip 查看系统当前运行状态

login 登录监视器

logout 退出登录

choose switchover <组名> 显示可切换为Primary实例的列表

switchover <组名>.<实例名> 使用指定组的指定实例,切换为Primary实例

choose takeover <组名> 显示可接管故障Primary实例的列表

takeover <组名>.<实例名> 使用指定组的指定实例,接管故障Primary实例

choose takeover force <组名> 显示可强制接管故障Primary实例的列表

takeover force <组名>.<实例名> 使用指定组的指定实例,强制接管故障Primary实例

主机故障后,登录备机执行SELECT SF_DW_CHECK_TAKEOVER();返回1代表可以接管,0表示不能接管。

监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入 help 命令,查看各种命令说明使用,结合实际情况选择使用。

至此一主一备的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于 Open 状态,即为正常运行状态。

7 验证

7.1 主库创建测试表

[dave@1 ~]$ disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is primary, state is open

login used time: 9.780(ms)

disql V7.6.0.95-Build(.09.13-97108)ENT

Connected to: DM 7.1.6.95

SQL> create table cndba as select * from sysobjects;

executed successfully

used time: 42.341(ms). Execute id is 4.

SQL> select count(1) from cndba;

LINEID COUNT(1)

---------- --------------------

1 1274

used time: 1.756(ms). Execute id is 5.

SQL>

7.2 备库查询

[dave@2 ~]$ disql SYSDBA/SYSDBA@LOCALHOST:5237

Server[LOCALHOST:5237]:mode is standby, state is open

login used time: 20.949(ms)

disql V7.6.0.95-Build(.09.13-97108)ENT

Connected to: DM 7.1.6.95

SQL> select count(1) from cndba;

LINEID COUNT(1)

---------- --------------------

1 1274

used time: 5.907(ms). Execute id is 4.

SQL>

同步正常。

8 注册服务

在上面的测试过程,守护金进程和监视器都是我们直接启动的,如果命令中断,就无法运行。 因此需要将这些注册到服务里,方便管理。 注册过程

[root@dm2 ~]# cd /dm7/script/root

[root@dm2 root]# ./dm_service_installer.sh -help

Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-i ini_file] [-d dcr_ini_file] [-m open|mount]

or dm_service_installer.sh [ -s service_file_path ]

or dm_service_installer.sh -h

-t Service Type, include: dmimon,dmap,dmserver,dmwatch,dmrww,dmwmon,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr.

-p Service Name Postfix, is invalid for dmimon,dmap.

-i The path of the ini file, is invalid for dmimon,dmap.

-d The path of dmdcr.ini, is valid for dmserver only, select.

-m Set the start modeof the server, include:open or mount, is valid for dmserver only, select.

-s The path of the service script file, if set this parameter, and ignore other parameter.

-h Help

[root@dm2 root]#

DM实例注册参考如下博客,这里不再描述:

DM7 达梦数据库 通过dminit 创建 并 注册 数据库实例

/dave/article/3580

8.1 注册守护进程

分别在所有节点用root用户执行:

#备库:

#-p 指定的是服务名的后缀:

[root@dm2 root]# /dm7/script/root/dm_service_installer.sh -t dmwatcher -i /dm7/data/DAMENG/dmwatcher.ini -p GRP1_RT_02

Move the service script file(/dm7/bin/DmWatcherServiceGRP1_RT_02 to /etc/rc.d/init.d/DmWatcherServiceGRP1_RT_02)

Finished to create the service (DmWatcherServiceGRP1_RT_02)

[root@dm2 root]#

#主库:

[root@dm1 ~]# /dm7/script/root/dm_service_installer.sh -t dmwatcher -i /dm7/data/DAMENG/dmwatcher.ini -p GRP1_RT_01

Move the service script file(/dm7/bin/DmWatcherServiceGRP1_RT_01 to /etc/rc.d/init.d/DmWatcherServiceGRP1_RT_01)

Finished to create the service (DmWatcherServiceGRP1_RT_01)

[root@dm1 ~]#

#启动服务:

[dave@1 GRP1_DAVE_01]$ service DmWatcherServiceGRP1_RT_01 start

Starting DmWatcherServicedm1: [ OK ]

[dave@1 GRP1_DAVE_01]$

[dave@1 GRP1_DAVE_01]$ ps -ef|grep watcher

dmdba 27120 1 0 13:08 pts/3 00:00:00 /dm7/bin/svc_ctl_linux dmwatcher /dm7/data/DAMENG/dmwatcher.ini

dmdba 27179 25475 0 13:08 pts/3 00:00:00 grep watcher

[dave@1 GRP1_DAVE_01]$

[dave@2 GRP1_DAVE_02]$ service DmWatcherServiceGRP1_RT_02 start

Starting DmWatcherServicedm2: [ OK ]

[dave@2 GRP1_DAVE_02]$ ps -ef|grep watcher

dmdba 10889 1 0 13:08 pts/1 00:00:00 /dm7/bin/svc_ctl_linux dmwatcher /dm7/data/GRP1_DAVE_02/dmwatcher.ini

dmdba 10949 10340 0 13:09 pts/1 00:00:00 grep watcher

[dave@2 GRP1_DAVE_02]$

8.2 注册监视器

在监视节点用root用户执行:

[root@monitor ~]# /dm7/script/root/dm_service_installer.sh -t dmmonitor -i /dm7/data/DAMENG/dmmonitor.ini -p GRP1_RT

Move the service script file(/dm7/bin/DmMonitorServiceGRP1_RT to /etc/rc.d/init.d/DmMonitorServiceGRP1_RT)

Finished to create the service (DmMonitorServiceGRP1_RT)

[root@monitor ~]#

启动service:

[root@monitor ~]# service DmMonitorServiceGRP1_RT start

Starting DmMonitorServicedave: [ OK ]

[root@monitor ~]# ps -ef|grep monitor

avahi 1274 1 0 03:54 ? 00:00:00 avahi-daemon: running [monitor-2.local]

dmdba 22847 1 0 07:10 pts/1 00:00:00 /dm7/bin/svc_ctl_linux dmmonitor /dm7/data/dmmonitor.ini

root 22865 22525 0 07:11 pts/1 00:00:00 grep monitor

[root@monitor ~]#

至此2节点的数据守护搭建完成。

如果觉得《DM7 达梦 数据库 数据守护(Data Watch) -- 实时主备环境搭建》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。