本文是参考实际生产环境的操作示例。其背景是现有生产环境的数据库架构是一主一备的数据守护集群,用户需求是增加一块性能良好的SSD硬盘已解决当前主备机磁盘io的性能瓶颈。以下内容则是增加备机节点的完整操作步骤。
本方案操作限制:需停机
数据还原方式:直接拷贝主机的数据文件到新的服务器上,并且需要修改控制文件中对应的绝对路径
1).关闭防火墙状态:
systemctl status firewalld.service
systemctl disable firewalld.service
2).关闭SELinux:
cat /etc/selinux/config
修改 SELINUX=disabled
3).系统参数文件配置(现有主备服务器一并调整):
vi /etc/security/limits.conf #永久生效
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
4).临时设置:
ulimit -n 65536
5).配置system.conf:
vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240
6).创建软件安装目录和用户:
groupadd dinstall -g 2001
useradd -g dinstall dmdba -u 2001
mkdir -p /dmdata/dmdb
chown dmdba:dinstall -R /dmdata
chown dmdba:dinstall -R /dmarch
7).软件安装
过程参考:Linux系统环境:DM8数据库安装
8).创建实例目录
mkdir /dmdata/DW03
chown dmdba:dinstall -R /dmdata/DW03
1)、刷新检查点(153.4),使数据落盘
SELECT CHECKPOINT(100);
2)、停止主备库守护进程服务
先停备库153.5:
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW02 stop
再停主库153.4:
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW01 stop
3)、停止主备库数据库服务
#先停主库153.4:
su - dmdba
/dmdata/dmdb/bin/DmServiceDW01 stop
#再停备库153.5:
su - dmdba
/dmdata/dmdb/bin/DmServiceDW02 stop
4)、停止监视器服务(153.3)
cd /home/dmdba/dmdb/bin
./DmMonitorServiceDW stop
1)、备份ini文件
#备份主库153.4:
mkdir /dmdata/dmini_bak
cd /dmdata/dmdb/DW01
cp *.ini /dmdata/dmini_bak
备份备库153.5:
mkdir /dmdata/dmini_bak
cd /dmdata/dmdb/DW02
cp *.ini /dmdata/dmini_bak
2)、备份153.4/5 dm_svc.conf
cp /etc/dm_svc.conf /dmdata/dmini_bak
3)、拷贝153.4(主库)数据文件到153.10
#153.4(主库):
cd /dmdata/dmdb/DW02
scp -r * root@*.*.153.10:/dmdata/DW03/
1)、创建备份路径
mkdir /dmdata/bak
2)、修改dm.ini文件中的相关路径
cd /dmdata/DW03
vi dm.ini
CTL_PATH = /dmdata/DW03/dm.ctl
CTL_BAK_PATH = /dmdata/DW03/ctl_bak
SYSTEM_PATH = /dmdata/DW03/
CONFIG_PATH = /dmdata/DW03/
TEMP_PATH = /dmdata/DW03/
BAK_PATH = /dmdata/bak
INSTANCE_NAME = DW03
3)、将dm.ctl转换为dm.txt并修改文件中的绝对路径
dmctlcvt TYPE=1 SRC=/dmdata/DW03/dm.ctl DEST=/dmdata/DW03/dm.txt
vi /dmdata/DW03/dm.txt
#(修改对应的路径)
4)、转换为ctl文件
mv dm.ctl dm_bak.ctl
dmctlcvt TYPE=1 SRC=/dmdata/DW03/dm.txt DEST=/dmdata/DW03/dm.ctl
1).配置dmmal.ini
153.4(主机):
su - dmdba
cd /dmdata/dmdb/DW01
#追加备机153.10节点MAL信息到153.4的dmmal.ini
echo '[MAL_INST3]
MAL_INST_NAME = DW03
MAL_HOST = *.*.100.10
MAL_PORT = 5336
MAL_INST_HOST = *.*.153.10
MAL_INST_PORT = 5236
MAL_DW_PORT = 5536' >> dmmal.ini
153.5(备机1):
从153.4 拷贝 dmmal.ini到153.5上
153.10(备机2):
从153.4 拷贝 dmmal.ini到153.10上
2).配置dmarch.ini
153.4(主库):
su - dmdba
cd /dmdata/dmdb/DW01
echo '[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW03
' >> dmarch.ini
153.5(备库1):
su - dmdba
cd /dmdata/dmdb/DW02
echo '[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW03
' >> dmarch.ini
153.10(备库2):
su - dmdba
mkdir -r /dmarch/arch
echo '[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DW01
[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DW02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch/arch
ARCH_FILE_SIZE = 512
ARCH_SPACE_LIMIT = 10240' > dmarch.ini
3).配置dmwatcher.ini
153.10(备库2):
su - dmdba
mkdir -p /dmdata/dmdb/dmwatcher/DW03
echo '[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 15
INST_ERROR_TIME = 15
INST_OGUID = 453331
INST_INI = /dmdata/DW03/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD =/dmdata/dmdb/bin/DmServiceDW03 start
INST_RECOVER_TIME = 60
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
' >>dmwatcher.ini
4). 拷贝主库的dmwatcher.ctl
#153.4(主库):
cd /dmdata/dmdb/DW01
scp dmwatcher.ctl root@*.*.153.10:/dmdata/DW03/
5). 修改dmmonitor.ini
MON_DW_CONFIRM=1
MON_LOG_PATH=/home/dmdba/dmdb
MON_LOG_INTERVAL=1
MON_LOG_FILE_SIZE=64
MON_LOG_SPACE_LIMIT=0
[GRP1]
MON_DW_IP=*.*.153.4:5536
MON_DW_IP=*.*.153.5:5536
MON_DW_IP=*.*.153.10:5536 #添加这段即可
6).修改备库2(153.10)的OGUID
cd /dmdata/dmdb/bin
./disql SYSDBA/SYSDBA:5236
SP_SET_OGUID(453331);
7).修改备库2(153.10)的数据库模式
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
8).注册服务
cd /dmdata/dmdb/scripts/root
./dm_service_installer.sh -t dmserver -i /dmdata/DW03/dm.ini -p DW03 -m mount
./dm_service_installer.sh -t dmwatcher -i /dmdata/DW03/dmwatcher.ini -p DW03
** ****** 切换主库后,手动做一次全备**
9). 修改dm_svc.conf配置
(对应调整153.4/5的dm_svc.conf)
vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DMR=(*.*.153.5:5236,*.*.153.4:5236,*.*.153.10:5236)
[DMR]
LOGIN_MODE=(1) #查看dm7文档 ,做成局部的
10).启动数据库集群
启动主备库数据库服务(严格按照此顺序启动数据库服务)
153.4(主库):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW01 start
153.5(备库1):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW02 start
153.10(备库2):
su - dmdba
/dmdata/dmdb/bin/DmServiceDW03 start
11).启动主备库守护进程服务
153.4(主库):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW01 start
153.5(备库1):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW02 start
153.10(备库2):
su - dmdba
/dmdata/dmdb/bin/DmWatcherServiceDW03 start
12). 通过监视器查看集群状态
登录监视器查看集群状态,状态是否都正常,正常再执行下一步验证。
创建临时表,确定备库重演
主库执行:
create table SYSDBA.temp AS SELECT * FROM V$DM_INI ;
备库查看:
select count(*) from SYSDBA.temp;
主库删除:
drop table SYSDBA.temp;
如果主库创建临时表正常,并且备库执行查询能查到与主库一致的数据量,则搭建成功。
========================== 到此分享完毕==================================
文章
阅读量
获赞