Quản Trị  Cơ Sở Dữ Liệu
 
Backup database trong Mysql
17:01 | 16/11/2011

Như chúng ta đã biết database quan trong như thế nào trong hệ thống của chúng ta , khi gặp sự cố mà  chưa kịp backup vì 1 lý do nào đó ...

Do đó trong bài này chúng ta sẽ backup database tự động bằng Script và có thể lựa chọn backup từng database riêng biệt hay từng table riêng biệt ...thông qua SSH.

Một vài thông tin trong bài viết :

Password Mysql  user root là 123456 và hệ thống có 1 database để test là webtintuc.

Thực hiện :

Backup

- File Backup không có nén

 # mysqldump --add-drop-table -u root -p123456 webtintuc > webtintuc.sql



- File Backup có nén :

#  mysqldump --add-drop-table  -u root -h localhost -p123456 webtintuc | gzip -9 > webtintuc.sql.gz

chú thích :
--add-drop-table là để cho phép ghi đè database đã tồn tại.
Backup từng table riêng biệt trong database Webtintuc

# mysqldump --add-drop-table -u root -p123456 webtintuc lienket loaitin > backuptable.sql


>> ý nghĩa dòng trên là backup 2 table  lienket  và loaitin trong database  webtintuc

Cú pháp:

mysqldump -u [username] -p [password] [databasename] [table1  table2 ....]

>> các table cách nhau khoảng trắng .




Restore

Restore file đã backup trong thư mục /mnt/webtintuc.sql

#  mysql -u root -p123456 webtintuc < /mnt/webtintuc.sql




Tạo Crontab để hệ thống tự động backup 12 giờ hằng ngày :

# crontab -e

* 12 * * *  mysqldump --add-drop-table -u root -p123456 webtintuc > /mnt/webtintuc.sql



Sử dụng Script  backup hoàn chỉnh


Với Scrip sau sẽ backup toàn bộ database của hệ thống vào thư mục /mnt/mysql và  mỗi database là 1 file

riêng biệt ,được nén và kèm theo ngày tháng backup trong tên file .

Nội dung Script như sau :

MyUSER="root"     # USERNAME
MyPASS="123456"       # 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="/mnt"
 
# 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=1 || :
    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 -9 > $FILE
    fi
done

Sau khi chạy Scrip thì thư mục backup sẽ có các file database đã backup như hình sau :




Bạn có thể loại bỏ các database ko cần backup bằng cách chỉnh sửa trong file cấu hình trên tại

dòng IGGY=”test”

ví dụ : nếu ko muốn backup 2 database kenhgiaiphap nhaconline

IGGY=”kenhgiaiphap  nhaconline”

Khi Restore thì giài nén các file.gz  trên bằng lệnh  gunzip rồi restore bằng lệnh phần trên .

Chúng ta có thể tạo Crontab  cho scipt này để tự động backup hệ thống .

Nếu dùng Phpmyadmin thì backup và restore qua Phpmyadmin .




Phan Trọng Hiếu (Tổng hợp)

 
 
Ý kiến phản hồi và bình luận Góp ý kiến của bạn

Các tin mới nhất :
- Cấu hình MySQL Replication với mô hình master - slave
- Backup database trong Mysql
- Kiến trúc Oracle Database Server
- Phân đoạn bảng trong SQL Server
- Khái niệm và sử dụng Drupal
- Giới thiệu về SQL Server Reporting Services
- Cài đặt ORACLE 11g trên Windows bằng giao diện đồ họa
- Cài đặt Oracle 11 trên CentOS 5.2
- Kích hoạt Remote Connection cho SQL Server 2008
- Hướng dẫn cài đặt SQL Server 2008 Service Pack 1 (SP1)
Các tin liên quan :
- Kiến trúc Oracle Database Server
- Phân đoạn bảng trong SQL Server
- Khái niệm và sử dụng Drupal
- Giới thiệu về SQL Server Reporting Services
- Cài đặt ORACLE 11g trên Windows bằng giao diện đồ họa
- Cài đặt Oracle 11 trên CentOS 5.2
- Kích hoạt Remote Connection cho SQL Server 2008
- Hướng dẫn cài đặt SQL Server 2008 Service Pack 1 (SP1)
- Hướng dẫn cài đặt SQL Server 2008
Bài nhiều người đọc cùng chuyên mục
Cài đặt ORACLE 11g trên Windows bằng giao diện đồ họa
 
Kích hoạt Remote Connection cho SQL Server 2008
 
Hướng dẫn cài đặt SQL Server 2008 Service Pack 1 (SP1)
 
Cài đặt Oracle 11 trên CentOS 5.2
 
Hướng dẫn cài đặt SQL Server 2008
 
Khái niệm và sử dụng Drupal
 
Giới thiệu về SQL Server Reporting Services
 
Trang chủ | Giới thiệu | Quảng cáo | Liên hệ
Giấy phép ICP số 199/GP-TTĐT. Bộ Thông tin và Truyền thông cấp.
Cơ quan quản lý  : Công Ty TNHH Phát Triển Kỹ Thuật và Thương Mại Phan Nguyễn
Bản quyền © 2010-2011 Kenhgiaiphap.vn . Giữ toàn quyền.
Ghi rõ nguồn "Kenhgiaiphap.vn" khi phát hành lại thông tin từ website này.