MySQL 备份
1.做备份就是为了恢复
2.第一个是保护公司的数据
3.尽量减少数据的丢失(公司的损失)
备份类型
1.冷备
停服务,做备份
2.温备
(不停服务)在备份的过程中,会锁表,用户无法往表中写入数据
3.热备
(不停服务)在备份过程中,不会锁表,用户随意写数据
备份策略
1.全量备份
将所有的数据,做备份
2.增量备份
基于上一次数据备份的,新数据备份
3.差异备份
基于全备数据的,新数据备份
备份工具
1.逻辑备份
1.mysqlbinlog
2.mysqldump
3.into outfile(导出数据结果)
4.binlog(备份SQL语句,DML,DCL,DDL,DTL)
5.replication(主从复制-延时从库)
2.物理备份
1.cp /application/mysql/data
2.Xtrabackup
MySQL逻辑备份-mysqldump
mysqldump
-u:指定用户
-p:指定密码
-h:指定主机域
-S:指定socket文件
-P:指定端口
1.全备参数:-A
[root@db02 ~]# mysqldump -A > /tmp/full.sql
2.指定库备份:-B(指定多个库)
[root@db02 ~]# mysqldump -B zls1 > /tmp/zls1.sql
#多了一条建库语句,use语句
mysql < /tmp/zls1.sql
3.什么都不加:备份库中的表
[root@db02 ~]# mysqldump zls1 > /tmp/zls1_1.sql
mysql> create database zls1;
mysql> use zls1; source /tmp/zls1_1.sql
mysql zls1 < /tmp/zls1_1.sql
4.备份时,刷新binlog:-F
[root@db01 ~]# mysqldump -A -F > /tmp/full_F.sql
[root@db01 ~]# mysqldump -B mysql zls -F > /tmp/full_F.sql
5.打点备份:--master-data=2
#=2是注释
[root@db02 ~]# mysqldump -A --master-data=2 > /tmp/full1.sql
#=1 不注释
[root@db02 ~]# mysqldump -A --master-data=1 > /tmp/full1.sql
#=0 关闭
[root@db02 ~]# mysqldump -A --master-data=0 > /tmp/full1.sql
6.热备参数:--single-transaction(快照备份)
[root@db02 ~]# mysqldump -A --master-data=2 --single-transaction > /tmp/full2.sql
7.-R(备份函数,存储过程),--triggers
[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql
8.压缩备份:gzip
[root@db02 ~]# mysqldump -A -R --triggers --master-data=2 --single-transaction > /tmp/full2.sql
zcat /tmp/full_2019-12-10.sql.gz | mysql -uroot -p123
start-position
网友评论