
# MySQL/Oracle/PostgreSQL监控管理
#### 概述
MySQL监控器、Oracle监控器、PostgreSQL监控器可对用户业务使用的对应数据库进行探测，并且在数据库异常时自动触发流量切换。
MySQL监控器、Oracle监控器、PostgreSQL监控器相关操作流程一致，故统一放在此章节介绍。
 表1监控状态说明 
| 监控状态 | 状态说明                                                                                                                                                                                               |
|:---|:---|
| 绿色   | 监控正常。 说明： MySQL监控器暂不支持MySQL数据库连接池占满、磁盘占满等亚健康状态探活能力。 只要MySQL实例处于活跃状态，连接正常保持，查询命令正常执行，即认为当前MySQL状态正常，监控状态正常。 |
| 红色   | 监控异常。从正常到异常，在允许自动切换的情况下，自动触发流量切换。                                                                                                                                                                  |
| 黄色   | 初始化监控失败。此状态表示MAS进程无法检测业务数据库，确保配置信息无误的情况下，需要联系运维处理。                                                                                                                                                 |
| 浅灰   | 监控未生成或监控配置错误。                                                                                                                                                                                      |
| 深灰   | 调用异常。监控连接ETCD状态异常。                                                                                                                                                                                 |
   
#### 前提条件
- 已创建多活实例并开通对应功能模块。
- 已在数据中心准备好被监控的数据库实例并创建好监控数据库和连接数据库。
  - 监控数据库，在两个数据中心中均已真实存在且命名相同。请使用独立的监控数据库，不要与业务连接数据库共用。
  
  - 连接数据库，在两个数据中心中均已真实存在且命名相同。
   
- 新增Mysql监控时，云数据库RDS未部署提示：服务未上线。
- 被监控对象必须与MAS实例网络连通。
 
#### 创建监控
1. 登录MAS控制台，在"多活管理"页面单击实例（实例所属命名空间类型为同城多活），进入实例控制台。
2. 在页面顶端导航栏选择"监控列表"，单击页面左上角的"新增监控"。
3. 在新增监控页面配置监控基础配置，完成后单击"下一步：数据中心配置"。 
   图1新增监控-基础配置   
   ![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001593087318.png)
   表2基础配置信息 
   | **参数**  | **配置说明**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 监控      | 选择需要新增的监控类型，此处请选择如下类型： - MySQL监控  - Oracle监控  - PostgreSQL监控 说明： 只有在功能模块已开通MySQL、Oracle和PostgreSQL功能点，且多活实例关联的命名空间下的功能点已勾选MySQL、Oracle和PostgreSQL时，才能同时支持这三种数据库监控，如果命名空间只选择其中一个功能点，则下拉框只显示对应所选的数据库监控。    |
   | 应用名称    | 选择已创建的应用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 监控器名称   | 自定义监控器名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 异常通知设置  | 默认为"关"。 若设置为"开"： - 当监控器或被监控的数据库异常时会及时给用户发送异常通知或告警通知。支持华为云消息通知服务，请先配置密钥。  - 默认将开启云监控，请前往云监控确认是否已[创建MAS事件监控告警规则](https://support.huaweicloud.com/usermanual-mas/mas_03_0063.html)，如已创建请忽略。                                                                      |
   | 通知主题    | 若异常通知设置选择"开"，则需要在通知主题列表选择主题，如无主题列表，单击新增，新增通知主题之后进行后续操作。                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 是否监控    | 默认"是"，选"否"则不会探测数据库异常情况。                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 是否自动切换  | 默认"是"，选"否"则不会自动切换数据库。                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 监控用户名   | 被监控数据库的用户名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | 监控用户密码  | 被监控数据库的用户密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   | 确认密码    | 再次填写监控用户密码。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   | DRS联动   | 默认为"关"。 若设置为"开"，目前仅支持关联DRS实时灾备任务。请先配置密钥，再开启DRS联动。 说明： 数据复制服务（Data Replication Service，简称DRS）是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。DRS实时灾备任务提供的实时灾备功能，可实现主实例和跨区域的灾备实例之间的实时同步。                                                                                                                                                                                                                          |
   | 数据库写入探测 | 默认为"关"。 若设置为"开"，请在监控数据库新建tb_health_hw_mas表，并插入id(varchar 36)，detect_time(varchar 100)列。 注意：id列必须设置为主键。                                                                                                                                                                                                                                                                                                                         |
   | 多活分区    | 选择主备多活分区。多活分区为多活实例所归属的命名空间所创建的分区名称。 说明： 此选项需要打开"DRS联动"才会显示。                                                                                                                                                                                                                                                                                                                                                                 |
   | DRS任务   | 若DRS联动设置为"开"，需要设置DRS任务，任务列表选其一，如无任务列表，单击"新增"，新增DRS实时灾备任务之后进行后续操作。                                                                                                                                                                                                                                                                                                                                                                                                                          |
      
   
   
4. 填写数据中心配置，完成后单击"下一步：数据库配置"。 
   图2新增监控-数据中心配置   
   ![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001352767662.png)
   表3数据中心配置信息 
   | **参数** | **配置说明**      |
   |:---|:---|
   | 云选择    | 被监控的数据库部署的环境。 |
   | 局点     | 被监控数据库所在区域。   |
   | IPv4地址 | 数据库的访问地址和端口。  |
   | 添加读库地址 | 单击添加读库数据库地址。  |
      
   
   
5. 填写数据库配置，完成后单击"下一步：高级配置"。 
   图3新增监控-数据库配置   
   ![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001278799517.png)
   表4数据库配置信息 
   | **参数** | **配置说明**                                                                                                                   |
   |:---|:---|
   | 监控数据库  | 填写监控数据库名称。监控数据库用来探活连接的数据库实例，确认数据库实例连接是否正常。 **请使用独立的监控数据库，不要与业务数据库共用，监控数据库只授权读取类权限，避免产生安全风险。** |
   | 连接数据库  | 填写连接数据库名称。连接数据库是应用实际连接的数据库，支持配置多个，每个数据库可在连接池配置中选择使用不同的路由算法。                                                                |
      
   
   
6. 填写高级配置，完成后单击"下一步：确认配置"。 
   图4新增监控-高级配置   
   ![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001593087330.png)
   表5高级配置信息 
   | **参数**    | **配置说明**                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 重试时间间隔    | 探测异常后，探测重试的时间间隔，以毫秒为单位，默认值3000ms。 输入值必须在1000到300000之间，建议使用默认值。                                                                                                                                                                                        |
   | 数据库访问超时时间 | 访问数据库超时时间，超过这个时间认为一次访问数据库失效，以毫秒为单位，默认值3000ms。 输入值必须在3000到100000之间，建议使用默认值。                                                                                                                                                                            |
   | 监控超时时间    | 一个周期内监控器对数据库探测监控的超时时间，超过这个时间，则认为探测数据库失败，监控状态变为监控异常。 以毫秒为单位，默认值20000ms，输入值必须在12000到1200000之间，建议使用默认值。 说明： 如果您需要修改监控超时时间，监控超时时间建议大于故障时数据中心1的数据同步到数据中心2所需时间，否则切换数据中心后，数据中心2的数据可能存在不完整的情况。 |
      
   
   
7. 确认配置无误后单击"立即创建"，完成创建监控。 
   ![](https://support.huaweicloud.com/usermanual-mas/public_sys-resources/note_3.0-zh-cn.png)
   监控器创建完成后，数据中心的正常监控状态标识为绿色。如果是其他异常状态，可能是监控器信息配置错误或者是监控的数据库本身存在异常，请进行故障排除。
   
   
 
#### 连接池配置
一个数据库实例上面可以创建多个数据库，监控是针对整个数据库实例的监控；连接池是针对每个数据库的连接配置，连接池配置的可选的数据库列表来源于监控配置中的"连接数据库"。支持针对每个数据库配置路由算法（单边读写/单边写本地读）、读库负载均衡算法配置（读写分离时需要）。
创建监控时会自动对第一个连接数据库创建连接池：路由算法为单边读写，无从库，Schema取连接数据库名。当自动创建的连接池不满足需求时，需要手动配置连接池。
1. 登录MAS控制台，在"多活管理"页面单击实例，进入实例控制台。
2. 在页面顶端导航栏选择"监控列表"，单击监控所在行的"更多＞连接池配置"。
3. 在连接池配置页面，填写配置信息，完成后单击"确定"。 
   表6连接池配置 
   | **参数**        | **配置说明**                                                                                                                                                                      |
   |:---|:---|
   | 数据库名          | 创建监控配置的连接数据库名。                                                                                                                                                                |
   | 路由算法          | 选择路由算法，单边读写/单边写本地读。                                                                                                                                                           |
   | 数据源名称         | 自定义数据源名称。                                                                                                                                                                     |
   | 数据库地址         | 数据库的连接地址。                                                                                                                                                                     |
   | Schema        | 需要连接的Schema名称。 Schema即数据库名，Schema默认自动填充的就是上面选择的数据库名，通常情况下用户无需更改。当用户的数据中心1、数据中心2的使用不同的数据库名时，前面填写连接数据库时需要填写一个虚拟的数据库名，通过数据中心1、数据中心2的Schema配置实际的数据库名。 |
   | 负载均衡算法        | 选择负载均衡算法，随机/轮询。                                                                                                                                                               |
   | 添加Data Source | 添加备数据源的配置信息。                                                                                                                                                                  |
      
   
   
 
#### 数据库读写状态配置
目前应用需要接入Java 1.2.6-RELEASE及以上版本的DB-SDK才能支持数据库禁写（不可写）配置。
1. 登录MAS控制台，在"多活管理"页面单击实例，进入实例控制台。
2. 在页面顶端导航栏选择"监控列表"。
3. 单击待修改状态旁的![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001362601977.png)。
   
   图5数据库读写状态配置   
   ![](https://support.huaweicloud.com/usermanual-mas/zh-cn_image_0000001447019276.png)
   
   
4. 在"修改状态"弹窗单击选择所需状态，单击"确定"，完成数据库读写状态设置。 
   表7数据库读写状态配置 
   | 参数   | 配置说明                                                                                                                                                                                                                                                                           |
   |:---|:---|
   | 是否可读 | 数据库是否可读。 - "可读"，数据库状态正常，可以正常读取。  - "不可读"，数据库状态异常，不可读；数据库状态从不可读恢复为可读状态，需要手动配置。   |
   | 是否可写 | 数据库是否可写。 - "可写"，此时可对数据库进行"写"操作。  - "不可写"，此时不可对数据库进行"写"操作。                                |
      
   ![](https://support.huaweicloud.com/usermanual-mas/public_sys-resources/note_3.0-zh-cn.png)
   当活跃为数据中心1，并数据中心1异常时，数据中心1自动切换数据中心2，"可读"自动切为"不可读"；当数据中心1恢复后，单击"回切"按钮，需手动将"不可读"配置为"可读"。
   
   
 
