ايران ويج

نسخه‌ی کامل: پشتیبان‌گیری و بازگردانی mysql در لینوکس
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
توسط دستوز mysqldump میتونید از بانک اطلاعاتی (در این مثال:بانک forumdb ) پشتیبان بگیرید؛
علاوه بر این میتویند با gzip خروجی دستور بالا رو فشرده کنید و همیچنین مشخص کنید تا چند مرحله فشرده سازی انحام بشه

کد php:
mysqldump -u user -h localhost -ppassword forumdb gzip -forumdb.sql.gz 


در مثال بالا از بانک اطلاعاتی forumdb پشتیبان گرفتم و بعد از فشرده کردن در فایلی بنام forumdb.sql.gz ذخیره کردیم؛

همچنین برای اینکار میتونید از اسکریپت زیر هم استفاده کنید:

کد php:
#!/bin/bash
    # Shell script to backup MySql database
    # To backup Nysql databases file to /backup dir and later pick up by your
    # script. You can skip few databases from backup too.
    # For more info please see (Installation info):
    # http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
    # Last updated: Aug - 2005
    # --------------------------------------------------------------------
    # This is a free shell script under GNU GPL version 2.0 or above
    # Copyright (C) 2004, 2005 nixCraft project
    # Feedback/comment/suggestions : http://cyberciti.biz/fb/
    # -------------------------------------------------------------------------
    # This script is part of nixCraft shell script collection (NSSC)
    # Visit http://bash.cyberciti.biz/ for more information.
    # -------------------------------------------------------------------------
     
    
MyUSER="SET-MYSQL-USER-NAME" # USERNAME
    
MyPASS="SET-PASSWORD" # PASSWORD
    
MyHOST="localhost" # Hostname
     
    # Linux bin paths, change this if it can not be autodetected via which command
    
MYSQL="$(which mysql)"
    
MYSQLDUMP="$(which mysqldump)"
    
CHOWN="$(which chown)"
    
CHMOD="$(which chmod)"
    
GZIP="$(which gzip)"
     
    
# Backup Dest directory, change this if you have someother location
    
DEST="/backup"
     
    
# Main directory where backup will be stored
    
MBD="$DEST/mysql"
     
    
# Get hostname
    
HOST="$(hostname)"
     
    
# Get data in dd-mm-yyyy format
    
NOW="$(date +"%d-%m-%Y")"
     
    
# File to store current backup file
    
FILE=""
    
# Store list of databases
    
DBS=""
     
    
# DO NOT BACKUP these databases
    
IGGY="test"
     
    
[ ! -d $MBD ] && mkdir -p $MBD || :
     
    
# Only root can access it!
    
$CHOWN 0.0 -R $DEST
    $CHMOD 0600 $DEST
     
    
# Get all database list first
    
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
     
    
for db in $DBS
    
do
    
skipdb=-1
    
if [ "$IGGY!= "" ];
    
then
    
for i in $IGGY
    
do
    [ 
"$db== "$i] && skipdb=|| :
    
done
    fi
     
    
if [ "$skipdb== "-1" ] ; then
    FILE
="$MBD/$db.$HOST.$NOW.gz"
    
# do all inone job in pipe,
    # connect to mysql using mysqldump for select mysql database
    # and pipe it out to gz file in backup dir :)
    
$MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db $GZIP -$FILE
    fi
    done 


----------------------------------------------------------

بازگردانی اطلاعات (restor)

خیلی ساده؛ اول فایلمون رو از حالت فشرده در میاریم و بعد با mysqldump ویا mysql بازگردانیش میکنیم!!

با اینکار فایلمون از حالت فشرده در میاد
کد php:
gunzip forumdb.gz 

و restor میکنیمش:
کد php:
mysqldump -u user -h localhost -ppassword forumdb forumdb.sql 
ویا:
کد php:
mysql -u user -h localhost -ppassword forumdb forumdb.sql 


منابع:
How can I restore a backup of a MySQL database?
Shell Script To Backup MySql Database Server