达梦dem搭建读写分离注册服务_达梦数据库搭建部署读写分离集群

  • Post author:
  • Post category:其他


Centos7安装达梦数据库读写分离集群

一,安装达梦数据库

1.

准备4台虚拟机

192.168.100.254

主(内网)服务名DM01

192.168.10.254   (

外网)

192.168.100.102

备 (内网)  服务名DM02

192.168.10.102   (

外网)

192.168.100.103

备 (内网)  服务名DM03

192.168.10.103    (

外网)

192.168.100.104

监视器

2.

挂载光盘

3.

创建安装用户和安装目录(dmdba)

4.

设置文件最大打开数目

[root@localhost ~]# ulimit -n 65536

5.

检查系统内存与存储空间

6.

配置环境变量

[root@localhost ~]# cd /home/dmdba/

[root@localhost dmdba]# vim .bash_profile

7.

安装数据库

8.

初始化实例

[dmdba@localhost cdrom]$ cd /dm7/bin

[dmdba@localhost bin]$ ./dminit path=/dm7/data

9.

注册服务

[root@localhost /]# cd /dm7/script/root/

10.

启动服务

[dmdba@localhost bin]$ ./dmserver /dm7/data/DAMENG/dm.ini  —

前台启动

回车就行

[dmdba@localhost bin]$ ./DmServiceDM01 start

后台启动

Stop  —

关闭数据库

Restart  —

重启数据库

(在四台都得安装达梦数据库)

二,编辑和修改配置文件(主库和备库)

1.

配置主库254的dm.ini

[dmdba@localhost ~]$ cd /dm7/data/DAMENG/

[dmdba@localhost DAMENG]$ vim dm.ini

修改参数

INSTANCE_NAME = DM01            –实例名字

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

DW_PORT = 33141                 –守护环境下,监听守护进程连接端口

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

ENABLE_OFFLINE_TS  = 2           –不允许备库OFFLINE表空间

MAL_INI =  1                      –打开MAL系统

ARCH_INI=  1                      –打开归档配置

2.

配置MAL系统dmmal.ini

[dmdba@localhost DAMENG]$ vim dmmal.ini

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

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

[MAL_INST1]

MAL_INST_NAME     = DM01  –实例名,和dm.ini中的INSTANCE_NAME一致

MAL_HOST           = 192.168.100.254   –MAL系统监听TCP连接的IP地址

MAL_PORT           = 61141    –MAL系统监听TCP连接的端口

MAL_INST_HOST      = 192.168.10.254    –实例的对外服务IP地址

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

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

[MAL_INST2]

MAL_INST_NAME          = DM02

MAL_HOST               = 192.168.100.102

MAL_PORT               = 61142

MAL_INST_HOST          = 192.168.10.102

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52142

[MAL_INST3]

MAL_INST_NAME          = DM03

MAL_HOST               = 192.168.100.103

MAL_PORT               = 61143

MAL_INST_HOST          = 192.168.10.103

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52143

(注:各主备库的 dmmal.ini 配置必须完全一致)

3.

配置本地归档和即使归档dmarch.ini

[dmdba@localhost DAMENG]$ vim dmarch.ini

[ARCHIVE_TIMELY1]

ARCH_TYPE     = TIMELY   –即时归档类型

ARCH_DEST     = DM02    –即时归档目标实例名

[ARCHIVE_TIMELY2]

ARCH_TYPE     = TIMELY   –即时归档类型

ARCH_DEST     = DM03    –即时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL    –本地归档类型

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

ARCH_FILE_SIZE    = 128   –单位Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT  = 0    –单位Mb,0表示无限制,范围1024~4294967294M

4.

配置守护进程dmwatcher.ini

[dmdba@localhost DAMENG]$ vim dmwatcher.ini

[GRP1]

DW_TYPE    = GLOBAL   –全局守护类型

DW_MODE    = AUTO   –自动切换模式

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

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

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

INST_OGUID         = 453332   –守护系统唯一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  –指定备库重演日志的时间阀值,默认关闭

[dmdba@localhost DAMENG]$ cd ../../bin

[dmdba@localhost bin]$./dmctlcvt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data/  –会生成一份dmwatcher.ctl文件

[dmdba@localhost bin]$ cd ../data/GRP1/

[dmdba@localhost GRP1]$ cp dmwatcher.ctl /dm7/data/DAMENG/ —

复制文件到数据文件/dm7/data/DAMENG/目录下

[dmdba@localhost GRP1]$scp -r /dm7/data/DAMENG/dmwatcher.ctl

dmdba@192.168.100.102:/dm7/data/DAMENG/  –远程拷贝数据文件目录/dm7/data/DAMENG/目录下

[dmdba@localhost GRP1]$ scp -r /dm7/data/DAMENG/dmwatcher.ctl

dmdba@192.168.100.103:/dm7/data/DAMENG/

(

注:同一个守护进程组,必须使用同一份dmwatcher.ctl)

5.

启动主库

[dmdba@localhost GRP1]$ cd /dm7/bin

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

要以mount方式启动主库

(注:如果mount方式启动报错,请先关闭数据库./DmServiceDM01 stop,再mount启动,启动好以后要新打开一个窗口)

6.

设置OGUID和修改数据库模式

[dmdba@localhost bin]$ ./disql  —

启动命令行工具disql

SQL>sp_set_oguid(453332);   —

设置OGUID值

SQL>alter database primary;  —

修改数据库为Primary模式

7.

注册守护进程服务

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

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p DM01 -i /dm7/data/DAMENG/dmwatcher.ini

8.

配置102备库的dm.ini

[dmdba@localhost ~]$ cd /dm7/data/DAMENG/

[dmdba@localhost DAMENG]$ vim dm.ini

修改参数

INSTANCE_NAME = DM02

PORT_NUM =  5236

DW_PORT = 33142

ALTER_MODE_STATUS  = 0

ENABLE_OFFLINE_TS  = 2

MAL_INI =  1

ARCH_INI=  1

(注:也可以用主数据库scp远程拷贝各个配置文件,需要手动修改)

9.

配置MAL系统dmmal.ini

[dmdba@localhost DAMENG]$ vim dmmal.ini

MAL_CHECK_INTERVAL   = 5

MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]

MAL_INST_NAME     = DM01

MAL_HOST           = 192.168.100.254

MAL_PORT           = 61141

MAL_INST_HOST      = 192.168.10.254

MAL_INST_PORT = 5236

MAL_DW_PORT  = 52141

[MAL_INST2]

MAL_INST_NAME          = DM02

MAL_HOST               = 192.168.100.102

MAL_PORT               = 61142

MAL_INST_HOST          = 192.168.10.102

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52142

[MAL_INST3]

MAL_INST_NAME          = DM03

MAL_HOST               = 192.168.100.103

MAL_PORT               = 61143

MAL_INST_HOST          = 192.168.10.103

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52143

10.

配置本地归档和即使归档dmarch.ini

[dmdba@localhost DAMENG]$ vim dmarch.ini

[ARCHIVE_TIMELY1]

ARCH_TYPE     = TIMELY

ARCH_DEST     = DM01

[ARCHIVE_TIMELY2]

ARCH_TYPE     = TIMELY

ARCH_DEST     = DM03

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /dm7/data/DAMENG/arch

ARCH_FILE_SIZE    = 128

ARCH_SPACE_LIMIT  = 0

11.

配置守护进程dmwatcher.ini

[dmdba@localhost DAMENG]$ vim dmwatcher.ini

[GRP1]

DW_TYPE    = GLOBAL

DW_MODE    = AUTO

DW_ERROR_TIME     = 10

INST_RECOVER_TIME  = 60

INST_ERROR_TIME   = 10

INST_OGUID         = 453332

INST_INI           = /dm7/data/DAMENG/dm.ini

INST_AUTO_RESTART  = 1

INST_STARTUP_CMD   = /dm7/bin/dmserver/

RLOG_SEND_THRESHOLD  = 0

RLOG_APPLY_THRESHOLD = 0

12.

启动备库

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

13.

设置OGUID和修改数据库模式

[dmdba@localhost bin]$ ./disql

SQL>sp_set_oguid(453332);

SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);

SQL>alter database standby;

SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

14.

注册守护进程服务

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

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p DM02 -i /dm7/data/DAMENG/dmwatcher.ini

15.

配置103备库的dm.ini

[dmdba@localhost ~]$ cd /dm7/data/DAMENG/

[dmdba@localhost DAMENG]$ vim dm.ini

修改参数

INSTANCE_NAME = DM03

PORT_NUM =  5236

DW_PORT = 33143

ALTER_MODE_STATUS  = 0

ENABLE_OFFLINE_TS  = 2

MAL_INI =  1

ARCH_INI=  1

16.

配置MAL系统dmmal.ini

[dmdba@localhost DAMENG]$ vim dmmal.ini

MAL_CHECK_INTERVAL   = 5

MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]

MAL_INST_NAME     = DM01

MAL_HOST           = 192.168.100.254

MAL_PORT           = 61141

MAL_INST_HOST      = 192.168.10.254

MAL_INST_PORT = 5236

MAL_DW_PORT  = 52141

[MAL_INST2]

MAL_INST_NAME          = DM02

MAL_HOST               = 192.168.100.102

MAL_PORT               = 61142

MAL_INST_HOST          = 192.168.10.102

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52142

[MAL_INST3]

MAL_INST_NAME          = DM03

MAL_HOST               = 192.168.100.103

MAL_PORT               = 61143

MAL_INST_HOST          = 192.168.10.103

MAL_INST_PORT          = 5236

MAL_DW_PORT   = 52143

17.

配置本地归档和即使归档dmarch.ini

[dmdba@localhost DAMENG]$ vim dmarch.ini

[ARCHIVE_TIMELY1]

ARCH_TYPE     = TIMELY

ARCH_DEST     = DM01

[ARCHIVE_TIMELY2]

ARCH_TYPE     = TIMELY

ARCH_DEST     = DM02

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL

ARCH_DEST     = /dm7/data/DAMENG/arch

ARCH_FILE_SIZE    = 128

ARCH_SPACE_LIMIT  = 0

18.

配置守护进程dmwatcher.ini

[dmdba@localhost DAMENG]$ vim dmwatcher.ini

[GRP1]

DW_TYPE    = GLOBAL

DW_MODE    = AUTO

DW_ERROR_TIME     = 10

INST_RECOVER_TIME  = 60

INST_ERROR_TIME   = 10

INST_OGUID         = 453332

INST_INI           = /dm7/data/DAMENG/dm.ini

INST_AUTO_RESTART  = 1

INST_STARTUP_CMD   = /dm7/bin/dmserver/

RLOG_SEND_THRESHOLD  = 0

RLOG_APPLY_THRESHOLD = 0

19.

启动备库

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

20.

设置OGUID和修改数据库模式

[dmdba@localhost bin]$ ./disql

SQL>sp_set_oguid(453332);

SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);

SQL>alter database standby;

SQL>SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 0);

21.

注册守护进程服务

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

[root@localhost root]# ./dm_service_installer.sh -t dmwatcher -p DM03 -i /dm7/data/DAMENG/dmwatcher.ini

三,配置监视器

1.

编辑dmmontor.ini配置文件

[dmdba@localhost DAMENG]$ vim 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    = 453332   –组GRP1的唯一OGUID值

–以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置

–IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT

MON_DW_IP     = 192.168.100.254:52141

MON_DW_IP     = 192.168.100.102:52142

MON_DW_IP     = 192.168.100.103:52143

2.

注册监视器服务

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

[root@localhost root]# ./dm_service_installer.sh -t dmmonitor -p dmmonitor -i /dm7/data/DAMENG/dmmonitor.ini

3.

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

[dmdba@localhost bin]$ ./DmWatcherServiceDM01 start

[dmdba@localhost bin]$ ./DmWatcherServiceDM02 start

[dmdba@localhost bin]$ ./DmWatcherServiceDM03 start

4.

启动监视器

[dmdba@localhost bin]$ ./dmmonitor /dm7/data/DAMENG/dmmonitor.ini

到这里读写分离集群搭建完毕,如果出现报错请仔细检查配置文件,在监视器上执行 show命令,可以监控到所有实例都处于Open 状态,所有守护进程也都处于Open状态,即为正常运行状态,可以输入help命令,查看各种命令说明和使用



版权声明:本文为weixin_39614528原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。