DM8搭建MPP环境
机器192.168.176.131 实例:DM1(主) DM4 端口:5236/5337 mal_host:192.168.176.131
机器192.168.176.132 实例:DM2(主) DM3 端口:5236/5337 mal_host:192.168.176.132
守护进程规划:
DMW1(OGUID:453331):对应DM1和DM4
DMW2(OGUID:453332):对应DM2和DM3
1.准备工作
机器192.168.176.131 实例:DM1(主) DM4 端口:5236/5337 mal_host:192.168.176.131
机器192.168.176.132 实例:DM2(主) DM3 端口:5236/5337 mal_host:192.168.176.132
守护进程规划:
DMW1(OGUID:453331):对应DM1和DM4
DMW2(OGUID:453332):对应DM2和DM3
2.分别初始化实例
2.1在第一台机器上初始化实例主库DM1,初始化实例备库DM4。初始化完成后,然后分别开停库一次。
使用./dmserver /home/data/DAMENG/dm.ini
./dmserver /home/data/DAMENG01/dm.ini启停库
分别修改dm.ini,使ARCH_INI=,增加新文件dmarch.ini:
vi /home/data/DAMENG/dmarch.ini
vi /home/data/DAMENG01/dmarch.ini
2.2在机器2做一样的操作,初始化实例
启停
修改归档
修改dmarch.ini
3.数据备份(脱机备份)
对主库DM1进行脱机备份
./dmrman ctlstmt=”backup database ‘/home/data/DAMENG/dm.ini’ full to backup20210624 backupset ‘/home/data/DAMENG/BACKUP20210624’”
然后将数据拷贝到备库DM3
scp -r /home/data/DAMENG/BACKUP20210624@192.168.176.132:/home/data/DAMENG02
在机器2上的DM3进行脱机还原恢复
还原:
./dmrman CTLSTMT=”RESTORE DATABASE ‘/home/data/DAMENG02/dm.ini’ FROM BACKUPSET ‘/home/data/DAMENG02/BACKUP20210624’”
恢复:
./dmrman CTLSTMT=”RESTORE DATABASE ‘/home/data/DAMENG02/dm.ini’ FROM BACKUPSET ‘/home/data/DAMENG02/BACKUP20210624’”
更新DB_MAGIC:
./dmrman CTLSTMT=”RECOVER DATABASE ‘/home/data/DAMENG02/dm.ini’ UPDATE DB_MAGIC”
对主库DM2进行脱机备份
./dmrman ctlstmt=”backup database ‘/home/data/DAMENG/dm.ini’ full to backup20210624 backupset ‘/home/data/DAMENG/BACKUP20210624’”
然后将数据拷贝到备库DM4
scp -r /home/data/DAMENG/BACKUP20210624/ @192.168.176.131:/home/data/DAMENG01
在机器2上的DM4进行脱机还原恢复
还原:
./dmrman CTLSTMT=“RESTORE DATABASE ‘/home/data/DAMENG01/dm.ini’ FROM BACKUPSET ‘/home/data/DAMENG01/BACKUP20210624’”
恢复:
./dmrman CTLSTMT=”RESTORE DATABASE ‘/home/data/DAMENG01/dm.ini’ FROM BACKUPSET ‘/homedata/DAMENG01/BACKUP20210624’”
更新DB_MAGIC:
./dmrman CTLSTMT=”RECOVER DATABASE ‘/home/data/DAMENG01/dm.ini’ UPDATE DB_MAGIC”
4.主备库配置
在机器1配置主库
配置dm.ini
cd /home/data/DAMENG
vi dm.ini
INSTANCE_NAME=DM1 --实例名
ALTER_MODE_STATUS=0
ENABLE_OFFLINE_TS=2
MAL_INI=1
ARCH_INI=1
MPP_INI=1
配置dmmal.ini
主备库的dmmal.ini须一致
配置dmarch.ini
配置dmmpp.ctl
dmmpp.ctl 是二进制文件,由 dmmpp.ini 文本通过 dmctlcvt 工具转换而来
先配置dmmpp.ini:
回到bin目录,转换dmmpp.ini为dmmpp.ctl:
./dmctlcvt TYPE=2 SRC=/home/data/DAMENG/dmmpp.ini DEST=/home/data/DAMENG/dmmpp.ctl
然后以mount方式启动主库
./dmserver /home/data/DAMENG/dm.ini mount
配置OGUID
./disql SYSDBA/密码,然后执行以下命令
在机器2配置主库
操作与在机器一的相同,可以用scp命令进行拷贝,注意修改相应的参数。。。
这里设置为45532
在机器2配置备库
操作与前面大致一样,注意修改对应参数就ok啦
在机器1配置备库
一样的操作过程
5.守护进程配置
一般来说,每个单独的实例都是使用一个单独的守护进程守护。在本次测试中,由于同一台机器上有不同组的两个实例,我们可以只配置一个守护进程,同时守护两个实例。
机器1上配置dmwatcher.ini
机器2上配置dmwatcher.ini
6.监视器配置
监视器地址为:机器2 192.168.176.132(/home/data/DAMENG)
由于主备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知备库接管为新的主库,具有自动故障处理的功能。
修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
7.守护进程启动
分别启动两台机器
./dmwatcher /home/data/DAMENG/dmwatcher.ini
./dmwatcher /home/data/DAMENG/dmwatcher.ini