משיב מוביל
שחזור מסד נתונים מגובה (קובץ bak) -

שאלה
-
יש לי קבצי bak של מסד נתונים שקיבלתי מהלקוח, אני רוצה לשחזרם לפורמט של מסד נתונים רגיל כדי שאוכל לעבוד אתם (בצורה לוקאלית).
קראתי באינטרנט והבנתי שעושים זאת דרך ה-SQL Server management studio, הבעיה שבכדי להגיע לחלונות של השחזור, ה-Management studio מכריח אותי להתחבר לשרת.
יש אפשרות לשחזר מבלי להתחבר לשרת כלשהו? או לחילופין לפתוח שרת סתמי רק בשביל שאני אוכל לקבל גישה לשחזור הקבצים?
תודה.
תשובות
-
אם אני מבין נכון הבעיה שלך לא קשורה לשחזור אלא להתחברות לשרת ה SQL שהתקנת. נכון?
אם זה המצב הרי שבדיוק כמה הודעות למטה שמתי הסבר מלא על הנושא :-) רק היית צריך לקרוא מעט בפורום.
הנה עותק של מה שכתבתי בהודעה שם:
SSMS היא תוכנת הניהול
כדי להתחבר לשרת אתה צריך להחליט לאיזה שרת אתה רוצה להתחבר ולבקש מהמנהל שלו את הנתונים המתאימים.
אם התקנת שרת אצלך במחשב (ביחד עם ה SSMS) אז אתה יכול לבדוק את הנתונים לבד:
1. נמצא את השם של ה INSTANCE של ההתקנה:
* בשורת הפקודה (RUN) רשום services.msc על מנת לפתוח את רשימת השירותים המותקנים במחשב שלך.
* חפש את השירות של השרת SQL בשם sql server
החלק שמעניין אותנו הוא השם שיש לך בתוך הסוגריים של השירות. זה שם ה INSTANCE של השירות. נניח שהשם הוא XXX להמשך2. עתה פתח את ה SSMS עם המשתמש האדמין הראשי והשלם את הנתונים הבאים:
Server type: Database Engine
Server name: .\xxx
Authentication: Windows
עתה נסה להתחבר: לחץ על connect
אני מקווה שזה עונה על השאלה שלך ואם לא אנא נסה להסביר שוב בדיוק באיזה שלב אתה תקוע. אלו בעקרון השלבים:
1. האם מותקן SQL אצלך במחשב?
הבנתי שכן
2. האם מותקן SSMS אצלך?
הבנתי שכן
3. האם אתה מצליח להתחבר לשרת ה SQL שצלך דרך ה SSMS?
הבנתי שכאן אתה תקוע וזה ההסבר...
4. אחרי ההתחברות האם אתה מצליח לבצע את השחזור עצמו*** כמובן שאם אתה רוצה לפתוח גיבוי שהוכן בשרת אחר אז אתה חייב להיות בטוח שהשרת שאתה התקנת הוא בגרסה תואמת. לכן תמיד מומלץ להחזיק בבית את הגרסה האחרונה המלאה של SQL 2012 כדי לפתוח קבצים שהוכנו בגרסאות לא ידועות (בכל מקרה ניתן לנסות לשחזר ואם הגרסה לא מתאימה אז מקבלים הודעה מסודרת שאומרת שהגרסה לא מתאימה). תברר מה הגרסה של השרת המקורי אם אתה יכול.
- נערך על-ידי pituachMVP, Moderator יום שני 17 דצמבר 2012 06:12
- הוצע כתשובה על-ידי Ivan Radchenko יום שלישי 18 דצמבר 2012 05:16
- סומן כתשובה על-ידי Rom Shiri יום שישי 21 דצמבר 2012 14:43
כל התגובות
-
ערב טוב,
אתה יכול להתקין sql server על המחשב שלך (בדוק מול הלקוח מה גרסת ה- Sql server שאצלו , מהסיבה שלא ניתן לשחזר גיבוי של בסיס נתונים מגרסה X לגרסה נמוכה יותר).
לאחר ההתקנה יהיה לך על המחשב sql server ותוכל לשחזר אליו את בסיס הנתונים.
בהצלחה.
Best Regards,
Itai Binyamin, MVP & MRS
SQL Server Group Manager
Veracity Group
www.Veracity-Group.com
www.ItaiBinyamin.Blogspot.com- הוצע כתשובה על-ידי Ivan Radchenko יום שלישי 18 דצמבר 2012 05:16
-
תודה על התשובה המהירה,
אבל שוב, יש לי SQL Server מותקן כמובן, וגם Management Studio.. קראתי באינטרנט והשחזור נעשה דרכו. הנה מדריך לדוגמה:
http://www.katieandemil.com/sql-server-2012-restore-database-backup-file
הבעיה שבהתחלה זה מבקש פרטי התחברות ושרת כלשהו ורק לאחר מכן ניתן להמשיך.
איך אני בידיוק פונה ל-SQL server שמותקן במשחב שלי? ואם אין לי כזה אוטומטי כתוצאה מהתקנת ה-SQL server.. איך אני יוצר אחד כזה?- נערך על-ידי Rom Shiri יום ראשון 16 דצמבר 2012 19:58
-
אם אני מבין נכון הבעיה שלך לא קשורה לשחזור אלא להתחברות לשרת ה SQL שהתקנת. נכון?
אם זה המצב הרי שבדיוק כמה הודעות למטה שמתי הסבר מלא על הנושא :-) רק היית צריך לקרוא מעט בפורום.
הנה עותק של מה שכתבתי בהודעה שם:
SSMS היא תוכנת הניהול
כדי להתחבר לשרת אתה צריך להחליט לאיזה שרת אתה רוצה להתחבר ולבקש מהמנהל שלו את הנתונים המתאימים.
אם התקנת שרת אצלך במחשב (ביחד עם ה SSMS) אז אתה יכול לבדוק את הנתונים לבד:
1. נמצא את השם של ה INSTANCE של ההתקנה:
* בשורת הפקודה (RUN) רשום services.msc על מנת לפתוח את רשימת השירותים המותקנים במחשב שלך.
* חפש את השירות של השרת SQL בשם sql server
החלק שמעניין אותנו הוא השם שיש לך בתוך הסוגריים של השירות. זה שם ה INSTANCE של השירות. נניח שהשם הוא XXX להמשך2. עתה פתח את ה SSMS עם המשתמש האדמין הראשי והשלם את הנתונים הבאים:
Server type: Database Engine
Server name: .\xxx
Authentication: Windows
עתה נסה להתחבר: לחץ על connect
אני מקווה שזה עונה על השאלה שלך ואם לא אנא נסה להסביר שוב בדיוק באיזה שלב אתה תקוע. אלו בעקרון השלבים:
1. האם מותקן SQL אצלך במחשב?
הבנתי שכן
2. האם מותקן SSMS אצלך?
הבנתי שכן
3. האם אתה מצליח להתחבר לשרת ה SQL שצלך דרך ה SSMS?
הבנתי שכאן אתה תקוע וזה ההסבר...
4. אחרי ההתחברות האם אתה מצליח לבצע את השחזור עצמו*** כמובן שאם אתה רוצה לפתוח גיבוי שהוכן בשרת אחר אז אתה חייב להיות בטוח שהשרת שאתה התקנת הוא בגרסה תואמת. לכן תמיד מומלץ להחזיק בבית את הגרסה האחרונה המלאה של SQL 2012 כדי לפתוח קבצים שהוכנו בגרסאות לא ידועות (בכל מקרה ניתן לנסות לשחזר ואם הגרסה לא מתאימה אז מקבלים הודעה מסודרת שאומרת שהגרסה לא מתאימה). תברר מה הגרסה של השרת המקורי אם אתה יכול.
- נערך על-ידי pituachMVP, Moderator יום שני 17 דצמבר 2012 06:12
- הוצע כתשובה על-ידי Ivan Radchenko יום שלישי 18 דצמבר 2012 05:16
- סומן כתשובה על-ידי Rom Shiri יום שישי 21 דצמבר 2012 14:43
-
יש אפשרות לשחזר מבלי להתחבר לשרת כלשהו? או לחילופין לפתוח שרת סתמי רק בשביל שאני אוכל לקבל גישה לשחזור הקבצים?
תודה.
אני רק רוצה להוסיף הסבר קצר, למה השאלה שלך היא לא הגיונית. לדעתי, אתה בכלל לא מבין את המשמעות של המושג, לכן צריך להתחיל מזה. שיחזור, לפי הגדרה, זה הקמת מסד נתונים חדש על שרת, שמסד נדונים זה הוא זהה למסד נתונים שנמצא בתוך קובץ גיבוי. אין דבר כזה שיחזור ללא יעד.
- נערך על-ידי Ivan Radchenko יום שלישי 18 דצמבר 2012 05:36
-
-
זה לא מדוייק איבן :-). שחזור הקובץ זה "הפתיחה" שלו למשל מפורמט שחזור BAK לפורמט של הקבצים הפתוחים שלו. יש בהחלט "שחזור ללא יעד". למשל אם אני רוצה לשחזר מקובץ BAK את קבצי ה MBF וה LOG שלו בלי להשתמש בהם עדיין...
ניתן לעבוד עם קבצי SQL ישירות בלי להתקין אותם בשרת ואפילו לעבוד איתו ושירוץ ללא התקנה ב INSTANCE הראשי של שרת אלא בצורה דינאמית (אם עובדים בגרסת EXPRESS למשל זה נפוץ מאוד). יותר מכך אם היה לו עותק של הקבצים הפתוחים והוא היה רוצה להתקין אותם אז גם במקרה זה הוא לא היה צריך שחזור שלהם אלא פעולת detach לקבצים.
הערה: הבחור מגיע מתחום הפיתוח (יש לי אינפורמציה נוספת כי הוא שם את השאלה גם בפורומים של פיתוח) ולכן הראייה שלו היא בהתאם.
בפיתוח מי שעוסק בטכנולוגיות מייקרוסופט עובד עם תוכנת ה visual stuio. תוכנת VS עובדת גם ישירות עם קבצי SQL אם יש שרת מותקן. למעשה ברירת המחדל של ה VS זה לעבוד עם שרתי SQL בגרסת EXPRESS. כאשר אנחנו עובדים על פרוייקט חדש אנחנו יכולים להכניס לתוכו קובץ SQL ולעבוד איתו בפרוייקט בלי שאנחנו מגדירים אותו ב INTANCE הראשי של השרת. אם תבדוק מה כל מסדי הנתונים שיש לך אתה לא תמצא אותו ברשימה.
הערה: מאחורי הקלעים מה שקורה זה שהשרת EXPRESS מייצר INSTANCE דינאמי זמני שימחק אחרי שנסיים את העבודה איתו, אבל זה כבר נושא גדול לבלוג נפרד.
מה שחשוב זה שכן אפשר לעבוד עם קבצים בצורה ישירה, וזה אפילו נפוץ מאוד במקרה של EXPRESS ו/או VS. לכן הדרך שנתתי היא קודם למצוא את השם של ה INSTANCE המתאים ואז לשחזר אליו, אבל אחרי שתשחזר את הקובץ תוכל להעתיק אותו אם הוא מתאים לגרסת EXRESS לכל מקום ולעבוד איתו ישירות בכל מחשב בו מותקנת גרסת EXPRESS מתאימה. בכל מקרה כדי לעבוד עם הקובץ או כדי לשחזר אותו הוא צריך שרת SQL כניראה :-)
- נערך על-ידי pituachMVP, Moderator יום שלישי 18 דצמבר 2012 08:13
-
לחברת RED-GATE יש גם תוכנות שיודעות לעבוד על קבצי BAK ישירות וללא ה SQL
-
בפיתוח מי שעוסק בטכנולוגיות מייקרוסופט עובד עם תוכנת ה visual stuio. תוכנת VS עובדת גם ישירות עם קבצי SQL אם יש שרת מותקן. למעשה ברירת המחדל של ה VS זה לעבוד עם שרתי SQL בגרסת EXPRESS. כאשר אנחנו עובדים על פרוייקט חדש אנחנו יכולים להכניס לתוכו קובץ SQL ולעבוד איתו בפרוייקט בלי שאנחנו מגדירים אותו ב INTANCE הראשי של השרת. אם תבדוק מה כל מסדי הנתונים שיש לך אתה לא תמצא אותו ברשימה.
הבנתי. אני יצאתי מנקודה הנחה ש-Gushgitza מנסה לבצע פעולת RESTORE בלי להתחבר. להוציא mdf מתוך ה-bak זה, מבחינתי, משהו אחר לגמרי. זה טוב ויפה, ויכול מאוד להיות שזה פיתרון הטוב היותר במקרה הזה, אבל זה לא שחזור... אני יותר מדי פדנט, אני יודע... :) -
לא יצא לי להעביר ישירות מ 2000 ל 2012 אבל אני דיי בטוח שגם אם יש תופעה כזו אז זה אפשרי לביצוע אם לא ישירות אז דרך 2008 בדרך. ז"א שחזור ל 2008 ואז שחזור של ה 2008 ל 2012. לא שמעתי על מקרה כזה בינתיים וכבר שנים שאין לי 2000 נגיש (יש לי רשיונות של ה MSDN אבל אין לי כוח ו/או סיבה להתקין כרגע)
אם יש לך את הקובץ ואתה יכול להפיץ אותו אני אשמח לבדוק ולראות את התופעה הזו לבד כדי שאוכל למצוא דרך מהירה לעקוף אותה :-)
-
-