有没有针对双活环境的数据库开发规范?

参与27

2同行回答

anikikonganikikong课题专家组数据库运维工程师中国民生银行
在双活环境大部分开发规范是和单机数据库的开发规范一样的,但是有写针对这个环境特点的开发规范:事务处理设计: 尽量避免热点数据和不必要的数据重复访问。例如计费系统的查重,入表,更新表等操作,可以改变为最后只插入一条最终的记录。 尽量将业务分表。例如计费里面将不同的...显示全部

在双活环境大部分开发规范是和单机数据库的开发规范一样的,但是有写针对这个环境特点的开发规范:

事务处理设计:
尽量避免热点数据和不必要的数据重复访问。例如计费系统的查重,入表,更新表等操作,可以改变为最后只插入一条最终的记录。
尽量将业务分表。例如计费里面将不同的业务计入不同的流水表里面。
合理设计索引。不要建立不必要的索引,适当使用聚合索引。

批处理:
由于CF通信和存储复制的延时,双活环境的单个事务会比单机版慢,所以批处理建议通过提高并发的方式来加快处理速度。
拆分批处理,将单次批拆成多个批一起跑。例如一天的归档拆成按照小时的归档。
作业拆分,使用跟多并发的方式处理单个批处理。

报表:
在双活环境里面运行实时报表需要慎重,防止GBP的DE空间被占满。尽量避免出现全表扫描的报表。合理安排利用索引,减少记录扫描数量。

收起
银行 · 2017-09-15
浏览1804
冯帅冯帅数据库管理员贝壳金服
其实还有一些更加严格的安全规范,行为规范表结构变更必须通知DBA进行审核。禁止有super权限的应用程序账号存在。禁止有DDL、DCL权限的应用程序账号存在。重要项目的数据库方案选型和设计必须提前通知DBA参与。批量导入、导出数据必须通过DBA审核,并在执行过程中观察服务。...显示全部

其实还有一些更加严格的安全规范,行为规范

  1. 表结构变更必须通知DBA进行审核。
  2. 禁止有super权限的应用程序账号存在。
  3. 禁止有DDL、DCL权限的应用程序账号存在。
  4. 重要项目的数据库方案选型和设计必须提前通知DBA参与。
  5. 批量导入、导出数据必须通过DBA审核,并在执行过程中观察服务。
  6. 批量更新数据,如UPDATE、DELETE操作,必须DBA进行审核,并在执行过程中观察服务。
  7. 产品出现非数据库导致的故障时,如被攻击,必须及时通DBA,便于维护服务稳定。
  8. 业务部门程序出现BUG等影响数据库服务的问题,必须及时通知DBA,便于维护服务稳定。
  9. 业务部门推广活动或上线新功能,必须提前通知DBA进行服务和访问量评估,并留出必要时间以便DBA完成扩容。
  10. 出现业务部门人为误操作导致数据丢失,需要恢复数据的,必须第一时间通知DBA,并提供准确时间点、 误操作语句等重要线索。
  11. 提交线上建表改表需求,必须详细注明涉及到的所有SQL语句(包括INSERT、DELETE、UPDATE),便于DBA进⾏行审核和优化。
  12. 对同一个表的多次alter操作必须合并为一次操作。
  13. 不要在MySQL数据库中存放业务逻辑。
  14. 禁止在线上做数据库压力测试。
  15. 禁止从测试、开发环境直连数据库
收起
融资租赁 · 2017-09-15
浏览1726

提问者

wangweilong
数据库管理员某大

问题来自

相关问题

问题状态

  • 发布时间:2017-09-15
  • 关注会员:3 人
  • 问题浏览:4490
  • 最近回答:2017-09-15
  • X社区推广