数据库常用备份方案
完全备份
增量备份
差异备份
mysql⾃自带逻辑备份⼯工具 mysqldump , 可以保证数据备份一致性, 以及服务可⽤用性
数据库完整备份
以下都为逻辑备份
mysqldump命令使用方式
>mysqldump -h 服务器器 -u ⽤用户名 -p 密码 数据库名 > 备份⽂文件.sql
#常用参数
-A, --all-databases # 备份所有库
-B, --databases # 备份多个库多个数据库
--single-transaction #InnoDB 一致性服务可⽤用性
--master-data=1|2 # 记录 binlog ⽇日志位置与⽂文件名 , 追加⾄至备份⽂文件中
--triggers # 备份触发器器
-F, --flush-logs # 备份之前刷新⽇日志
-E, --events # 备份事件调度器器代码
-R, --routines # 备份存储过程和存储函数
#注意:不管物理备份还是逻辑备份,必须开启binlog日志
使用myasqldump完整备份
#本地备份
mkdir /backup/mysql -p
mysqldump -uroot -p'123' \
--all-databases \
--single-transaction \
--master-data=1 \
--flush-logs > /backup/mysql/`date +%F%H`-mysql-all.sql
查看binlog日志信息
sed -n "22p" /backup/mysql/2019-02-2109-mysql-all.sql
#备份整个数据库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| weiran |
+--------------------+
mysql> use weiran;
Database changed
mysql> show tables;
+----------------------+
| Tables_in_weiran |
+----------------------+
| zhangsan |
| lisi |
| wangwu |
+----------------------+
ls
#查看一下
mysqldump -uroot -p -h127.0.0.1 --all-databases > all-201902210946.sql
#然后输入密码
ls
#备份weiran库的zhangsan表和lisi表
mysqldump -uroot -p -h127.0.0.1 weiran zhangsan lisi > table-201902210946.sql
#然后输入密码
ls
#查看一下
//备份weiran库
mysqldump -uroot -p -h127.0.0.1 --databases weiran > wr-201902210946.sql
#输入密码
#模拟误删weiran的数据库
mysql> drop database weiran;
Query OK, 3 rows affected (0.02 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
mysql数据恢复
#恢复weiran的数据库
ls
#先查看一下之前备份的
mysql -uroot -p -h127.0.0.1 <all-201902210946.sql
#然后输入密码
mysql -uroot -p -h127.0.0.1 -e 'show databases;'
#然后输入密码 接着就恢复了