
# 实例使用规范
#### **数据库实例**
**数据库实例类型选择**
- 主备
  - 一主一备的经典高可用架构。适用于大中型企业的生产数据库，覆盖互联网、物联网、零售电商、物流、游戏等行业应用。
  
  - 备机提高了实例的可靠性，创建主机的过程中，同步创建备机，备机创建成功后，用户不可见。
  
  - 当主节点故障后，会发生主备切换，数据库客户端会发生短暂中断，数据库客户端需要支持重新连接。
   
- 单机
  - 采用单个数据库节点部署架构，与主流的主备实例相比，它只包含一个节点，但具有高性价比。
  
  - 适用于个人学习、微型网站以及中小企业的开发测试环境。
  
  - 单机版出现故障后，无法保障及时恢复。
   
- 只读 只读实例分为单机版只读实例和高可用只读实例。
  - 单机版只读实例： 推荐开启数据库代理功能，并购买单机版只读实例。当单个只读故障后，数据库代理可以将流量分担到其它只读节点。
    
  
  - 高可用只读实例： 当只读实例所在物理机故障后，备用只读实例自动顶替。
    
  
  
  购买只读实例时，注意表库名的大小写敏感要与主实例保持一致。
  推荐用法：
  1. 主实例下包含2个及以下只读实例时，高可用只读作用比较好。
  
  2. 2个以上只读实例，建议开启数据库代理，获得更好的性价比。
  
  
  ![](https://support.huaweicloud.com/usermanual-rds-mysql/public_sys-resources/note_3.0-zh-cn.png)
  当只读实例与主数据库之间复制异常后，单机版和高可用版只读都需要较长时间重建和恢复（取决于数据量）。
  只读实例创建完成后，可通过time_zone参数[修改时区](https://support.huaweicloud.com/rds-mysql_faq/rds_faq_0061.html)。要求只读实例的时区和主实例一致，否则会导致数据同步异常。
  
**实例性能规格选择**
- 独享型 完全独享的CPU和内存，性能长期稳定，不会因为物理机上其它实例的行为而受到影响，适用于对性能稳定性要求较高的应用场景。
  
- 通用型 与同一物理机上的其他通用型规格实例共享CPU资源，通过资源复用换取CPU使用率最大化，性价比较高，适用于对性能稳定性要求较低的应用场景。
  
- 惠选型 完全独享的CPU和内存，性能长期稳定，不会因为物理机上其它实例的行为而受到影响，适用于对性能稳定性要求较高的应用场景，与独享型相比在价格方面有一定优惠。
  
 
#### **数据库连接**
- 根据业务的复杂度，合理配置RDS for MySQL参数。
- 建议保持合理的活跃连接数。
- 避免长连接，长连接的缓存可能较大，导致内存不足，建议定期释放长连接。
 
#### **可靠性和可用性**
- 生产数据库的实例类型请选择主备类型。
- 选择主备实例时，建议主备可用区选择不同的可用区。
- 读写业务并发较高时，建议创建只读实例，并开启读写分离。
- 建议在业务低峰期执行规格变更。
- 业务上线前，对数据库进行评估，选择合适的实例规格和磁盘大小。
- 主实例扩容后请及时扩容只读实例，避免只读实例存储空间不足导致业务异常。
 
#### **备份恢复**
- 业务高峰时执行备份可能会备份失败，建议手动备份选择在业务低峰期间，自动备份建议根据业务需要自定义备份时间段。
- 实例写入业务较多时，建议备份策略设置成每天做一次自动备份。
- 建议根据业务需要设置备份保留天数（默认保留7天）。
- 建议根据业务需要设置Binlog本地保留时长（默认为0，表示Binlog备份完成后本地日志会被删除）。
- 使用表级时间点恢复功能时，建议提前确认所选时间点之前是否有对无主键大表的删除操作，如果有该操作，恢复完成时间不易评估。
- 创建实例前建议根据需要选择存储类型，本地盘SSD实例不支持备份恢复到已有实例和当前实例。
- 删除实例后，自动备份的全量备份和Binlog备份也会删除，对数据有需要时，建议删除前进行手动全量备份。
- 建议自定义回收站策略，防止误删实例无法恢复。
 
#### **SQL** **审计**
- 需要定期做业务审计时，建议开启审计日志。
- 需要做业务SQL分析时，建议开启全量SQL功能。
 
#### **日常运维**
- 建议定期关注慢日志和错误日志，提前识别业务问题。
- 建议定期关注数据库的资源使用情况，资源不足时，及时扩容。
- 建议关注实例监控，发现监控指标异常时，及时处理。
- 删除和修改记录时，需要先执行SELECT，确认无误才能提交执行。
 
#### **安全**
- 尽量避免数据库被公网访问，公网连接时必须绑定弹性公网IP，设置合适的白名单。
- 尽量使用SSL连接，保证连接的安全性。
 
