MySQL——备份与恢复

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
MySQL数据库备份和恢复
 
--备份类型:
1、热备份(只有InnoDB支持)(不影响业务,最好的方式)
2、冷备份( 阻止用户访问)
3、温备份
 
--备份方式:
1、逻辑备份(文本表示:SQL语句)
2、物理备份(数据文件的二进制副本)
3、基于快照的备份
4、基于复制的备份
5、增量备份(刷新二进制日志)
 
--备份工具:
1、 mysqldump: mysql原生自带的很好用的逻辑备份工具
2、 mysqlbinlog: 实现binlog备份的原生态命令,逻辑备份
3、 xtrabackup: 物理备份工具
 
-----------------------------------------------------------------------------------------------------------------------------------
 
MySQL数据库备份详解:
 
1、mysqldump
mysqldump -uroot -p123456 --all-databases >/backup/full.sql  (备份全库) ---->恢复(前提是数据库为启动状态): source /backup/full.sql; 或 用“<”
mysqldump -uroot -p123456 -B oldboy >/backup/full.sql (备份单库)
 
备份多个表:
mysqldump 库1 表1 表2 表3 >库1.sql
 
mysqldump参数:
        -A, --all-databases: 全库备份 ***
        -B:带有建库(create)及(use)库的语句,可以直接接多个库,例如同时备份多个库为: ... -B 库1 库2 ***
        -R, --routines: 备份存储过程和函数数据 ***
        --triggers: 备份触发器数据 ***
        -F, --flush-logs: 刷新binlog日志(备份时滚动binlog日志) ***
        --master-data=1/2: 告诉你备份后时刻的binlog位置 ***
                        2: 注释----> 会在备份的额SQL文件中头部,记录备份时用到哪个binlog文件了,并且记录position号到哪里
                        1: 非注释,要执行(主从复制)
 
        -d: 仅表结构(不常用)
        -t: 仅数据(不常用)
        --compact: 减少无用数据数据输出(调试)(不常用)
 
        锁表备份(innodb/myisam)(备份结束之前不能对表进行操作): ***
            -x, --lock-all-tables ---->锁定所有备份的表
            -l, --lock-tables ---->锁定单表
            --master-data可以自动进行锁表和释放锁,如果用了--master-data就不需要加-x和-l
 
        --single-transaction: 对innodb引擎进行热备 ***
 
 
 
2、xtrabackup
(1)安装xtrabackup
(2)全备备份:
    备份命令:
        xtrabackup
        innobackupex(重要)(支持InnoDB和MyISAM)
 
        innobackupex --user=root --password=123456 /backup/full  (全库备份)
 
    恢复:
        恢复前的准备(应用日志):
            innobackupex --apply-log /backup/full
        恢复:
            innobackupex --copy-back /backup/full
 
 
 
(4)增量备份:
        原理:
            基于上一次的备份做增量
            基于上一次备份后的变化的数据页,还要备份在备份过程中的redo、undo变化
 
        增量备份:
            innobackupex --user=root --password=123456 --incremental --no-timestamp(如果不加则会以时间命名) --incremental-basedir=/backup/full /backup/xinc1
         
        恢复:
            1、应用全备日志:
            innobackupex --apply-log --redo-only /backup/full
            2、合并增量到全备:
            innobackupex --apply-log --incremental-dir=/backup/xinc1 /backup/full
            3、恢复:
 
 
 
3、备份实战:39期视频课程第09,第04

  

posted @   映辉  阅读(62)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示