当前位置:K88软件开发文章中心编程全书编程全书01 → 文章内容

达梦数据库主备机同步和故障切换的应用

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2019-1-3 2:25:04

:2010-12-08 21:52:20

一. 概述

DM OBSV方案是一个基于日志的数据库级可靠性解决方案,它能够进行主备机之间的数据同步和故障切换,是一个集成化的灾难恢复解决方案。

该方案的基本原理是,主机数据库的任何修改,都将产生REDO日志,在REDO日志写入联机日志的同时,通过网络把REDO日志发送给远程的备机。备机收到并利用这些REDO日志执行恢复操作,以实现数据同步。

DM OBSV 方案是由3个部分组成的,分别是:主机、备机、协调器。主机是正常情况下我们访问的机器;备机是指当主机出现故障时,备用的机器;协调器的用途是监控主备机状态,进行故障切换。正常情况下,访问的是主机的数据库,当主机发生故障时,则备机切换为主机。整个过程对于应用程序而言没有影响,即可提供无缝的主备故障切换服务。

下面我们介绍一下主备机的配置过程。

二. 相关的配置:

达梦主、备数据同步和故障切换配置步骤如下(假设达梦数据库服务器分别部署在223.254.100.59,223.254.100.65和 223.254.100.54上,初始配置223.254.100.59为主机,223.254.100.65为备机,协调器部署在223.254.100.54上,端口为:12349

1. 物理数据库文件同步:

a) 在223.254.100.59和223.254.100.65相同路径下,安装相同版本的达梦数据库管理系统(启动主机的DM服务,先不启动备机的DM服务);

b) 在223.254.100.59上,配置好用户数据,新建一个测试库:
CREATE DATABASE TEST DATAFILE ‘TEST.DBF’ SIZE 64;

c) 停止223.254.100.59上的达梦服务器,拷贝完整的数据文件(data文件夹中的所有文件)到备机的data目录下

d) 再启动主、备机的DM服务;

e) 此时,应保证没有其他用户访问223.254.100.59和223.254.100.65上的达梦数据库

2. 利用主机223.254.100.59的DM管理工具主备机同步,配置相关参数,如下所示: 

数据库" src="http://www.biye5u.com/article/UploadPic/2010-12/2010128215342864.jpg" border="0" style="cursor:pointer;" />

3. 利用备机223.254.100.65的DM管理工具主备机同步,配置相关参数,如下所示:

数据库" src="http://www.biye5u.com/article/UploadPic/2010-12/2010128215345861.jpg" border="0" style="cursor:pointer;" />

4. 在协调器所在的223.254.100.54上的 /dmdbms/bin/下找到obsv.ini文件(若没有,新建一个),内容如下:

#sample obsv.ini file
       #this is comments
       #log file path
       OBSV_LOG_PATH = obsv.log
       #coordinator port number
       OBSV_PORT= 12349
       #dm server host
       OBSV_POLL_INTERVAL = 5
       DM_SERVER_PORT = 12345
       #dm server host
       DM_SERVER = 223.254.100.59
       #dm server host
       DM_SERVER = 223.254.100.65

5.启动223.254.100.54上的 /dmdbms/bin/ 下的dmobsv

6.到此,所有配置完成。应用访问时,应该访问主机223.254.100.59的IP,当主机出现故障时,备机223.254.100.65切换为主机,此时应访问223.254.100.65。

我们也可以使用dm_svc.conf中配置的服务名来访问,dm_svc.conf文件的内容为

o2000=(223.254.100.59,223.254.100.65),服务名o2000可以自己更改。Windows系统中该文件放在C:\WINDOWS\system32下即可。

下面我们以故障场景来说明这一方案的效果:

三.典型的应用场景

(主机223.254.100.59  备机223.254.100.65,以下数据同步和故障切换均在test库上进行):

1.在主机223.254.100.54上建立表:

 create table t(a int ,b varchar(10));

往表中插入一条数据:

insert into t values(1,’abcde’);

commit;

在主机的dmserver正常退出或被强杀的情况下(如图,不能登录主机)
 

 
备机223.254.100.65能切换为主机异步模式,在备机上能查到表t中的数据:
 
重新启动223.254.100.59上的达梦服务器,它将转换为备机模式,但是不能直接访问备机的test库:
 

2.将模式切换过来,主机223.254.100.59  备机223.254.100.65
在备223.254.100.65的dmserver正常退出或被强退的情况下
 
主机223.254.100.59由同步模式切换为异步模式,不影响使用
 

3.拔掉主机的网线:


 
备机将切换为主机异步模式,不影响正常使用。



达梦数据库主备机同步和故障切换的应用