备份 恢复

时时热备
定期冷备

升级

每年大版本小版本升级,新特性调研,性能测试,稳定性。 可用当前最新的上一个版本。

HA

手动
自动

读写分离 sharding 多副本

安全

权限管理 资源隔离

审计

ddl
慢sql
锁长时间占用

巡检

定期巡检 awr 报告

监控

系统
数据库

诊断 优化

背景

应用程序的野蛮生长,由产品为驱动的开发,一切以快速上线为目标,在快速迭代的输出中很难有质量的保证。

运维人员和dba往往会充当救火队员,进入恶性循环。程序或架构设计不合理,导致数据库使用性能不佳,稍微来点业务量就导致数据库负载升高影响业务。

怎么办

梳理责任划分

必须有明确的责任划分,并不是程序上线后除了问题全部都是运维人员的责任,如果是程序的问题导致的故障,应该将责任追究到研发团队。

追责可以作为研发与运维的共同KPI考核指标,这样研发才有动力把程序开发好,而不是野蛮瞎搞。

建立程序交付标准

必须建立应用交付给运维的交付标准,程序上线前,必须要符合运行交付标准才允许上线。

必须包括试运行

商用前,必须有试运行阶段。建立约束机制,例如试运行阶段如果有N次应用引起的故障或已发现运行过程中的程序BUG,研发必须全部解决后,才允许商用。

变更制度

建立变更制度,操作规范,尽量避免变更带来的问题。

开发规约

事前防范,建立开发规约,避免开发阶段引入的问题。

培训

经常给开发培训,让他们熟悉数据库的最佳实践,避免踩坑。

SQL审核机制

建立自动化或人为的审核机制,涉及数据库变更,新增SQL都必须经过审核。

数据库生命周期管理

建立健全的生命周期管理制度。