MySQL分表备份
2024-10-07 15:18:49
#!/bin/bash
DUMP=/usr/bin/mysqldump
MYSQL=/usr/bin/mysql
IPADDR=127.0.0.1
PORT=3306
USER=abc
PASSWD=123456
DATABASE=(db1 db2 db3)
ROOT_DIR=/data
LogFile=/var/log/mysqldunp.log
DATE="`date +%Y%m%d`"
MYSQLCMD="$MYSQL -h$IPADDR -P$PORT -u$USER -p$PASSWD"
MYSQLDUMP="$DUMP -h$IPADDR -P$PORT -u$USER -p$PASSWD"
OUTDIR="${ROOT_DIR}/mysql/${DATE}/${DATABASE}"
function log_info(){
echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - INFO " $@" " >> $LogFile
}
function log_error(){
echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - ERROR " $@" " >> $LogFile
}
function backup(){
database=$1
table=$2
$MYSQLDUMP $DATABASE $table > ${OUTDIR}/${DATE}-${database}-${table}.sql
if [ $? == 0 ];then
log_info "${database} database ${table} table Backup successfully!"
else
log_error "${database}-${table} Backup failure 100"
exit 100
fi
}
function create_directory(){
database=$1
outdir="${ROOT_DIR}/mysql/${DATE}/${database}"
[ -d $outdir ] || mkdir -p $outdir
if [ -d $outdir ];then
log_info "Directory created successfully! --> ${outdir}"
else
log_error "${outdir} Directory creation failed."
log_error "Backup to terminate."
fi
}
function tables_bak(){
database=$1
table=(`$MYSQLCMD -e "show tables from $database;" | sed '1d'`)
log_info "${#table[*]} tables : ${table[*]}"
for table in ${table[*]}
do
backup $database $table
done
}
log_info "Database backup starts `date +%Y-%m-%d\ %H:%M:%S`"
for db in ${DATABASE[*]}
do
create_directory $db
tables_bak $db
done
最新文章
- Ixia测试仪的自动化
- 树-红黑树(R-B Tree)
- SDK平台三态按钮的实现
- Angular4--提速--提升Angular项目的首页打开速度(包含微信登录优化)
- ASP.NET Web API编程——路由
- Webhook 实践 —— 自动部署
- spoj Minimax Triangulation
- 【深度学习】Pytorch 学习笔记
- SVM总结(转)
- SpringBoot 初接触之 404
- 什么是控制反转(IOC)?什么是依赖注入?
- 纯SVG实现的Loading动画,拿走不谢
- php Only variables should be passed by reference 报错问题
- Linux内核(6) - 模块机制与“Hello World!
- sails ORM组件 Waterline v0.10 英文文档
- PHP5.5的新特性
- [原创] SiteServer 3.5 批量导入文章的SQL处理脚本
- MapReduce实战(三)分区的实现
- 005 Genymotion模拟器的使用和逍遥模拟器的使用
- Git读档