1:mysql是我們使用最多的數據庫,如果在日常中正確的對mysql數據進行備份,下面我們就來做這事,通過腳本來實現
###################################################################################################################################
#!/bin/bash
#backup My databases
#by luox at 2008-10-24
source /home/cacti/.bash_profile
PATH=/home/cacti/local/mysql5.0.22/bin:/home/cacti/local/php5.2.6/bin:/home/cacti/local/apache2.2.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#date +%Y-%m-%d
#backup bbs database
mysqldump -S /home/cacti/tmp/mysql.sock -u bbsuser -p'pDdWShDzwXSLzSCB' --default-character-set=gbk --opt --extended-insert=false --hex-blob?bbsuser?>/home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql
#compress the bak files
bzip2 /home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql
#remove 4 week old bak files
find /home/cacti/backup/ -name '*.bz2' -ctime +28 -exec rm {} \;
##################################################################################################################################
通過上面的腳本就可以實現備份數據,簡單介紹一下mysqldump這個命令的使用(上文中粗體bbsuser指的是數據庫名)
-S 指定數據庫使用的sock文件,一個系統中可以運行多個不同端口的mysql,如果要連接這個數據庫就需要用到這個參數來指定sock文件
-u 指定用戶,在這里,如果我們備份bbsuser數據庫,只需要用到bbsuser這個用戶就可以了。當然root用戶也可以,只不過我們寫在腳本里當然用權限小點更佳
-p 指定密碼,使用''將密碼括起來
--default-character-set= 用于設置數據庫的格式,這和數據庫使用默認的語言有關,可以連接到數據庫里使用show variables;來查看當前,一般有utf8 gbk
--opt 實施備份可能是最常用的方法,因為備份速度上的優勢
--extended-insert=false 是為了導出為多行Insert,不然可能因為Insert語句過長出錯
--hex-blob 使用十六進制格式導出二進制字符串字段
-A, --all-databases Dump all the databases. This will be same as --databases with all databases selected. 可以用于備份所有數據庫
PS:使用date +%Y-%m-%d 可以顯示出當天的日期,我們在備份時也加個這參數可以起很好的標識備份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`
2:bzip2 可以將文件壓縮成bz2的文件,并且刪除掉原來的,
3:通過find來查找,然后根據時間,如果多于28天(4周)就進行刪除。
4:接下來還可以將這個腳本執行放到Crontab中,讓腳本一天運行一次,就可以對數據進行很好的備份了。
#################################################################################
#backup my database
5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1
#################################################################################
3:數據庫的導入:
/home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p'pDdWShDzwXSLzSCB' bbsuser </home/cacti/backup/bbsuser_bak_2008-10-24.sql
###################################################################################################################################
#!/bin/bash
#backup My databases
#by luox at 2008-10-24
source /home/cacti/.bash_profile
PATH=/home/cacti/local/mysql5.0.22/bin:/home/cacti/local/php5.2.6/bin:/home/cacti/local/apache2.2.9/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
#date +%Y-%m-%d
#backup bbs database
mysqldump -S /home/cacti/tmp/mysql.sock -u bbsuser -p'pDdWShDzwXSLzSCB' --default-character-set=gbk --opt --extended-insert=false --hex-blob?bbsuser?>/home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql
#compress the bak files
bzip2 /home/cacti/backup/bbsuser_bak_`date +%Y-%m-%d`.sql
#remove 4 week old bak files
find /home/cacti/backup/ -name '*.bz2' -ctime +28 -exec rm {} \;
##################################################################################################################################
通過上面的腳本就可以實現備份數據,簡單介紹一下mysqldump這個命令的使用(上文中粗體bbsuser指的是數據庫名)
-S 指定數據庫使用的sock文件,一個系統中可以運行多個不同端口的mysql,如果要連接這個數據庫就需要用到這個參數來指定sock文件
-u 指定用戶,在這里,如果我們備份bbsuser數據庫,只需要用到bbsuser這個用戶就可以了。當然root用戶也可以,只不過我們寫在腳本里當然用權限小點更佳
-p 指定密碼,使用''將密碼括起來
--default-character-set= 用于設置數據庫的格式,這和數據庫使用默認的語言有關,可以連接到數據庫里使用show variables;來查看當前,一般有utf8 gbk
--opt 實施備份可能是最常用的方法,因為備份速度上的優勢
--extended-insert=false 是為了導出為多行Insert,不然可能因為Insert語句過長出錯
--hex-blob 使用十六進制格式導出二進制字符串字段
-A, --all-databases Dump all the databases. This will be same as --databases with all databases selected. 可以用于備份所有數據庫
PS:使用date +%Y-%m-%d 可以顯示出當天的日期,我們在備份時也加個這參數可以起很好的標識備份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`
2:bzip2 可以將文件壓縮成bz2的文件,并且刪除掉原來的,
3:通過find來查找,然后根據時間,如果多于28天(4周)就進行刪除。
4:接下來還可以將這個腳本執行放到Crontab中,讓腳本一天運行一次,就可以對數據進行很好的備份了。
#################################################################################
#backup my database
5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1
#################################################################################
3:數據庫的導入:
/home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p'pDdWShDzwXSLzSCB' bbsuser </home/cacti/backup/bbsuser_bak_2008-10-24.sql
? ? ?本文轉自fine102 51CTO博客,原文鏈接:http://blog.51cto.com/gzmaster/108896,如需轉載請自行聯系原作者