Pivotal Knowledge Base

Follow

gpdbrestore using --truncate option combined with --table-file and --redirect option, truncates the listed tables in the source database

Environment

Product Version
Pivotal Greenplum (GPDB) 4.3.5.x

Symptom

While restoring from the backup using --truncate option combined with --table-file and --redirect option, the tables listed in the file used by --table-file option are truncated on the source database. The restore completes successfully.

Cause

Important parameters involved in the restore command - 

--truncate - Truncate table data before restoring data to the table from the backup. If this option is not specified, existing table data is not removed before data is restored to the table.This option is supported only when restoring a set of tables with the option -T or --table-file.This option is not supported with the -e option.

--table-file - Specify a file that contains a list of table names to restore. The file contains any number of table names, listed one per line.

--redirect database_nameSpecify the name of the database where the data is restored. Specify this option to restore data to a database that is different than the database specified during backup. If database_name does not exist, it is created.

When the --truncate option is specified, a truncate statement is generated for each table listed in the --table-file. When these statements are executed, truncate should be done on tables present in the database where we are redirecting to, instead truncate is done on tables present in the source database.
 
This has been identified as a bug present in 4.3.5.x.
 
Example
In this example, we are restoring database 'source' to database 'destination'. The file contains table name 'public.test_a', which is the table we want to truncate.
 
Before restore operation - 
source=# select count(*) from test_a;
count
-------
10000
(1 row)

Run restore using below command - 

 gpdbrestore  -t 20160115102202 --truncate --table-file table.list --redirect destination

After restore operation - 

source=# select count(*) from test_a;
count
 -------
 0
 (1 row)

Resolution

This has been fixed in version 4.3.6.x.

Related articles

gpdbrestore using --truncate option combined with --table-file option fails with error message "CRITICAL:-gpdbrestore failed."

Read more on gpdbrestore: http://gpdb.docs.pivotal.io/4360/utility_guide/admin_utilities/gpdbrestore.html

Comments

Powered by Zendesk