您好,登錄后才能下訂單哦!
vim /data/mysqlback.sh
#! /bin/bash BAKPATH=/data/mysql-back MYUSER=root MYPASS="123456" SOCKET=/var/lib/mysql/mysql.sock MYCMD="mysql -u$MYUSER -p$MYPASS -S $SOCKET" MYDUMP="mysqldump -u$MYUSER -p$MYPASS -S $SOCKET -x -B -F -R" DBLIST=`$MYCMD -e "show databases;" |sed "1d" |egrep -v "_schema|test"` [ ! -d $BAKPATH ] && mkdir -p $BAKPATH for dbname in $DBLIST do $MYDUMP $dbname |gzip > $BAKPATH/${dbname}_$(date +%F).sql.gz done |
執(zhí)行該腳本,可以在/data/mysql-back目錄生成三個(gè)庫的壓縮文件
mysqldump命令參數(shù)說明:
--lock-all-tables, -x
提交請求鎖定所有數(shù)據(jù)庫中的所有表,以保證數(shù)據(jù)的一致性。這是一個(gè)全局讀鎖,并且自動(dòng)關(guān)閉--single-transaction 和--lock-tables 選項(xiàng)。
--databases, -B
用于備份多個(gè)數(shù)據(jù)庫,使用該選項(xiàng),mysqldump 把每個(gè)名字都當(dāng)作為數(shù)據(jù)庫名。如果沒有該選項(xiàng),mysqldump 把第一個(gè)名字參數(shù)作為數(shù)據(jù)庫名,后面的作為表名。
--flush-logs,-F
開始轉(zhuǎn)儲(chǔ)前刷新MySQL服務(wù)器日志文件。該選項(xiàng)要求RELOAD權(quán)限。請注意如果結(jié)合--all--database(或-A)選項(xiàng)使用該選項(xiàng),根據(jù)每個(gè)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫刷新日志。
例外情況:當(dāng)使用--lock-all-tables或--master-data的時(shí)候,在這種情況下,日志只刷新一次,在所有 表被鎖定后刷新。如果你想要同時(shí)轉(zhuǎn)儲(chǔ)和刷新日志,應(yīng)使用--flush-logs連同--lock-all-tables或--master-data。
--routines, -R
在轉(zhuǎn)儲(chǔ)的數(shù)據(jù)庫中轉(zhuǎn)儲(chǔ)存儲(chǔ)程序(函數(shù)和程序)。使用---routines產(chǎn)生的輸出包含CREATE PROCEDURE和CREATE FUNCTION語句以重新創(chuàng)建子程序。但是,這些語句不包括屬性,例如子程序定義者或創(chuàng)建和修改時(shí)間戳。這說明當(dāng)重載子程序時(shí),對它們進(jìn)行創(chuàng)建時(shí)定義者應(yīng)設(shè)置為重載用戶,時(shí)間戳等于重載時(shí)間。如果你需要?jiǎng)?chuàng)建的子程序使用原來的定義者和時(shí)間戳屬性,不使用--routines。相反,使用一個(gè)具有mysql數(shù)據(jù)庫相應(yīng)權(quán)限的MySQL賬戶直接轉(zhuǎn)儲(chǔ)和重載mysql.proc表的內(nèi)容。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。