GBase 8a
备份恢复
文章

在某麒麟V10 ARM环境下 GBase8a数据库备份脚本gcrcman指定P参数导致报错(拒绝访问)问题的解决方案

发表于2025-12-29 11:10:0240次浏览1个评论

1.问题描述:


在执行 gcrcman 备份脚本时,我们按照标准命令传入了大写 -P 参数(用于指定操作系统用户 gbase 的密码):

python gcrcman.py -U gbase -p GBase2O11O531 -P Kylin@2025Kylin@2025 -d /data/bak1225

但脚本却报错:“拒绝访问”(Access denied)。

 

2.问题分析:
 

经过多轮测试,我们发现:在 标准 x86 环境 和 其他 ARM 环境 下,该命令可以正常运行。
但在该环境(麒麟V10 ARM)中,即使密码完全正确,依然报错。
进一步排查后确认:该环境中的 gbase 操作系统用户已配置为免密登录。
然而,脚本内部仍尝试通过 -P 参数传递密码进行身份验证,由于未知原因,导致传递的密码未被正确使用,导致“拒绝访问”。
 

3. 解决方案:

 

针对这一特殊情况,我们采取了以下两项调整措施:

(1) 修改脚本逻辑
定位到脚本文件 gcrcman_br_node.py,其中包含通过 -P 参数向远程节点传递操作系统密码的代码段。

由于当前环境已实现免密,我们可以安全地注释或屏蔽相关密码传递逻辑,避免脚本尝试使用密码认证。

注意:此修改仅适用于明确已配置免密的环境,切勿在生产通用脚本中随意删除认证逻辑!

(2) 调整备份命令
备份命令转变为:直接不传 -P 参数。
修改后的标准备份命令如下:

python gcrcman.py -U gbase -p GBase2O11O531 -d /data/bak1225

去掉 -P Kylin@2025Kylin@2025 后,脚本不再尝试密码认证,转而依赖系统已有的免密机制,成功完成备份任务。

 

评论

登录后才可以发表评论
半夏发表于 2个月前
向大佬学习