מרשתנט

הגיגים משיטוטי במרשתת ובכלל

סקריפט לגיבוי ושחזור מסדי נתונים שכתבתי

מאת MrM, אפריל 8, 2006, תחת הנושאים עפר בחור כארז

עדכון: למי שמשתמש בPHP5:

הסקריפט לא עובד תחת PHP5, אם השרת שלכם עובד על PHP5 יש לשנות את סיומת הקובץ מphp לphp4 והוא יעבוד כמו שצריך.

\עדכון

למי שלא יודע, בימים האחרונים מאבד תמלילים עבר אלי לשרת.כמו שכל מי שחווה מעבר שרת יודע, PHPMyAdmin עושה שמות בשפה העברית במערכות שמשתמשות ביוניקוד כמו וורדפרס, ועמדנו עובדי עצות מול מסד הנתונים שפשוט סירב להיות בעברית.

בגלל זה יצרתי את הסקריפט הזה, שהוא למעשה חלק מPHPBB שאני הוצאתי וערכתי (זה לא פשוט כמו שזה נשמע) כדי שיעמוד בפני עצמו וגם הוספתי כמה אפשרויות (כמו לגבות את כל המסד במכה), והנה הוא לפניכם:

http://mirshet.net/files/Mysql_Backup_And_Restore_By_MrM.php.tar.gz

רק צריך להוציא מהGZ ולהעלות לשרת ואתם מסודרים.

FAQ: (מופיע גם בגוף המסמך)

מה ההבדל בין האפשרויות השונות?
ההבדל בין גיבוי מידע ומבנה:
גיבוי מבנה הוא מעין הוראות ”איך לבנות את מסד הנתונים”- הוא טוב בעיקר למפתחים שבנו מערכת ורוצים להעביר את מסד הנתונים משרת לשרת, בדרך כלל גיבויים נועדו לגבות מידע ולא מבנה של טבלא
גיבוי של המידע בלבד הוא גיבוי רק של מידע בתוך טבלא, הוא טוב אם רוצים לקחת מידע ממסד אחד ולהוסיף אותו למסד אחר.
אני ממליץ תמיד לגבות מידע ומבנה- כי את המידע צריך אבל הגיבוי הוא בדרך כלל למקרה שבו תקרה תקלה והמידע יאבד, במקרה כזה אתם לא רוצים להתחיל ליצור טבלאות באופן ידני והחלק של המבנה הוא ממש מזערי.
הערה: כאשר משחזרים גיבוי מבנה (גם אם הוא חלק מגיבוי כולל של מבנה ומידע) הוא דורס את כל המידע שהיה בטבלא, כלומר הוא מוחק אותה ויוצר אותה מחדש

ההבדל בין גיבוי של כל מסד הנתונים לגיבוי של טבלאות מסויימות:
כאשר יוצרים גיבויים הנטייה הטבעית היא לגבות את כל המסד בקובץ אחד. אבל כאשר רוצים להעלות את הגיבוי לפעמים הוא גדול מידי (ראה בעיות אפשריות למטה לפרטים נוספים) ולכן צריך לפעמים לגבות טבלא טבלא.

מה זה gzip?
gzip הוא פורמט חופשי לדחיסת קבצים.
רצוי לדחוס את הקובץ בgzip, קובץ הגיבוי שלכם יהיה יותר קטן וזה יתרון, אם אתם רוצים לערוך ולהתעסק עם הקובץ אל תסמנו אז מיותר לדחוס אותו.

בעיות ופתרונות
ש: בזמן שחזור מתקבלת שגיאה שאומרת שיש לי שגיאה בקוד הSQL שלי, מה זה אומר?
ת: הקובץ שאתה מנסה להעלות הוא לא תקין, אתה יכול לפתוח אותו לחפש את השגיאה, לתקן אותה ולנסות להעלות את הקובץ שוב. אם אתה לא יודע SQL גבה שוב את המסד המסובר ושחזר אותו. אם אין המסד המקורי אבד אז תחפש מישהו שיודע SQL בשביל שיתקן לך את השגיאה בקובץ.
ש: בזמן שחזור מתקבלת שגיאה שאומרת לי שהטבלא שאני מנסה להעלות לא קיימת
ת: אתה מנסה להעלות גיבוי נתונים ללא מבנה לתוך מסד ריק, צור גיבוי מבנה או צור את הטבלאות ידנית.
ש: כשאני מנסה לשחזר מסד אני מקבל שגיאה שאומרת שהקובץ גדול מידי
ת: לכל שרת יש גודל קובץ מקסימלי שהוא יכול לקבל.
מה שעליך לעשות הוא לחלק את קובץ הגיבוי לכמה קבצים קטנים יותר: פתח אותו בעורך טקסט, סמן חלק יחסי כלשהו מהקובץ (חצי, שליש או משהו כזה) עד לאחרי סימן ה; שמסמן סוף פקודה בSQL, שמור את הקובץ הזה כקובץ חדש עם סיומת SQL והשתמש בסקריפט על מנת לשחזר אותו. עשה כך עם כל הקובץ עד שסיימת להעלות את כולו.
ש: בזמן שחזור אני מקבל שגיאה שאומרת שהשרת השתמש ביותר זכרון מהזכרון המקסימלי המותר
ת: ראה תשובה קודמת
ש: בזמן גיבוי אני מקבל תשובה שהטבלא שכתבתי לא קיימת
ת: כנראה שהיא באמת לא קיימת, בדוק אם כתבת את שמות הטבלאות נכון.

אני מקווה שכל מי שישתמש בסקריפט יפיק ממנו תועלת רבה :)

40 תגובות לסיפור 'סקריפט לגיבוי ושחזור מסדי נתונים שכתבתי'

לקרוא את התגובות ב-RSS או לשלוח טראקבאק לסיפור 'סקריפט לגיבוי ושחזור מסדי נתונים שכתבתי'.

  1. מאת שרית

    8 אפריל, 2006 בשעה 14:43

    אתה גאון.
    אמנם הייתי היום שפויה יותר אם היית מפרסם את הדבר הזה כמה חודשים מוקדם יותר, אבל מוטב מאוחר מאף פעם לא.
    אתה הבנאדם הכי עליי כרגע ביקום :)

  2. מאת MrM

    8 אפריל, 2006 בשעה 14:58

    *לא נשמע טוב*

  3. מאת שרית

    8 אפריל, 2006 בשעה 15:52

    אהמ.
    אהוב. התכוונתי אהוב.

  4. מאת MrM

    8 אפריל, 2006 בשעה 16:40

    עכשיו נשמע יותר טוב ^^

  5. מאת תומר 1.0

    8 אפריל, 2006 בשעה 17:09

    תשמע, אתה מוכשר.

  6. מאת MrM

    8 אפריל, 2006 בשעה 17:12

    תשמע, אני יודע :)

    תודע ^^

  7. מאת דג זהב

    7 מאי, 2006 בשעה 6:41

    תודה!

    עושה רושם שזה בדיוק מה שחיפשתי.

  8. מאת מוטי

    7 מאי, 2006 בשעה 15:37

    מצטרף למברכים.
    כשעברתי חברת אכסון, הגיבוי עשה לי כזה כאב ראש שבסוף העתקתי ידנית את ה80 פוסטים שהיו לי (זה לקח הרבה פחות זמן מאשר המלחמות שלי עם מסד הנתונים).
    אני מקווה שבמעבר הבא זה יעזור לי.

  9. מאת grebulon

    27 אוקטובר, 2006 בשעה 15:48

    תודה על הסקריפט. הוא עובד מצויין עם php4 אבל באתר שאני בונה ב-php5 זה לא עושה כלום. לא משנה מה אני מכניס, ה-post מחזיר אותי בחזרה לטופס בלי לעשות כלום. יכול להיות שיש בעיה עם php5?

  10. מאת MrM

    28 אוקטובר, 2006 בשעה 21:55

    באמת שאני לא יודע מה הבעיה, אני אתקין PHP5 על המחשב שלי באחד הימים ואעשה נסיונות, עד אז אם אתה מצליח להגיע למשהו בעצמך תנסה ותראה אם הולך לך.

    אם אתה מצליח שחרר או תשלח לי ואני אשחרר בתור גרסא חדשה.


  11. 9 מאי, 2007 בשעה 9:25

    […] אבל בעזרת אנשים נפלאים ובראש ובראשונה עופר החמוד בעל הבלוג מרשתנט. כן כן העדכון בפוסט שלו “הסקריפט לא עובד עם PHP5” נכתב בהשראתי ובהשראת התסכול שלי…. […]

  12. מאת משה

    18 מאי, 2007 בשעה 23:28

    מה זה אומר?
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’89581‘ at line 1
    וניסיתי לשנות לPHP4 וזה לא עזר מה לעשות?

  13. מאת grebulon

    3 יולי, 2007 בשעה 11:49

    הסקריפט עדיין עובד עם גרסה 2.2 של וורדפרס? כי הם שינו קצת את הטבלאות.

  14. מאת MrM

    5 יולי, 2007 בשעה 14:45

    הסקריפט לא קשור לוורדפרס, הוא מגבה את כל המסד (כל מסד MySQL, ללא כל קשר למערכת שמשתמשת בו)

  15. מאת ayalx

    10 אוגוסט, 2007 בשעה 22:59

    בדיוק חיפשתי משהו שיעזור לי לגבות רק את המבנה של מסד הנתונים של האתר כדי לשכפל אותו… אם הסקריפט אכן עובד טוב כמו שאתה מתאר הוא יהיה לי מאוד לעזר :-)
    תודה!

  16. מאת אמנון

    23 אוגוסט, 2007 בשעה 18:46

    פשוט נפלא.

    כתבתי עליך פוסט באתר דרופל ישראל.

  17. מאת MrM

    23 אוגוסט, 2007 בשעה 20:15

    היית יכול לתת לינק ולחסוך ממני את החיפוש, ואני גם בטוח שדרופל תומכל בטראקבקים… יכולת גם לעשות ככה…
    למי שמחפש, הנה זה: http://www.drupal.org.il/mysql-hebrew-utf8

  18. מאת איתי

    6 נובמבר, 2007 בשעה 13:12

    היי עופר,

    אני מעוניין להשתמש בסקריפט שכתבת על מנת להעביר את מסד הנותנים של מערכת וורדפרס.

    אבל יש לי בעיית קידוד חמורה. כאשר אני מנסה לשחזר את קובץ ה-SQL שנוצר בשלב הגיבוי, תוכן הבלוג מוצג בקידוד מוזר.

    אתה יכול לראות את הבלוג עם המסד המקורי
    http://www.notimportant.co.il

    ואת הבלוג עם המסד המשוחזר
    http://www.notimportant.fanzinim.com

    שלב הגיבוי עובד מעולה. קובץ ה-SQL שנוצר מכיל את התווים בעברית כמו שצריך.

    ניסיתי לשחזר את תוכן הקובץ גם מתוך ממשק הניהול של phpMyAdmin.
    גם זה לא עבד.

    אשמח מאוד לכל עצה או סיוע.

    תודה רבה

    איתי

  19. מאת איתי

    6 נובמבר, 2007 בשעה 19:29

    הצלחתי לפתור את הבעיה
    פשוט שיניתי את שדה הקידוד של העמודה שהכילה תווים עבריים בשדה ב-Collation
    של ה-phpmyadmin ל-utf8_unicode_ci

    תודה על הסקריפט, הוא מצויין

  20. מאת MrM

    7 נובמבר, 2007 בשעה 8:53

    תודה, וסליחה שלא יכלתי לעזור בזמן :)

  21. מאת משה

    3 דצמבר, 2007 בשעה 9:36

    ניסיתי לגבות את מסד הנתונים אך עדיין מופיעים לי סימני שאלה במקום עברית

  22. מאת yest

    28 פברואר, 2008 בשעה 3:42

    האם לשים את הקובץ בתוך התיקייה של הפלאגים …???

  23. מאת MrM

    28 פברואר, 2008 בשעה 8:27

    זה לא פלאגאין לוורדפרס, זה סקריפט PHP.

  24. מאת yest

    1 מרץ, 2008 בשעה 18:13

    איך אני אמור להשתמש בזה בוורדפרס או בכל מערכת אחרת???

  25. מאת אלון

    3 מרץ, 2008 בשעה 20:09

    מה הפתרון למשתמשי PHP 5? כתבת שצריך לשנות את הסיומת ל-php4 אבל כששיניתי את הסיומת הוא הציג לי את ה-source של הקובץ.

  26. מאת yest

    7 מרץ, 2008 בשעה 20:51

    אני אשמח לקבל הוראות שימוש יותר מפורטות … תודה !!!


  27. 17 מאי, 2008 בשעה 20:46

    באמת - עבורנו המאותגרים: לאיפה צריך להעלות את הקובץ?

  28. מאת MrM

    20 מאי, 2008 בשעה 14:35

    למקום שתוכל לגשת אליו דרך HTTP על אותו שרת שבו המסד שאתה רוצה להתעסק איתו.


  29. 20 מאי, 2008 בשעה 15:09

    עופר, אני מצטער אם אני נשמע קצת אטום, אבל יש לי עוד מה ללמוד בענייני סקריפטולוגיה. שווה, אגב, לצרף איזה README לתיקיה המכווצת עם הוראות לטמבלים כמוני.

    אם אני מבין נכון - לא ממש משנה לאיפה מעלים אותו בשרת, אלא פשוט אחרי שמעלים אותו צריך לגשת אליו באמצעות דפדפן, ואז הוא יתחיל לעשות את מה שהוא צריך לעשות?

  30. מאת MrM

    21 מאי, 2008 בשעה 2:10

    כן
    פשוט תעלה אותו וגש אליו באמצעות הדפדפן.

  31. מאת דורון

    17 ספטמבר, 2008 בשעה 21:42

    רק רציתי להגיד תודה
    לצערי נאלצתי לעבור שרת ולשחזר מסד נתונים
    וכל דרך שיחזור אחרת שניסיתי גרמה לג’בריש בבלוג
    והסקריפט שלך פשוט הציל אותי
    לא מצאתי פתרון אחר לבעית הג’יבריש ורק הוא פשוט עשה את הקסם
    תודה!
    תודה!
    תודה!

  32. מאת גיאחה

    24 ספטמבר, 2008 בשעה 1:19

    הסקריפט הזה עובד גם עם הגרסאות החדשות של וורדפרס? למשל, 2.6.2?


  33. 1 נובמבר, 2009 בשעה 10:18

    [B]Red Nose Pitbull Puppies For Sale[/B]

    Come By [B][URL=http://www.hoobly.com/0/0/1089957.html]Red Nose Pitbull For Sale[/URL][/B]

    __________________
    [URL=http://learnviolinonlinehq.com/learn-violin-online.html][B]Learn Violin Online[/B][/URL]
    [URL=http://nzbsrus.comm][B]NZB Usenet[/B][/URL]

  34. מאת FewNoxFerse

    21 נובמבר, 2009 בשעה 23:08

    Attention Shoppers
    I was at [url=http://www.tripcart.com/usa-regions/Coastal-Massachusetts-Rhode-Island/shopping-malls/Natick-Mall.html][b] Natick Mall [/b][/url].No room in the parking lot!.Have the incentives kicked in?.Is your local mall feeling the recovery?Staff was cut – so service is weaker.Off to shop..I have also heard that [url=http://www.tripcart.com/usa-regions/Eastern-Pennsylvania/shopping-malls/Park-City-Center.html][b] Park City Mall [/b][/url] is shopping.

    Enjoy


  35. 1 פברואר, 2010 בשעה 16:40

    [B]clubreseau.com[/B]
    Site de rencontre, tout est possible sur Clubreseau. Plus de 5000 membres disponibles en ligne: consultez les annonces et les photos de célibataires.

    [URL=http://www.clubreseau.com][B]rencontre[/B][/URL]

  36. מאת AppordarT

    12 פברואר, 2010 בשעה 21:37

    From classic studs to magnificent styles
    Treat yourself to a pair of earrings from the Birkat Elyon portfolio.

    [URL=http://birkatelyon.com/cubic- zirconia-earrings][B]Cubic Zirconia Earrings[/B][/URL]


  37. 9 מרץ, 2010 בשעה 17:06

    Hello i am a newbie here. Hopefully i will be able to contribute to this site, Just though id say hey!

    cheers.

  38. מאת AIDESSUTS

    20 מרץ, 2010 בשעה 20:10

    Hello, I‘m just wondering how this works? They re-sell cars and share venture capital on the net. Amazingwhat interest rates they offer?!!! Like 14% monthly or so. It this normal? Anybody who tried that already? It sounds like fund income.

  39. מאת neatrymaymn

    20 מרץ, 2010 בשעה 20:23

    Hello everybody I just registered.

  40. מאת redmondspa

    8 מאי, 2010 בשעה 19:56

    basis pollution present aerosols countries dimming

להגיב