« לעמוד בלוג ראשי

איך לנהל גיבויי בסיס נתונים?

ניהול יעיל של גיבויי בסיסי הנתונים שלך הכרחי למערכת שלך מכיוון שבלעדיהם לא תוכל לשחזר את המערכת שלך במקרה של אובדן נתונים או שיבושם וגם לא לעקוב אחר שינויים בנתונים שלך במהלך הזמן, לכן אתה חייב לוודא שבסיסי הנתונים שלך מגובים על בסיס קבוע, כאשר כל בסיס נתונים מגובה על פי מדיניות המתאימה הן לתפקיד בסיס הנתונים במערכת והן בהתאם לצרכים הארגוניים שלך.
בדרך כלל אנו משתמשים בתוכניות תחזוקה של שרת הSQL או בתוכנת Third Party ליצירת תוכניות גיבוי ובנוסף לכך משתמשים בתוכנת Third Party לניטור בסיס הנתונים.
אלו התקני הגיבוי השכיחים ביותר:

  • כונן קשיח מקומי
  • טייפ גיבוי
  • התקן רשת

כדי לוודא שהגיבוי הסתיים בהצלחה רוב מנהלי בסיסי הנתונים מגדירים שליחת email אוטומאטית במקרה של כשלון Job ובודקים תדיר האם נתקבלו emailים כאלה, כך הם יודעים מתי נכשל גיבוי. אף על פי כן, זו אינה הדרך הנכונה ביותר לפעול מכיוון שתהליך גיבוי עלול להיתקע מסיבות שונות ואז לא יתקבל סטאטוס הצלחה ואף לא סטאטוס כשלון ומעקב email לא יתריע על מצב כזה, לכן יש צורך לוודא שהגיבויים אכן הצליחו ולא להסתפק במעקב אחר הודעות כישלון.

כיצד לבדוק אם גיבוי בסיס הנתונים שלי הסתיים בהצלחה:

  • האם גיבויי בסיסי הנתונים שלי מתאימים לתוכניות הגיבויים ולמדיניויות שלי?
  • היכן הגיבויים שלי? להיכן אני מגבה את בסיסי הנתונים שלי?
  • מהו סוג הגיבוי שלי, מהו mode השחזור שלי במהלך הגיבוי?
  • מי הריץ את הגיבוי? האם היה זה service שלי או SQL injection שנועד לגנוב ממני מידע?
  • מהם השעות, משכי הזמנים והגדלים של כל הגיבויים?
  • היכן אוכל לקבל התרעות על גדלים בלתי סבירים ומשכי זמן בלתי סבירים של גיבויים?
  • האם הרצתי גיבוי מלא באמצע היום במהלך שעות העבודה?
  • אם אני מריץ מספר אופראטורים של גיבוי (גיבוי מקומי, גיבוי בנתיב רשת, טייפ גיבוי, Snapshot וירטואלי) האם חלקם חסומים? האם יש ביניהם החוסמים זה את זה?
  • האם גיביתי את הלוג באמצעות אופראטור שונה? אנו זקוקים לכל קבצי הלוג כדי לשחזר בהצלחה.

כדי להשיג מידע זה תאלץ לחפש נתונים אלה בבסיס הנתונים באופן ידני דרך הmsdb. בסיס הנתונים הsystemי msdb הוא המחסן העיקרי של הmetadata של הSQL Agent, מנהל הגיבויים, הService Broker, מנהל הדואר של בסיס הנתונים, הLog Shipping ומנהל השחזורים. להלן מספר טבלאות המתעדות את תהליכי הגיבוי:

  • Backupset : מספקת את המידע הפרטני ביותר בנוגע לתהליכי הגיבוי.
  • Backupmediafamily : מספקת metadata של קבצי הגיבוי בהקשר למכלולי הגיבוי (Backup Sets).
  • Backupfile : הview הזה מספק את המידע הפרטני ביותר אודות קבצי הגיבוי הפיסיים.

באמצעות הסקריפט הבא תוכל לקבל מידע בסיסי הנוגע לגיבויים שלך.
זו דוגמה לקבלת מידע אודות הגיבויים שבוצעו בשלושת ימי העבודה האחרונים:

SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb.dbo.backupset.expiration_date,
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - 3)

כמובן, הקוד לעיל הוא דוגמה פרטית למקרה פרטי, במידה ותרצה מידע יותר קונקרטי או לסנן את המידע לבסיס(י) נתונים, סוג גיבוי, התקן גיבוי, יום/ימים בשבוע וכו’ תאלץ לשנות את השאילתא בהתאם.

מערכת AimBetter מאפשרת לך לקבל את כל המידע וההתרעות.
להלן מספר חלקי מסך המכסים את הבעיות שציינו:

מסננים אופציונאליים:

optional-filters

תוצאות מפורטות:

Detailed-results

התרעות על גיבויים שהוחמצו:

Alerts-on-missed-backups

לסיכום, מערכת AimBetter מאפשרת לך לראות את כל המידע שתרצה בנוגע לגיבויים בפשטות על מסך אחד כך שלא תאלץ לזכור שאילתות בעל פה כדי לנהל ביעילות את הגיבויים שלך ולכן היא הפתרון הטוב ביותר עבורך.