משיב מוביל
שחזור אוטומתי של מספר גיבוים מהרשת.

שאלה
-
שלום לכולם.
יש לי שרת SQL Server 2008 R2, שאליו אני מעוניין לשחזר מס' DBs מתיקית רשת על מנת לבדוק את תקינותם של קבצי הגיבוי. כתבתי סקריפט שממפה את התיקיה לכונן Z, מוציא את רשימת קבצי גיבוי שנמצאים בתיקיה, משחזר אותם אחד אחרי השני, ואז משחרר את כונן הרשת. הבעיה היא, יש לי מס' תת תיקיות בכונן שלי ובכל אחת מהן ישנם קבצי גיבוי נוספים. איך אפשר לסרוק את כונן ה-Z ולשחזר את כל הגיבוים, ולא רק את אלה שנמצאים ב-root שלו?
תשובות
-
מכיוון שלא אמרת איך כתבת את הסקריפט ובאיזו שפה.
הנה לדוגמא שימוש בקובץ BAT
FOR /F "tokens=*" %%G IN ('DIR /B /S c:\code\*.bak') DO echo "%%G"
- הוצע כתשובה על-ידי haim fishner יום שלישי 11 ספטמבר 2012 18:59
- סומן כתשובה על-ידי Ivan Radchenko יום רביעי 12 ספטמבר 2012 05:24
-
בנוסף לתשובה של tetiu, שמשום מה אני לא מצליח לבצע אותה אבל כנראה שהבעייה היא אצלי.
מצאתי דרך חמודה גם כן להוציא את רשימת כל הקבצים בעלי סייומת בתיקייה/ובתתי התיקיות שלה ע"י הפקודה:
dir z:\backups\*.bak /b /s >> C:\temp\test.txt
פשוט לשנות את הנתיבים על פי הצורך....
בברכה,
חיים פישנר.
- סומן כתשובה על-ידי Ivan Radchenko יום רביעי 12 ספטמבר 2012 05:23
כל התגובות
-
זאת לא בדיוק שאלה לDBA לדעתי אלא יותר לאנשי סיסטם וינדווס...
אבל בכל מקרה לדעתי פשוט למצוא/לכתוב סקריפט בשפת SHEEL שמחזיר לך את כל שמות הקבצים עם הסיומת BAK לדוגמא תחת התקיית root ואז לעבור עליהם וליצור פקודת RESTORE.
זה מה שאני הייתי עושה בכל אופן אם היה לי צורך בכך :)
חיים פישנר.
-
מכיוון שלא אמרת איך כתבת את הסקריפט ובאיזו שפה.
הנה לדוגמא שימוש בקובץ BAT
FOR /F "tokens=*" %%G IN ('DIR /B /S c:\code\*.bak') DO echo "%%G"
- הוצע כתשובה על-ידי haim fishner יום שלישי 11 ספטמבר 2012 18:59
- סומן כתשובה על-ידי Ivan Radchenko יום רביעי 12 ספטמבר 2012 05:24
-
בנוסף לתשובה של tetiu, שמשום מה אני לא מצליח לבצע אותה אבל כנראה שהבעייה היא אצלי.
מצאתי דרך חמודה גם כן להוציא את רשימת כל הקבצים בעלי סייומת בתיקייה/ובתתי התיקיות שלה ע"י הפקודה:
dir z:\backups\*.bak /b /s >> C:\temp\test.txt
פשוט לשנות את הנתיבים על פי הצורך....
בברכה,
חיים פישנר.
- סומן כתשובה על-ידי Ivan Radchenko יום רביעי 12 ספטמבר 2012 05:23
-
מכיוון שלא אמרת איך כתבת את הסקריפט ובאיזו שפה.
הנה לדוגמא שימוש בקובץ BAT
FOR /F "tokens=*" %%G IN ('DIR /B /S c:\code\*.bak') DO echo "%%G"
השפה היא T-SQL, סליחה ששכחתי לציין...
בנוסף לתשובה של tetiu, שמשום מה אני לא מצליח לבצע אותה אבל כנראה שהבעייה היא אצלי.
מצאתי דרך חמודה גם כן להוציא את רשימת כל הקבצים בעלי סייומת בתיקייה/ובתתי התיקיות שלה ע"י הפקודה:
dir z:\backups\*.bak /b /s >> C:\temp\test.txt
כן, זה בדיוק מה שאני צריך, תודה רבה! האמת שעשיתי את אותו הדבר, רק שהכנסתי את הפלט לטבלא המקום קובץ txt.* ולא הכרתי את מתג "s/", לכן הפקודה החזירה לי רק את הקבצים שב-root. עכשיו הרצתי את "?/ dir" וקראתי על כל המתגים, איך לא חשבתי על זה קודם? :)- נערך על-ידי Ivan Radchenko יום רביעי 12 ספטמבר 2012 05:28