DBGateway 常见问题排查手册。
DBGateway 概述及基本操作
- DBGateway 目录结构
dbgateway |-- bin | |-- dbgateway | \-- dbgateway-manager |-- conf | |-- dbgateway.conf | \-- server.crt \-- log |-- dbgateway.err |-- dbgateway.log \-- 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管理脚本日志)。
- 查看 DBGateway 日志
DBGateway 日志文件全路径为:/opt/dbgateway/log/dbgateway.log
日志文件以文本格式存储,因此可以用 vim、tail、cat、less 等常规工具查看日志。
当 DAS 产品客服或技术人员需要您提供 DBGateway 日志辅助排查问题时,可以使用以下命令查看最近200条日志,并将这些日志复制给客服。
tail -n 200 /opt/dbgateway/log/dbgateway.log
- 判断 DBGateway 进程是否存活
- 在 DAS 产品页面,DBGateway管理子界面上当前状态显示为“正常”即表示 DBGateway 进程存活。
- 如DBGateway管理子界面上当前状态非“正常”,按照以下步骤进一步排查。在DBGateway所在服务器上执行以下命令判断。
/opt/dbgateway/bin/dbgateway-manager -d status
说明 该小节只用于判断 DBGateway 进程是否存活,无法判断其是否正常工作。进程存活输出样例:
DBGateway is running.
进程不存在输出样例:
DBGateway is dead.
- 重启 DBGateway
说明 请先按照《(3)判断 DBGateway 进程是否存活》小节判断DBGateway进程状态进而决定重启方式。
- DBGateway 进程存在
-
在 DAS 产品页面DBGateway管理功能中,选择对应的DBGateway,
。 - 手工直接在DBGateway所在的服务器上执行以下命令:
/opt/dbgateway/bin/dbgateway-manager -d restart
-
- DBGateway 进程不存在
此时无法在页面上操作,仅支持手工重启。重启方式:在DBGateway所在服务器上执行以下命令:
/opt/dbgateway/bin/dbgateway-manager -d restart
- DBGateway 进程存在
- 升级 DBGateway
在 DAS 产品页面DBGateway管理功能中选择对应的DBGateway,点击
。 - 停止 DBGateway
-
在 DAS 产品页面DBGateway管理功能中,选择对应的DBGateway,点击
。 - 手工直接在DBGateway所在的服务器上执行以下命令。
/opt/dbgateway/bin/dbgateway-manager -d stop
-
- 删除 DBGateway
说明
- 删除 DBGateway 后,与之相关的数据库实例的 DAS 所有功能将无法使用。
- 状态为“正常”的DBGateway无法直接删除,请先按照《(5)停止 DBGateway》停止该DBGateway后继续执行删除
- 在 DAS 产品页面DBGateway管理功能中,选择对应的DBGateway,点击
- (可选)在DBGateway所在物理机上删除DBGateway安装目录。
rm -rf /opt/dbgateway
DBGateway 部署问题排查
在 DAS 页面可以获取DBGateway部署命令,下面将以如下部署命令举例,其中vpcID及token仅用于举例,不可使用:

- 无法下载DBGateway部署脚本
请按照以下可能的原因逐一排查:
- 报错提示没有wget命令,如果出现以下提示,说明该系统中缺少wget命令。
wget command not found
wget 是Linux常用的下载命令,如遇到缺少wget可以使用以下方式安装:
sudo apt-get install wget
或
yum -y install wget
- 当前服务器的网络环境是否能连通到阿里云OSS
取OSS域名(在本例中,OSS域名为hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com,实际以获取的部署命令为准)并尝试ping。
ping hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com
- 如遇到域名无法解析,请检查您的DNS解析服务器设置是否正确,且域名解析正常工作。
ping: unknown host hdm-dbgateway-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com #提示 unknown host 说明无法解析该域名
- 如 ping 域名后长时间没有任何输出及返回,说明网络无法连通,请检查:
- 服务器的网络配置是否正常。
- 服务器所在网络为VPC网络或经典网络,并在页面上正确选择。
- 页面上是否选择了正确的VPC Region(北京、上海、深圳等)。
- 如遇到域名无法解析,请检查您的DNS解析服务器设置是否正确,且域名解析正常工作。
- 报错提示没有wget命令,如果出现以下提示,说明该系统中缺少wget命令。
- 测试与 HDM-Master 是否连通
在本例中,HDM-Master 域名为 master-hdm-cn-hangzhou.aliyuncs.com 举例,实际排查中以获取的部署命令为准,请按照以下步骤排查:
在 DBGateway 所在服务器执行命令:
telnet master-hdm-cn-hangzhou.aliyuncs.com 80
- 如果返回Name or service not known,说明域名无法解析,请检查您的DNS解析服务器设置是否正确,且域名解析正常工作。
- 如果返回 Trying IP地址:
Trying xxx.xxx.xxx.xxx…
,则表示网络不通,请检查:- 服务器的网络配置是否正常。
- 服务器所在网络为VPC网络或经典网络,并在页面上正确选择。
- 页面上是否选择了正确的VPC Region(北京、上海、深圳等)。
- 如果返回如下内容:
Connected to master-hdm-cn-hangzhou.aliyuncs.com. Escape character is '^]'.
表示连通 HDM-Master 正常。如果 DBGateway 仍然无法启动,需要参考《查看 DBGateway 日志》进一步排查。
DBGateway 运行异常排查
- 验证失败或权限不足
请按照以下可能的原因逐一排查:
- 确保授权的账号及密码具有以下权限:
- MySQL
SHOW DATABASES, PROCESS, REPLICATION SLAVE, REPLICATION CLIENT ON *.* SELECT ON mysql.* SELECT ON performance_schema.*
- MongoDB
admin数据库,root角色
- Redis 没有账号概念,因此仅需要保证密码正确
Redis 修改密码时修改其配置文件中requirepass选项并重启Redis服务。请参考Redis configuration。
- MySQL
- 确保授权的账号及密码正确,建议在DBGateway所在服务器上以授权账号及密码远程连接数据库实例排查。
- 重启 DBGateway 并观察实例授权是否成功。
- 推荐升级到 DBGateway 最新版。
- 确保授权的账号及密码具有以下权限:
- 无法连接
无法连接是由于DBGateway无法连接数据库实例导致的,请按照以下可能的原因逐一排查:
- 实例正常运行服务
数据库实例(MySQL、MongoDB、Redis等)如果未正常运行,请检查这些实例的进程是否存在。
- DBGateway 所在服务器与数据库实例(MySQL、MongoDB、Redis等)网络不通
请执行以下命令确认:
telnet 数据库实例IP或域名 数据库实例服务端口号 如: telnet 192.168.100.1 3306
如出现以下提示,表示网络连接正常,需要进一步参考《查看 DBGateway 日志》继续排查:
Connected to xxxxxx. Escape character is '^]'.
如没有出现,则说明为网络连通性问题,通常由服务器之间网络隔离、路由设置、防火墙或数据库实例拒绝非本地连接导致的。
- 实例正常运行服务
- 监控异常
- 请参考《判断 DBGateway 进程是否存活》小节检查 DBGateway 运行状态。
- 尝试重启 DBGateway 并观察监控是否恢复。
- 推荐升级到 DBGateway 最新版。
- 长时间
已授权,验证中
一般情况下,正确授权之后1~2分钟之内,实例接入状态会变为“连接正常”。如长时间(超过2分钟)仍然显示
已授权,验证中
。- 请参考《判断 DBGateway 进程是否存活》小节检查 DBGateway 运行状态。
- 尝试重启 DBGateway 并观察实例授权是否成功。
- 推荐升级到 DBGateway 最新版。