暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL常用备份脚本

不装逼的程序员 2021-04-25
435
mysqldump常用参数


-A

(--all-databases)

        全库备份

–B  

增加建库(create)及“use库”的语句,可接多个库名,同时备份

多个库***** -B 库1 库2。

备份带有create、use等语句。

-d
仅表结构。
-t 
仅数据。
–R

(--routines)

备份存储过程和函数数据

(--triggers)

备份触发器数据

-F

(--flush-logs) 

刷新binlog日志(回顾binlog)

自动在备份时滚动binlog

--routines 

减少无用数据输出

(调试)



常用备份脚本


#!/bin/bash
#单库备份目录
Single_Database="/usr/local/mysql/backup/Single_Database/"
#全库备份目录
Full_Database="/usr/local/mysql/backup/Full_Database/"
#日志存放目录
LOG="/usr/local/mysql/backup/backup.log"
#示例单库
Sin_Dat=mysql_test
#登录数据库的用户
USER="root"
#登录数据库的密码 
PASSWD="123456"
#数据库的IP
HOST="localhost"
#数据库的端口
PORT="3306"
#当前时间
time=`date +"%Y-%m-%d %H:%M:%S"`



#备份单库mysql_test
echo -e "\033[34m ***********Begin backup Single Database***********\033[0m"
#显示进度条
b=''
i=0
while [ $i -le  100 ]
do
    printf "Please wait...[%-50s]%d%%\r" $b $i
    sleep 0.1
    i=`expr 2 + $i`        
    b=#$b
done
#如果单库目录不存在则创建并进入到目录
[ ! -d $Single_Database ] && mkdir -p $Single_Database || cd "$Single_Database" >/dev/null 2>&1
#使用MySQL自带的mysqldump进行备份
mysqldump -u$USER -p$PASSWD -h$HOST -P$PORT -F -R --triggers -B $Sin_Dat --lock-all-tables >$Single_Database$Sin_Dat"_"$time.sql
#打印日志存放地址
echo -e "\033[35m##You can query log in $LOG##\033[0m"
#备份成功与否都打印相应信息
if [ $? == 0 ];then
       echo -e "\033[35m##$Sin_Dat backup successful in $Single_Database##\033[0m"
    else
       echo -e "\033[35m##$Sin_Dat backup failed in $Single_Database##\033[0m"
fi
#休息10秒
sleep 10

#换行
echo 



#备份全部数据库
echo -e "\033[34m ***********Begin backup Full databases***********\033[0m"
#显示进度条
b=''
i=0
while [ $i -le  100 ]
do
    printf "Please wait...[%-50s]%d%%\r" $b $i
    sleep 0.1
    i=`expr 2 + $i`
    b=#$b
done
#如果全库目录不存在则创建并进入到目录
[ ! -d $Full_Database ] && mkdir -p $Full_Database || cd "$Full_Database" >/dev/null 2>&1
#使用MySQL自带的mysqldump进行备份
mysqldump -u$USER -p$PASSWD -h$HOST  -P$PORT -A -B -R -F --lock-all-tables >$Full_Database/Full_$time.sql
#打印日志存放地址
echo -e "\033[35m##You can query log in $LOG##\033[0m"
#备份成功与否都打印相应信息
if [[ $? == 0 ]];then
        echo -e "\033[35m##Full database backup successful in $Full_Database##\033[0m"
    else
        echo -e "\033[35m##Full database backup failed in $Full_Database##\033[0m"
fi


脚本演示



             

                  

再小的努力乘以365都很明显。

文章转载自不装逼的程序员,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论