生產mysqldump備份指令碼

2021-10-08 05:21:44 字數 1928 閱讀 2185

1. 記錄日誌功能;

2. 傳參的情況可以實現單庫備份;

3. 無傳參實現全庫備份;

1. 會警告命令列輸入密碼不安全,mysql 5.5以上的版本;

2. mysqldump是冷備會造成資料不一致,備份時候可以指定鎖全表備份;

3. 在迴圈備份到最後乙個庫的時候可以加 --flush-logs 引數,日誌滾動;

1. 備份盡量別用root,因為不安全,可以授權乙個賬號進行備份;

#!/bin/bash

#########################

# author: xiaofei #

# date: 2020/07/17 #

#########################

# date format

year=`date +%y`

month=`date +%m`

day=`date +%d`

date_format=`date "+%y-%m-%d %h:%m:%s"`

date_backup_format=`date "+%y_%m_%d_%h%m%s"`

backup_dir="/home/data/$/$/$"

interval=2

# show log

# 1:the log is displayed on the screen

# 0:close

show_log=1

log_file="/tmp/mysql_backup.log"

log()" -eq 0 ]];then

echo "$ [$user]# $*" >> $

fiif [[ "$" -eq 1 ]];then

echo "$ [$]# $*"|tee -a $

fi}# create backup dir

[[ ! -d "$" ]]&&mkdir -p $

# mysql infomation

my_user='root'

my_pwd='123456'

my_port='3306'

my_sock='/tmp/mysql.sock'

my_cmd="mysqldump -u$ -p"$" -s $ --events --routines --single-transaction -b"

check_mysqld()" ]]&&awk 'begin'

}backup() -p$ -e "show databases;"|awk 'nr>2'|grep -e 'schema|sys' -v`)

if [ "$#" -eq 0 ];then

for dbname in `echo $`;do

log "($ $|gzip >$/$_$.gzip) 2>/dev/null"

($ $|gzip >$/$_$.gzip) 2>/dev/null

done

else if [ `echo "$"|grep -w $|wc -l` -eq 0 ];then

echo "database $ not exists"

exit 1

else

log "($ $|gzip >$/$_$.gzip) 2>/dev/null"

($ $|gzip >$/$_$.gzip) 2>/dev/null

fi fi log "[ ********** backup complete *********** ]"

echo -e "\n" >>$

}main()

main $*

MySQL備份指令碼 mysqldump

bin bash 設定mysql的登入使用者名稱和密碼 根據實際情況填寫 mysql user root mysql password 123456 mysql host 192.1.1.1 mysql port 3306 備份檔案存放位址 根據實際情況填寫 backup location opt ...

mysql dump備份 mysqldump備份

備份工具 1.mysqldump 資料量很大時不推薦使用 myisam 鎖表 innodb 行鎖 mysqldump help less 檢視mysql所有的語法 mysqldump uroot p wang usr back upsql wang.sql 整個庫備份 mysqldump uroot...

mysqldump備份詳解

1,mysqldump工具是mysql自帶的乙個非常方便的小工具,存放在mysql安裝目錄的c program files mysql mysql server 5.1 bin下。2,mysqldump 和 mysql一樣.都是應用程式,你在mysql下是執行不了的.我們可以在cmd裡面輸入mysq...