|
|
|
Ten Centuries
      
Group: General Forum Members
Last Login: Thursday, April 25, 2013 3:04 PM
Points: 1,108,
Visits: 195
|
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Monday, February 04, 2013 7:20 PM
Points: 1,
Visits: 63
|
|
| a nifty little script, I installed the SP on a couple of boxes and straightaway found some little databases no-one cared about enough to monitor that were on 'full recovery' but had no tran-log backups setup.
|
|
|
|
|
Ten Centuries
      
Group: General Forum Members
Last Login: Thursday, April 25, 2013 3:04 PM
Points: 1,108,
Visits: 195
|
|
Hi, that's exactly why i wrote it, people often forget to remove full recovery mode when they copy from a production environment, so it has caused me issues in the past.
Thanks
Paul
|
|
|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Saturday, March 09, 2013 8:39 AM
Points: 144,
Visits: 198
|
|
/* Why are you using temp table and using subquery? A subquery is not as efficient as a join or a derived table or an exists. The latter being the most optimal. This would have been far more efficient in typing and execution.
You have allocated a data type varchar(50) for the database name when this should have been syname or nvarchar(128) as per the system tables that you are refering to. This would fail for database with a name > 50 characters
I would like to have had the date of the last backup if I'm checking. */
DECLARE @num_of_days int
SELECT @num_of_days = 7
SELECT a.[name] ,b.DateLogLastBackedUp ,CASE WHEN b.DateLogLastBackedUp IS NULL THEN 1 ELSE 0 END AS TransactionLogNeverBackedUpIndicator FROM master.dbo.sysdatabases a LEFT JOIN ( -- gets the latest available transaction log backup if exists SELECT database_name ,MAX(backup_start_date) AS DateLogLastBackedUp FROM msdb.dbo.backupset WHERE type = 'L' -- Log backups only AND DATEDIFF(dd,backup_start_date,GETDATE()) > @num_of_days GROUP BY database_name ) b ON a.[name] = b.DateLogLastBackedUp WHERE DATABASEPROPERTYEX(a.[name],'Recovery') = 'FULL'
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: Wednesday, May 15, 2013 1:18 PM
Points: 10,
Visits: 664
|
|
The LEFT JOIN for the derived table in the example from stuart.adair should be on b.database_name (not b.DateLogLastBackedUp):
) b ON a.[name] = b.database_name
|
|
|
|