SQL Backup
Latest version: 7.2
Knowledge Base
Deleting backup history manually
Category: How do I?
Date: 01 Feb 2011
Product: SQL Backup
How can the backup and restore history stored in SQL Backup be removed after a certain period of time?
There are two methods of deleting the backup history:
1. Using SQL Backup, enable the 'Delete old backup history' option available in the SQL Backup GUI->Tools Menu->Option->File Management Tab. SQL Backup will delete the old history depending upon the "Older than" value set.
On servers that run SQL Backup very frequently, there is a known issue where a deadlock occurs because SQL Backup is attempting to retrieve LSN data at the same time a backup history cleanup is taking place. In that circumstance, it's desirable to turn off automatic backup history deletion (as in step 1) and create an independent job to delete the backup history on a less frequent schedule, say once a day.
2. In version 4 of SQL Backup, use the Stored Procedure msdb..sp_delete_backuphistory from Query Analyzer or New Query within SSMS. See the following SQL Server Books On-Line article:
ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/tsqlref9/html/bdb56834-616e-47e4-b942-e895d2325e97.htm
In version 5 of SQL Backup, the history is also cached on the server, so the history deletion must include data in the cache. The following SQL code can be used in a SQL Server scheduled job to delete both the backup history from the MSDB database as well as the local cache file from version 5 of SQL Backup for backup and restore operations that have occurred more than the specified number of days ago.
----------------------------------------------------------------------------------------------------
-- Red-Gate delete old backup history from local (mobile/compact) database
----------------------------------------------------------------------------------------------------
SET NOCOUNT ON
DECLARE @backup_id INT
, @command NVARCHAR(4000)
, @retain_date NVARCHAR(64)
, @IDList VARCHAR(2000)
-- number of days of history that you want to retain
SET @retain_date = GETDATE() - 60
-- temp table for ids we're deleting.
IF OBJECT_ID('tempdb..#DeleteTheseIDs') IS NOT NULL
DROP TABLE #DeleteTheseIDs
CREATE TABLE #DeleteTheseIDs ( id INT )
-- get total from the local(mobile/compact) (this will also show an error if its corrupted)
EXEC [master]..sqbdata N'select COUNT(*) AS TotalBackupRows from backuphistory'
EXEC [master]..sqbdata N'select COUNT(*) AS TotalRestoreRows from restorehistory '
----------------------------------------------------------------------------------------------------
-- delete backup history - standard
----------------------------------------------------------------------------------------------------
-- first do a standard delete
EXEC msdb.dbo.sp_delete_backuphistory @retain_date
----------------------------------------------------------------------------------------------------
-- delete backup history - Red-Gate Cache
----------------------------------------------------------------------------------------------------
-- get all of the ids that we want to delete
SET @command = 'select id from backuphistory where backup_end < ''' + @retain_date + ''''
TRUNCATE TABLE #DeleteTheseIDs
INSERT INTO #DeleteTheseIDs
EXEC [master]..sqbdata @command
SELECT 'Deleteing # Backup ids ' = COUNT(*) FROM #DeleteTheseIDs
-- loop until they're all deleted
WHILE EXISTS (SELECT 1 FROM #DeleteTheseIDs)
BEGIN
-- get next set of ids
-- (do not get too many at a time, otherwise the list will be truncated)
SET @IDList = ''
SELECT TOP 150 @IDList = @IDList
+ CASE WHEN @IDList = '' THEN '' ELSE ',' END
+ CONVERT(VARCHAR(10), id)
FROM #DeleteTheseIDs
ORDER BY id
-- delete history
SET @command = 'delete from backupfiles where backup_id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
SET @command = 'delete from backuplog where backup_id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
SET @command = 'delete from backuphistory where id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
-- delete from temp file
SET @Command = 'DELETE FROM #DeleteTheseIDs where id IN (' + @IDList + ')'
EXEC (@Command)
END
----------------------------------------------------------------------------------------------------
-- delete restore history - Red-Gate Cache
----------------------------------------------------------------------------------------------------
-- get all of the ids that we want to delete
SET @command = 'select id from restorehistory where restore_end < ''' + @retain_date + ''''
TRUNCATE TABLE #DeleteTheseIDs
INSERT INTO #DeleteTheseIDs
EXEC [master]..sqbdata @command
SELECT 'Deleting # Restore ids ' = COUNT(*) FROM #DeleteTheseIDs
-- loop until they're all deleted
WHILE EXISTS (SELECT 1 FROM #DeleteTheseIDs)
BEGIN
-- get next set of ids
SET @IDList = ''
SELECT TOP 200 @IDList = @IDList
+ CASE WHEN @IDList = '' THEN '' ELSE ',' END
+ CONVERT(VARCHAR(10), id)
FROM #DeleteTheseIDs
ORDER BY id
-- delete history
SET @command = 'delete from restorefiles where restore_id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
SET @command = 'delete from restorelog where restore_id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
SET @command = 'delete from restorehistory where id IN (' + @IDList + ')'
EXEC [master]..sqbdata @command
-- delete from temp file
SET @Command = 'DELETE FROM #DeleteTheseIDs where id IN (' + @IDList + ')'
EXEC (@Command)
END
SELECT 'Done.'
Document ID: KB200801000214 Keywords: sp_delete_backuphistory,delete,backup,restore,history,deadlock
Was this article helpful?
SQL Backup
- Backups stop working when the SQL account passwords are changed
- Backups and restores taking longer each time they run
- Improving performance by leveraging multi-processor hardware
- Checking the status of a backup or restore
- SQL Backup Agent doesn't start on named instance
- No backup files are erased when the verify option is also used
- Log shipping initialisation failing with error 3176
- Installing SQL Backup unattended
- Issues faced when upgrading an MSCS cluster server
- Cannot schedule log shipping on case-sensitive servers
- Activation fails because response does not match registration properties
- SQL error -1 on backup with 64-bit
- Could not find procedure 'master...sqbutility'
- 'Does not exist' error manually creating a generic service resource
- Backing up log shipping standby databases
- Stopping a backup or restore whilst in progress
- Backing up full-text catalogs using SQL Backup
- Cannot resolve collation conflict
- Microsoft cluster installation (version 4)
- Informing the SQL Agent of job failures
- Database log files may continue to grow even though transaction logs are backed up
- Cannot load xp_sqlbackup.dll
- Minimum Windows Rights Required for SQL Backup Agent
- Bringing a log shipping standby database online
- Console does not support editing the command you selected
- Malformed database disk image error
- Cannot use a local account to run SQL Backup Agent on cluster
- Preparing SQL Servers for remote installation
- SQL error 18210 and VDI error 1010
- Log shipping jobs not deleting old .sqb files
- Scheduled backups may not include new databases
- VDI error 1010 due to an abort request
- Cannot save or see backup templates
- Not all databases appear in the log shipping wizard
- No mapping between account names and security IDs was done
- SQL error 3101 (database is in use) during log shipping
- Insufficient quota to complete the requested service
- Configuring SQL Server procedure memory
- Backing up and restoring on SQL Server Express Edition
- Cannot run two database backups at the same time
- Restoring database backups across a local network
- In some situations the last compressed data block fails to be written to disk
- Configuring permissions for the SQL Backup Agent service
- Restoring backups from one server to a second server using the user interface
- Using SQL Backup tags to automate backup file naming
- VDI 1010 Error
- SQL Backup 5 cannot connect to servers running SQL Backup 4.0
- Files are created when NOWRITE or NOCOMPRESSWRITE is used in conjunction with multiple threads
- Cannot backup a database when full-text catalogs are not online
- Moving a full-text catalog on RESTORE
- Preventing backups over the network from timing out
- Deleting backup history manually
- SQL Backup installation from SQL Toolbelt installer only installs the console
- Console taking a long time to start up
- Reporting across multiple servers, login fails for user NT AUTHORITY\ANONYMOUS LOGON
- SQL Backup Agent cannot start due to account lookup error
- IO Error on backup or restore restart-checkpoint file
- Unable to edit SQL Backup Scheduled Jobs via the Jobs Tab in the SQL Backup GUI (version 5)
- VDI error 1000 caused by improperly installed VDI interface
- VDI Error 1000 caused by account lookup failure
- VDI error 1000 caused by insufficient permissions
- Error 193: %1 is not a valid Win32 application.
- Installing SQL Backup on a cluster
- Restoring the SQL Server MASTER database
- VDI Error 1010: Failed to get the configuration from the server because the timeout interval has elapsed
- Changing the default data location used by SQL Backup
- Index was outside the bounds of the array error during registration
- Repairing the SQL Backup server-side data store
- Troubleshooting slow backup and restore tasks
- Completed backup jobs showing "in progress" status (version 5)
- Restore wizard: files incorrectly labeled 'Missing' when browsing for a backup file to restore.
- When creating a backup job using the wizards some of the user databases may not be listed
- How to restore a filegroup
- System error 1453 while backing up (Insufficient quota to complete the requested service)
- SQL Backup VDI 1030: Failed to create VirtualServiceSet component
- Backups fail on named instances on custom ports
- SQL error 3101 (database is in use) during full database restore
- Error acquiring mutex occurring during use
- Transaction log continually growing on disaster recovery database
- Reseeding a disaster recovery database
- SMTP mail options not being saved
- SQL Backup Activation NullReferenceException Error
- Scheduling SQL Backup restore jobs
- SQL Backup Error 880: permission denied in database
- Deleting remote backup files after a specified time period (version 5)
- SQL Backup Unable to Login to Perform Backup or Restore
- Restore operation errors with exitcode 680
- "Failed to initialize local data store" error
- Trouble browsing network shares when backing up or restoring
- System error 32 (The process cannot access the file because it is being used by another process)
- Log backup failing because there is no current database backup
- Error locating server or instance of SQL Server
- How to set up log shipping between machines on different domains
- SQL Backup and CPU affinity
- SQL Backup mirrored backups
- Error trying to run backup job
- "Access to the database file is not allowed" error
- The server principal NT AUTHORITY\SYSTEM is not able to access the database
- Browsing while using SQL Server authentication is disabled on the selected server
- Cannot generate SSPI context message
- Log ship to multiple servers
- File browser does not work for remote servers
- Configuring Log Shipping to two Target Databases
- Previous backups not deleted according to ERASEFILES setting
- SQL Backup Reporting fails after upgrading to Version 6 from Version 5 for Multiple
- VDI error 1010 error on log backup when no backup is available
- SQL Backup failed with exit code: 1010 SQL error code: 3101 [SQLSTATE 42000] (Error 50000). The step failed.
- Log backup for a database failing to get copied to the log shipping share
- Mirrorfile backup jobs producing corrupt files
- Activity monitor showing sqlbackup status as wait type MSQL_XP
- Backup and restore processes using high percentage of CPU resources
- Warning 485: File does not exist encountered during a restore (but the process completes successfully)
- Log Shipping error 130 when moving restored file
- SQL Backup "Warning 110" generated
- Attempting to restore data into a SQL Express database that exceeds limit
- SQL error 3241 when restoring database
- A nonrecoverable I/O error encountered on Backup or restore operation
- SQL error 15404
- General log-in problem: Login failed for user '(null)'. Reason: Not associated with a trusted SQL Server connection.
- Warning: System error 1450 when Backing up
- Problems with "Auto-Close" option set when backing up
- Warning: System error 64 (The specified network name is no longer available) on backing up across a network
- SQL error 4208 encountered on backing up
- Warning 170: "Log files are not in sequence" - on log shipping (restore) operation
- Warning: System error 121 (The semaphore timeout period has expired)
- Changing your participation in the quality improvement program
- Installing SQL Backup server components unattended
- Changing your participation in the quality improvement program
- Verifying backups of the master database
- Log files
all SQL products
- Compatibility of Red Gate tools in 64-bit environments
- Application has encountered an error and needs to close
- Error message after installing SQL Toolbelt - The description for Event ID ( 1 ) in Source ( nview_info ) cannot be found.
- Changing the temporary directory used by the installer
- Toolbelt Installer "hanging" while "scanning volumes"
- Login failing with "trusted SQL Server connection" error when using RunAs
all products
- Some Red Gate products identified as containing a trojan by Anti-Virus software
- Activation may fail with Unknown Error -1
- Product uses web help although a CHM file is available locally
- Argument exception resulting from missing environment variable
- Check for updates may fail when used through proxies
- 'Unidentified Publisher' error when repairing or uninstalling
- Licensing activates product as standard edition
- Moving Red Gate software products to another machine
- Red Gate tools log locations
- The application UI opening slowly when there is no internet access
SQL Backup
- Getting help offline
- Using SQL Backup to back up to a network share
- Manually installing SQL Backup server components on clusters (Windows Server 2003)
- Manually installing SQL Backup server components on clusters (Windows Server 2008)
- Using SQL Backup log shipping to maintain a standby server
- SQL Backup release notes - version 6.xx
- SQL Backup release notes - version 7.xx
- Working with the new features in SQL Backup 6
- Using flexible licensing with SQL Backup Pro and SQL HyperBac
- Using SQL Backup Pro and SQL HyperBac together on the same server
all SQL products
all products
- Red Gate product acknowledgements
- Activating your products
- Activating your products
- Red Gate bundle history
- Check for updates
- Troubleshooting Check for Updates errors
- Current versions
- Deactivating your products
- Installing Red Gate products from the .msi file
- Requesting additional activations
- Serial numbers for bundles
- Reactivating using a different serial number
- Extending your trial
- Finding your serial numbers
- Moving a serial number from one computer to another
- No response received for manual activation
- Licensing and activation resources
- Licensing and activation resources
- Troubleshooting licensing and activation errors
- Licensing and activation FAQs
- Red Gate tools log file locations
- Download old versions of products
- Download product prerequisites & utilities
- Support & upgrades
- Upgrading your software
- Upgrading FAQs

Installing or upgrading SQL Backup