mysql备份脚本
思韵闪耀
2022-03-15
0

# 建立备份用户.

mysql> grant select,lock tables,reload,super,file,show view on *.* to 'mysqlbackup'@'localhost' identified by 'mysql_ritto'; 
mysql> flush privileges; 

​​​​​​​# 脚本如下.

登录后复制
#!/bin/bash 
 
USERNAME=mysqlbackup 
PASSWORD=mysql_ritto 
 
DATE=`date +%Y-%m-%d` 
OLDDATE=`date +%Y-%m-%d -d '-20 days'` 
FTPOLDDATE=`date +%Y-%m-%d -d '-60 days'` 
 
MYSQL=/usr/local/mysql/bin/mysql 
MYSQLDUMP=/usr/local/mysql/bin/mysqldump 
MYSQLADMIN=/usr/local/mysql/bin/mysqladmin 
SOCKET=/tmp/mysql.sock 
 
BACKDIR=/data/backup/db 
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR} 
[ -d ${BACKDIR}/${DATE} ] || mkdir ${BACKDIR}/${DATE} 
[ ! -d ${BACKDIR}/${OLDDATE} ] || rm -rf ${BACKDIR}/${OLDDATE} 
 
for DBNAME in mysql db1 db2 db3 
do 
   ${MYSQLDUMP} --opt --master-data=2 --tz-utc=true -u${USERNAME} -p${PASSWORD} -S${SOCKET} ${DBNAME} | gzip > ${BACKDIR}/${DATE}/${DBNAME}-backup-${DATE}.s l.gz 
   logger "${DBNAME} has been backup successful - $DATE" 
   /bin/sleep 5 
done 
 
 
HOST=10.1.2.22 
FTP_USERNAME=db1 
FTP_PASSWORD=db1_ritto 
 
cd ${BACKDIR}/${DATE} 
 
ftp -i -n -v << ! 
open ${HOST} 
user ${FTP_USERNAME} ${FTP_PASSWORD} 
bin 
cd ${FTPOLDDATE} 
mdelete * 
cd .. 
rmdir ${FTPOLDDATE} 
mkdir ${DATE} 
cd ${DATE} 
mput * 
bye 
! 

# 备份后的目录结构是这个样子的. 

[root@db1 db]# ls 
2011-11-10  2011-11-12  2011-11-14  2011-11-16  2011-11-18  2011-11-20  2011-11-22  2011-11-24  2011-11-26  2011-11-28 
2011-11-11  2011-11-13  2011-11-15  2011-11-17  2011-11-19  2011-11-21  2011-11-23  2011-11-25  2011-11-27  2011-11-29 
[root@db1 db]# ls -lhtr 2011-11-29/ 
total 3.1G 
-rw-r--r-- 1 root root 133K Nov 29 02:01 mysql-backup-2011-11-29.sql.gz 
-rw-r--r-- 1 root root 1.5G Nov 29 02:06 db1-backup-2011-11-29.sql.gz 
-rw-r--r-- 1 root root  35M Nov 29 02:06 db2-backup-2011-11-29.sql.gz 

 


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

docker-compos...
1.Compose介绍 DockerCompose是一个用来定义和...
2024-04-26
Mysqldump 时出现...
Mysqldump 时出现错误及解决方案:mysqldump: C...
2024-01-16
MySQL数据库”mysq...
MySQL数据库”mysql SQL Error:1146,SQL...
2023-12-02
mysql关闭binlog...
linux编辑my.cnf,windows编辑my.ini在[my...
2023-12-02
20道Mysql面试题
1. 什么是 MySQL?它与其他数据库管理系统有何不同? 答:M...
2023-11-23
PostgreSQL和My...
PostgreSQL和MySQL对比 下面将从以下几个方面阐述My...
2022-11-03

热门资讯

MySQL权限篇之REPLIC... MySQL权限篇之REPLICATION CLIENT及REPLICATION SLAVE REPL...
configure: erro... php编译后出现这样的信息 以上略 checking for MySQLi support... y...
MySQL清屏命令 在Linux系统下MySQL的清屏命令 MySQL在Linux系统下,输入system clear即...
Skip-External-L... MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参数,即跳...
MySQL 的复合查询或者嵌套... MySQL 的复合查询或者嵌套查询,有表两张,要以 tmpa 表两张为表列,将 tmpb 横向列出,...
MySQL创建用户与授权 一. 创建用户 命令: CREATE USER username@host IDENTIFIED B...
mysql 如何跟踪_MySQ... 在项目开发中,难免会遇到在数据库服务器端跟踪sql执行语句的需求,通过跟踪sql执行语句,我们可以确...
Mysql服务器无法启动 一、Mysql服务器无法启动,错误日志中提示: ^G/usr/local/mysql/bin/mys...
MySql ManifestU... 解决 MySql ManifestUpdate 通过执行计划关闭的方式,不适用超级权限管理人员(公司...
给MySQL的备份账户添加权限 给MySQL的备份账户添加权限 MySQL的备份可以说是重中之重,毕竟数据是一个网站的命脉。 但是备...