国产数据库【达梦数据库】数据守护读写分离模式的安装与部署【dm7版本】

眉间皱痕 提交于 2020-02-15 23:56:01

1、数据守护概述

      1.1、简介

               达梦数据数据守护是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署达梦的数据守护,可以在硬件故障(例如磁盘损坏)、自然灾害等极端情况下,避免数据损坏、丢失,保障数据安全,并且可以快速恢复数据库服务,满足用户不间断提供数据库服务的要求。达梦数据守护可以提供多种解决方案,可以配置成实时主备、MPP主备、读写分离集群,满足用户关于系统可用性、数据安全性、性能等方面的综合需求。(这里主要介绍读写分离集群)

             读写分离集群由一个主库以及一个或者多个配置了即时归档的备库组成,其主要目标是保障数据库可用性基础上,实现读,写操作的自动分离,进一步提升数据库的业务支撑能力。读写分离集群通过即时归档机制保证主、备数据一致性,并配合达梦数据库管理系统的各种接口(JDBC、DPI等),将只读操作自动分流到备库,有效降低主库的负载,提升系统的吞吐量。

     1.2、原理

              达梦数据守护的实现原理主要是将主库产生的Redo日志传输到备库,备库接收并重做应用Redo日志,从而实现备库与主库的数据同步。其主要核心思想在于监控数据库转态,获取主、备库数据同步情况,为Redo日志传输与重演过程中出现的各种异常情况提供一系列的解决方案。

2、配置读写分离集群

      2.1、配置方案说明

               配置读写分离集群,有以下几种配置方案,可以根据实际情况部署:
               1.只配置主库和最多8个即时备库。
               2.只配置主库和最多8个异步备库。
               3.配置主库、最多8个即时备库和最多8个异步备库。
               在实际应用中,如果数据库规模很大,并且对数据的实时性要求不是很严格,则可以配置多个异步备库用于分担统计报表等任务。为了帮助大家更加直观的理解DM 数据守护方案,下面举例说明如何配置一个完整的读写分离集群的过程,配置方案为一个主库和两个即时备库。

      2.2、环境说明

               在部署之前,需要在3台机器上安装达梦数据库。下列机器事先都安装了DM,安装路径为'/dm7',执行程序保在/dm7/bin′目录中,数据存放路径为'/dm7/data'。各主备库的实例名建议采用"组名_守护环境 序号"的方式命名,方便按组区分不同实例,注意总长度不能超过16。本示例中组名为"GRP1",配置为读写分离集群,主库命名为"GRP1_RWW_01",备库分别命名为"GRPl_RWW_02"和GRP1_RWW_03"。

           端口号地址分配说明:

2.3、数据守护部署

    2.3.1、数据准备

               将实例初始化至目录/dm7/data,在/dm7/bin/目录下进行./dminit path=/dm7/data

               初始化后用dmdba用户将/data目录下数据打包,发送至其他两个备机节点的相同目录下解压。

    2.3.2、dm.ini配置

                主、备库进行对应的实例名和端口号的修改。

   2.3.3、dmmal.ini配置

              配置 MAL系统,各主备库的 dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MALDWPORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

     2.3.4、配置 dmarch.ini
                修改 dmarch.ini,配置本地归档和即时归档。除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是 Primary模式时,需要同步归档数据的目标实例名。
                例如:当前实例 GRP1 RWW 01 是主库,需要向即时备库 GRP1 _RWW_02/ GRP1_RWW_03同步数据,因此即时归档的ARCH_DEST分别配置为 GRP1_RWW_02和GRP1_RWW_03。 

    

    2.3.5、配置dmwatcher.ini

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

    2.3.6、配置 dmwatcher.ctl
                同一个守护进程组,必须使用同一份 dmwatcher.ctl。因此,只需要使用 dmctlcvt工具生成一份 dmwatcher.ct1文件,然后分别拷贝到各个数据库目录下即可。
               在配置完成 dmwatcher.ini后,使用dmctlcvt工具生成dmwatcher.ct1:
              ./dmctlevt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data
              拷贝生成的 dmwatcher.ct1文件到数据文件目录/dm7/data/DAMENG。
  2.3.7、 启动主备库
               以mount方式启动数据库
               ./dmserver  /dm7/data/DAMENG/dm.ini mount
               注:一定要以mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库一致性。数据守护配置成功后,守护进程会自动open数据库。

  2.3.8、设置OGUID
              启动命令行工具 disql,登录主库设置 OGUID 值。
              SQL>sp_set_oguid(453332);
              注:系统通过OGUID值确定一个守护进程组,由用户保证 OGUID 值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的 OGUID值。
  2.3.9、修改数据库模式
             启动命令行工具 disql,登录主库修改数据库为primary模式,备库修改成standby模式

             SQL>SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);      -----第1步
             SQL>alter database standby;                                                          -----备库修改 

             SQL>alter database primary;                                                           -----主库修改   -----第2步
             SQL>SP_SET_PARAVALUE(1,!ALTER_MODE STATuS!,0);          -----第3步

 2.4、配置监视器

          由于主库和即时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知即时备库接管为新的主库,具有自动故障处理的功能。

          注:故障自动切换模式下,必须配置确认监视器,且确认监视器最多只能配置一个

          修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP中的 IP和 PORT 和dmmal.ini中的MAL_HOST和MAL_DW_PORT 配置项保持一致。

      

2.5、启动守护进程
         启动各个主备库上的守护进程:
         ./dmwatcher /dm7/data/DAMENG/dmwatcher.ini
         守护进程启动后,进入 Startup 状态,此时实例都处于 Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将地实例open,并切换为 open状态。
2.6、 启动监视器
         启动监视器:
         ./dmmonitor /dm7/data/dmmonitor.ini

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

至此读写分离集群搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于open状态,即为正常运行状态。

感谢各位阅读。

欢迎访问达梦数据库官网:http://www.dameng.com

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!