数据备份的重要性
●在生产环境中,数据的安全性至关重要
●任何数据的丢失都可能产生严重的后果
●造成数据丢失的原因:
[图片上传失败…(image-799a75-1601017593330)]
数据库备份的分类
●从物理与逻辑的角度,备份可分为:
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
●逻辑备份:对数据库逻辑组件(如:表等数据库对象)的备份
●从数据库的备份策略角度,备份可分为
常见的备份方法
●物理冷备
●专用备份工具mydump或mysqlhotcopy
●启用二进制日志进行增量备份
●第三方工具备份
MySQL完全备份
■是对整个数据库、数据库结构和文件结构的备份
■保存的是备份完成时刻的数据库
■是差异备份与增量备份的基础
数据库完全备份分类
■物理冷备份与恢复:
关闭MySQL数据库
使用tar命令直接打包数据库文件夹
直接替换现有MySQL目录即可
■mysqldump备份与恢复
MySQL自带的备份工具,可方便实现对MySQL的备份
可以将指定的库、表导出为SQL脚本
使用命令mysql导入备份的数据
数据库备份与恢复
MySQL数据库完全备份与恢复
(1)环境搭建
mysql> create database zz;Query OK, 1 row affected (0.00 sec)mysql> use auth;ERROR 1049 (42000): Unknown database authmysql> use zz;Database changedmysql> create table users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT \, PRIMARY KEY (user_name));Query OK, 0 rows affected (0.01 sec)mysql> insert into users(user_name,user_passwd) values(zhangsan, password(123456));Query OK, 1 row affected, 1 warning (0.02 sec)mysql> insert into users values(lisi, password(123456)); Query OK, 1 row affected, 1 warning (0.00 sec)mysql> mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys|| zz |+--------------------+5 rows in set (0.00 sec)mysql> select * from zz.users;+-----------+-------------------------------------------+| user_name | user_passwd |+-----------+-------------------------------------------+| lisi| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 || zhangsan | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |+-----------+-------------------------------------------+2 rows in set (0.01 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
(2)物理冷备份
tar命令直接打包数据库文件夹
[root@localhost ~]# systemctl stop mysqld#在根下新建个backup目录[root@localhost ~]# mkdir /backup#/usr/local/mysql/data备份压缩[root@localhost ~]# tar zcf /backup/mysql_all-$(date +%F).tar.gz /usr/local/mysql/data/[root@localhost ~]# cd /backup/[root@localhost backup]# ll总用量 1280-rw-r--r-- 1 root root 1310300 9月14 06:24 mysql_all--09-14.tar.gz
(3)模拟故障
[root@localhost backup]#cd ~[root@localhost backup]# mkdir /bak #将目录data数据移动到bak 里面去 [root@localhost backup]# mv /usr/local/mysql/data/ /bak/[root@localhost backup]# cd /usr/local/mysql/#进mysql目录查看data[root@localhost mysql]# ll####查看后data目录被移走 ,模拟故障成功总用量 64drwxr-xr-x 2 mysql mysql 4096 8月 4 19:19 bin-rw-r--r-- 1 mysql mysql 17987 9月 13 COPYING-rw-r--r-- 1 mysql mysql 17987 9月 13 COPYING-testdrwxr-xr-x 2 mysql mysql 55 8月 4 19:19 docsdrwxr-xr-x 3 mysql mysql 4096 8月 4 19:19 includedrwxr-xr-x 4 mysql mysql 191