כיצד גיבוי מסדי נתונים של SQL כדי לשתף רשת
גיבוי מסדי נתונים של SQL באופן קבוע הוא חייב. יש לנו כבר מכוסה דרכים ניתן בקלות לגבות את כל מסדי הנתונים של שרת SQL שלך לכונן קשיח מקומי, אבל זה לא מגן מפני כונן ו / או כישלון במערכת. כמו שכבת הגנה נוספת מפני סוג זה של אסון, אתה יכול להעתיק או ליצור ישירות את הגיבויים שלך על שיתוף ברשת.
גיבוי מקומי ולאחר מכן העתקה לשיתוף הרשת
הדרך המועדפת והישירה ביותר לביצוע משימה זו היא פשוט ליצור גיבוי מקומי של מסד נתונים ולאחר מכן להעתיק את קובץ הגיבוי המתאים למיקום משותף ברשת. ניתן לעשות זאת על ידי יצירת סקריפט אצווה שנראה כך:
= C: תוכניות קבצים Microsoft SQL Server
SqlCmd -E-Q "גיבוי מסד נתונים MyDB לדיסק ="% LocalFolder% MyDB.bak ""
XCopy "% LocalFolder% MyDB.bak" "\ 192.168.16.55BackupDatabases" / Z / V
DEL "% LocalFolder% MyDB.bak"
סקריפט זה מבצע את הפעולות הבאות (שורה אחר שורה):
- מגדיר משתנה לספריית הגיבוי המקומית של SQL.
- יוצר גיבוי SQL של MyDB (באמצעות אימות Windows) לספריית גיבוי SQL המקומית.
- מעתיק את קובץ הגיבוי המקומי למיקום משותף ברשת.
- מחיקת קובץ הגיבוי המקומי.
שוב, זו השיטה המועדפת כי זה עובד מתוך התיבה ואת הסבירות של כישלון גיבוי מינימלי מאז הגיבוי נוצר על דיסק מקומי. עם זאת, אם אין ברשותך מספיק שטח דיסק לאחסון עותקים מקומיים של קובצי גיבוי פעולה זו תיכשל. במקרה זה, יהיה עליך להוסיף שטח דיסק נוסף או גיבוי ישירות למיקום משותף ברשת.
גיבוי ישירות לשיתוף רשת
בדרך כלל, בעת ניסיון ליצור גיבוי ישירות למיקום משותף ברשת באמצעות פקודה כגון:
SqlCmd -E-Q "מסד נתונים לגיבוי MyDB לדיסק =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
סביר להניח שתקבל שגיאה על פי השורות הבאות:
Msg 3201, רמה 16, מדינה 1, שרת JF, קו 1
אין אפשרות לפתוח את התקן הגיבוי '\ 192.168.16.55BackupDatabasesMyDB.bak'. שגיאת מערכת הפעלה 5 (הגישה נדחתה)..
Msg 3013, רמה 16, מדינה 1, שרת JF, קו 1
BATUP DATABASE מסתיימת באופן לא תקין.
שגיאה זו מתרחשת למרות העובדה שהפעלת את פקודת הגיבוי של SQL באמצעות Windows Authentication (מתג ה- E) ואת חשבון Windows כאפשרות לגשת ולהעתיק קבצים למיקום באמצעות Windows Explorer.
הסיבה לפעולה זו נכשלת היא כי פקודת SQL מבוצעת בגבולות החשבון של שירות SQL Server פועל. כאשר אתה מציג את רשימת השירותים במחשב שלך, סביר להניח שתראה את שירות SQL Server הפועל בתור (Log on As) בעמודה 'מערכת מקומית' או 'שירות רשת', שהם חשבונות מערכת שאין להם גישה לרשת.
במערכת שלנו הגיבוי לפקודת שיתוף רשת נכשל מכיוון שיש לנו את שירות SQL Server הפועל כמערכת מקומית אשר, שוב, לא יכול להגיע לכל משאבי הרשת.
כדי לאפשר ל- SQL לגבות ישירות למיקום משותף ברשת, עלינו להפעיל את שירות SQL Server כחשבון מקומי, אשר יש לו גישה למשאבי רשת.
ערוך את המאפיינים של שירות SQL Server ובכרטיסייה כניסה, הגדר את השירות להפעלה כחשבון חלופי בעל זכויות גישה לרשת.
כאשר תלחץ על אישור, תקבל הנחיה שההגדרות לא ייכנסו לתוקף עד להפעלה מחדש של השירות.
הפעל מחדש את השירות.
רשימת השירותים צריכה כעת להציג את שירות SQL Server פועל כחשבון שהגדרת.
כעת, כאשר אתה מפעיל את הפקודה לגיבוי ישירות למיקום משותף ברשת:
SqlCmd -E-Q "מסד נתונים לגיבוי MyDB לדיסק =" \ 192.168.16.55BackupDatabasesMyDB.bak ""
אתה אמור לראות הודעת הצלחה:
עיבוד 152 דפים עבור מסד הנתונים 'MyDB', קובץ 'MyDB' בקובץ 1.
עיבוד 2 דפים עבור מסד הנתונים 'MyDB', קובץ 'MyDB_log' בקובץ 1.
DATABASE גיבוי מעובד בהצלחה 154 עמודים ב 0.503 שניות (2.493 MB / sec).
עם קובץ הגיבוי כעת בספריית שיתוף הרשת:
שיקולי שיתוף ברשת
חשוב לציין כי הפקודה גיבוי מצפה להיות מסוגל להתחבר ישירות למיקום הרשת ללא התבקש אישורים. החשבון שהגדרת את שירות SQL Server להפעלה חייב להיות בעל חיבור מהימן עם נתח הרשת שבו אישורים מתאימים מאפשרים גישה, אחרת עלולה להתרחש שגיאה שכזו:
Msg 3201, רמה 16, מדינה 1, שרת JF, קו 1
אין אפשרות לפתוח את התקן הגיבוי '\ 192.168.16.55BackupDatabasesMyDB.bak'. שגיאת מערכת הפעלה 1326 (כשל בכניסה: שם משתמש לא ידוע או סיסמה גרועה)..
Msg 3013, רמה 16, מדינה 1, שרת JF, קו 1
BATUP DATABASE מסתיימת באופן לא תקין.
שגיאה זו מציינת ששם המשתמש והסיסמה של החשבון לא התקבלו על-ידי שיתוף הרשת והפקודה נכשלה.
נושא נוסף שיש לזכור הוא הגיבוי מבוצע ישירות למשאב רשת, כך שכל שיהוקים בחיבור הרשת עלולים לגרום לגיבוי שלך להיכשל. מסיבה זו, אתה צריך רק גיבוי למיקומים ברשת אשר יציבים (כלומר, כנראה לא VPN).
השלכות אבטחה
כפי שהוזכר קודם לכן, השימוש בשיטה שבה אתה גיבוי מקומי ולאחר מכן להעתיק למיקום משותף ברשת כפי שהוא מאפשר לך להפעיל את שירות SQL כחשבון עם גישה למערכת המקומית בלבד.
על ידי הפעלת השירות כחשבון חלופי, תפתח את הדלת לבעיות אבטחה אפשריות. לדוגמה, סקריפט SQL זדוני יכול לבצע תחת משאבים חלופיים של משאבי רשת ותקיפה. בנוסף, כל שינוי בחשבון בהתאמה (שינויי סיסמה / expirations או מחיקה / השבתה של החשבון) יגרום לשירות SQL Server להיכשל.
חשוב לזכור את הנקודות האלה אם אתה מפעיל את מופע SQL Server שלך באמצעות חשבון חלופי. בעוד שאלה אינם מציגים פקקים אם אמצעי זהירות מתאימים נלקחים, כדאי לשקול הוספת שטח דיסק קשיח נוסף ולאחר מכן ליישם את הגיבוי המקומי ולהעתיק כך שתוכל להפעיל את שירות SQL באמצעות חשבון מקומי.