全部产品
云市场

DBGateway常见问题

更新时间:2018-09-03 11:59:19

DBGateway 常见问题排查手册

1. DBGateway 概述及基本操作

(1)DBGateway 目录结构

DBGateway 安装在 /opt/dbgateway 下。其文件夹目录结构如下所示:

  1. dbgateway
  2. |-- bin
  3. | |-- dbgateway
  4. | \-- dbgateway-manager
  5. |-- conf
  6. | |-- dbgateway.conf
  7. | \-- server.crt
  8. \-- log
  9. |-- dbgateway.err
  10. |-- dbgateway.log
  11. \-- dbgateway_manager.log

bin 目录下包含dbgateway(主程序)及dbgateway-manager(DBGateway管理脚本,用于维护dbgateway)。

conf 目录下包含dbgateway.conf(DBGateway配置文件)及 server.crt(通信公钥)。

log 目录下包含 dbgateway.err(dbgateway错误输出)、dbgateway.log(DBGateway的日志)、dbgateway_manager.log(DBGateway管理脚本日志)

(2)查看 DBGateway 日志

DBGateway 日志文件全路径为:/opt/dbgateway/log/dbgateway.log

日志文件以文本格式存储,因此可以用 vim、tail、cat、less 等常规工具查看日志。

当HDM产品客服或技术人员需要您提供 DBGateway 日志辅助排查问题时,可以使用以下命令查看最近200条日志,并将这些日志复制给客服。

  1. tail -n 200 /opt/dbgateway/log/dbgateway.log

(3)判断 DBGateway 进程是否存活

说明:该小节只用于判断 DBGateway 进程是否存活,无法判断其是否正常工作。

步骤一:在HDM产品页面,DBGateway管理子界面上当前状态显示为“正常”即表示 DBGateway 进程存活。

如DBGateway管理子界面上当前状态非“正常”,按照以下步骤进一步排查。

步骤二:在DBGateway所在服务器上执行以下命令判断。

  1. /opt/dbgateway/bin/dbgateway-manager -d status

进程存活输出样例:

  1. DBGateway is running.

进程不存在输出样例:

  1. DBGateway is dead.

(4)重启 DBGateway

请先按照《(3)判断 DBGateway 进程是否存活》小节判断DBGateway进程状态进而决定重启方式。

  • 情况一:DBGateway 进程存在

    • 重启方式一:在HDM产品页面DBGateway管理功能中,选择对应的DBGateway,“管理” -> “重启”

      restart-dbgateway

    • 重启方式二:手工直接在DBGateway所在的服务器上执行以下命令。

      1. /opt/dbgateway/bin/dbgateway-manager -d restart
  • 情况二:DBGateway 进程不存在

    此时无法在页面上操作,仅支持手工重启。重启方式:在DBGateway所在服务器上执行以下命令。

    1. /opt/dbgateway/bin/dbgateway-manager -d restart

(4)升级 DBGateway

在HDM产品页面DBGateway管理功能中选择对应的DBGateway,点击“管理” -> “升级”。

upgrade-dbgateway

(5)停止 DBGateway

  • 停止方式一:在HDM产品页面DBGateway管理功能中,选择对应的DBGateway,点击“管理” -> “停止”。

    stop-dbgateway

  • 停止方式二:手工直接在DBGateway所在的服务器上执行以下命令。

    1. /opt/dbgateway/bin/dbgateway-manager -d stop

(6)删除 DBGateway

注意:

  • 删除 DBGateway 后,与之相关的数据库实例的HDM所有功能将无法使用

  • 状态为“正常”的DBGateway无法直接删除,请先按照《(5)停止 DBGateway》停止该DBGateway后继续执行删除

步骤一:在HDM产品页面DBGateway管理功能中,选择对应的DBGateway,点击“管理” -> “删除”。

delete-dbgateway

步骤二(可选):在DBGateway所在物理机上删除DBGateway安装目录。

  1. rm -rf /opt/dbgateway

2. DBGateway 部署问题排查

在HDM页面可以获取DBGateway部署命令,下面将以如下部署命令举例,其中vpcID及token仅用于举例,不可使用:

setup-dbgateway

(1)无法下载DBGateway部署脚本

请按照以下可能的原因逐一排查:

  • 报错提示没有wget命令,如果出现以下提示,说明该系统中缺少wget命令

    1. wget command not found

    wget 是Linux常用的下载命令,如遇到缺少wget可以使用以下方式安装

    1. sudo apt-get install wget

    1. yum -y install wget
  • 当前服务器的网络环境是否能连通到阿里云OSS

    取oss域名(在本例中,oss域名为hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com,实际以获取的部署命令为准)并尝试ping

    1. ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com
    • 如遇到域名无法解析,请检查您的DNS解析服务器设置是否正确,且域名解析正常工作

      1. ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com
      2. 提示 unknown host 说明无法解析该域名
    • 如 ping 域名后长时间没有任何输出及返回,说明网络无法连通,请检查:

      • 服务器的网络配置是否正常

      • 服务器所在网络为VPC网络或经典网络,并在页面上正确选择

      • 页面上是否选择了正确的VPC Region(北京、上海、深圳等)

(2)测试与 HDM-Master 是否连通

在本例中,HDM-Master 域名为 master-hdm-cn-hangzhou.aliyuncs.com 举例,实际排查中以获取的部署命令为准,请按照以下步骤排查:

在 DBGateway 所在服务器执行命令:

  1. telnet master-hdm-cn-hangzhou.aliyuncs.com 80
  • 如果返回:

    Name or service not known

    说明域名无法解析,请检查您的DNS解析服务器设置是否正确,且域名解析正常工作

  • 如果返回 Trying ip地址:

    Trying xxx.xxx.xxx.xxx…

    则表示网络不通,请检查:

    • 服务器的网络配置是否正常

    • 服务器所在网络为VPC网络或经典网络,并在页面上正确选择

    • 页面上是否选择了正确的VPC Region(北京、上海、深圳等)

  • 如果返回:

    1. Connected to master-hdm-cn-hangzhou.aliyuncs.com.
    2. Escape character is '^]'.

    则表示连通 HDM-Master 正常。如果 DBGateway 仍然无法启动,需要参考《查看 DBGateway 日志》进一步排查。

3. DBGateway 运行异常排查

(1)验证失败或权限不足

请按照以下可能的原因逐一排查:

  • 确保授权的账号及密码具有以下权限:

    • MySQL

      1. SHOW DATABASES, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.*
      2. SELECT ON mysql.*
      3. SELECT ON performance_schema.*
    • MongoDB

      1. admin数据库,root角色
    • Redis 没有账号概念,因此仅需要保证密码正确

      注意:redis 修改密码时修改其配置文件中requirepass选项并重启Redis服务。请参考《Redis configuration

  • 确保授权的账号及密码正确,建议在DBGateway所在服务器上以授权账号及密码远程连接数据库实例排查

  • 重启 DBGateway 并观察实例授权是否成功

  • 推荐升级到 DBGateway 最新版

(2)无法连接

“无法连接”是由于DBGateway无法连接数据库实例导致的,请按照以下可能的原因逐一排查:

  • 实例正常运行服务

    数据库实例(MySQL、MongoDB、Redis等)如果未正常运行,请检查这些实例的进程是否存在。

  • DBGateway 所在服务器与数据库实例(MySQL、MongoDB、Redis等)网络不通

    请执行以下命令确认:

    1. telnet 数据库实例ip或域名 数据库实例服务端口号
    2. 如: telnet 192.168.100.1 3306

    如出现以下提示,表示网络连接正常,需要进一步参考《查看 DBGateway 日志》继续排查:

    1. Connected to xxxxxx.
    2. Escape character is '^]'.

    如没有出现:Connected to 、Escape character is ‘^]’. 则说明为网络连通性问题,通常由服务器之间网络隔离、路由设置、防火墙或数据库实例拒绝非本地连接导致的。

(3)监控异常

  • 请参考《判断 DBGateway 进程是否存活》小节检查 DBGateway 运行状态

  • 尝试重启 DBGateway 并观察监控是否恢复

  • 推荐升级到 DBGateway 最新版

(4)长时间“已授权,验证中”

一般情况下,正确授权之后1~2分钟之内,实例接入状态会变为“连接正常”。如长时间(超过2分钟)仍然显示“已授权,验证中”。

  • 请参考《判断 DBGateway 进程是否存活》小节检查 DBGateway 运行状态

  • 尝试重启 DBGateway 并观察实例授权是否成功

  • 推荐升级到 DBGateway 最新版