码迷,mamicode.com
首页 > 数据库 > 详细

数据库管理与高可用第四章备份与恢复

时间:2020-11-16 13:02:25      阅读:17      评论:0      收藏:0      [点我收藏+]

标签:ack   log   sql命令   roo   back   数据恢复   文件名   基于   二进制   

数据库管理与高可用第四章备份与恢复

1.MySQL的完全备份

  • mysqldump命令备份数据库

◆ 备份单个库

语法:
mysqldump -u 用户名 -p [密码] [选项] [库名] > /备份路径/备份文件名
例如:
mysqldump -u root -p yiku > /backup/yiku.sql

◆ 备份多个库

语法:
mysqldump -u 用户名 -p [密码] [选项] --databases 库名1 [库名2] ...  > /备份路径/备份文件名
例如:
mysqldump -u root -p --databases yiku erku > /backup/yiku-erku.sql

◆ 对所有库备份

语法:
mysqldump -u 用户名 -p [密码] [选项] --all-databases > /备份路径/备份文件名
例如:
mysqldump -u root -p --opt --all-databases > /backup/ku.sql
  • mysqldump命令备份数据表

    语法
    mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
    例如
    mysqldump -u root -p yiku yibiao > /backup/yiku-yibiao.sql
    *mysqldump备份表的结构
    mysqldump -u 用户名 -p [密码] [选项] -d 数据库名 表名 > /备份路径/备份文件名
    例如
    mysqldump -u root -p -d yiku yibiao > /backup/yiku-yibiao.sql

    2.MySQL数据恢复

    ◆ source命令恢复数据库

    mysql > source /backup/all-data.sql     //使用绝对路径

    ◆ mysql命令恢复数据库

    mysql -u 用户名 -p [密码] < 库备份脚本的路径

    ◆ 恢复数据表

    mysql> source /opt/school_kgc.sql
    mysql -u 用户名 -p [密码] < 表备份脚本的路径
    mysql -u root -p mysql < /backup/yiku-yibiao.sql  

    3.MySQL增量备份与恢复

    ◆ 开启二进制日志

    vim /etc/my.cnf               
    log-bin=mysql-bin        //添加此行开启二进制日志,名称为mysql-bin开头

    ◆ MySQL二进制日志对备份命令

    mysqladmin -u 用户名 -p [密码] flush-logs

    ◆ 查看到日志文件中的操作语句(重要)

    mysqlbinlog --no-defaults --base64-output=decode-rows -v 日志文件名称 /opt/aaa.txt  ‘//使用64位解码器按行输出日志文件放到/opt/aaa.txt中‘
    例如:mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 > /opt/bak.txt
    cat /opt/aaa.txt  ‘//查看日志文件的详细信息‘

    ◆ 一般恢复

    mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p

    ◆ 断点恢复

    恢复数据到指定位置
    mysqlbinlog --stop-position=‘操作id‘ 二进制日志 |mysql -u 用户名 -p 密码
    从指定的位置开始恢复数据
    mysqlbinlog --start-position=‘操作id‘ 二进制日志 |mysql -u 用户名 -p 密码

    ◆ 基于时间点恢复

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

    ◆ 增量恢复的步骤

    开启二进制日志-->添加数据-->进行完全备份-->录入新的数据-->进行增量备份(刷新二进制日志)-->模拟故障––>恢复操作

    [root@mysql data]# mysqlbinlog --no-defaults --stop-position=‘612‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123
    [root@mysql data]# mysqlbinlog --no-defaults --start-position=‘806‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123
    
    [root@mysql data]# mysqlbinlog --no-defaults --stop-datetime=‘2020-08-21 11:54:04‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123
    [root@mysql data]# mysqlbinlog --no-defaults --start-datetime=‘2020-08-21 11:54:38‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123

数据库管理与高可用第四章备份与恢复

标签:ack   log   sql命令   roo   back   数据恢复   文件名   基于   二进制   

原文地址:https://blog.51cto.com/14625831/2547968

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!