כמו כל דבר יש את שתי הדרכים, המגניבה שלא עוזרת, והמשעממת שעושה את העבודה.
אם אתם בעלי השרת:
ניצור שני קבצים שהראשון מהווה פקודה בSQL, והשני יהיה פקודה שתריץ אותה מהמחשב האישי - ותעשה גיבוי בשרת עצמו.
נפתח את פנקס הרשימות ונכתב את הפקודה:
אם אתם בעלי השרת:
ניצור שני קבצים שהראשון מהווה פקודה בSQL, והשני יהיה פקודה שתריץ אותה מהמחשב האישי - ותעשה גיבוי בשרת עצמו.
נפתח את פנקס הרשימות ונכתב את הפקודה:
BACKUP DATABASE [שם מסד הנתונים] TO DISK = '\שם מסד הנתונים.bak' with init
נסגור את הקובץ ונשמור על שולחן העבודה, ונשמור זאת בסיומת SQL. ונקבל קובץ עם אייקון של SQL. לצורך העניין נקרא לו: backup.sql (כמה מפתיע...)
במידה ונריץ את הפקודה עצמה בSQL נקבל הודעה כזו:
Processed 472 pages for database 'שם מסד נתונים', file 'שם מסד נתונים_data' on file 1.
Processed 1 pages for database 'שם מסד נתונים', file 'שם מסד נתונים_log' on file 1.
BACKUP DATABASE successfully processed 473 pages in 0.061 seconds (60.578 MB/sec).
הקובץ גיבוי נשמר בשרת. עכשיו נושמים שנייה, ושוב נפתח את פנקס הכתובות ונכתוב קובץ נוסף, שיהווה את הפקודה שתריץ את הפקודה שכתבנו מקודם. נכתוב בקובץ עכשיו:
OSQL -U [שם משתמש] -P [סיסמא] -S [*המקום של השרת] -i [מיקום הפקודה שמריצים**]
*80.80.800.180\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\שם הטבלה
**C:\Users\sivan\Desktop\backup.sql
המיקום של הטבלה בשרת נכון על פי השרת שלי. איך גילתי?
אם ארצה לעשות את הפעולה גיבוי בשרת (שיכשל, כי אין לי הרשאות) קליק ימני על המסד נתונים ובחירת "משימות" (tasks) וגיבוי (back up) יראה לי היכן "אמור" הקובץ להישמר, וכך אני יודע היכן נמצא הטבלאות נתונים בשרת.
טוב, בכל אופן הקטע המגניב, נסגור את השורה ונשמור בקובץ בפרומט batch עם סיומת bat, בשם go.bat ונקבל אייקון של מערכת הפעלה.
לחיצה על הקובץ ההפעלה תפעיל את הפקודה, ותבצע גיבוי של הנתונים שלי בשרת של החברה המארחת, שעוזר לי במקרה שהאתר קרס (ח"ו, טפו, טפו, טפו) לבקש מהם את הקובץ. כך בלחיצה אחת כל יום יש ראש שקט.
טוב, זה השיטה המגניבה, אבל לא ממש עוזרת אם אני רוצה אצלי את כל הנתונים.
לכן נבצע דרך הSQL שאילתה של גיבוי של הטבלאות יחד עם הנתונים שבתוכה, והכל יופיע בצורת פקודות הרצה.
איך?
שוב קליק ימני על מסד הנתונים, ובחירת "משימות", ובתוך משימות נבחר "יצירת סקריפים" ( Generate Scripts), נוכל לבחור מה לגבות:
טבלאות, סטור פרוסיג'יר, טבלאות משתמשים וכו'
במסך השני יש אפשרות לגבות הכל. אנו נבחר את האפשרות השנייה, לבחור בעצמנו מה לגבות ואז נבחר טבלאות (ישנה אפשרות לבחור רק חלק מהטבלאות).
ואז מגיע הקטע החשוב:
באופן דיפלוטיבי הSQL יוצר גיבוי של הסכמה של הנתונים, רק את הפקודות שיוצרות את הטבלאות, אבל אנחנו רוצים לגבות את הנתונים עצמם. בשביל כך נלחץ על כפתור Advanced (מתקדם), ותחת הקטגוריה General באפשרות האחרונה Types of data to script נשנה ממצב של Sechema only למצב של Sechema and data.
מכאן NEXT יעשה את העבודה, הוא ירוץ על כל הטבלאות ויהפוך אותן לפקודות של יצירת טבלה, ואת כל הנתונים הוא יכניס בצורה מסודרת בפקודת INSERT .
אם קרה משהו למסד נתונים (חס וחלילה, כנ"ל), פתיחת הקובץ טקסט הזה ולחיצת F5 יבנה לנו את הכל בחזרה.
אין תגובות:
הוסף רשומת תגובה