`
huangyongxing310
  • 浏览: 496628 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

MySQL备份恢复脚本

 
阅读更多
MySQL备份恢复脚本



增量备份脚本
#!/bin/bash
#设置环境变量LANG为UTF-8
export LANG=en_US.UTF-8
#每天备份文件存放目录
BakDir=/home/mysql/backup/daily
#二进制日志存放目录
BinDir=/home/mysql
#存放这个备份操作的日志
LogFile=/home/mysql/backup/binlog.log
#二进制日志文件名记录
BinFile=/home/mysql/logindex.index
#洗掉所有日志,就是重新生成一个二进制log文件,这个是用于产生新的mysql-bin.00000*文件
mysqladmin -uroot -proot123 flush-logs
#wc -l filename:显示一个文件的行数,,awk工作流程是这样的:读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是"空白键" 或 "[tab]键",所以$1表示登录用户,$3表示登录用户ip,以此类推。
#Counter保存了logindex.index是的行数,每行代表一个mysql-bin.00000*文件,就是有多少个mysql-bin.00000*文件
Counter=`wc -l $BinFile |awk '{print $1}'`
NextNum=0
#这个for循环用于比对$Counter,$NextNum这两个值来确定文件是不是存在或最新的。
#cat $BinFile,一次显示整个文件,取出每个文件名
for file in `cat $BinFile`
do
#//basename $file,,返回文件的文件名,去掉路径部分
    base=`basename $file`
    #//basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./
    #//NextNum+1
    NextNum=`expr $NextNum + 1`
    #//相当于if(NextNum==Counter)
    if [ $NextNum -eq $Counter ]
    then
        echo $base skip! >> $LogFile
    else
    #//dest保存文件路径,如果备份目录中没有这个文件就从原文件目录中复制过去
        dest=$BakDir/$base
        #//#test -e用于检测目标文件是否存在,存在就写exist!到$LogFile去。
        if(test -e $dest)
        then
            echo $base exist! >> $LogFile
        else
            cp $BinDir/$base $BakDir
            echo $base copying >> $LogFile
        fi
    fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` Bakup succ! >> $LogFile



全量备份
#!/bin/bash
export LANG=en_US.UTF-8
BakDir=/home/mysql/backup
LogFile=/home/mysql/backup/bak.log
#//得到年月日时间
Date=`date +%Y%m%d`
#//得到年月日时分秒
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
#备份好数据后
mysqldump -uroot -proot123 --all-databases --flush-logs --delete-master-logs --single-transaction > $DumpFile
tar -czvf $GZDumpFile $DumpFile
rm $DumpFile

#//得到文件个数
count=$(ls -l *.tgz |wc -l)
if [ $count -ge 5 ]
then
file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
rm -f $file
fi
#只保留过去四周的数据库内容

Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 开始:$Begin 结束:$Last $GZDumpFile succ >> $LogFile
cd $BakDir/daily
rm -f *



//
备份可以通过备份binlog,再在另一个服务器进行恢复的方式进行备份,定期进行入库变成备份库,binlog可以放以HDFS





https://blog.csdn.net/cuiyan1982/article/details/51112240(
Xtrabackup 简介及备份原理)


http://www.cnblogs.com/waynechou/p/xtrabackup_backup.html(XtraBackup 备份与恢复实例讲解)

https://blog.csdn.net/hi__study/article/details/53489672(
MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据)

https://blog.csdn.net/liqfyiyi/article/details/72770458(XtraBackup原理解读)

https://blog.csdn.net/kadwf123/article/details/80793610(使用xtrabackup和binlog进行完全恢复)

http://www.cnblogs.com/xsuid/p/9426257.html?utm_source=debugrun&utm_medium=referral(Xtrabackup备份还原)


http://www.cnblogs.com/ziroro/p/9859114.html(xtrabackup+binlog 实现完全恢复)
xtrabackup备份时有记录biglog的位置信息
xtrabackup_binlog_pos_innodb 和 xtrabackup_binlog_info

分享到:
评论

相关推荐

    MySQL 备份恢复脚本 from 工具 Innobackupex

    此文档 关于M有SQL 第三方开源工具xtrabackup ,文档包含内容: 1,innobackupex 下载安装指引。 2,innobackupex 全备份,增量备份脚本。...3,innobackupex 全恢复,增量恢复脚本。 4,备份脚本指引。

    mysql数据备份脚本

    `mysql数据备份脚本` 提供了一种自动化的方式来确保数据库的定期备份,即使面临意外的数据丢失,也能通过备份轻松恢复。这里我们将深入探讨 MySQL 数据备份的重要性、备份方法以及如何创建一个 `bat` 脚本来实现自动...

    mysql自动备份shell脚本

    以下是一些关于如何创建和使用MySQL自动备份shell脚本的详细说明: 首先,我们需要一个能够执行备份、压缩、清理旧备份并(可选地)将备份文件传输到远程位置或发送电子邮件通知的脚本。以下两个示例提供了不同选项...

    mysql备份脚本.rar

    本文将详细解析“mysql备份脚本.rar”压缩包中的内容,包括在Windows和Linux操作系统中如何利用脚本来进行MySQL数据库的备份。 1. **MySQL备份的重要性** 数据库备份是为了防止意外数据丢失,如硬件故障、软件错误...

    基于xtrabackup的MySQL数据库备份及还原Shell脚本.zip

    恢复脚本则包含解压(如果备份是压缩的)、准备备份、停用MySQL服务、恢复数据和重启MySQL服务等步骤。 了解这些基本概念后,你可以查看压缩包内的`基于xtrabackup的MySQL数据库备份及还原Shell脚本`,这个脚本将...

    mysql 备份还原指令脚本

    完整的 mysql 备份还原指令脚本;轻松实现mysql备份和恢复;在sqL等环境下测试通过。绝对可用

    mysql自动实现备份脚本

    "mysql自动实现备份脚本" 提供了一种高效的方法,通过编写Bash shell脚本来自动化这一过程。下面将详细介绍这个脚本的工作原理、重要性以及如何配置和使用。 1. **Bash脚本简介** Bash是Unix和Linux系统中的默认...

    mysql备份平台脚本

    MySQL备份平台是数据库管理系统中至关重要的组成部分,它确保了数据的安全性和可恢复性。在本文中,我们将深入探讨如何搭建MySQL备份平台,以及利用Apache服务器和Xtrabackup工具来实现这一目标。 首先,MySQL备份...

    Mysql_备份脚本

    根据给定的文件信息,我们可以总结出以下关于MySQL备份脚本的重要知识点: ### MySQL备份脚本概述 在IT行业中,数据安全是至关重要的,而数据备份则是保障数据安全的关键环节之一。MySQL作为广泛使用的数据库管理...

    mysql增量备份LIUNX脚本

    ### MySQL增量备份Linux脚本详解 #### 一、概述 MySQL数据库是许多应用程序的重要组成部分,为了确保数据的安全性与完整性,定期进行数据备份至关重要。在众多备份策略中,增量备份因其高效性和灵活性而受到广泛...

    mysql备份脚本

    MySQL备份脚本是数据库管理中不可或缺的一部分,它用于定期或按需保存数据库的状态,以便在数据丢失或系统故障时能够恢复。以下将详细介绍MySQL备份脚本的原理、常见方法以及如何编写和使用这些脚本。 MySQL数据库...

    xtrabackup备份恢复shell脚本

    《Xtrabackup备份与恢复:Shell脚本详解》 ...总结,Xtrabackup结合Shell脚本提供了一套强大的MySQL备份恢复解决方案,能够应对各种复杂的业务场景。理解并熟练掌握这一工具,对于保障数据库的安全运行具有重要意义。

    还原mysql数据库备份的脚本

    还原mysql脚本备份的sql文件。

    linux mysql定时备份脚本

    本文将详细介绍如何利用shell脚本来创建MySQL的定时备份,并结合提供的"mysqlbackup.sh"脚本和"添加定时任务.txt"文件,帮助你实现这一功能。 首先,我们来看"mysqlbackup.sh"这个shell脚本。这个脚本通常包含以下...

    mysql 自动备份数据库脚本

    "mysql 自动备份数据库脚本" 提供了一种自动化的方法,通过Windows的定时任务服务(taskschd.msc)来定期执行数据库的备份,避免了手动操作的繁琐和可能的人为错误。 MySQL的自动备份主要涉及以下几个核心知识点: ...

    mysql自动备份数据库脚本

    MySQL自动备份数据库脚本是IT运维中的重要环节,它能够定期保存数据库数据,防止数据丢失,确保业务连续性。在本场景中,我们有一个名为`auto_mysql_back.sh`的shell脚本,它用于自动化MySQL数据库的备份过程。下面...

    mysql备份Windows脚本mysql_backup.bat

    mysql_backup.bat

    Mysql全量备份与配套恢复脚本,可使用crontab定时自动全量备份

    接下来,我们来看 `restore.sh` 脚本,这是用来从备份恢复数据库的关键部分: 1. **导入 SQL 文件**:恢复过程通常涉及到读取 `backup.sh` 生成的 SQL 文件并执行它。这可以通过使用 `mysql` 命令行客户端完成,...

    Linux下mysql数据库备份以及恢复shell脚本

    本篇将详细阐述如何使用Shell脚本来实现MySQL数据库的备份与恢复。 首先,让我们分析提供的两个脚本文件: 1. `datarestore.sh`:这个脚本通常用于执行数据库恢复操作。它可能包含了连接到MySQL服务器,选择要恢复...

    mysql 增量备份/全量备份脚本

    MySQL数据库在日常运维中扮演着重要的角色,为了确保数据的安全性和可恢复性,定期进行备份是必不可少的。本文将详细讲解MySQL的增量备份与全量备份,并提供在Windows和Linux环境下执行备份的脚本。 全量备份是...

Global site tag (gtag.js) - Google Analytics