Data Domain: DD Boost: DDBMEXPTOOL does not delete expired data when -N is used
Summary: DD Boost for Enterprise Applications: DDBMEXPTOOL does not delete expired data when -N is used.
Symptoms
The backups are not all deleted even though they are expired,
When running DDBPEXPTOOL or the SQL job returns successful however not all backups are not deleted resulting in DD not getting cleaned up
USE [master]
GO
DECLARE @returnCode int
EXEC @returnCode = dbo.emc_run_delete '-e "1 days ago" -k -n mssql -a "DDBOOST_USER = DDBOOST_USER" -a "DEVICE_HOST = DD_HOSTNAME " -a "DEVICE_PATH = /STorage_UNIT" -a "CLIENT = CLient_name" -N "BAckup_Name "'
ddbmexptool -k [-v -D 9 -b <start_save_time> -e <end_save_time> -N <save_set_name>] {-z <config_file> | -a "parameter=value"} -n <application>
When using the following command
ddbmexptool -k [-v -D 9 -b <start_save_time> -e <end_save_time> {-z <config_file> | -a "parameter=value"} -n <application>
Or the T-SQL without -N
USE [master]
GO
DECLARE @returnCode int
EXEC @returnCode = dbo.emc_run_delete '-e "1 days ago" -k -n mssql -a "DDBOOST_USER = DDBOOST_USER" -a "DEVICE_HOST = DD_HOSTNAME " -a "DEVICE_PATH = /STorage_UNIT" -a "CLIENT = CLient_name" '
The expired data are deleted as expected.
Cause
This is caused by the delete command filtering on the name of the backup and only deleting backup's which have the name -N "Backup_Name"'
-N specifies an exact match, not a partial match. So if you are specifying -N "Backup_Name" it ignores anything with a database name appended onto the end.
In the list command returning all the backup's made because did not add a saveset name filter.
USE [master]
GO
DECLARE @returnCode int
EXEC @returnCode = dbo.emc_run_delete '-e "1 days ago" -k -n mssql -a "DDBOOST_USER = DDBOOST_USER" -a "DEVICE_HOST = DD_HOSTNAME " -a "DEVICE_PATH = /STorage_UNIT" -a "CLIENT = CLient_name"'
Resolution
Run the expiry tool or the Maintenance T-SQL Transcript without specifying the -N Parameter.
USE [master]
GO
DECLARE @returnCode int
EXEC @returnCode = dbo.emc_run_delete '-e "1 days ago" -k -n mssql -a "DDBOOST_USER = DDBOOST_USER" -a "DEVICE_HOST = DD_HOSTNAME " -a "DEVICE_PATH = /STORAGE_UNIT" -a "CLIENT = Client_name" '
ddbmexptool -k [-v -D 9 -b <start_save_time> -e <end_save_time> {-z <config_file> | -a "parameter=value"} -n <application>