暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GaussDB T 备份工具GaussRoach.py 报错:NoneType object has no attribute endswith

原创 章芋文 2020-01-01
3423

问题描述

运行华为GaussDB T 备份工具Roach时报错如下:

[omm@pr7 roach]$ python GaussRoach.py -h Traceback (most recent call last): File "GaussRoach.py", line 27, in <module> import util.GSroachCommon as RoachCommon File "/opt/software/roach/util/GSroachCommon.py", line 23, in <module> from util.GSroachConfig import RConfig,ClusterStatus File "/opt/software/roach/util/GSroachConfig.py", line 13, in <module> ROACH_INI = os.path.join(ROACH_HOME,"conf","roach.ini") File "/usr/lib64/python2.7/posixpath.py", line 77, in join elif path == '' or path.endswith('/'): AttributeError: 'NoneType' object has no attribute 'endswith' [omm@pr7 roach]$ python GaussRoach.py -h Traceback (most recent call last): File "GaussRoach.py", line 27, in <module> import util.GSroachCommon as RoachCommon File "/opt/software/roach/util/GSroachCommon.py", line 23, in <module> from util.GSroachConfig import RConfig,ClusterStatus File "/opt/software/roach/util/GSroachConfig.py", line 15, in <module> g_logger = GaussLog(os.path.join(log_path,DEFAULT_LOG_PATH,LOG_FILE_NAME)) File "/usr/lib64/python2.7/posixpath.py", line 77, in join elif path == '' or path.endswith('/'): AttributeError: 'NoneType' object has no attribute 'endswith'

请问如何解决?

专家解答

查看/opt/software/roach/util/GSroachConfig.py相关行代码如下:

log_path = DefaultValue.getPathFileOfENV("GAUSSLOG") ROACH_INI = os.path.join(ROACH_HOME,"conf","roach.ini") g_logger = GaussLog(os.path.join(log_path,DEFAULT_LOG_PATH,LOG_FILE_NAME))

这个问题是gaussdb脚本和Python版本不兼容的问题,Python 2.7 调用posixpath.py 在对路径进行拼接的时候,如果发现有些路径为空,就出现了这个报错。

所以根据以上至少需要设置GAUSSLOG和ROACH_HOME两个环境变量,就可以正常打开了。

[omm@pr7 roach]$ export ROACH_HOME=/opt/software/roach [omm@pr7 roach]$ export GAUSSLOG=/opt/software/roach/log [omm@pr7 roach]$ python GaussRoach.py -h [GAUSS-51800] : The environmental variable GAUSSHOME is empty.

另外需要设置GAUSSHOME环境变量即可正常使用。

[omm@pr7 roach]$ export GAUSSHOME=/opt/gaussdb/app [omm@pr7 roach]$ python GaussRoach.py -h GaussRoach.py is a utility to backup GaussDB100 to NBU/disk and restore GaussDB100 from NBU/disk. Usage: python GaussRoach.py -h | --help python GaussRoach.py -v | --version python GaussRoach.py -t start python GaussRoach.py -t backup [options] python GaussRoach.py -t restore [options] python GaussRoach.py -t stop python GaussRoach.py -t delete [options] python GaussRoach.py -t show [options] python GaussRoach.py -t validate [options] Common options: -t The step of GaussRoach, include config, clean and start,backup,restore,delete,stop -h --help Show this help, then exit -v --version Display the current roach version. --master-port <master port> The port in which master roach should be started. --media-type <media type> Mention type of media either disk or NBU --media-destination <media destination> The path or policy that should be used for backup/restore as per media-type. --metadata-destination <path-name> The path where the metadata file is to be kept in backup --group backup,restore,start database group in SingleService --nbu-policy <nbu policy> The NBU policy that should be used for backup/restore. --nbu-schedule <nbu schedule> The NBU schedule that should be used for backup/restore. Options for backup --compression-level The compression level that should be used for backup. --compression-mode The compression mode that should be used for backup. --archivelog Backup archive log --prior-backup-key Previous Full Backup key to be considered as the base for Incremental Backup Options for Restore --backup-key <backup key> The key for restoring. --clean For cluster restore,performs clean up activity internally. --restore-new-cluster Restore data to new cluster --archivelog Restore archive log --restore-target-time Time(<=) to be used for restore, format '<YYYY-MM-DD HH:MM:SS>' Options for Show --all-backups Show complete backup catalogue information. Default action if no option given. --backup-key <backup_key> Show restore path upto a given backup key. Options for Validate --backup-key <backup key> The key for validate. Options for Delete --cascade To delete all descendant backups of the provided backup key. ### Refer user manual for more details ###
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论