3.2 MPP主备集群

1. 前期规划
1.1 系统规划

主备模式服务架构图_sed

1.2 IP与端口规划

主备模式服务架构图_主备模式服务架构图_02

1.3 守护进程规划

主备模式服务架构图_主备模式服务架构图_03

1.4 存储规划

主备模式服务架构图_V8_04

1.5 数据库初始化参数规划

主备模式服务架构图_DM_05


2. 安装数据库基础软件

(略)

PS: DM MPP 各EP使用的DM服务器版本应一致,同时还应注意各 EP所在主机的操作系统位数、大小端模式、
时区及时间设置都应一致,否则可能造成意想不到的错误。

3. 配置环境变量

主备模式服务架构图_数据库_06


环境变量具体配置如下:

su - dmdba
vi .bash_profile
source ~/.bash_profile
#################################################
### Dameng Database Environment Configuration ###
export TMP=/tmp
export TMP_DIR=$TMP
export DM_INSTALL_TMPDIR=$TMP
export DM_HOME=/DMDB/app/DM8
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DM_HOME/bin"
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
umask 022
### end ###

4. 初始化数据库实例
4.1 dminit命令行工具初始化主库

mppdw1主机

dminit PATH=/DMDB/data/EP01 INSTANCE_NAME=GRP1_MPP_EP01 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1

[dmdba@mppdw1 ~]$ cd /DMDB/data/ 
[dmdba@mppdw1 data]$ mkdir -p /DMDB/data/{EP01,EP02}
[dmdba@mppdw1 data]$ ll
总用量 8
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 11:41 EP01
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 11:41 EP02
[dmdba@mppdw1 data]$ dminit PATH=/DMDB/data/EP01 INSTANCE_NAME=GRP1_MPP_EP01 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1             
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
 log file path: /DMDB/data/EP01/DAMENG/DAMENG01.log
 log file path: /DMDB/data/EP01/DAMENG/DAMENG02.log
write to dir [/DMDB/data/EP01/DAMENG].
create dm database success. 2020-12-05 11:42:07


## 立即注册主库实例服务
#root用户
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP01/DAMENG/dm.ini -p GRP1_MPP_EP01

[root@mppdw1 data]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP01/DAMENG/dm.ini -p GRP1_MPP_EP01
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP1_MPP_EP01 到 /etc/rc.d/init.d/DmServiceGRP1_MPP_EP01)
创建服务(DmServiceGRP1_MPP_EP01)完成

[root@mppdw1 data]# service DmServiceGRP1_MPP_EP01  start
Starting DmServiceGRP1_MPP_EP01:                            [ OK ]

mppdw2主机

dminit PATH=/DMDB/data/EP02 INSTANCE_NAME=GRP2_MPP_EP02 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1

[dmdba@mppdw2 ~]$ cd /DMDB/data/ 
[dmdba@mppdw2 data]$ mkdir -p /DMDB/data/{EP01,EP02}
[dmdba@mppdw2 data]$ ll
总用量 8
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 11:41 EP01
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 11:41 EP02

[dmdba@mppdw2 data]$ dminit PATH=/DMDB/data/EP02 INSTANCE_NAME=GRP2_MPP_EP02 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
 log file path: /DMDB/data/EP02/DAMENG/DAMENG01.log
 log file path: /DMDB/data/EP02/DAMENG/DAMENG02.log
write to dir [/DMDB/data/EP02/DAMENG].
create dm database success. 2020-12-05 11:45:09

## 立即注册主库实例服务
#root用户
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP02/DAMENG/dm.ini -p GRP2_MPP_EP02

[root@mppdw2 data]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP02/DAMENG/dm.ini -p GRP2_MPP_EP02
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP2_MPP_EP02 到 /etc/rc.d/init.d/DmServiceGRP2_MPP_EP02)
创建服务(DmServiceGRP2_MPP_EP02)完成
[root@mppdw2 data]# service DmServiceGRP2_MPP_EP02 start
Starting DmServiceGRP2_MPP_EP02:                           [ OK ]
4.2 dminit命令行工具初始化备库

mppdw1主机

# 主机上已经注册过5236端口,现在它又当作备库注册(使用未注册过的端口5237)
dminit PATH=/DMDB/data/EP02 INSTANCE_NAME=GRP2_MPP_EP22 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1 PORT_NUM=5237

[dmdba@mppdw1 data]$ dminit PATH=/DMDB/data/EP02 INSTANCE_NAME=GRP2_MPP_EP22 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1 PORT_NUM=5237
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
 log file path: /DMDB/data/EP02/DAMENG/DAMENG01.log
 log file path: /DMDB/data/EP02/DAMENG/DAMENG02.log
write to dir [/DMDB/data/EP02/DAMENG].
create dm database success. 2020-12-05 11:49:36

## 立即注册主库实例服务
#root用户
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP02/DAMENG/dm.ini -p GRP2_MPP_EP22 

[root@mppdw1 data]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP02/DAMENG/dm.ini -p GRP2_MPP_EP22
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP2_MPP_EP22 到 /etc/rc.d/init.d/DmServiceGRP2_MPP_EP22)
创建服务(DmServiceGRP2_MPP_EP22)完成
[root@mppdw1 data]# service  DmServiceGRP2_MPP_EP22 start
Starting DmServiceGRP2_MPP_EP22:                           [ OK ]

[root@mppdw1 data]# netstat -anpo | grep :523*
tcp        0      0 0.0.0.0:52730               0.0.0.0:*                   LISTEN      1692/rpc.statd      off (0.00/0/0)
tcp        0      0 :::5236                     :::*                        LISTEN      6957/dmserver       off (0.00/0/0)
tcp        0      0 :::5237                     :::*                        LISTEN      7159/dmserver       off (0.00/0/0)

[root@mppdw1 data]# ps -fu dmdba
UID         PID   PPID  C STIME TTY          TIME CMD
dmdba      5251      1  0 10:50 pts/2    00:00:00 /DMDB/app/DM8/bin/dmap
dmdba      6957      1  2 11:43 pts/2    00:00:09 /DMDB/app/DM8/bin/dmserver /DMDB/data/EP01/DAMENG/dm.ini -noconsole
dmdba      7159      1 31 11:50 pts/2    00:00:10 /DMDB/app/DM8/bin/dmserver /DMDB/data/EP02/DAMENG/dm.ini -noconsole

[dmdba@mppdw1 ~]$ chkconfig --list |grep Dm
DmAPService     0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP1_MPP_EP01  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP2_MPP_EP22  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[dmdba@mppdw1 ~]$ disql SYSDBA/SYSDBA@localhost:5237
服务器[localhost:5237]:处于普通打开状态
登录使用时间 : 7.280(ms)
disql V8
SQL> select name,status$ from v$instance;
行号     NAME          STATUS$
---------- ------------- -------
1          GRP2_MPP_EP22 OPEN

已用时间: 36.241(毫秒). 执行号:499.

SQL> select name,role$,status$ from v$database;
行号     NAME   ROLE$       STATUS$    
---------- ------ ----------- -----------
1          DAMENG 0           4
已用时间: 5.182(毫秒). 执行号:500.

mppdw2主机

dminit PATH=/DMDB/data/EP01 INSTANCE_NAME=GRP1_MPP_EP11 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1 PORT_NUM=5237

[dmdba@mppdw2 data]$ dminit PATH=/DMDB/data/EP01 INSTANCE_NAME=GRP1_MPP_EP11 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1 PORT_NUM=5237
initdb V8
db version: 0x7000b
file dm.key not found, use default license!
License will expire on 2021-09-04
 log file path: /DMDB/data/EP01/DAMENG/DAMENG01.log
 log file path: /DMDB/data/EP01/DAMENG/DAMENG02.log
write to dir [/DMDB/data/EP01/DAMENG].
create dm database success. 2020-12-05 11:52:52

## 立即注册主库实例服务
#root用户
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP01/DAMENG/dm.ini -p GRP1_MPP_EP11 

[root@mppdw2 data]# /DMDB/app/DM8/script/root/dm_service_installer.sh -t dmserver -dm_ini /DMDB/data/EP01/DAMENG/dm.ini -p GRP1_MPP_EP11 
移动服务脚本文件(/DMDB/app/DM8/bin/DmServiceGRP1_MPP_EP11 到 /etc/rc.d/init.d/DmServiceGRP1_MPP_EP11)
创建服务(DmServiceGRP1_MPP_EP11)完成
[root@mppdw2 data]# service DmServiceGRP1_MPP_EP11 start
Starting DmServiceGRP1_MPP_EP11:                           [ OK ]

[root@mppdw2 data]# netstat -anop |grep :523*
tcp        0      0 :::5236                     :::*                        LISTEN      6931/dmserver       off (0.00/0/0)
tcp        0      0 :::5237                     :::*                        LISTEN      7126/dmserver       off (0.00/0/0)

[root@mppdw2 data]# ps -fu dmdba
UID         PID   PPID  C STIME TTY          TIME CMD
dmdba      5707      1  0 10:50 pts/2    00:00:00 /DMDB/app/DM8/bin/dmap
dmdba      6931      1  1 11:45 pts/2    00:00:09 /DMDB/app/DM8/bin/dmserver /DMDB/data/EP02/DAMENG/dm.ini -noconsole
dmdba      7126      1 25 11:54 pts/2    00:00:09 /DMDB/app/DM8/bin/dmserver /DMDB/data/EP01/DAMENG/dm.ini -noconsole

[dmdba@mppdw2 ~]$ chkconfig --list |grep Dm
DmAPService     0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP1_MPP_EP11  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
DmServiceGRP2_MPP_EP02  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭


[dmdba@mppdw2 ~]$ disql SYSDBA/SYSDBA@localhost:5237
服务器[localhost:5237]:处于普通打开状态
登录使用时间 : 6.001(ms)
disql V8
SQL> select name,status$ from v$instance;
行号     NAME          STATUS$
---------- ------------- -------
1          GRP1_MPP_EP11 OPEN
已用时间: 4.017(毫秒). 执行号:499.

SQL> select name,role$,status$ from v$database;
行号     NAME   ROLE$       STATUS$    
---------- ------ ----------- -----------
1          DAMENG 0           4
已用时间: 1.771(毫秒). 执行号:500.

5. 数据准备
5.1 DMRMAN脱机备份主库数据库

mppdw1:GRP1_MPP_EP01

### 1. 准备数据库备份专用目录
[root@mppdw1 data]# su - dmdba
[dmdba@mppdw1 ~]$ cd /DMDB/backup
[dmdba@mppdw1 backup]$ ls -l
总用量 0
[dmdba@mppdw1 backup]$ mkdir -p /DMDB/backup/{EP01,EP02}
[dmdba@mppdw1 backup]$ ls -l
总用量 8
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:02 EP01
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:02 EP02

### 2. 停库
[dmdba@mppdw1 backup]$ service DmServiceGRP1_MPP_EP01 stop
Stopping DmServiceGRP1_MPP_EP01:                           [ OK ]

# 备份前最好确认下辅助服务进程是否启动:
[dmdba@mppdw1 EP01]$ service DmAPService status
DmAPService (pid 5251) is running.

### 3. 脱机备份全库
dmrman CTLSTMT="backup database '/DMDB/data/EP01/DAMENG/dm.ini' full backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"

[dmdba@mppdw1 backup]$ dmrman CTLSTMT="backup database '/DMDB/data/EP01/DAMENG/dm.ini' full backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"
dmrman V8
backup database '/DMDB/data/EP01/DAMENG/dm.ini' full backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
BACKUP DATABASE [DAMENG],execute......
CMD CHECK LSN......
BACKUP DATABASE [DAMENG],collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps] END, CODE [0]......
META GENERATING......
total 7 packages processed...
total 7 packages processed...
total 7 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 00:00:01.381
[dmdba@mppdw1 backup]$ cd EP01
[dmdba@mppdw1 EP01]$ ls -l
总用量 4
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:07 GRP1_MPP_EP01_FULL_bps
[dmdba@mppdw1 EP01]$ du -sh GRP1_MPP_EP01_FULL_bps/
6.2M    GRP1_MPP_EP01_FULL_bps/

mppdw2:GRP2_MPP_EP02

### 1. 准备数据库备份专用目录
[root@mppdw2 data]# su - dmdba
[dmdba@mppdw2 ~]$ cd /DMDB/backup
[dmdba@mppdw2 backup]$ ls -l
总用量 0
[dmdba@mppdw2 backup]$ mkdir -p /DMDB/backup/{EP01,EP02}
[dmdba@mppdw2 backup]$ ls -l
总用量 8
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:02 EP01
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:02 EP02

### 2. 停库
[dmdba@mppdw2 backup]$ service DmServiceGRP2_MPP_EP02 stop
Stopping DmServiceGRP2_MPP_EP02:                           [ OK ]

### 3. 脱机备份全库
dmrman CTLSTMT="backup database '/DMDB/data/EP02/DAMENG/dm.ini' full backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"

[dmdba@mppdw2 backup]$ dmrman CTLSTMT="backup database '/DMDB/data/EP02/DAMENG/dm.ini' full backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"
dmrman V8
backup database '/DMDB/data/EP02/DAMENG/dm.ini' full backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
BACKUP DATABASE [DAMENG],execute......
CMD CHECK LSN......
BACKUP DATABASE [DAMENG],collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps] END, CODE [0]......
META GENERATING......
total 7 packages processed...
total 7 packages processed...
total 7 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 00:00:01.592
[dmdba@mppdw2 backup]$ du -sh *    
4.0K    EP01
6.2M    EP02
[dmdba@mppdw2 backup]$ ls -lh EP02/
总用量 4.0K
drwxr-xr-x 2 dmdba dinstall 4.0K 12月  5 12:12 GRP2_MPP_EP02_FULL_bps
5.2 脱机还原主库备份到对应的备库

mppdw1:GRP1_MPP_EP01 --> mppdw2:GRP1_MPP_EP11

### 1. 远程拷贝主库的数据库备份集到备库
[dmdba@mppdw2 backup]$ scp -rp 10.10.10.11:/DMDB/backup/EP01/* /DMDB/backup/EP01/
The authenticity of host '10.10.10.11 (10.10.10.11)' can't be established.
RSA key fingerprint is b1:e2:38:8d:32:0f:d8:24:f7:76:be:43:44:77:50:70.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.11' (RSA) to the list of known hosts.
dmdba@10.10.10.11's password: 
GRP1_MPP_EP01_FULL_bps.meta                                                                             100%   73KB  72.5KB/s   00:00    
GRP1_MPP_EP01_FULL_bps.bak                                                                              100% 6246KB   6.1MB/s   00:00    
[dmdba@mppdw2 backup]$ cd /DMDB/backup/EP01/
[dmdba@mppdw2 EP01]$ ll
总用量 4
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:07 GRP1_MPP_EP01_FULL_bps

### 2. 停止备库实例服务
[dmdba@mppdw2 EP01]$ service DmServiceGRP1_MPP_EP11 stop
Stopping DmServiceGRP1_MPP_EP11:                           [ OK ]

### 3. 还原备份集
dmrman CTLSTMT="restore database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"

[dmdba@mppdw2 EP01]$ dmrman CTLSTMT="restore database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"
dmrman V8
restore database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps] START......
total 3 packages processed...
total 7 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 7 packages processed...
total 7 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 00:00:01.25

### 4. 恢复备份集
dmrman CTLSTMT="recover database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"

[dmdba@mppdw2 EP01]$ dmrman CTLSTMT="recover database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'"
dmrman V8
recover database '/DMDB/data/EP01/DAMENG/dm.ini' from backupset '/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
RESTORE RLOG CHECK......
CMD END.CODE:[603],DESC:[备份集[/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps]备份过程中未产生日志]
备份集[/DMDB/backup/EP01/GRP1_MPP_EP01_FULL_bps]备份过程中未产生日志
recover successfully!
time used: 414.737(ms)

### 5. 更新魔数(同主库一致)
dmrman CTLSTMT="recover database '/DMDB/data/EP01/DAMENG/dm.ini' update db_magic"

[dmdba@mppdw2 EP01]$ dmrman CTLSTMT="recover database '/DMDB/data/EP01/DAMENG/dm.ini' update db_magic"
dmrman V8
recover database '/DMDB/data/EP01/DAMENG/dm.ini' update db_magic
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
EP[0]'s apply_lsn[37089] >= end_lsn[37089]
recover successfully!
time used: 00:00:01.101

mppdw2:GRP2_MPP_EP02 --> mppdw1:GRP2_MPP_EP22

### 1. 远程拷贝主库的数据库备份集到备库
scp -rp 10.10.10.12:/DMDB/backup/EP02/* /DMDB/backup/EP02/

[dmdba@mppdw1 EP02]$ scp -rp 10.10.10.12:/DMDB/backup/EP02/* /DMDB/backup/EP02/
The authenticity of host '10.10.10.12 (10.10.10.12)' can't be established.
RSA key fingerprint is 56:85:f6:43:30:c7:42:2a:07:00:73:6e:cd:5f:ab:4b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.10.10.12' (RSA) to the list of known hosts.
dmdba@10.10.10.12's password: 
GRP2_MPP_EP02_FULL_bps.bak                                                                              100% 6246KB   6.1MB/s   00:00    
GRP2_MPP_EP02_FULL_bps.meta                                                                             100%   73KB  72.5KB/s   00:00    
[dmdba@mppdw1 EP02]$ ls -l
总用量 4
drwxr-xr-x 2 dmdba dinstall 4096 12月  5 12:12 GRP2_MPP_EP02_FULL_bps
[dmdba@mppdw1 EP02]$ du -sh GRP2_MPP_EP02_FULL_bps/
6.2M    GRP2_MPP_EP02_FULL_bps/

### 2. 停止备库的数据库实例
[dmdba@mppdw1 EP02]$ service DmServiceGRP2_MPP_EP22 stop
Stopping DmServiceGRP2_MPP_EP22:                           [ OK ]

### 3. 还原数据库备份集
dmrman CTLSTMT="restore database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"

[dmdba@mppdw1 EP02]$ dmrman CTLSTMT="restore database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"
dmrman V8
restore database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps] START......
total 3 packages processed...
total 7 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 7 packages processed...
total 7 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 00:00:01.449

### 4. 恢复数据库备份集
dmrman CTLSTMT="recover database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"

[dmdba@mppdw1 EP02]$ dmrman CTLSTMT="recover database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'"
dmrman V8
recover database '/DMDB/data/EP02/DAMENG/dm.ini' from backupset '/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
RESTORE RLOG CHECK......
CMD END.CODE:[603],DESC:[备份集[/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps]备份过程中未产生日志]
备份集[/DMDB/backup/EP02/GRP2_MPP_EP02_FULL_bps]备份过程中未产生日志
recover successfully!
time used: 520.538(ms)

### 5. 更新魔数
dmrman CTLSTMT="recover database '/DMDB/data/EP02/DAMENG/dm.ini' update db_magic"

[dmdba@mppdw1 EP02]$ dmrman CTLSTMT="recover database '/DMDB/data/EP02/DAMENG/dm.ini' update db_magic"
dmrman V8
recover database '/DMDB/data/EP02/DAMENG/dm.ini' update db_magic
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37089]
EP[0]'s apply_lsn[37089] >= end_lsn[37089]
recover successfully!
time used: 00:00:01.046

6. 编辑mpp和数据守护环境所需配置ini文件
6.1 配置dm.ini
mppdw1:GRP1_MPP_EP01
/DMDB/data/EP01/DAMENG/dm.ini
#实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过 16
INSTANCE_NAME  = GRP1_MPP_EP01
PORT_NUM  = 5236                 #数据库实例监听端口
#DW_PORT = 5336                   #守护环境下,监听守护进程连接端口 v3.0以上不再适用
DW_INACTIVE_INTERVAL  = 60       #接收守护进程消息超时时间
ALTER_MODE_STATUS  = 0           #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS  = 2           #不允许备库 OFFLINE 表空间
MAL_INI = 1                      #打开 MAL 系统
ARCH_INI  = 1                    #打开归档配置
MPP_INI = 1                      #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息
#HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
mppdw2:GRP2_MPP_EP02
/DMDB/data/EP02/DAMENG/dm.ini
#实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过 16
INSTANCE_NAME  = GRP2_MPP_EP02
PORT_NUM  = 5236                 #数据库实例监听端口
#DW_PORT = 5336                   #守护环境下,监听守护进程连接端口
DW_INACTIVE_INTERVAL  = 60       #接收守护进程消息超时时间
ALTER_MODE_STATUS  = 0           #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS  = 2           #不允许备库 OFFLINE 表空间
MAL_INI = 1                      #打开 MAL 系统
ARCH_INI  = 1                    #打开归档配置
MPP_INI = 1                      #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息
#HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
mppdw1:GRP2_MPP_EP22
/DMDB/data/EP02/DAMENG/dm.ini
实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过 16
INSTANCE_NAME  = GRP2_MPP_EP22
PORT_NUM  = 5237                 #数据库实例监听端口
#DW_PORT = 5337                   #守护环境下,监听守护进程连接端口
DW_INACTIVE_INTERVAL  = 60       #接收守护进程消息超时时间
ALTER_MODE_STATUS  = 0           #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS  = 2           #不允许备库 OFFLINE 表空间
MAL_INI = 1                      #打开 MAL 系统
ARCH_INI  = 1                    #打开归档配置
MPP_INI = 1                      #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息
#HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
mppdw2:GRP1_MPP_EP11
/DMDB/data/EP01/DAMENG/dm.ini
实例名,建议使用"组名_守护环境_序号"的命名方式,总长度不能超过 16
INSTANCE_NAME  = GRP1_MPP_EP11
PORT_NUM  = 5237                 #数据库实例监听端口
#DW_PORT = 5337                  #守护环境下,监听守护进程连接端口
DW_INACTIVE_INTERVAL  = 60       #接收守护进程消息超时时间
ALTER_MODE_STATUS  = 0           #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS  = 2           #不允许备库 OFFLINE 表空间
MAL_INI = 1                      #打开 MAL 系统
ARCH_INI  = 1                    #打开归档配置
MPP_INI = 1                      #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64         #统计最近 64 次的日志发送信息
#HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动
6.2 配置dmmal.ini
所有实例配置一致(GRP1_MPP_EP01/GRP1_MPP_EP11/GRP2_MPP_EP02/GRP1_MPP_EP22)
 /DMDB/data/EP01/DAMENG/dmmal.ini
 /DMDB/data/EP02/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 5         #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5     #判定MAL链路断开的时间

[MAL_INST1]   # 主节点1
MAL_INST_NAME = GRP1_MPP_EP01   #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 10.10.10.11          #MAL系统监听TCP连接的IP地址
MAL_PORT = 5436                 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.0.11    #实例的对外服务 IP 地址
MAL_INST_PORT = 5236            #实例的对外服务端口,和dm.ini中的PORT_NUM 一致
MAL_DW_PORT = 5536             #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5336        #实例监听守护进程TCP连接的端口

[MAL_INST2]   # 主节点2
MAL_INST_NAME = GRP2_MPP_EP02
MAL_HOST = 10.10.10.12
MAL_PORT = 5436
MAL_INST_HOST = 192.168.0.12
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536
MAL_INST_DW_PORT = 5336        #实例监听守护进程TCP连接的端口

[MAL_INST3]  #备节点1
MAL_INST_NAME = GRP1_MPP_EP11
MAL_HOST = 10.10.10.12
MAL_PORT = 5437
MAL_INST_HOST = 192.168.0.12
MAL_INST_PORT = 5237
MAL_DW_PORT = 5537
MAL_INST_DW_PORT = 5337        #实例监听守护进程 TCP 连接的端口

[MAL_INST4]   #备节点2
MAL_INST_NAME = GRP2_MPP_EP22
MAL_HOST = 10.10.10.11
MAL_PORT = 5437
MAL_INST_HOST = 192.168.0.11
MAL_INST_PORT = 5237
MAL_DW_PORT = 5537
MAL_INST_DW_PORT = 5337        #实例监听守护进程 TCP 连接的端口

拷贝

vi /DMDB/data/EP01/DAMENG/dmmal.ini
cp /DMDB/data/EP01/DAMENG/dmmal.ini /DMDB/data/EP02/DAMENG/dmmal.ini
scp /DMDB/data/EP01/DAMENG/dmmal.ini 10.10.10.12:/DMDB/data/EP01/DAMENG/dmmal.ini
scp /DMDB/data/EP01/DAMENG/dmmal.ini 10.10.10.12:/DMDB/data/EP02/DAMENG/dmmal.ini
6.3 配置归档dmarch.ini
#### 创建归档目录 #####
# 两台主机上
su - dmdba
mkdir -p /DMDB/arch/{EP01,EP02}
mppdw1:GRP1_MPP_EP01
/DMDB/data/EP01/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME        #实时归档类型
ARCH_DEST = GRP1_MPP_EP11   #实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL           #本地归档类型
ARCH_DEST = /DMDB/arch/EP01 #本地归档文件存放路径
ARCH_FILE_SIZE = 128        #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0        #单位MB,0表示无限制,范围1024~4294967294M
mppdw2:GRP2_MPP_EP02
/DMDB/data/EP02/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME        #实时归档类型
ARCH_DEST = GRP2_MPP_EP22   #实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL           #本地归档类型
ARCH_DEST = /DMDB/arch/EP02 #本地归档文件存放路径
ARCH_FILE_SIZE = 128        #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0        #单位MB,0表示无限制,范围1024~4294967294M
mppdw1:GRP2_MPP_EP22
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME        #实时归档类型
ARCH_DEST = GRP2_MPP_EP02   #实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL           #本地归档类型
ARCH_DEST = /DMDB/arch/EP02 #本地归档文件存放路径
ARCH_FILE_SIZE = 128        #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0        #单位MB,0表示无限制,范围1024~4294967294M
mppdw2:GRP1_MPP_EP11
 /DMDB/data/EP01/DAMENG/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME        #实时归档类型
ARCH_DEST = GRP1_MPP_EP01   #实时归档目标实例名

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL           #本地归档类型
ARCH_DEST = /DMDB/arch/EP01 #本地归档文件存放路径
ARCH_FILE_SIZE = 128        #单位MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0        #单位MB,0表示无限制,范围1024~4294967294M
6.4 配置dmmpp.ctl

先把dmmpp.ini内容编写完成后,通过dmctlcvt工具转换此文件为dmmpp.ctl进制控制文件,所有节点实例(包括备库)一致。

### dmmpp.ini ###
[service_name1]
mpp_seq_no = 0
mpp_inst_name = GRP1_MPP_EP01

[service_name2] 
mpp_seq_no = 1
mpp_inst_name = GRP2_MPP_EP02

转换文件

# GRP1_MPP_EP01
dmctlcvt TYPE=2 SRC=/DMDB/data/EP01/DAMENG/dmmpp.ini DEST=/DMDB/data/EP01/DAMENG/dmmpp.ctl
su - dmdba
cp  /DMDB/data/EP01/DAMENG/dmmpp.ctl /DMDB/data/EP02/
scp /DMDB/data/EP01/DAMENG/dmmpp.ctl 10.10.10.12:/DMDB/data/EP01/DAMENG/
scp /DMDB/data/EP01/DAMENG/dmmpp.ctl 10.10.10.12:/DMDB/data/EP02/DAMENG/
6.5 配置dmwatcher.ini

同一个守护进程组必须使用同一份dmwatcher.ctl。 正常情况下,每个单独的数据库实例由一个单独的守护进程守护。
但也可以一个守护进程守护多个不同组的实例,即同时守护两个实例。 mppdw1主机/
mppdw2主机(只要没的ini和cmd特殊不同,两个节点配置相同)
/DMDB/data/dmwatcher/dmwatcher.ini (统一路径) 也可以分别放置 /DMDB/data/EP01/DAMENG/dmwatcher.ini
/DMDB/data/EP02/DAMENG/dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL       #全局守护类型
DW_MODE = AUTO         #自动切换模式
DW_ERROR_TIME = 10     #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10   #本地实例故障认定时间
INST_OGUID = 45331     #守护系统唯一 OGUID 值
INST_INI = /DMDB/data/EP01/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1  #打开实例的自动启动功能
INST_STARTUP_CMD = /DMDB/app/DM8/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD = 0  #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

[GRP2]
DW_TYPE = GLOBAL         #全局守护类型
DW_MODE = AUTO           #自动切换模式
DW_ERROR_TIME = 10       #远程守护进程故障认定时间
INST_RECOVER_TIME = 60   #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10     #本地实例故障认定时间
INST_OGUID = 45341       #守护系统唯一 OGUID 值
INST_INI = /DMDB/data/EP02/DAMENG/dm.ini  #dm.ini配置文件路径
INST_AUTO_RESTART = 1    #打开实例的自动启动功能
INST_STARTUP_CMD = /DMDB/app/DM8/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD = 0   #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0  #指定备库重演日志的时间阈值,默认关闭

此处采用统一路径:

mkdir -p /DMDB/data/dmwatcher/
 vi /DMDB/data/dmwatcher/dmwatcher.ini
 scp -rp /DMDB/data/dmwatcher/dmwatcher.ini 10.10.10.12:/DMDB/data/


  视达梦软件版本而定:
## 同一个守护进程组,必须使用同一份dmwatcher.ctl。
dmctlcvt TYPE=3 SRC=/DMDB/dat/EP01/DAMENG/dmwatcher.ini DEST=/DMDB/data/EP01/DAMENG/dmwatcher.ctl
cp /DMDB/data/EP01/DAMENG/dmwatcher.ctl /DMDB/data/EP02/DAMENG/dmwatcher.ctl
scp /DMDB/data/EP01/DAMENG/dmwatcher.ctl 10.10.10.12:/DMDB/data/EP01/DAMENG/
scp /DMDB/data/EP01/DAMENG/dmwatcher.ctl 10.10.10.12:/DMDB/data/EP02/DAMENG/
6.6 配置dmmonitor.ini

确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知备库接管为新的主库,具有自动故障处理的功能。
注:故障自动切换模式下,必须配置确认监视器,且确认监视器最多只能配置一个。

mppmoinitor主机
/DMDB/data/monitor/dmmonitor.ini

MON_DW_CONFIRM = 1             #确认监视器模式
MON_LOG_PATH = /DMDB/data/log  #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60         #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32         #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0        #不限定日志文件总占用空间

[GRP1]
MON_INST_OGUID = 45331     #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以IP:PORT的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT 对应 dmmal.ini中的 MAL_DW_PORT
MON_DW_IP = 10.10.10.11:5536
MON_DW_IP = 10.10.10.12:5537

[GRP2]
MON_INST_OGUID = 45341    #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP2的守护进程的连接信息,以IP:PORT的形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 10.10.10.12:5536
MON_DW_IP = 10.10.10.11:5537

7. moun方式启动主备库
7.1 启动主库配置OGUID和数据库模式

注意: 使用MPP 类型为 LOCAL 方式,登录主库设置 OGUID 值。

#### 1. mppdw1:GRP1_MMP_EP01
su - dmdba
/DMDB/app/DM8/bin/dmserver /DMDB/data/EP01/DAMENG/dm.ini mount
disql SYSDBA/SYSDBA*local@192.168.0.11:5236
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL> select name,mode$,status$ from v$instance;
行号     NAME          MODE$   STATUS$
---------- ------------- ------- -------
1          GRP1_MPP_EP01 PRIMARY MOUNT
已用时间: 3.696(毫秒). 执行号:3

SQL> select FILE_LSN,CUR_LSN FROM V$rlog;
行号     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          37089                37089
已用时间: 1.788(毫秒). 执行号:4.

SQL> select permanent_magic;
行号     PERMANENT_MAGIC
---------- ---------------
1          361128312
已用时间: 1.966(毫秒). 执行号:5.

SQL> select name,mode$,status$,oguid from v$instance;
行号     NAME          MODE$   STATUS$ OGUID      
---------- ------------- ------- ------- -----------
1          GRP1_MPP_EP01 PRIMARY MOUNT   45331



#### 2. mppdw2:GRP2_MMP_EP02
su - dmdba
/DMDB/app/DM8/bin/dmserver /DMDB/data/EP02/DAMENG/dm.ini mount
disql SYSDBA/SYSDBA*local@192.168.0.12:5236
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45341);
SQL> ALTER DATABASE PRIMARY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

SQL> select FILE_LSN,CUR_LSN FROM V$rlog;
行号     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          37089                37089
已用时间: 5.145(毫秒). 执行号:100.

SQL> select permanent_magic;
行号     PERMANENT_MAGIC
---------- ---------------
1          109148412
已用时间: 4.076(毫秒). 执行号:101.

SQL> select name,mode$,status$,oguid from v$instance;

行号     NAME          MODE$   STATUS$ OGUID      
---------- ------------- ------- ------- -----------
1          GRP2_MPP_EP02 PRIMARY MOUNT   45341
已用时间: 7.159(毫秒). 执行号:200.
7.2 启动备库配置OGUID和数据库模式

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

#### 1. mppdw2:GRP1_MMP_EP11
su - dmdba
/DMDB/app/DM8/bin/dmserver /DMDB/data/EP01/DAMENG/dm.ini mount
disql SYSDBA/SYSDBA*local@192.168.0.12:5237
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SQL> select name,mode$,status$ from v$instance;
行号     NAME          MODE$   STATUS$
---------- ------------- ------- -------
1          GRP1_MPP_EP11 STANDBY MOUNT
已用时间: 3.317(毫秒). 执行号:3.

SQL> select FILE_LSN,CUR_LSN FROM V$rlog;
行号     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          37089                37089
已用时间: 2.921(毫秒). 执行号:4.

SQL> select permanent_magic;
行号     PERMANENT_MAGIC
---------- ---------------
1          361128312
已用时间: 1.716(毫秒). 执行号:5.

SQL> select name,mode$,status$,oguid from v$instance;

行号     NAME          MODE$   STATUS$ OGUID      
---------- ------------- ------- ------- -----------
1          GRP1_MPP_EP11 STANDBY MOUNT   45331

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


#### 2. mppdw1:GRP2_MMP_EP22
su - dmdba
/DMDB/app/DM8/bin/dmserver /DMDB/data/EP02/DAMENG/dm.ini mount
#disql SYSDBA/SYSDBA*local@192.168.0.11:5237
[dmdba@mppdw1 dmwatcher]$ disql /nolog
disql V8
SQL> login
服务名:
用户名:
密码:
端口号:5237
SSL路径:
SSL密码:
MPP类型:local
是否读写分离(y/n):n
协议类型:

服务器[LOCALHOST:5237]:处于普通配置状态
登录使用时间 : 8.943(ms)
SQL> select name,mode$,status$ from v$instance;
行号     NAME          MODE$  STATUS$
---------- ------------- ------ -------
1          GRP2_MPP_EP22 NORMAL MOUNT


SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> SP_SET_OGUID(45341);
SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

SQL> select name,mode$,status$,oguid from v$instance;
行号     NAME          MODE$   STATUS$ OGUID      
---------- ------------- ------- ------- -----------
1          GRP2_MPP_EP22 STANDBY MOUNT   45341

SQL> select FILE_LSN,CUR_LSN FROM V$rlog;
行号     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          37089                37089
已用时间: 4.988(毫秒). 执行号:7.

SQL> select permanent_magic;
行号     PERMANENT_MAGIC
---------- ---------------
1          109148412
已用时间: 3.332(毫秒). 执行号:8.

主备模式服务架构图_V8_07


8. 启动守护进程

守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。
守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息, 守护进程将本地实例 Open,并切换为 Open 状态。

### 1. 先启动主库的守护进程(临时前台)
su - dmdba
dmwatcher /DMDB/data/dmwatcher/dmwatcher.ini

### 2. 再启动备库的守护进程
(正常流程,由于目前配置一个守护进程守护两个实例,所以不会再区分主备启动顺序)

*****************************************************************
#### 1. 启动mppdw1主机节点的守护进程
su - dmdba
dmwatcher /DMDB/data/dmwatcher/dmwatcher.ini

#### 2. 启动mppdw2主机节点的守护进程
su - dmdba
dmwatcher /DMDB/data/dmwatcher/dmwatcher.ini

稍等片刻检查mpp节点的各个主备库的实例状态变为open
[dmdba@mppdw1 dmwatcher]$ disql /nolog
SQL> conn SYSDBA/SYSDBA@192.168.0.11:5236
服务器[192.168.0.11:5236]:处于主库打开状态
登录使用时间 : 8.496(ms)
SQL> select name,status$,mode$,oguid from v$instance;
行号     NAME          STATUS$ MODE$   OGUID      
---------- ------------- ------- ------- -----------
1          GRP2_MPP_EP02 OPEN    PRIMARY 45341
2          GRP1_MPP_EP01 OPEN    PRIMARY 45331
已用时间: 23.768(毫秒). 执行号:882723.

SQL> conn SYSDBA/SYSDBA@192.168.0.11:5237
服务器[192.168.0.11:5237]:处于备库打开状态
登录使用时间 : 7.730(ms)
SQL> select name,status$,mode$,oguid from v$instance;
行号     NAME          STATUS$ MODE$   OGUID      
---------- ------------- ------- ------- -----------
1          GRP2_MPP_EP22 OPEN    STANDBY 45341
已用时间: 4.543(毫秒). 执行号:200.

SQL> conn SYSDBA/SYSDBA@192.168.0.12:5237         
服务器[192.168.0.12:5237]:处于备库打开状态
登录使用时间 : 9.960(ms)
SQL> select name,status$,mode$,oguid from v$instance;
行号     NAME          STATUS$ MODE$   OGUID      
---------- ------------- ------- ------- -----------
1          GRP1_MPP_EP11 OPEN    STANDBY 45331
已用时间: 7.381(毫秒). 执行号:200.

SQL> conn SYSDBA/SYSDBA@192.168.0.12:5236
服务器[192.168.0.12:5236]:处于主库打开状态
登录使用时间 : 17.121(ms)
SQL> select name,status$,mode$,oguid from v$instance;
行号     NAME          STATUS$ MODE$   OGUID      
---------- ------------- ------- ------- -----------
1          GRP2_MPP_EP02 OPEN    PRIMARY 45341
2          GRP1_MPP_EP01 OPEN    PRIMARY 45331
已用时间: 18.896(毫秒). 执行号:707307.

# 查询守护进程信息
SQL> select group_name,n_group,dw_type,dw_mode,auto_restart,inst_name,dw_status from v$dmwatcher;
行号     GROUP_NAME N_GROUP     DW_TYPE DW_MODE AUTO_RESTART INST_NAME     DW_STATUS
---------- ---------- ----------- ------- ------- ------------ ------------- ---------
1          GRP1       2           GLOBAL  AUTO    1            GRP1_MPP_EP01 OPEN
2          GRP2       2           GLOBAL  AUTO    1            GRP2_MPP_EP02 OPEN

# 查询实例之间的链路状态信息
SQL> select * from v$mal_link_status;
行号     SRC_SITE      DEST_SITE     CTL_LINK_STATUS DATA_LINK_STATUS
---------- ------------- ------------- --------------- ----------------
1          GRP1_MPP_EP01 GRP2_MPP_EP02 CONNECTED       CONNECTED
2          GRP1_MPP_EP01 GRP1_MPP_EP11 CONNECTED       CONNECTED
3          GRP1_MPP_EP01 GRP2_MPP_EP22 CONNECTED       CONNECTED
4          GRP2_MPP_EP02 GRP1_MPP_EP01 CONNECTED       CONNECTED
5          GRP2_MPP_EP02 GRP1_MPP_EP11 CONNECTED       CONNECTED
6          GRP2_MPP_EP02 GRP2_MPP_EP22 CONNECTED       CONNECTED
6 rows got
已用时间: 12.104(毫秒). 执行号:707315.
SQL>

9. 启动监视器

mppmonitor主机节点

su - dmdba
dmmonitor /DMDB/data/monitor/dmmonitor.ini



[dmdba@mppmonitor monitor]$ dmmonitor /DMDB/data/monitor/dmmonitor.ini
[monitor]         2020-12-06 12:13:32: DMMONITOR[4.0] V8
[monitor]         2020-12-06 12:13:32: DMMONITOR[4.0] IS READY.

[monitor]         2020-12-06 12:13:32: 收到守护进程(GRP2_MPP_EP02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-06 12:13:32  OPEN           OK        GRP2_MPP_EP02    OPEN        PRIMARY   VALID    2        38347           38347           

[monitor]         2020-12-06 12:13:32: 收到守护进程(GRP2_MPP_EP22)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-06 12:13:32  OPEN           OK        GRP2_MPP_EP22    OPEN        STANDBY   VALID    2        38347           38347           

[monitor]         2020-12-06 12:13:32: 收到守护进程(GRP1_MPP_EP11)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-06 12:13:32  OPEN           OK        GRP1_MPP_EP11    OPEN        STANDBY   NULL     2        38350           38350           

[monitor]         2020-12-06 12:13:32: 收到守护进程(GRP1_MPP_EP01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2020-12-06 12:13:32  OPEN           OK        GRP1_MPP_EP01    OPEN        PRIMARY   VALID    2        38350           38350           

show
2020-12-06 12:13:36 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             45331       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.11     5536         2020-12-06 12:13:35  GLOBAL    VALID     OPEN           GRP1_MPP_EP01    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_MPP_EP01    OPEN        PRIMARY   0          0            REALTIME  VALID    3932            38350           3932            38350           NONE                  

<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.12     5537         2020-12-06 12:13:35  GLOBAL    VALID     OPEN           GRP1_MPP_EP11    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          
5237       OK        GRP1_MPP_EP11    OPEN        STANDBY   0          0            REALTIME  VALID    3927            38350           3927            38350           NONE                  

DATABASE(GRP1_MPP_EP11) APPLY INFO FROM (GRP1_MPP_EP01):
DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[3932, 3932, 3932], (ALSN, SLSN, KLSN)[38350, 38350, 38350], N_TSK[0], TSK_MEM_USE[0]


#--------------------------------------------------------------------------------#
2020-12-06 12:13:36 
#--------------------------------------------------------------------------------#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP2             45341       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.12     5536         2020-12-06 12:13:35  GLOBAL    VALID     OPEN           GRP2_MPP_EP02    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        GRP2_MPP_EP02    OPEN        PRIMARY   0          0            REALTIME  VALID    3929            38347           3929            38347           NONE                  

<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.11     5537         2020-12-06 12:13:35  GLOBAL    VALID     OPEN           GRP2_MPP_EP22    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          
5237       OK        GRP2_MPP_EP22    OPEN        STANDBY   0          0            REALTIME  VALID    3926            38347           3926            38347           NONE                  

DATABASE(GRP2_MPP_EP22) APPLY INFO FROM (GRP2_MPP_EP02):
DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[3929, 3929, 3929], (ALSN, SLSN, KLSN)[38347, 38347, 38347], N_TSK[0], TSK_MEM_USE[0]


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

show global info
2020-12-06 12:13:43 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP1             45331       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.11     5536         2020-12-06 12:13:43  GLOBAL    VALID     OPEN           GRP1_MPP_EP01    OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.12     5537         2020-12-06 12:13:43  GLOBAL    VALID     OPEN           GRP1_MPP_EP11    OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    


#--------------------------------------------------------------------------------#
2020-12-06 12:13:43 
#--------------------------------------------------------------------------------#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP2             45341       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.12     5536         2020-12-06 12:13:43  GLOBAL    VALID     OPEN           GRP2_MPP_EP02    OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.11     5537         2020-12-06 12:13:43  GLOBAL    VALID     OPEN           GRP2_MPP_EP22    OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    


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

10. 注册守护进程和监视器服务
### 1. 注册守护进程
# mppdw1 主机
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /DMDB/data/dmwatcher/dmwatcher.ini -p MPPEP01DW1

# mppdw2 主机
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /DMDB/data/dmwatcher/dmwatcher.ini -p MPPEP02DW2


### 2. 注册监视器
# mppmonitor 主机
/DMDB/app/DM8/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /DMDB/data/monitor/dmmonitor.ini -p MPPMONITOR
11. mpp数据验证

12. 守护集群测试