۱۳۸۷/۰۸/۱۵

گزارشگيري از تاريخچه‌ي پشتيبان‌گيري‌ها در اس كيوال سرور


آيا مي‌دانيد آخرين باري كه از يك ديتابيس مفروض بك‌آپ گرفته شده، چه زماني بوده است؟ (يا اينكه اصلا چه اهميتي داره؟!)

USE master;
SELECT B.name AS Database_Name,
ISNULL(STR(ABS(DATEDIFF(day, GetDate(),
MAX(Backup_finish_date)))), 'NEVER') AS DaysSinceLastBackup,
ISNULL(CONVERT(char(10), MAX(backup_finish_date), 101), 'NEVER') AS
LastBackupDate
FROM master.dbo.sysdatabases B
LEFT OUTER JOIN msdb.dbo.backupset A
ON A.database_name = B.name
AND A.type = 'D'
GROUP BY
B.Name
ORDER BY
B.name


همانطور كه مطلع هستيد در SQL Server 2008 امكان فشرده سازي خودكار بك آپ‌ها هم فراهم شده است. با استفاده از اسكريپت زير مي‌توان از درصد فشرده سازي بك‌آپ‌ها گزارش گرفت:
SELECT bs.server_name,
bs.database_name AS 'Database Name',
CONVERT (BIGINT, bs.backup_size / 1048576 ) AS
'Uncompressed Backup Size (MB)',
CONVERT (BIGINT, bs.compressed_backup_size / 1048576 ) AS
'Compressed Backup Size (MB)',
CONVERT (NUMERIC (20,2), (CONVERT (FLOAT, bs.backup_size) /
CONVERT (FLOAT, bs.compressed_backup_size))) AS 'Compression Ratio',
DATEDIFF (SECOND, bs.backup_start_date, bs.backup_finish_date) AS
'Backup Elapsed Time (sec)',
bs.backup_finish_date AS 'Backup Finish Date'
FROM msdb.dbo.backupset AS bs
WHERE DATEDIFF (SECOND, bs.backup_start_date, bs.backup_finish_date) > 0
AND bs.backup_size > 0
AND bs.type = 'D' -- Change to L if you want Log backups
ORDER BY
bs.backup_finish_date DESC




براي فعال سازي گزينه فشرده سازي بك‌آپ‌ها با استفاده از دستورات T-SQL مي‌توان به صورت زير عمل كرد (در SQL server 2008):
USE master;
EXEC sp_configure 'backup compression default', '1';
RECONFIGURE WITH OVERRIDE;



ماخذ مورد استفاده:
http://www.sqlservercentral.com