3.2 MPP主备集群
1. 前期规划
1.1 系统规划
1.2 IP与端口规划
1.3 守护进程规划
1.4 存储规划
1.5 数据库初始化参数规划
2. 安装数据库基础软件
(略)
PS: DM MPP 各EP使用的DM服务器版本应一致,同时还应注意各 EP所在主机的操作系统位数、大小端模式、
时区及时间设置都应一致,否则可能造成意想不到的错误。
3. 配置环境变量
环境变量具体配置如下:
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.
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. 守护集群测试
略