ITPub博客

首页 > 区块链 > 区块链 > 转DM8 实时主备环境搭建

转DM8 实时主备环境搭建

原创 区块链 作者:开发15360643173 时间:2020-08-27 16:05:57 0 删除 编辑

DM8   实时主备环境搭建

1.       环境说明

本示例中组名为GRP1,配置为实时主备,主库命名为MEVI1,备库命名为MEVI2。

配置环境说明:

机器名

IP  地址

实例名

操作系统

DW1

192.168.18.211  (外部服务)

192.168.10.211  (内部通信)

MEVI1

CentOS Linux release 7.8.2003

DW2

192.168.18.212  (外部服务)

192.168.10.212  (内部通信)

MEVI2

CentOS Linux release 7.8.2003

端口规划:

实例名

PORT_NUM

MAL_INST_DW_PORT

MAL_HOST

MAL_PORT

MAL_DW_PORT

MEVI1

5236

5237

192.168.10.211

5238

5239

MEVI2

5236

5237

192.168.10.212

5238

5239

1)       PORT_NUM

服务器监听通讯端口号,服务器配置此参数,有效值范围(1024~65534),发起连接端的端口在(1024~65535)之间随机分配。此参数配置应与dmmal.ini中的MAL_INST_PORT对应

2)       MAL_INST_DW_PORT

节点实例监听守护进程的端口,同一个库上的各实例的守护进程使用MAL_HOST+MAL_INST_DW_PORT和各实例创建TCP连接,实例服务器配置此参数有效值范围(1024~65534),发起连接端的端口在(1024~65535)之间随机分配

3)       MAL_HOST

MAL IP  地址,使用MAL_HOST+MAL_PORT创建MAL链路

4)       MAL_PORT

MAL  监听端口用于数据守护、DSC、MPP等环境中各节点实例之间MAL链路配置监听端端口配置此参数,范围(1024~65534)发起连接端的端口在(1024~65535)之间随机分配

5)       MAL_DW_PORT

MAL_INST_NAME  实例守护进程的监听端口,其他守护进程或监视器使用MAL_HOST+MAL_DW_PORT创建与该实例守护进程的TCP连接,监听端配置此参数有效值范围1024~65534),发起连接端的端口在(1024~65535)之间随机分配

2.       数据准备

1)       创建主库

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=MEVI INSTANCE_NAME=MEVI1

使用dmserver 启动数据库,在DM 数据库第一次必须正常启动,完成初始化的动作:

dmserver /dmdata/MEVI/dm.ini

2)       主库启动归档

SQL> alter database mount;

SQL> alter database add archivelog 'type=local,dest=/dmarch,file_size=128,space_limit=0';

SQL> alter database archivelog;

SQL> alter database open;

3)       创建备库

dminit PATH=/dmdata PAGE_SIZE=16 DB_NAME=MEVI INSTANCE_NAME=MEVI2

使用dmserver 启动数据库,在DM 数据库第一次必须正常启动,完成初始化的动作:

dmserver /dmdata/MEVI/dm.ini

4)       备库启动归档

SQL> alter database mount;

SQL> alter database add archivelog 'type=local,dest=/dmarch,file_size=128,space_limit=0';

SQL> alter database archivelog;

SQL> alter database open;

5)       备份主库

使用DMRMAN 脱机备份

RMAN> backup database '/dmdata/MEVI/dm.ini' backupset '/dmbak/200820';

6)       恢复备库

将主库的备份复制到备库

scp -r 192.168.18.211:/dmbak/200820 /dmbak

使用DMRMAN 恢复备库

RMAN> restore database '/dmdata/MEVI/dm.ini' from backupset '/dmbak/200820';

RMAN> recover database '/dmdata/MEVI/dm.ini' update db_magic;

7)       注册服务并启动实例

设置服务为非自动启动

设置服务器启动模式为mount

注册主库服务

./dm_service_installer.sh -t dmserver -p MEVI1 -dm_ini /dmdata/MEVI/dm.ini -auto false -m mount

注册备库服务

./dm_service_installer.sh -t dmserver -p MEVI2 -dm_ini /dmdata/MEVI/dm.ini -auto false -m mount

3.       配置主库

1)       配置dm.ini

在DW1机器上配置主库的实例名为MEVI1,dm.ini参数修改如下:

INSTANCE_NAME = MEVI1

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

DW_INACTIVE_INTERVAL = 60  #  接收守护进程消息超时时间

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

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

MAL_INI = 1  #  打开MAL系统

ARCH_INI = 1  #  打开归档配置

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

2)       配置dmmal.ini

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

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

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

[MAL_INST1]

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

MAL_HOST = 192.168.10.211  #MAL  系统监听TCP连接的IP地址

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

MAL_INST_HOST = 192.168.18.211  #  实例的对外服务IP地址

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

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

MAL_INST_DW_PORT = 5237  #  实例监听守护进程TCP连接的端口

[MAL_INST2]

MAL_INST_NAME = MEVI2

MAL_HOST = 192.168.10.212

MAL_PORT = 5238

MAL_INST_HOST = 192.168.18.212

MAL_INST_PORT = 5236

MAL_DW_PORT = 5239

MAL_INST_DW_PORT = 5237

3)       配置dmarch.ini

修改dmarch.ini,配置本地归档和实时归档。

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

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

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME  #  实时归档类型

ARCH_DEST = MEVI2  #  实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  #  本地归档类型

ARCH_DEST = /dmarch  #  本地归档文件存放路径

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

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

4)       配置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 = 666666  #  守护系统唯一OGUID值

INST_INI = /dmdata/MEVI/dm.ini  #dm.ini  配置文件路径

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

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

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

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

5)       启动主库

以Mount方式启动主库

DmServiceMEVI1 start

一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

6)       设置OGUID

启动命令行工具DIsql,登录主库设置OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(666666);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

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

7)       修改数据库模式

启动命令行工具DIsql,登录主库修改数据库为Primary模式

SQL> alter database primary;

4.       配置备库

1)       配置dm.ini

在DW2机器上配置备库的实例名为MEVI2,dm.ini参数修改如下:

INSTANCE_NAME = MEVI2

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

DW_INACTIVE_INTERVAL = 60  #  接收守护进程消息超时时间

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

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

MAL_INI = 1  #  打开MAL系统

ARCH_INI = 1  #  打开归档配置

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

2)       配置dmmal.ini

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

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

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

[MAL_INST1]

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

MAL_HOST = 192.168.10.211  #MAL  系统监听TCP连接的IP地址

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

MAL_INST_HOST = 192.168.18.211  #  实例的对外服务IP地址

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

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

MAL_INST_DW_PORT = 5237  #  实例监听守护进程TCP连接的端口

[MAL_INST2]

MAL_INST_NAME = MEVI2

MAL_HOST = 192.168.10.212

MAL_PORT = 5238

MAL_INST_HOST = 192.168.18.212

MAL_INST_PORT = 5236

MAL_DW_PORT = 5239

MAL_INST_DW_PORT = 5237

3)       配置dmarch.ini

修改dmarch.ini,配置本地归档和实时归档。

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

当前实例MEVI2是备库,守护系统配置完成后,可能在各种故障处理中,MEVI2切换为新的主库,正常情况下,MEVI1会切换为新的备库,需要向MEVI1同步数据,因此实时归档的ARCH_DEST配置为MEVI1。

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME  #  实时归档类型

ARCH_DEST = MEVI1  #  实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL  #  本地归档类型

ARCH_DEST = /dmarch  #  本地归档文件存放路径

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

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

4)       配置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 = 666666  #  守护系统唯一OGUID值

INST_INI = /dmdata/MEVI/dm.ini  #dm.ini  配置文件路径

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

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

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

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

5)       启动备库

以Mount方式启动备库

DmServiceMEVI2 start

一定要以Mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

6)       设置OGUID

启动命令行工具DIsql,登录主库设置OGUID值。

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL> sp_set_oguid(666666);

SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

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

7)       修改数据库模式

启动命令行工具DIsql,登录主库修改数据库为Standby模式

SQL> alter database standby;

5.       配置监视器

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

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

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

MON_DW_CONFIRM = 1  #  确认监视器模式

MON_LOG_PATH = /dmdata/log  #  监视器日志文件存放路径

MON_LOG_INTERVAL = 60  #  每隔60s定时记录系统信息到日志文件

MON_LOG_FILE_SIZE = 32  #  每个日志文件最大32M

MON_LOG_SPACE_LIMIT = 0  #  不限定日志文件总占用空间

[GRP1]

MON_INST_OGUID = 666666  #  组GRP1的唯一OGUID值

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

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

MON_DW_IP = 192.168.10.211:5239

MON_DW_IP = 192.168.10.212:5239

6.       启动守护进程

注册主库守护进程服务并启动

./dm_service_installer.sh -t dmwatcher -p MEVI1 -watcher_ini /dmdata/MEVI/dmwatcher.ini

DmWatcherServiceMEVI1 start

注册备库守护进程服务并启动

./dm_service_installer.sh -t dmwatcher -p MEVI2 -watcher_ini /dmdata/MEVI/dmwatcher.ini

DmWatcherServiceMEVI2 start

7.       启动监视器

dmmonitor dmmonitor.ini

至此一主一备的实时数据守护系统搭建完毕

8.       主备同步测试

主库:

[dmdba@dw1 MEVI]$ disql SYSDBA/SYSDBA

notBefore.

notAfter error.

notAfter error.

 

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

login used time      :8.180(ms)

last login ip        : ::1

last login time      : 2020-08-20 22:32:23

login failed times   : 0

Whether password is expired : Not expired

 

disql V8

SQL> create table mevi as select * from sysobjects;

executed successfully

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

备库:

[dmdba@dw2 ~]$ disql SYSDBA/SYSDBA

notBefore.

notAfter error.

notAfter error.

 

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

login used time      :10.030(ms)

last login ip        : ::1

last login time      : 2020-08-20 22:34:07

login failed times   : 0

Whether password is expired : Not expired

 

disql V8

SQL> select count(*) from mevi;

 

LINEID     COUNT(*)           

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

1          1327

 

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69982741/viewspace-2715235/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 随机
请登录后发表评论 登录
全部评论

注册时间:2020-08-27

  • 博文量
    3
  • 访问量
    1494