These are the currently known issues and limitations of gpbackup and gprestore. Where applicable, workarounds are included to help mitigate the impact of these issues.
If you create an index on a parent partitioned table,
gpbackupdoesn't back up that same index on child partitioned tables of the parent, as creating the same index on a child would cause an error. However, if you exchange a partition,gpbackupdoesn't detect that the index on the exchanged partition is inherited from the new parent table. In this case,gpbackupbacks up conflictingCREATE INDEXstatements, which causes an error when you restore the backup set.You can execute multiple instances of
gpbackup, but each execution requires a distinct timestamp.Database object filtering is currently limited to schemas and tables.
When backing up a partitioned table where some or all leaf partitions are in different schemas from the root partition, the leaf partition table definitions, including the schemas, are backed up as metadata. This occurs even if the backup operation specifies that schemas containing the leaf partitions should be excluded. To control data being backed up for this type of partitioned table, use the
--leaf-partition-dataoption.If you use the
gpbackup --single-data-fileoption to combine table backups into a single file per segment, you can't perform a parallel restore operation withgprestore(you can't set--jobsto a value higher than 1).You can't use
--exclude-table-filewith--leaf-partition-data. Although you can specify leaf partition names in a file specified with--exclude-table-file,gpbackupignores the partition names.Backing up a database with
gpbackupwhile simultaneously running DDL commands might causegpbackupto fail, in order to ensure consistency within the backup set. For example, if a table is dropped after the start of the backup operation,gpbackupexits and displays the errorrelation <schema.table> does not exist.gpbackupmight fail when a table is dropped during a backup operation due to table locking issues.gpbackupgenerates a list of tables to back up and acquires an ACCESS SHARE lock on the tables. If an EXCLUSIVE LOCK is held on a table,gpbackupacquires the ACCESS SHARE lock after the existing lock is released. If the table no longer exists whengpbackupattempts to acquire a lock on the table,gpbackupexits with an error. For tables that might be dropped during a backup, exclude the tables from a backup with agpbackuptable filtering option such as--exclude-tableor--exclude-schema.A backup created with
gpbackupcan only be restored to a WarehousePG cluster with the same number of segment instances as the source cluster. If you rungpexpandto add segments to the cluster, backups made before starting the expansion can't be restored after the expansion completes.