51job数据库系统:3+1架构与运维实践

4星 · 超过85%的资源 需积分: 9 3 下载量 151 浏览量 更新于2024-07-26 1 收藏 968KB PDF 举报
"51job数据库系统架构实践" 在51job的数据库系统架构实践中,他们采用了"3+1"的方案来应对当时的系统超负荷工作问题。这个方案包括了三台主机作为主要运行服务器,一台备机用于冗余和故障恢复。在数据库层面上,设置了两台Primary数据库服务器和一个Standby库,利用Data Guard (DG)技术来实现高可用性和灾难恢复。 Data Guard是一种Oracle数据库特性,它提供了物理 standby数据库,可以在主数据库出现故障时,自动或手动将服务切换到standby数据库,从而确保业务连续性。这种架构有以下优势: 1. **结构简单可靠**:由于采用了双Primary和Standby的配置,系统结构清晰,易于管理和维护。 2. **不存在单点故障**:通过多台服务器的分布式设置,避免了单一设备故障导致整个系统的瘫痪。 3. **DG快速切换**:当主数据库出现问题时,Data Guard可以迅速将服务切换到备用数据库,减少业务中断时间。 然而,这个架构也存在一些劣势: 1. **处理能力减半**:由于需要将一部分处理能力分配给Standby库,因此整体处理能力相对于单个大型数据库来说有所下降。 2. **资源浪费**:配备的备用服务器在正常情况下可能处于空闲状态,造成一定的硬件资源浪费。 在日常运维中,51job对系统进行了全面的监控和维护,包括业务监控、网络和主机监控、数据库监控等。对于主机性能,使用了如top、sar、iostat、vmstat和glance等工具进行实时监测。在数据库层面,通过crontab和shell脚本定时执行SQL查询,利用v$xxx和dba_xxx视图以及AWR报告来分析性能指标,如事务处理量、系统负载和空间使用情况。此外,还定期进行数据清理,如将历史数据离线存储,以及使用exp/expdp进行数据导出,drop partition进行分区管理等操作,以保持数据库的高效运行和合理的空间使用。 总结起来,51job的数据库系统架构实践是基于提高系统稳定性和业务连续性的目标,通过采用"3+1"的主机配置和Data Guard技术,实现了简单的架构设计,有效降低了单点故障的风险。同时,配合全面的监控和维护策略,确保了系统的健康运行,满足了在线招聘业务的高性能需求。