700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 达梦数据库DM8实时主备集群安装部署过程

达梦数据库DM8实时主备集群安装部署过程

时间:2019-03-15 11:56:40

相关推荐

达梦数据库DM8实时主备集群安装部署过程

1部署规划

1.1配置环境说明

1.2端口规划

2主库、备库和确认监视器准备

根据前期所讲解的DM8单机版的安装过程安装主库、备库和确认监视器的数据库软件以及主库、备库做相同路径和参数的初始化。

达梦数据库DM8单机版的命令行方式部署实施与测试过程:

/csyup1/article/details/113996671

达梦数据库DM8单机版的图形界面方式部署实施与测试过程:

/md/?articleId=113588445

3备库准备

3.1主库脱机备份

[root@dmp init.d]# service DmServiceGT_RP01 stop

[root@dmp ~]# ps -ef | grep dmserver

root 4727 4697 0 05:18 pts/0 00:00:00 grep dmserver

[root@dmp ~]# su - dmdba

[dmdba@dmp data]$ cd /home/dmdba/dmdbms/bin

[dmdba@dmp bin]$ ./dmrman CTLSTMT=“backup database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ full to backup_file backupset ‘/home/dmdba/dmdbms/data/DAMENG/bak/full_backup_02’”;

3.2拷贝备份文件到备库相同的路径下面

[dmdba@dmp ~]$ logout

[root@dmp ~]# scp -r /home/dmdba/dmdbms/data/DAMENG/bak/full_backup_02 192.168.3.132:/home/dmdba/dmdbms/data/DAMENG/bak/

root@192.168.3.132’s password:

full_backup_02.bak 100% 9462KB 9.2MB/s 00:00

full_backup_02.meta 100% 73KB 72.5KB/s 00:00

3.3在备库做恢复、还原和更新同步魔数

3.3.1停备库

[root@dms1 init.d]# service DmServiceGT_RP_02 stop

3.3.2还原

[dmdba@dms1 ~]$ cd /home/dmdba/dmdbms/bin

[dmdba@dms1 bin]$./dmrman CTLSTMT=“RESTORE DATABASE ‘/DMDB/data/dmdb/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/full_backup_02’”

3.3.3恢复

[dmdba@dms1 bin]$./dmrman CTLSTMT=“RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/home/dmdba/dmdbms/data/DAMENG/bak/full_backup_02’”

3.3.4更新同步魔数

[dmdba@dms1 bin]$./dmrman CTLSTMT=“RECOVER DATABASE ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ UPDATE DB_MAGIC”

4检查主库与备库之间的数据一致性

4.1主备库两个实例分别以mount方式启动

[dmdba@DMP dmdb]$ dmserver /DMDB/data/dmdb/dm.ini mount

file dm.key not found, use default license!

version info: develop

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-126-20.09.04-126608-ENT startup…

Database mode = 0, oguid = 0

License will expire on -09-04

file lsn: 37090

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.

[dmdba@DMS1 ~]$ dmserver /DMDB/data/dmdb/dm.ini mount

version info: security

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-126-20.09.04-126608-ENT startup…

Database mode = 0, oguid = 0

License will expire on -06-25

file lsn: 37090

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.

4.2对比主库与备库之间的魔数

[dmdba@DMP ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态

登录使用时间 : 8.820(ms)

disql V8

SQL> select file_LSN, cur_LSN from v$rlog;

行号 FILE_LSN CUR_LSN

1 37090 37090

已用时间: 6.816(毫秒). 执行号:0.

SQL> select permanent_magic;

行号 PERMANENT_MAGIC

1 738069168

已用时间: 2.936(毫秒). 执行号:1.

[root@DMP ~]# su - dmdba

[dmdba@DMP ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态

登录使用时间 : 6.145(ms)

disql V8

SQL> select file_lsn,cur_lsn from v$rlog;

行号 FILE_LSN CUR_LSN

1 37090 37090

已用时间: 4.530(毫秒). 执行号:100.

SQL> select permanent_magic;

行号 PERMANENT_MAGIC

1 738069168

已用时间: 0.684(毫秒). 执行号:10

5配置主备的4个参数文件

5.1 配置dm.ini

5.1.1主库

INSTANCE_NAME = GRP1_RT_01

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 次的日志发送信息

5.1.2备库

INSTANCE_NAME = GRP1_RT_02

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 次的日志重演信息

5.2配置dmmal.ini

主库/备库完全一样

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.3.131 #MAL 系统监听 TCP 连接的 IP 地址

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

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

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

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

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

[MAL_INST2]

MAL_INST_NAME = GRP1_RT_02

MAL_HOST = 192.168.3.132

MAL_PORT = 61142

MAL_INST_HOST = 192.168.3.132

MAL_INST_PORT = 5236

MAL_DW_PORT = 52142

MAL_INST_DW_PORT = 33142

5.3配置dmarch.ini

5.3.1主库

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME #实时归档类型

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

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/arch #本地归档文件存放路径

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

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

5.3.2备库

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME #实时归档类型

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

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/arch #本地归档文件存放路径

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

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

5.4配置dmwatcher.ini

全局守护类型,自动切换模式,主备配置一样

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #自动切换模式

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

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

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

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

INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini #dm.ini 配置文件路径

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

INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动

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

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

6配置监视器 dmmonitor.ini

确认监视器:确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。

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

MON_DW_CONFIRM = 1

MON_LOG_PATH = /home/dmdba/dmdbms/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.0.141:52141

MON_DW_IP = 192.168.0.142:52142

7启动主备库设置OGUID

7.1 主库

# mount方式启动

[dmdba@DMP dmdb]$ dmserver /DMDB/data/dmdb/dm.ini mount

file dm.key not found, use default license!

version info: develop

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-126-20.09.04-126608-ENT startup…

Database mode = 0, oguid = 0

License will expire on -09-04

begin redo pwr log collect, last ckpt lsn: 37090 …

redo pwr log collect finished

main rfil[/DMDB/data/dmdb/dmdb01.log]'s grp collect 0 valid pwr record, discard 0 invalid pwr record

EP[0]'s cur_lsn[37090]

begin redo log recover, last ckpt lsn: 37090 …

redo log recover finished

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.

#系统通过OGUID 值确定一个守护进程组,由用户保证 OGUID 值的唯一性,

#并确保数据守护系统中,数据库、守护进程和监视器配置相同的OGUID值。

[root@DMP ~]# su - dmdba

[dmdba@DMP ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态

登录使用时间 : 5.938(ms)

disql V8

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

DMSQL 过程已成功完成

已用时间: 25.411(毫秒). 执行号:0.

SQL> sp_set_oguid(453331);

DMSQL 过程已成功完成

已用时间: 43.392(毫秒). 执行号:1.

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

DMSQL 过程已成功完成

已用时间: 12.588(毫秒). 执行号:2.

7.2 备库

# mount方式启动

#一定要以mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;

#并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

[dmdba@DMS1 dmdb]$ dmserver /DMDB/data/dmdb/dm.ini mount

version info: security

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-126-20.09.04-126608-ENT startup…

Database mode = 0, oguid = 0

License will expire on -06-25

begin redo pwr log collect, last ckpt lsn: 37090 …

redo pwr log collect finished

main rfil[/DMDB/data/dmdb/dmdb01.log]'s grp collect 0 valid pwr record, discard 0 invalid pwr record

EP[0]'s cur_lsn[37090]

begin redo log recover, last ckpt lsn: 37090 …

redo log recover finished

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

[dmdba@DMS1 ~]$ disql SYSDBA/SYSDBA@localhost:5237

notBefore.

notAfter error.

notAfter error.

服务器[localhost:5237]:处于普通配置状态

登录使用时间 : 16.602(ms)

上次登录ip : ::1

上次登录时间 : -12-02 10:50:49

登录失败次数 : 0

口令是否过期 : 未过期

disql V8

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

DMSQL 过程已成功完成

已用时间: 19.704(毫秒). 执行号:0.

SQL> sp_set_oguid(453331);

DMSQL 过程已成功完成

已用时间: 8.817(毫秒). 执行号:1.

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

DMSQL 过程已成功完成

已用时间: 13.194(毫秒). 执行号:2

8修改数据库模式

8.1主库

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

SQL> ALTER DATABASE PRIMARY;

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

8.2备库

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

SQL> ALTER DATABASE STANDBY;

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

9启动守护进程

9.1主库启动守护进程

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

#守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,

#守护进程将本地实例Open,并切换为Open状态。

cd /home/dmdba/dmdbms/bin

[dmdba@DMP dmdb]$ ./dmwatcher /DMDB/data/dmdb/dmwatcher.ini

DMWATCHER[4.0] V8

DMWATCHER[4.0] IS READY

9.2备库启动守护进程

cd /home/dmdba/dmdbms/bin

[dmdba@DMS1 ~]$ ./dmwatcher /DMDB/data/dmdb/dmwatcher.ini

DMWATCHER[4.0] V8

DMWATCHER[4.0] IS READY

9.3查看守护进程实例的状态

SQL> select GROUP_NAME,INST_NAME,DW_TYPE,DW_MODE,DW_STATUS from V$DMWATCHER;

行号 GROUP_NAME INST_NAME DW_TYPE DW_MODE DW_STATUS

1 GRP1 GRP1_RT_01 GLOBAL AUTO OPEN

SQL> select GROUP_NAME,INST_NAME,DW_TYPE,DW_MODE,DW_STATUS from V$DMWATCHER;

行号 GROUP_NAME INST_NAME DW_TYPE DW_MODE DW_STATUS

1 GRP1 GRP1_RT_02 GLOBAL AUTO OPEN

10启动监视器

cd /home/dmdba/dmdbms/bin

[dmdba@DMM bin]$ ./dmmonitor /DMDB/data/DAMENG/dmmonitor.ini

[monitor] -12-02 15:34:09: DMMONITOR[4.0] V8

[monitor] -12-02 15:34:09: DMMONITOR[4.0] IS READY.

[monitor] -12-02 15:34:09: 收到守护进程(GRP1_RT_01)消息

WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN

-12-02 15:34:08 OPEN OK GRP1_RT_01 OPEN PRIMARY VALID 2 38352 38352

[monitor] -12-02 15:34:09: 收到守护进程(GRP1_RT_02)消息

WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN

-12-02 15:34:10 OPEN OK GRP1_RT_02 OPEN STANDBY VALID 2 38352 38352

help

达梦守护监视器当前支持以下命令:

用法说明:

命令中的[group_name]和[db_name],在组名或库名不唯一的情况下,需要指定名称,组名和库名之间用’.'分隔.

对于show monitor命令,如果db_name未指定,则按照监视器ini的配置顺序,使用组中第一个活动的守护进程获取连接信息,

#=============================================================================================#

#-----------------------------------系统全局命令----------------------------------------------#

1.help --显示帮助信息

2.exit --退出监视器

3.show version --显示监视器自身版本信息

4.show global info --显示所有组的全局信息

5.show database [group_name.]db_name --显示指定库的详细信息

6.show [group_name] --显示指定组的详细信息,如果未指定组名,则显示所有组的详细信息

7.show i[nterval] n --每隔n秒自动显示所有组的详细信息

8.q --取消自动显示

9.list [[group_name.]db_name] --列出指定组的库对应的守护进程配置信息,如果都未指定,则列出所有守护进程配置信息

10.show open info [group_name.]db_name --显示指定库的OPEN历史信息

11.show arch send info [group_name.]db_name --查看源库到指定组的指定库的归档同步信息(包含恢复间隔信息)

12.show apply stat [group_name.]db_name --查看指定组的指定库的日志重演信息

13.show monitor [group_name[.]] [db_name] --列出连接到指定守护进程的所有监视器信息

14.tip --查看系统当前运行状态

15.login --登录监视器

16.logout --退出登录

17.get takeover time --获取备库开始自动接管需要延迟等待的时间

—输入q/Q退出或者回车键继续—

SHOW

-02-11 07:00:51

#====================================================#

GROUP OGUID MON_CONFIRM MODE MPP_FLAG

GRP1 453331 TRUE AUTO FALSE

<>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.0.141 52141 -02-24 06:39:44 GLOBAL VALID OPEN GRP1_RT_01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5236 OK GRP1_RT_01 OPEN PRIMARY 0 0 REALTIME VALID 4016 61519 4016 61519 NONE

<>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.0.142 52142 -02-24 06:39:53 GLOBAL VALID OPEN GRP1_RT_02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5236 OK GRP1_RT_02 OPEN STANDBY 0 0 REALTIME VALID 4002 61519 4002 61519 NONE

DATABASE(GRP1_RT_02) APPLY INFO FROM (GRP1_RT_01):

DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[4016, 4016, 4016], (ALSN, SLSN, KLSN)[61519, 61519, 61519], N_TSK[0], TSK_MEM_USE[0]

#========================================================#

11注册服务(root用户操作)

11.1 守护进程服务

# 主库

/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /DMDB/data/dmdb/dmwatcher.ini -p DW1

# 备库

/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /DMDB/data/dmdb/dmwatcher.ini -p DW2

11.2 监视器服务

# 监视器主机

/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /DMDB/data/DAMENG/dmmonitor.ini -p MON1

12主备数据同步验证

12.1 主库准备测试数据

[dmdba@DMP ~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态

登录使用时间 : 6.784(ms)

disql V8

SQL> create table dmfs as select * from sysobjects;

操作已执行

已用时间: 23.862(毫秒). 执行号:705.

SQL> select count(1) from dmfs;

行号 COUNT(1)

1 1340

用时间: 3.975(毫秒). 执行号:706.

12.2 备库查询,是否应用主库最新的日志

[dmdba@DMS1 ~]$ disql SYSDBA/SYSDBA@LOCALHOST:5237

notBefore.

notAfter error.

notAfter error.

服务器[LOCALHOST:5237]:处于备库打开状态

登录使用时间 : 17.063(ms)

上次登录ip : ::1

上次登录时间 : -12-02 15:56:15

登录失败次数 : 0

口令是否过期 : 未过期

disql V8

SQL> select count(1) from dmfs;

行号 COUNT(1)

1 1340

已用时间: 8.217(毫秒). 执行号:600

12.3 验证备库不能做数据修改

SQL> create table dmfs2 as select * from sysobjects;

create table dmfs2 as select * from sysobjects;

[-710]:试图在STANDBY模式下,修改用户库.

已用时间: 5.986(毫秒). 执行号:0.

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