السلام عليكم ورحمة الله وبركاته ...
من أحدى الواجبات اليومية لمسؤول قواعد البيانات Database Administrator هي التأكد من أخذ نسخة إحتياطية بشكل يومي ...
و عندما يكون لديك عدد كبير من قواعد الييانات في سيرفرات مختلفه، تصبح هذه العملية أصعب و تستهلك وقت من الممكن أن يستهلك في أمور أكثر أهمية. فلابد من الذهاب عن طريق الـ SQL Server Management Studio و الربط بالسيرفر المطلوب، و من ثم استعراض مجموعة قواعد البيانات الموجودة لديك، و من ثم بزر الفأرة اليمين و تختار خصائص "Properties" ... و تعمل هذه الطريقة لكل قاعدة بيانات موجودة.
و من خلال تجولي في الإنترنت وجدت كود كتبه أحد المهتمين بمجال الـ Database Adminstration بحيث يعرض لك اسم قاعدة البيانات الموجودة في الـ Instance و كم عدد الأيام منذ آخر نسخة إحتياطية تم أخذها، و تاريخ آخر نسخة إحتياطية لقاعدة البيانات، كما هو معروض في الشكل أدناه.
اضغط على الصورة لتكبيرها
و هذا هو الكود:
/*
usc_Show_Last_Backup.sql
Author: Joseph Sack (6/13/2000)
Edited By: Buck Woody
Purpose: Shows the last time the databases were backed up.
*/
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
أتمنى أن يكون هذا الموضوع مفيداً بالنسبة لك...
كما أعدكم إن شاء الله تعالى أن أتكلم عن المهام اليومية التي من المفترض أن يقوم بها مسؤول قواعد البيانات Database Administrator لأي منشأه.
مع تحياتي ... طلال السبيعي.