לאן גיביתי את ה transaction log שלי? - ilDBA Portal

לאן גיביתי את ה transaction log שלי?

17/04/2011 | פורסם על ידי

קרה לכם פעם שהיתם צריכים לשחזר רצף של transaction logs ופתאום אחד חסר לכם?
מקרה כזה יכול לקרות בכמה מצבים. אחד הנפוצים הוא להלן:

יש לי database ב-full recovery model ואני מגבה אותו כל שעה גיבוי transaction log.
החלטתי לעשות לו log shipping לשרת אחר וקינפגתי את ספריית הגיבוי למקום שונה מהגיבוי הרגיל שאני כבר מבצע.

קונפיגורציית ה log shipping יצרה לי 3 ג'ובים:

  1. גיבוי ה transaction logs בשרת המקור (הג'וב רץ בשרת המקור) – הג'וב רץ תקין
  2. העתקת קבצי הגיבוי לשרת היעד (הג'וב רץ בשרת היעד) – הג'וב רץ תקין
  3. שיחזור ה transaction logs בשרת היעד (הג'וב רץ בשרת היעד) – הג'וב נופל ומודיע שלא מוצא קובץ לשחזר:

*** Error: Could not find a log backup file that could be applied to secondary

אנו מנסים לשחזר את ה  transaction log  האחרון ששוחזר בשרת היעד– מצליחים.

אנו מנסים לשחזר transaction log מוקדם יותר בשרת היעד ומקבלים הודעה שזה ישן מדי:

RESTORE LOG [mydb] FROM
DISK = N'G:\backup_ls\mydb_201103292000.trn'
WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 10

Msg 4326, Level 16, State 1, Line 1
The log in this backup set terminates at LSN 2370248000000179500001, which is too early to apply to the database. A more recent log backup that includes LSN 2370492000004059100001 can be restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE LOG is terminating abnormally.

אנו מנסים לשחזר transaction log מאוחר יותר בשרת היעד ומקבלים הודעה שזה חדש מדי:

RESTORE LOG [mydb] FROM
DISK = N'G:\backup_ls\mydb_201103292100.trn'
WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 10

Msg 4305, Level 16, State 1, Line 1
The log in this backup set begins at LSN 2370492000007108700001, which is too recent to apply to the database. An earlier log backup that includes LSN 2370492000004059100001 can be restored.
Msg 3013, Level 16, State 1, Line 1
RESTORE LOG is terminating abnormally.
אז אם כך לאן גובה הלוג שבאמצע?

בעזרת השאילתה הבאה בשרת המקור שממנו ביצענו את הגיבוי נוכל למצוא אותו:

select     bs.name, first_lsn, last_lsn, backup_start_date,
           backup_finish_date, bs.[type], bmf.physical_device_name
from      msdb..backupset bs
join      msdb..backupfile bf
    on bf.backup_set_id = bs.backup_set_id
join      msdb..backupfilegroup bfg
    oמ  bfg.backup_set_id = bf.backup_set_id
    and  bfg.filegroup_guid = bf.filegroup_guid
join       msdb..backupmediafamily bmf
    on bmf.media_set_id = bs.media_set_id
where      2370492000004059100001 between first_lsn and last_lsn
and        bs.database_name = 'mydb'
and bf.is_present=1
order by first_lsn

שימו לב:  ה-LSN שצויין בתנאי ה-Where בשאילתה הוא אותו ה-LSN שתואר בהודעות השגיאה שהוצגו לעיל.

הרשומה הראשונה תראה לנו את הקובץ האחרון ששוחזר והרשומה השניה תראה לנו את הקובץ שאנו צריכים לשחזר אך כנראה לא נמצא זמין לשרת אליו אנו רוצים לשחזר. לדוגמא

כל מה שנשאר זה לשחזר באופן ידני את ה  transaction log החסר ולהמשיך את הג'וב שעף. לדוגמא:

RESTORE LOG [mydb] FROM  -- ERR
DISK = 'G:\Backup\mydb_201103292000.trn'
WITH  FILE = 1,  NORECOVERY,  NOUNLOAD,  STATS = 10

נתראה ברשומה הבאה.

אלון שפיגל

ניתן ליצור קשר עם אלון דרך עמוד האודות שלו: אודות

The following two tabs change content below.

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

קהילת

קהילת ה- BI וה- BIG DATA מתכנסת ב- 28-10 !

שלום רב, למי שלא ידע 🙂 קהילת ה- BI וה- BIG DATA בעולמות Microsoft מתכנסת מידי חודש על מנת להפגש, להכיר ולשמוע הרצאות במגוון נושאים טכנולוגיים מרתקים בתחום. במפגש הקרוב (מספר 63) שיתקיים ב- 28-10-2015, יום רביעי [...]
הזמנה

הזמנה ל-SQL Saturday #481 – Israel 2016

שלום רב, בקרוב יתקיים בישראל כנס טכנולוגי מרכזי קהילת ה-DB וה-BI בתחום ה-SQL Server – ה-SQL Saturday! הכנס אשר מאורגן בהתנדבות על ידי אנשי הקהילה יכלול במהלכו מספר מסלולי לימוד בתחומים טכנולוגיים שונים. [...]

איך לבצע Sizing DB ב-Datacenter בארגונך בקלות (חלק א')

כחלק מהטמעות מוצרי IT תשתיתיים (כגון FWDB, מוצרי גיבוי, חוות Storage, מוצרי שו"ב ועוד…) בארגוני, אנו נדרשים המון פעמים לענות על שאלות לספקים כגון : מה גודל הכולל של ה –  Datacenter  ? מה חלוקת גודל ה [...]

תיעוד בסיס הנתונים – למה זה טוב?

ישנם מספר נושאים חשובים שיש לתת עליהם את הדעת בפיתוח ותכנון בסיס נתונים. כמובן שצריך לשים לב לנירמול נכון של הטבלאות, וכמובן שצריך להגדיר סטנדרט לכתיבה נכונה של הקוד, וכמובן שאי אפשר בלי [...]
Copyright 2019 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: