Concertgebouworkest - Symphony No. 7 - Beethoven
תוכן עניינים:
- תחביר פיקוד של Mysqldump
- גיבוי מסד נתונים יחיד של MySQL
- גיבוי מספר מסדי נתונים של MySQL
- גיבוי של כל מסדי הנתונים של MySQL
- גבה את כל מסדי הנתונים של MySQL כדי להפריד בין קבצים
- צור גיבוי מסדי נתונים של MySQL דחוס
- צור גיבוי באמצעות חותמת זמן
- שחזור מזבלה של MySQL
- שחזר מסד נתונים יחיד של MySQL ממזבלה מלאה של MySQL
- ייצא וייבא מסד נתונים MySQL בפקודה אחת
- גיבויים אוטומטיים עם Cron
- סיכום
מדריך זה מסביר כיצד לגבות ולשחזר מסדי נתונים של MySQL או MariaDB משורת הפקודה באמצעות כלי השירות mysqldump.
קבצי הגיבוי שנוצרו על ידי כלי השירות mysqldump הם בעצם קבוצה של הצהרות SQL בהן ניתן להשתמש כדי ליצור מחדש את בסיס הנתונים המקורי. הפקודה mysqldump יכולה גם ליצור קבצים בפורמט CSV ו- XML.
אתה יכול גם להשתמש בכלי השירות mysqldump כדי להעביר את מסד הנתונים MySQL לשרת MySQL אחר.
תחביר פיקוד של Mysqldump
לפני שנבדוק כיצד להשתמש בפקודה mysqldump, נתחיל בבחינת התחביר הבסיסי.
ביטויי השירות של mysqldump לובשים את הטופס הבא:
mysqldump > file.sql
-
options
-file.sql
האפשרויות mysqldump.sql -file.sql
ה- dump (הגיבוי)
כדי להשתמש בפקודה mysqldump, שרת MySQL חייב להיות נגיש ופועל.
גיבוי מסד נתונים יחיד של MySQL
מקרה השימוש הנפוץ ביותר של כלי mysqldump הוא גיבוי מסד נתונים יחיד.
לדוגמה, כדי ליצור גיבוי של מסד
database_name
בשם
database_name
באמצעות
root
המשתמש ושמור אותו בקובץ בשם
database_name.sql
, תפעיל את הפקודה הבאה:
mysqldump -u root -p database_name > database_name.sql
תתבקש להזין את סיסמת השורש. לאחר אימות מוצלח, תהליך השלכת יתחיל. בהתאם לגודל מסד הנתונים, התהליך יכול לארוך זמן.
mysqldump database_name > database_name.sql
גיבוי מספר מסדי נתונים של MySQL
כדי לגבות מספר מסדי נתונים של MySQL בפקודה אחת עליכם להשתמש באפשרות - בסיס נתונים ואחריה רשימת מסדי הנתונים שברצונכם לגבות. יש להפריד בין כל שם מסד נתונים לרווח.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
הפקודה שלמעלה תיצור קובץ dump שמכיל את שני מסדי הנתונים.
גיבוי של כל מסדי הנתונים של MySQL
השתמש
--all-databases
כדי לגבות את כל מסדי הנתונים MySQL:
mysqldump -u root -p --all-databases > all_databases.sql
כמו בדוגמה הקודמת הפקודה שלמעלה תיצור קובץ dump יחיד שמכיל את כל מסדי הנתונים.
גבה את כל מסדי הנתונים של MySQL כדי להפריד בין קבצים
כלי השירות
mysqldump
אינו מספק אפשרות לגיבוי של כל מסדי הנתונים כדי להפריד קבצים, אך אנו משיגים זאת בקלות באמצעות לולאת BasH
FOR
פשוטה:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
הפקודה שלמעלה תיצור קובץ dump נפרד לכל בסיס נתונים המשתמש בשם בסיס הנתונים כשם הקובץ.
צור גיבוי מסדי נתונים של MySQL דחוס
אם גודל מסד הנתונים גדול מאוד, כדאי לדחוס את הפלט. לשם כך פשוט צינור הפלט לכלי השירות
gzip
לקובץ כמוצג להלן:
mysqldump database_name | gzip > database_name.sql.gz
צור גיבוי באמצעות חותמת זמן
mysqldump database_name > database_name-$(date +%Y%m%d).sql
הפקודה שלמעלה תיצור קובץ בתבנית הבאה
database_name-20180617.sql
שחזור מזבלה של MySQL
אתה יכול לשחזר dump MySQL באמצעות הכלי
mysql
. התחביר הכללי של הפקודה הוא כדלקמן:
mysqld database_name < file.sql
ברוב המקרים תצטרך ליצור בסיס נתונים לייבוא אליו. אם בסיס הנתונים כבר קיים, ראשית עליכם למחוק אותו.
בדוגמה הבאה הפקודה הראשונה תיצור בסיס נתונים בשם
database_name
ואז היא תייבא לתוכו את ה-
database_name.sql
:
mysql -u root -p -e "create database database_name";
mysql -u root -p database_name < database_name.sql
שחזר מסד נתונים יחיד של MySQL ממזבלה מלאה של MySQL
mysql --one-database database_name < all_databases.sql
ייצא וייבא מסד נתונים MySQL בפקודה אחת
במקום ליצור קובץ dump ממסד נתונים אחד ואז לייבא את הגיבוי למסד נתונים אחר של MySQL, תוכלו להשתמש בסרט האחד הבא:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
הפקודה שלמעלה תעביר את הפלט ללקוח mysql במארח המרוחק והיא תייבא אותו למסד נתונים בשם
remote_database_name
. לפני הפעלת הפקודה, ודא שהמאגר קיים כבר בשרת המרוחק.
גיבויים אוטומטיים עם Cron
אוטומציה של תהליך הגיבוי של מסדי הנתונים היא פשוטה כמו יצירת משימת cron מה שמריץ את הפקודה mysqldump בזמן מוגדר.
כדי להגדיר גיבויים אוטומטיים של מסד נתונים MySQL באמצעות cronjob, בצע את הצעדים שלהלן:
-
צור קובץ בשם
.my.cnf
בספריה הביתית למשתמש שלך:sudo nano ~/.my.cnf
העתק והדבק את הטקסט הבא בקובץ.my.cnf.
user = dbuser password = dbpasswd
אל תשכח להחליף את
dbuser
ו-dbpasswd
במאגר המשתמש ובסיסמה של המשתמש.הגבל את ההרשאות של קובץ האישורים כך שרק למשתמש שלך תהיה גישה אליו:
chmod 600 ~/.my.cnf
צור ספרייה לאחסון הגיבויים:
mkdir ~/db_backups
פתח את קובץ ה- crontab של המשתמש שלך:
crontab -e
הוסף את משימת ה- cron הבאה שתיצור גיבוי של שם מסד הנתונים
mydb
כל יום בשעה 03:00:0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
אל תשכח להחליף את שם המשתמש בשם המשתמש שלך בפועל.
אתה יכול גם ליצור עוד עבירה מחיקה למחיקת כל הגיבויים מעל גיל 30 יום:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
כמובן שאתה צריך להתאים את הפקודה לפי מיקום הגיבוי ושמות הקבצים שלך. למידע נוסף על הפקודה למצוא, עיין במאמר כיצד למצוא קבצים ב- Linux באמצעות מדריך שורת הפקודה.
סיכום
מדריך זה מכסה רק את היסודות, אך הוא אמור להיות התחלה טובה לכל מי שרוצה ללמוד כיצד ליצור ולשחזר מסדי נתונים של MySQL משורת הפקודה באמצעות כלי השירות mysqldump.
אתה יכול גם לבדוק את המדריך כיצד לאפס סיסמת שורש של MySQL למקרה ששכחת אותה.
גיבוי מריאדבשיעור העצה: לגבות, לגבות, לגבות
Roundup: 4 כלי עזר גיבוי עבור התקנים ניידים כדי לדחוק לך להגן על היקר שלך נתונים.
כיצד לגבות ולשחזר את פרופיל ה- Firefox באמצעות febe
למד כיצד לגבות ולשחזר את פרופיל פיירפוקס שלך באמצעות FEBE
כיצד לגבות ולשחזר נתונים בטלפון Windows 8
להלן כיצד לגבות ולשחזר נתונים ב- Windows Phone 8.