Part01-基础概念与理论知识
1.1 集群架构概述
达梦数据库提供了多种集群架构方案:
- Data Guard:主备架构,提供数据冗余和故障切换
- DMDSC:共享存储集群,多节点共享同一存储
- MGR:多活集群,支持多节点同时提供服务
1.2 集群核心组件
集群的核心组件包括:
- MAL系统:集群内部通信机制
- CSS服务:集群同步服务,管理节点状态
- 集群管理器:监控和管理集群状态
- 故障检测与切换:自动检测节点故障并进行切换
Part02-生产环境规划与建议
2.1 硬件规划
集群环境的硬件要求:
- 服务器:至少2台服务器,推荐配置相同
- CPU:多核心处理器,推荐8核以上
- 内存:大容量内存,推荐32GB以上
- 存储:Data Guard使用独立存储,DMDSC使用共享存储
- 网络:高速网络,推荐10Gbps以上,配置心跳网络
2.2 网络规划
集群网络配置建议:
- 业务网络:用于客户端连接
- 复制网络:用于数据同步
- 心跳网络:用于节点状态检测
- 存储网络:用于DMDSC共享存储访问
Part03-生产环境项目实施方案
3.1 Data Guard配置流程
Data Guard配置的主要步骤:
- 环境准备:配置网络、防火墙和操作系统参数
- 主库配置:启用归档模式,配置参数
- 备库准备:复制主库数据文件,配置参数
- 配置OGUID:设置主备库的OGUID
- 启动备库:启动备库到Mount状态
- 配置日志传输:设置主库的归档目标
- 验证同步:检查主备库数据同步状态
3.2 DMDSC集群配置流程
DMDSC集群配置的主要步骤:
- 共享存储准备:配置共享存储设备
- CSS服务配置:配置CSS服务参数
- 数据库初始化:使用dminit工具初始化集群数据库
- 实例配置:配置每个节点的实例参数
- 启动集群:启动CSS服务和数据库实例
- 验证集群:检查集群状态和节点健康状况
3.3 MGR集群配置流程
MGR集群配置的主要步骤:
- 环境准备:配置网络和操作系统参数
- 各节点初始化:初始化每个节点的数据库
- MAL系统配置:配置MAL系统参数
- 集群初始化:使用dmmgr初始化集群
- 启动集群:启动各节点的数据库实例
- 验证集群:检查集群状态和数据同步
Part04-生产案例与实战讲解
4.1 Data Guard配置
主库配置:
— 启用归档模式
SQL> alter database mount;
SQL> alter database archivelog;
SQL> alter database add archivelog ‘dest=/dm/arch,type=local,file_size=1024,space_limit=20480′;
SQL> alter database open;
— 配置Data Guard参数
SQL> alter system set DG_INI=’dm.dg.ini’ scope=spfile;
— 创建dm.dg.ini配置文件
$ vi /dm/fgdata/fgedudb/dm.dg.ini
[FGEDUDB]
HOST=192.168.1.101
PORT=5236
[FGEDUDB_STANDBY]
HOST=192.168.1.102
PORT=5236
SQL> alter database mount;
SQL> alter database archivelog;
SQL> alter database add archivelog ‘dest=/dm/arch,type=local,file_size=1024,space_limit=20480′;
SQL> alter database open;
— 配置Data Guard参数
SQL> alter system set DG_INI=’dm.dg.ini’ scope=spfile;
— 创建dm.dg.ini配置文件
$ vi /dm/fgdata/fgedudb/dm.dg.ini
[FGEDUDB]
HOST=192.168.1.101
PORT=5236
[FGEDUDB_STANDBY]
HOST=192.168.1.102
PORT=5236
风哥提示:Data Guard配置需要确保主备库的网络连通性,并且主库必须启用归档模式。
4.2 备库配置
备库初始化与配置:
— 复制主库数据文件到备库
$ scp -r /dm/fgdata/fgedudb dmdba@192.168.1.102:/dm/fgdata/
— 配置备库参数
$ vi /dm/fgdata/fgedudb/dm.ini
INSTANCE_NAME = FGEDUDB_STANDBY
PORT_NUM = 5236
— 配置dm.dg.ini
$ vi /dm/fgdata/fgedudb/dm.dg.ini
[FGEDUDB]
HOST=192.168.1.101
PORT=5236
[FGEDUDB_STANDBY]
HOST=192.168.1.102
PORT=5236
— 配置OGUID
SQL> sp_set_oguid(453331); 风哥提示:
SQL> alter database standby;
$ scp -r /dm/fgdata/fgedudb dmdba@192.168.1.102:/dm/fgdata/
— 配置备库参数
$ vi /dm/fgdata/fgedudb/dm.ini
INSTANCE_NAME = FGEDUDB_STANDBY
PORT_NUM = 5236
— 配置dm.dg.ini
$ vi /dm/fgdata/fgedudb/dm.dg.ini
[FGEDUDB]
HOST=192.168.1.101
PORT=5236
[FGEDUDB_STANDBY]
HOST=192.168.1.102
PORT=5236
— 配置OGUID
SQL> sp_set_oguid(453331); 风哥提示:
SQL> alter database standby;
4.3 故障切换测试
手动故障切换:
— 在备库执行故障切换
SQL> alter database primary;
— 检查切换后的状态
SQL> select status$ from v$instance;
— 在原主库上执行
SQL> startup mount;
SQL> alter database standby;
SQL> alter database open;
SQL> alter database primary;
— 检查切换后的状态
SQL> select status$ from v$instance;
— 在原主库上执行
SQL> startup mount;
SQL> alter database standby;
SQL> alter database open;
4.4 DMDSC集群配置
共享存储配置:
# 创建共享存储分区
$ fdisk /dev/sdb
# 格式化分区
$ mkfs.ext4 /dev/sdb1
# 挂载共享存储
$ mkdir /dm/shared
$ mount /dev/sdb1 /dm/shared
# 配置fstab
$ echo ‘/dev/sdb1 /dm/shared ext4 defaults 0 0’ >> /etc/fstab
$ fdisk /dev/sdb
# 格式化分区
$ mkfs.ext4 /dev/sdb1
# 挂载共享存储
$ mkdir /dm/shared
$ mount /dev/sdb1 /dm/shared
# 配置fstab
$ echo ‘/dev/sdb1 /dm/shared ext4 defaults 0 0’ >> /etc/fstab
CSS服务配置:
# 创建CSS配置文件 学习交流加群风哥微信: itpux-com
$ vi /dm/app/bin/css.ini
[CSS]
CSS_PORT = 9341
CSS_LOG_PATH = /dm/log/css
CSS_HOME = /dm/app
CSS_DLL_PATH = /dm/app/bin
CSS_VTD_PATH = /dm/shared/vtd
CSS_BUF_SIZE = 1024
CSS_SYSLOG_LEVEL = 3
$ vi /dm/app/bin/css.ini
[CSS]
CSS_PORT = 9341
CSS_LOG_PATH = /dm/log/css
CSS_HOME = /dm/app
CSS_DLL_PATH = /dm/app/bin
CSS_VTD_PATH = /dm/shared/vtd
CSS_BUF_SIZE = 1024
CSS_SYSLOG_LEVEL = 3
数据库初始化:
# 使用dminit初始化DMDSC数据库
$ /dm/app/bin/dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb1 port_num=5236 dsc=1 dsc_seqno=0 dsc_port=9340 dsc_vtd_path=/dm/shared/vtd dsc_oguid=453331
# 在第二个节点上初始化
$ /dm/app/bin/dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb2 port_num=5237 dsc=1 dsc_seqno=1 dsc_port=9340 dsc_vtd_path=/dm/shared/vtd dsc_oguid=453331
$ /dm/app/bin/dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb1 port_num=5236 dsc=1 dsc_seqno=0 dsc_port=9340 dsc_vtd_path=/dm/shared/vtd dsc_oguid=453331
# 在第二个节点上初始化
$ /dm/app/bin/dminit path=/dm/fgdata db_name=fgedudb instance_name=fgedudb2 port_num=5237 dsc=1 dsc_seqno=1 dsc_port=9340 dsc_vtd_path=/dm/shared/vtd dsc_oguid=453331
4.5 MGR集群配置
MAL系统配置:
# 配置dmmal.ini
$ vi /dm/fgdata/fgedudb/dmmal.ini
[MAL_INST1]
MAL_INST_NAME = FGEDUDB1
MAL_HOST = 192.168.1.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.1.101
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = FGEDUDB2
MAL_HOST = 192.168.1.102
MAL_PORT = 61142
MAL_INST_HOST = 192.168.1.102
MAL_INST_PORT = 5236
[MAL_INST3]
MAL_INST_NAME = FGEDUDB3
MAL_HOST = 192.168.1.103
MAL_PORT = 61143
MAL_INST_HOST = 192.168.1.103
MAL_INST_PORT = 5236 学习交流加群风哥QQ113257174
$ vi /dm/fgdata/fgedudb/dmmal.ini
[MAL_INST1]
MAL_INST_NAME = FGEDUDB1
MAL_HOST = 192.168.1.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.1.101
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = FGEDUDB2
MAL_HOST = 192.168.1.102
MAL_PORT = 61142
MAL_INST_HOST = 192.168.1.102
MAL_INST_PORT = 5236
[MAL_INST3]
MAL_INST_NAME = FGEDUDB3
MAL_HOST = 192.168.1.103
MAL_PORT = 61143
MAL_INST_HOST = 192.168.1.103
MAL_INST_PORT = 5236 学习交流加群风哥QQ113257174
集群初始化:
# 使用dmmgr初始化集群
$ /dm/app/bin/dmmgr
MGR> create cluster ‘FGEDUCLUSTER’ host=’192.168.1.101′ port=5236;
MGR> add instance ‘FGEDUDB1′ host=’192.168.1.101’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> add instance ‘FGEDUDB2′ host=’192.168.1.102’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> add instance ‘FGEDUDB3′ host=’192.168.1.103’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> start cluster ‘FGEDUCLUSTER’;
$ /dm/app/bin/dmmgr
MGR> create cluster ‘FGEDUCLUSTER’ host=’192.168.1.101′ port=5236;
MGR> add instance ‘FGEDUDB1′ host=’192.168.1.101’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> add instance ‘FGEDUDB2′ host=’192.168.1.102’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> add instance ‘FGEDUDB3′ host=’192.168.1.103’ port=5236 to cluster ‘FGEDUCLUSTER’;
MGR> start cluster ‘FGEDUCLUSTER’;
Part05-风哥经验总结与分享
5.1 集群配置最佳实践
- 网络配置:配置独立的心跳网络,确保集群通信的可靠性。
- 存储规划:Data Guard使用独立存储,DMDSC使用共享存储,确保数据安全。
- 参数调优:根据实际硬件配置调整集群参数,提高性能和稳定性。
- 监控配置:建立完善的集群监控系统,及时发现和处理问题。
- 故障演练:定期进行故障切换演练,确保集群在故障时能够正常切换。
5.2 集群维护建议
- 定期备份:即使在集群环境中,也需要定期备份数据库。
- 补丁管理:及时应用数据库补丁,修复已知问题。
- 日志管理:定期清理归档日志和集群日志,避免磁盘空间不足。
- 性能监控:监控集群性能,及时发现性能瓶颈。
- 容量规划:根据业务增长情况,提前规划存储和计算资源。
5.3 常见问题与解决方案
- 网络问题:检查网络连接和防火墙设置,确保集群节点间通信正常。
- 存储问题:监控共享存储状态,确保存储设备正常运行。
- 同步延迟:检查网络带宽和主库负载,优化日志传输配置。
- 故障切换失败:检查备库状态和配置,确保备库能够正常接管。
- 集群分裂:配置合理的心跳检测参数,避免脑裂现象。
更多视频教程www.fgedu.net.cn
更多学习教程公众号风哥教程itpux_com
from DB视频:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
