MYSQl备份与恢复

数据库备份概述

**(1)数据备份的重要性**
      造成数据丢失的原因有如下几种:
程序错误、人为操作错误、运算错误、磁盘故障、灾难和盗窃

 *(2)数据库备份类型**
         数据库备份可以分为物理备份和逻辑备份。物理备份是对数据
操作系统的物理文件(如数据文件、日志文件等)的备份。这种类型的备份
适用于在出现问题时需要快速恢复的大型重要数据库
    物理备份又可以分为冷备份(脱机备份)、热备份(联机备份)和温备份
    《1》冷备份:在数据库关闭状态下进行备份操作
    《2》热备份:在数据库处于运行状态时进行备份操作,该备份方法依赖
    数据库的日志文件
    《3》温备份:数据锁定表格(不可写入但可读)的状态下进行备份操作

**(3)常见的备份方法**
    打包数据文件:tar
    专用备份工具:mysqldump
    二进制日志增量备份
    第三方工具备份

数据库完全备份操作

    (1)备份呢数据库
    关闭mysql服务,创建一个/backup目录作为备份数据存储路径。使用
    tar创建备份件整个数据库文件夹份属于完全备份。
        systemctl stop mysqld
        mkdir /backup
tar zcvf /backup/mysql_data-$(date +%F).tar.gz /usr/local/mysql/data/

        tar zxvf mysql_data-2018-1-1.tar.gz -C ./
    (2)恢复数据库
        mkdir bak
        mv usr/local/mysql/data /bak

myqldump备份与恢复

    **(1)备份数据库**

    使用mysqldump命令导出数据时,默认会在终端显示,若要保存文件
还需要结合Shell的 ">"重定向输出操作
    格式1:备份指定库中的部分表
mysqkdump [选项] 库名 [表名1] [表明名2]...> /备份路径/备份文件名

    格式2:备份一个或多个完整的库(包括其中所有的表)
myslqdumn [选项] --databases 库名1 [库名2] ... > /备份路径/备份文件名

    格式3:备份myslq服务器所有的库
mysqldump [选项] --all-databases > /备份路径/备份文件名

    常用的选项包括 "-u" "-p",分别指定数据库用户名 密码 
        例如:
    mysqldump -u root -p 库名 表名 > /backup/表名.sql
    mysqldump -u root -p --databases 库名 > /backup/库名.sql
    mysqldump -u root -p --all-databases > /backup/mysqlall.sql

    **(2)恢复数据库**

    命令格式:mysql [选项] [库名] [表名] < /备份路径/备份文件名
        mysql -u root -p 库名 < 表名.sql
        mysql -u root -p < 库名.sql
        mysql -u root -p < mysqlall.sql

MYSQL增量备份与恢复

    **(1)增量备份的特点**
与完全备份不同,增量备份没有重复数据,备份量不大,时间短,但及其麻烦
需要上次完全备份及完全备份之后所有的增量备份才能恢复,而且要对所有增
量备份进行逐个反推恢复,通过MYSQL提供的二进制日志间接实现增量备份

    **(2)开启二进制日志功能**
        vim /etc/my.cnf
    log-bin=/usr/local/mysql/mysql-bin(添加到配置文件中)
        systemctl restart mysqld  

mysql增量恢复

常用的增量恢复的方法有三种:一般恢复、基于位置恢复、基于时间点的恢复
    一般恢复:将所有备份的二进制日志内容全部恢复
mysqlbinlog [--no-defaults] 增量备份文件 | mysql 用户名 -p

***基于位置恢复***:

    格式1:恢复数据到指定位置
mysqlbinlog --stop-position='操作 id' 二进制日志 |MySQL -u 用户
名 -p 密码

    格式2:从指定的位置开始恢复数据
mysqlbinlog --start-position='操作 id' 二进制日志 |MySQL -u 用户
名 -p 密

    ***基于时间点的恢复***

    格式1:从日志开头截至到某个时间点的恢复
mysqlbinlog [--no-defaults] --stop-databases='年-月-日 小时'
分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码

    格式2:从某个时间点到日志结尾的恢复
mysqlbinlog [--no-defaults] --start-databases='年-月-日 小时'
分钟:秒' 二进制日志 | mysql -u 用户名 -p 密码

    格式3:从某个时间点到某个时间点的恢复
mysqlbinlog [--no-defaults] --start-databases='年-月-日 小时'
分钟:秒' --stop-datetime='年-月-日 小时:分钟:秒' 二进制日志
| mysql -u 用户名 -p 密码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值