cat >> /etc/hosts << EOF
192.168.10.138 dm1
192.168.10.139 dm2
EOF
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
yum install -y chrony
systemctl start chronyd
systemctl enable chronyd
chronyc tracking
bashsu - dmdba
/mnt/dm_iso/DMInstall.bin -i
安装类型:典型安装,安装目录:/home/dmdba/dmdbms。
安装完成后以 root 执行:
/home/dmdba/dmdbms/script/root/root_installer.sh
cat >> /home/dmdba/.bash_profile << "EOF"
export DM_HOME=/home/dmdba/dmdbms
export PATH=\$PATH:\$DM_HOME/bin
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$DM_HOME/bin
EOF
source /home/dmdba/.bash_profile
dminit PATH=/home/dmdba/dmdbms/data INSTANCE_NAME=GRP1_RT_01 PAGE_SIZE=32 EXTENT_SIZE=32 LOG_SIZE=2048 SYSDBA_PWD=Dameng@123 SYSAUDITOR_PWD=Dameng@123
cd /home/dmdba/dmdbms/data/DAMENG
sed -i 's/^INSTANCE_NAME.*/INSTANCE_NAME = GRP1_RT_01/' dm.ini
sed -i 's/^PORT_NUM.*/PORT_NUM = 5236/' dm.ini
sed -i 's/^DW_INACTIVE_INTERVAL.*/DW_INACTIVE_INTERVAL = 60/' dm.ini
sed -i 's/^ALTER_MODE_STATUS.*/ALTER_MODE_STATUS = 0/' dm.ini
sed -i 's/^ENABLE_OFFLINE_TS.*/ENABLE_OFFLINE_TS = 2/' dm.ini
sed -i 's/^MAL_INI.*/MAL_INI = 1/' dm.ini
sed -i 's/^ARCH_INI.*/ARCH_INI = 1/' dm.ini
echo "RLOG_SEND_APPLY_MON = 64" >> dm.ini
cat > dmmal.ini << "EOF"
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.10.138
MAL_PORT = 61141
MAL_INST_HOST = 192.168.10.138
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.10.139
MAL_PORT = 61142
MAL_INST_HOST = 192.168.10.139
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
EOF
cat > dmarch.ini << "EOF"
[ARCHIVE_TIMELY1]
ARCH## 二级标题_TYPE = TIMELY
ARCH_DEST = GRP1_RT_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
EOF
cat > dmwatcher.ini << "EOF"
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
EOF
dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
另开终端连接:
bash
disql SYSDBA/Dameng@123@192.168.10.138:5236
执行:
sql
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(453331);
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/home/dmdba/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=0';
ALTER DATABASE ADD ARCHIVELOG 'DEST=GRP1_RT_02, TYPE=TIMELY';
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FULL BACKUPSET '/home/dmdba/dmdbms/backup/BACKUP_FULL'"
scp -r /home/dmdba/dmdbms/backup dmdba@192.168.10.139:/home/dmdba/dmdbms/
scp /home/dmdba/dmdbms/data/DAMENG/dm.ini dmdba@192.168.10.139:/home/dmdba/dmdbms/data/DAMENG/
scp /home/dmdba/dmdbms/data/DAMENG/dmmal.ini dmdba@192.168.10.139:/home/dmdba/dmdbms/data/DAMENG/
scp /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini dmdba@192.168.10.139:/home/dmdba/dmdbms/data/DAMENG/
(同主库步骤,安装目录 /home/dmdba/dmdbms)
cat >> /home/dmdba/.bash_profile << "EOF"
export DM_HOME=/home/dmdba/dmdbms
export PATH=\$PATH:\$DM_HOME/bin
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\$DM_HOME/bin
EOF
source /home/dmdba/.bash_profile
cd /home/dmdba/dmdbms/data/DAMENG
sed -i 's/^INSTANCE_NAME.*/INSTANCE_NAME = GRP1_RT_02/' dm.ini
cat > dmarch.ini << "EOF"
[ARCHIVE_TIMELY1]
ARCH_TYPE = TIMELY
ARCH_DEST = GRP1_RT_01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
EOF
dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/backup/BACKUP_FULL'"
dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' FOR STANDBY FROM BACKUPSET '/home/dmdba/dmdbms/backup/BACKUP_FULL'"
dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount
另开终端:
disql SYSDBA/Dameng@123@192.168.10.139:5236
执行:
sql
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_OGUID(453331);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
主库 mount(主机138)
dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount &
备库 mount(备机139)
dmserver /home/dmdba/dmdbms/data/DAMENG/dm.ini mount &
备库守护进程(备机139)
dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini &
主库守护进程(主机138)
dmwatcher /home/dmdba/dmdbms/data/DAMENG/dmwatcher.ini
cat > /home/dmdba/dmdbms/bin/dmmonitor.ini << "EOF"
MON_DW_CONFIRM = 1
MON_LOG_PATH = /home/dmdba/dmdbms/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.10.138:52141
MON_DW_IP = 192.168.10.139:52142
EOF
dmmonitor /home/dmdba/dmdbms/bin/dmmonitor.ini
在监视器执行show,应看到:
在客户端机器(主机138)配置:
cat > /etc/dm_svc.conf << "EOF"
TIME_ZONE=(480)
LANGUAGE=(cn)
DMRWW=(192.168.10.138:5236,192.168.10.139:5236)
[DMRWW]
LOGIN_MODE=(1)
RW_SEPARATE=(1)
RW_PERCENT=(25)
SWITCH_TIMES=(3)
SWITCH_INTERVAL=(1000)
EOF
参数说明:
主库(138)执行:
CREATE TABLE TEST_RW (ID INT, NAME VARCHAR(20));
INSERT INTO TEST_RW VALUES (1, '读写分离测试');
INSERT INTO TEST_RW VALUES (2, '数据同步验证');
COMMIT;
SELECT * FROM TEST_RW;
备库(139)查询:
SELECT * FROM TEST_RW;
结果:返回相同数据,主备同步正常。
修改 dm_svc.conf 中 RW_PERCENT 值:
sed -i 's/RW_PERCENT=(.*)/RW_PERCENT=(0)/' /etc/dm_svc.conf
本次实验基于已有主备集群成功搭建 DM8 读写分离集群,核心步骤为:
文章
阅读量
获赞
