1:mysql是我們使用最多的數(shù)據(jù)庫,如果在日常中正確的對mysql數(shù)據(jù)進(jìn)行備份,下面我們就來做這事,通過腳本來實(shí)現(xiàn)
##################################################
#!/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 {} \;
通過上面的腳本就可以實(shí)現(xiàn)備份數(shù)據(jù),簡單介紹一下mysqldump這個(gè)命令的使用(上文中粗體bbsuser指的是數(shù)據(jù)庫名)
-S 指定數(shù)據(jù)庫使用的sock文件,一個(gè)系統(tǒng)中可以運(yùn)行多個(gè)不同端口的mysql,如果要連接這個(gè)數(shù)據(jù)庫就需要用到這個(gè)參數(shù)來指定sock文件
-u 指定用戶,在這里,如果我們備份bbsuser數(shù)據(jù)庫,只需要用到bbsuser這個(gè)用戶就可以了。當(dāng)然root用戶也可以,只不過我們寫在腳本里當(dāng)然用權(quán)限小點(diǎn)更佳
-p 指定密碼,使用’’將密碼括起來
--default-character-set= 用于設(shè)置數(shù)據(jù)庫的格式,這和數(shù)據(jù)庫使用默認(rèn)的語言有關(guān),可以連接到數(shù)據(jù)庫里使用show variables;來查看當(dāng)前,一般有utf8 gbk
--opt 實(shí)施備份可能是最常用的方法,因?yàn)閭浞菟俣壬系膬?yōu)勢
--extended-insert=false 是為了導(dǎo)出為多行Insert,不然可能因?yàn)镮nsert語句過長出錯(cuò)
--hex-blob 使用十六進(jìn)制格式導(dǎo)出二進(jìn)制字符串字段
-A, --all-databases Dump all the databases. This will be same as --databases with all databases selected. 可以用于備份所有數(shù)據(jù)庫
PS:使用date +%Y-%m-%d 可以顯示出當(dāng)天的日期,我們在備份時(shí)也加個(gè)這參數(shù)可以起很好的標(biāo)識備份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`
2:bzip2 可以將文件壓縮成bz2的文件,并且刪除掉原來的,
3:通過find來查找,然后根據(jù)時(shí)間,如果多于28天(4周)就進(jìn)行刪除。
4:接下來還可以將這個(gè)腳本執(zhí)行放到Crontab中,讓腳本一天運(yùn)行一次,就可以對數(shù)據(jù)進(jìn)行很好的備份了。
#backup my database
5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1
3:數(shù)據(jù)庫的導(dǎo)入:
/home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p’pDdWShDzwXSLzSCB’ bbsuser
##################################################
#!/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 {} \;
通過上面的腳本就可以實(shí)現(xiàn)備份數(shù)據(jù),簡單介紹一下mysqldump這個(gè)命令的使用(上文中粗體bbsuser指的是數(shù)據(jù)庫名)
-S 指定數(shù)據(jù)庫使用的sock文件,一個(gè)系統(tǒng)中可以運(yùn)行多個(gè)不同端口的mysql,如果要連接這個(gè)數(shù)據(jù)庫就需要用到這個(gè)參數(shù)來指定sock文件
-u 指定用戶,在這里,如果我們備份bbsuser數(shù)據(jù)庫,只需要用到bbsuser這個(gè)用戶就可以了。當(dāng)然root用戶也可以,只不過我們寫在腳本里當(dāng)然用權(quán)限小點(diǎn)更佳
-p 指定密碼,使用’’將密碼括起來
--default-character-set= 用于設(shè)置數(shù)據(jù)庫的格式,這和數(shù)據(jù)庫使用默認(rèn)的語言有關(guān),可以連接到數(shù)據(jù)庫里使用show variables;來查看當(dāng)前,一般有utf8 gbk
--opt 實(shí)施備份可能是最常用的方法,因?yàn)閭浞菟俣壬系膬?yōu)勢
--extended-insert=false 是為了導(dǎo)出為多行Insert,不然可能因?yàn)镮nsert語句過長出錯(cuò)
--hex-blob 使用十六進(jìn)制格式導(dǎo)出二進(jìn)制字符串字段
-A, --all-databases Dump all the databases. This will be same as --databases with all databases selected. 可以用于備份所有數(shù)據(jù)庫
PS:使用date +%Y-%m-%d 可以顯示出當(dāng)天的日期,我們在備份時(shí)也加個(gè)這參數(shù)可以起很好的標(biāo)識備份文件日期作用。如果在mysqldump中引用date需要使用`date +%Y-%m-%d`
2:bzip2 可以將文件壓縮成bz2的文件,并且刪除掉原來的,
3:通過find來查找,然后根據(jù)時(shí)間,如果多于28天(4周)就進(jìn)行刪除。
4:接下來還可以將這個(gè)腳本執(zhí)行放到Crontab中,讓腳本一天運(yùn)行一次,就可以對數(shù)據(jù)進(jìn)行很好的備份了。
#backup my database
5 0 * * * /home/cacti/backup/backupmysql.sh >/dev/null 2>&1
3:數(shù)據(jù)庫的導(dǎo)入:
/home/cacti/local/mysql5.0.22/bin/mysql -S /home/cacti/tmp/mysql.sock -ubbsuser -p’pDdWShDzwXSLzSCB’ bbsuser

