Pivotal Knowledge Base

Follow

GPCRONDUMP Backup to DDBOOST Error "Permission denied: '/data'"

Environment

  • Pivotal Greenplum Database 4.3.x
  • Operating System- Red Hat Enterprise Linux 6.x
  • Data Domain 5.x

Symptom

Backup to Data Domain via DDBOOST fails with the error message:

[ERROR]: -Could not create directory /data/col1/GreenPlum/20170526

The backup command is as below:

gpcrondump with args: -x PRUDB -z -v --ddboost-host 10.171.82.72 --ddboost-user ddboost-admin --ddboost-backupdir /data/col1/Greenplum.

The complete error message looks like the following:

20170526:11:17:24:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB' 
20170526:11:17:24:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:25:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:26:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:27:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:28:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:29:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:30:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting DumpDatabase
20170526:11:17:30:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting ValidateDumpDatabase
20170526:11:17:30:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting ValidateDatabaseExists
20170526:11:17:30:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Connecting to dbname='PRUDB'
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending ValidateDatabaseExists
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting ValidateCluster
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending ValidateCluster
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting ValidateAllDumpDirs
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting ValidateDumpDirs
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting CheckDir
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending CheckDir
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[INFO]:-Directory /data/col1/GreenPlum/20170526 not found, will try to create
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Starting MakeDir
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending MakeDir
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[ERROR]:-Could not create directory /data/col1/GreenPlum/20170526
Traceback (most recent call last):
File "/GPDB/greenplum-db/lib/python/gppylib/operations/dump.py", line 1002, in execute
MakeDir(path).run()
File "/GPDB/greenplum-db/lib/python/gppylib/operations/__init__.py", line 53, in run
self.ret = self.execute()
File "/GPDB/greenplum-db/lib/python/gppylib/operations/unix.py", line 106, in execute
return os.makedirs(self.path)
File "/GPDB/greenplum-db/./ext/python/lib/python2.6/os.py", line 150, in makedirs
makedirs(head, mode)
File "/GPDB/greenplum-db/./ext/python/lib/python2.6/os.py", line 150, in makedirs
makedirs(head, mode)
File "/GPDB/greenplum-db/./ext/python/lib/python2.6/os.py", line 150, in makedirs
makedirs(head, mode)
File "/GPDB/greenplum-db/./ext/python/lib/python2.6/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/data'
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending ValidateDumpDirs
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending ValidateAllDumpDirs
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending ValidateDumpDatabase
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending DumpDatabase
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[DEBUG]:-Ending GpCronDump
20170526:11:17:31:063528 gpcrondump:mdw:gpadmin-[ERROR]:-gpcrondump error: Could not create /GPDB_DATA/master/gpseg-1 on master. Cannot continue.

Attempting to use account "ddboost-admin" to create the folder under the directory "/data/col1/Greenplum" on DD server (host 10.171.82.72) as shown below:

DDBoost_createdirectory_26052017.png

The configuration of DDBOOST on the client side is shown here:

[gpadmin@mdw ~]$ gpcrondump --ddboost-show-config
20170529:16:05:50:021336 gpcrondump:mdw:gpadmin-[INFO]:-Starting gpcrondump with args: --ddboost-show-config
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:-DDBoost Server Configuration Details.
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:------------------------------------------------------
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:-Default Backup Directory:/data/col1/Greenplum
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:-Data Domain Storage Unit:GPDB
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:-Data Domain default log level:WARNING
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:-Data Domain default log size:50
20170529:16:05:51:021336 gpcrondump:mdw:gpadmin-[INFO]:------------------------------------- 

Resolution

  • The gpddboost --show-config seems to indicate the 'Default Backup Directory:/data/col1/Greenplum'
  • The solution for this issue is to use the relative path instead of the absolute path for '--ddboost-backupdir'
  • Try to change it to 'Default Backup Directory: data/col1/Greenplum'. Notice that '/' is removed before the data. 
  • Now try to backup to DDBOOST again

Comments

  • Avatar
    alex jiang

    I think there is a misunderstanding of the mean of the`Default Backup Directory`;

    `/data/col1/` is a prefix for the datadomain storage-unit(aka mtree); in our guide, it says as below:

    ```
    To set up credentials, run gpcrondump with the following options:

    --ddboost-host ddboost_hostname --ddboost-user ddboost_user
    --ddboost-backupdir backup_directory --ddboost-storage-unit storage_unit_ID

    The --ddboost-storage-unit is optional. If not specified, the storage unit ID is GPDB.
    ```

    So, we just need to set up a folder name for it and if the storage unit ID is not specified, it would be shown as GPDB. For example, if we set the `backupdir` to 'test123', it would be backed up to DD's storage unit GPDB's folder test123. The full path in DD would be(needs to be logged in bash mode in DD):

    ```
    /data/col1/GPDB/test123
    ```

Powered by Zendesk