shell指令碼 mysql資料庫分庫分表備份

2021-10-08 16:47:57 字數 1817 閱讀 7557

背景:作為運維,備份及其重要,在進行刪改操作,無論是應用系統還是資料庫,還是系統檔案,備份是第一步,警惕一頓操作猛如虎的行為

備份:我可以根據庫備份,也可以根據庫中的表來備份。所以寫了2個指令碼,備份的粒度不一樣,就可以多方面去實現我們想要的恢復效果

一、分庫備份

user=root

passwd=123456

host=localhost

date=$(date +%f-%h-%m-%s)

back_dir=/data/daba_bak

[email protected]

#獲取庫

data_list=$(mysql -u$user -p$passwd -s -e "show databases;" |egrep -v "(database|information_schema|performance_schema|testdata)" 2>/dev/null)

#判斷是否存在備份目錄

if [ ! -d $back_dir ];then

mkdir -p $back_dir

fifor db in $data_list

do #備份檔案,備份失敗則郵件預警

file_name="$back_dir/$_$.sql.gz"

if ! mysqldump -h$host -u$user -p$passwd -b $db |gzip > $file_name 2>/dev/null ;then

echo "mysql dump $db faile,pls check!"|mail -s "mysqldump error" $mail_acc

else

echo "$db mysqldump ok!!"

fidone

二、分表備份

user=root

passwd=lxmlxm

host=localhost

date=$(date +%f-%h:%m:%s)

bak_dir=/data/

[email protected]

db_name=$(mysql -u$user -h$host -p$passwd -s -e "show databases;" |egrep -v "database|information_schema|performance_schema" 2>/dev/null)

if [ ! -d $bak_dir ] ;then

mkdir -p $bak_dir

fifor db in $db_name

do talbe_list=$(mysql -u$user -h$host -p$passwd -s -e "use $db;show tables;")

for table in $talbe_list

do if [ ! -d $bak_dir/$db ] ;then

mkdir -p $bak_dir/$db/

fitable_file_name=$/$/$_$.sql.gz

if ! mysql -u$user -h$host -p$passwd $db $table | gzip > $table_file_name 1>/dev/null ;then

echo "$db-$table mysqldump faile" |mail -s "mysql table dump faile" $mail_acc

else

echo "$db----$table dump successful!"

fi done

done

mysql資料庫備份shell指令碼

bin bash author george zheng 2012 03 12 version 1.2 myuser root mypass k943587 djj as host localhost date date i name date y m d h m s backupdir home ...

shell指令碼備份mysql資料庫

獲取mysql伺服器所有資料庫名稱,過濾掉不需要備份的資料庫 通過mysqldump來for迴圈匯出所有的資料庫的sql檔案 用zip加密壓縮所有的sql檔案 定期進行資料清理工作 bin bash 02.03.1.資料庫資訊定義 04.mysql host 192.168.1.1 05.mysql...

shell指令碼操作MySQL資料庫

搬運出處 mysql hhostname pport uusername ppassword e 相關mysql的sql語句,不用在mysql的提示符下執行mysql,即可以在shell中操作mysql的方法。bin bash hostname 192.168.111.84 資料庫資訊 port 3...