mysqldump 备份与恢复脚本

# Feedback/comment/suggestions : http://www.real-blog.com/
# ----------------------------------------------------------------------
# your mysql login information
# db_user is mysql username
# db_passwd is mysql password
# db_host is mysql host
# -----------------------------
db_user="root"
db_passwd="123456"
db_host="localhost"
# the directory for story your backup file.
backup_dir="/tmp/mybackup"
# date format for backup file (dd-mm-yyyy)
time=`date +"%d-%m-%Y"`
# mysql, mysqldump and some other bin‘s path
MYSQL="/usr/sbin/mysql"
MYSQLDUMP="/usr/sbin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/gzip"
# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
all_db=`$MYSQL -u $db_user -h $db_host -p$db_passwd -Bse ‘show databases‘ | grep -v grep | grep -v schema`
for db in $all_db
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"
done
# delete the oldest backup
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"
# rotate backup directory
for int in 4 3 2 1 0
do
if (test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0

时间: 2024-08-08 13:52:17

mysqldump 备份与恢复脚本的相关文章

mysql运维管理-mysqldump 备份与恢复数据库20

mysqldump 备份与恢复数据库 备份: 1.备份全部数据库的数据和结构 mysqldump -uroot -pjsb -A > /bk/all.sql -A: 备份所有数据库=--all-databases 2. 备份全部数据库的结构(加 -d 参数) mysqldump -uroot -p123456 -A -d > F:\all_struct.sql -A: 备份所有数据库=--all-databases    --no-data, -d:只导出表结构 4.备份单个数据库的数据和结构

MYSQL5.6学习——mysqldump备份与恢复

MYSQL备份 冷备份:停止服务进行备份,即停止数据库的写入 热备份:不停止服务进行备份(在线) l  mysql的MyIsam引擎只支持冷备份,InnoDB支持热备份,原因: InnoDB引擎是事务性存储引擎,每一条语句都会写日志,并且每一条语句在日志里面都有时间点,那么在备份的时候,mysql可以根据这个日志来进行redo和undo,将备份的时候没有提交的事务进行回滚,已经提交了的进行重做.但是MyIsam不行,MyIsam是没有日志的,为了保证一致性,只能停机或者锁表进行备份. l  In

mysqldump备份与恢复 之 黑锅侠

公司这几天数据库有数据丢失,所以找到运维部门要恢复数据库,但是我们的工程师,在执行完恢复命令后,提示语法错误,并没有恢复数据库,坑爹啊~~~ 具体原因:由于备份时语法错误 或 指定的目录不存在,但在备份的时候又没报错,所以工程师以为备份成功了,最终酿成大祸:(成为黑锅侠) 公司最终开恩,每人扣除1000元的惩罚,下面来总结并模拟下正常过程. 一.错误备份演示 语法出错,备份失效看似备份成功,但查看备份内容时,出现语法错误的警告 [[email protected] ~]# mysqldump -

mysql数据库备份与恢复脚本

#!/bin/bash #mysql database backup and restore the script # define config variable host=localhost user=root passwd=xxxxx #this variable for grant mainHostIp="127.0.0.1" base_path=/opt/disk-webData/mysqlBackup # base_path=/media/sf_website/yii/di

MySQL mysqldump备份脚本

###### 备份数据库的脚本############### ################## #author [email protected]# ##################   user=backup passwd=MANAGER host=192.168.1.250 date=`date +%Y%m%d` mysql_bin=/usr/local/mysql/bin $mysql_bin/mysqldump-u$user -p$passwd -h$host --single-

【MySQL】mysqldump备份与恢复

简介:mysqldump常用于MySQL数据库逻辑备份. 备份操作: 1.备份所有库: mysqldump -uroot -pyourpass --all-databases > /tmp/all.dump 2.备份单个库: mysqldump -uroot -pyourpass test > test.dump 3.备份单张表: mysqldump -uroot -pyourpass test test_tb > test_tb.sql 4.备份存储过程: mysqldump -uro

MySQL备份与恢复常用方法总结(mysqldump/xtrabackup/lvm快照备份/二进制日志及时点恢复)

MySQL备份与恢复常用方法总结 (mysqldump/xtrabackup/lvm快照备份/逻辑备份与恢复/二进制日志及时点恢复) 自言:学习在于总结,把所了解的类似东西放到一起更能加深记忆 一.了解备份相关知识 1)按服务器备份时状态可分为:     热备份:读.写不受影响:     温备份:仅可以执行读操作:     冷备份:离线备份:读.写操作均中止:2)按服务器备份数据集可分为:     物理备份:复制数据文件:     逻辑备份:将数据导出至文本文件中:3)按服务器备份数据量可分为:

MySQL5.7.20数据库备份与恢复

MySQL数据库备份与恢复·####造成数据丢失的原因####程序错误人为操作错误运算错误磁盘故障灾难(如火灾.地震)和盗窃· ####物理与逻辑的角度####1.物理备份:冷备份:在数据关闭的状态下运行热备份:在数据库运行的状态时进行备份操作,该备份方法依赖数据库日志文件.温备份:数据局锁定表格(可以读不可以写)的状态年备份数据库2.逻辑备份:逻辑备份是对数据库逻辑组件(如表等数据库对象)的备份,表示为逻辑数据结构(create database.create tabale)和内容(inser

crontab中添加定时脚本不生效的原因

最近一段在检查服务器的定时脚本的时候发现了有部分服务器上的mysqldump定时脚本并没有被执行,因为在脚本中有生成日志所以就发现了问题.于是先去/var/log/cron中查看了下日志发现在相应的时候crond有执行相应的脚本,初步分析是是脚本的逻辑有问题于是就去看了下,并且执行了下发现脚本的逻辑是没有问题的,而且直接执行是没有问题的,后来又去/etc/crontab文件里去看了下 发现crontab中的环境变量不一样,但是脚本中有使用绝对路径,最后发现mysqldump中有使用allow-k