מדריך לגיבוי מסד נתונים SQL SERVER
-
שלום לכולם, למי שיש ניסיון מספיק, אשמח לקבל הדרכה/קישורים לגבי השאלות הבאות.
א. מהם הסיכונים שבגינם צריך לגבות מסד נתונים ומה רמת הסיכון
ב. מה מקובל בעסקים בינוניים אחת לכמה זמן לגבות וכמה זמן אחורנית לשמור.
ג. אלו טכנולוגיות עומדות לרשותינו, ומהם היתרונות והחסרונות.שאלה צדדית, למה ואיך מתגברים על הבעיה) SQL SERVER להבדיל מכל קובץ אחר, לא מאפשר העתקה שלו כשהוא בשימוש, מה ביקשתי???? רק להעתיק, לא ביקשתי לערוך.... שאילו זה היה אפשרי, אזי בקלות היינו עושים גיבוי כאוות נפשינו, וזה היה לוקח שניה וחצי.
כיום בארגון הדטה בייס מגובה ע"י חברה חיצונית, אינני יודע באיזו טכנולוגיה הם משתמשים, אבל זה אחת לשעה, וזה נועל טבלאות (פשוט סיוט), ולוקח 6-7 דקות גיבוי (לענן) למה כל הטמטום הזה???פורסם במקור בפורום CODE613 ב10/11/2014 14:40 (+02:00)
-
א.תמיד חינכו אותנו שצריך לגבות.
למה? ככה.
לא חסרות סיבות, מטעויות אנוש ועד קריסה של המערכתב. תלוי מה רמת הבעיות שיכולות להיווצר כשאין גיבוי.
יש מקומות שצריך תמונת מצב ויש שינויים חשובים משעה לשעה (או דקה לדקה). בכזה מקרה הגיבויים צריכים להיות בתדירות גבוהה.
ויש מקומות שמספיק גיבוי אחרון, כי לא משנה מה היה בגיבוי שלפניו, העיקר זה הנתונים האחרונים.ג. אני משתמש ב2 סוגי גיבויים.
-
הכנסה של כל הרשומות בINSERT INTO לDB של אקסס, זה טוב בעיקר כשאתה עובד מול ממשק אקסס וODBC.
קוד לדוגמא:On Error Resume Next
Dim p As New ClsProgress
p.Cap = "יוצר קובץ גיבוי"
Dim FullDbName As String
FullDbName = CurrentProject.Path & "\Bak\Bak-" & Format(Now, "dd-mm-yyyy-hh-nn-ss") & ".accdb"
If err <> 0 Then msgok err.description: Exit Function
CreateDatabase FullDbName, dbLangHebrew
p.Max = CurrentDb.TableDefs.countDim i As Integer
For i = 0 To CurrentDb.TableDefs.count - 1p.Val = i
p.Cap = CurrentDb.TableDefs(i).Name
If Len(CurrentDb.TableDefs(i).Connect) > 0 And Not Left(CurrentDb.TableDefs(i).Name, 1) = "v" ThenCurrentDb.Execute "SELECT " & CurrentDb.TableDefs(i).Name & ".* INTO " & CurrentDb.TableDefs(i).Name & " in '" & FullDbName & "' FROM " & CurrentDb.TableDefs(i).Name
End If
Next
p.Cap = "דוחס את הקובץ..."
'זו פונקצייה שדוחסת את הקובץ לזיפ
zip_activeworkbook FullDbName & ".zip", FullDbName
End Function
האפשרות הזו מאד נוחה כדי לראות נתונים היסטוריים ולבצע הצלבות כשצריך.
בנוסף, אני משתמש באפשרות 2.
2. גיבוי מהSQL SERVER.
צריך לדעת שהSQL נותן פקודת גיבוי פנמית.ושם, יש 2 אפשרויות, גיבוי של הלוג, וגיבוי מלא.
-- =========================== -- Backup Database Template -- =========================== BACKUP DATABASE <Database_Name, sysname, Database_Name> TO DISK = N'<Backup_Path,,C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\><Database_Name, sysname, Database_Name>.bak' WITH NOFORMAT, COMPRESSION, NOINIT, NAME = N'<Database_Name, sysname, Database_Name>-Full Database Backup', SKIP, STATS = 10; GO
אח"כ כשמשחזרים את הגיבוי, ניתן לבחור עד מתי יהיה הלוג, וכן ניתן לבחור מה יהי גודל הלוג הפנימי. ככל שהלוג יותר גדול, יותר נתונים בהסטורייה יישמרו.
בשרת שלי חוות השרתים מבצעת גיבוי ללוג כל 24 שעות, ופעם בשבוע גיבוי מלא.
בנוסף, אני מבצע את הגיבוי של אקסס פעם ביום, וכל כמה ימים גיבוי דרך הSQL.דבר נוסף, בשרתים שבתשלום (לא גרסאות האקספרס), אתה יכול להגדיר את הגיבוי שירוץ בצורה אוטו' בכל X זמן. אבל אני חושב שאתה יכול לעקוף את זה בצורה פשוטה, ע"י משימה מתוזמנת בשרת אם אתה משתמש בVPS משלך.
פורסם במקור בפורום CODE613 ב10/11/2014 15:48 (+02:00)
-