一、逻辑备份与物理备份的区别
1、逻辑备份:备份的是建表、建库、插入等操作所执行SQL语句
(DDL DML DCL),适用于中小型数据库,效率相对较低。提供三
种级别的备份,表级,库级和全库级
2、物理备份:直接复制数据库文件,适用于大型数据库环境,不受
存储引擎的限制,但不能恢复到不同的MySQL版本,有完整备份,增量
备份,差异备份
二、逻辑备份
远程备份语法: # mysqldump -h 服务器地址 -u用户名 -p密码 数据库名 > 备份文件.sql
本地备份语法: # mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql
常用备份选项
-A, --all-databases
备份所有库
-B, --databases bbs test mysql
备份多个数据库
--no-data,-d
不导出任何数据,只导出数据库表结构。
三、物理备份(运用xtrabackub工具)
先创建备份目录 mkdir -p /xtrabackup/full
完全备份:innobackup ex --user=root --password='123' /xtrabackup/full
完全备份恢复流程
1. 停止数据库
2. 清理环境
3. 重演回滚--> 恢复数据
验证恢复:innobackupex --apply-log /xtrabackup/full/2021-08-21_11-47-49
确认数据库目录 datadir=/var/lib/mysql
恢复数据:innobackupex --copy-back /xtrabackup/full/2021-08-21_11-47-49
4. 修改权限:chown mysql.mysql /var/lib/mysql -R
5. 启动数据库
四、Mysql bin-log日志恢复数据
需要开启binlog日志功能
在vim /etc/my.cnf中添加
server-id = 1
log-bin =/var/lib/mysql/mysql-bin.log(binlog日志存放位置)
改完后重启mysql
根据binlog日志的时间点恢复
找到要恢复sql语句的起始时间、结束时间
mysqlbinlog --start-datetime='2021-8-21 23:55:54' --stop-datetime='2021-8-21 23:56:541' mylog.000001 | mysql -uroot -p密码