数据备份的重要性
●在生产环境中,数据的安全性至关重要
●任何数据的丢失都可能产生严重的后果
●造成数据丢失的原因:
程序错误
认为操作失误
运算错误
磁盘故障
灾难等
[图片上传失败…(image-799a75-1601017593330)]
数据库备份的分类
●从物理与逻辑的角度,备份可分为:
物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份
物理备份方法:
冷备份(脱机备份)︰是在关闭数据库的时候进行的
热备份(联机备份)∶数据库处于运行状态,依赖于数据库的日志文件
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
●逻辑备份:对数据库逻辑组件(如:表等数据库对象)的备份
●从数据库的备份策略角度,备份可分为
完全备份:每次对数据库进行完整的备份
差异备份:备份自从上次完全备份之后被修改过的文件
增量备份:只有在上次完全备份或者增量备份后被修改的文件才会被备份
常见的备份方法
●物理冷备
备份时数据库处于关闭状态,直接打包数据库文件
备份速度快,恢复时也是最简单的
●专用备份工具mydump或mysqlhotcopy
mysqldump常用的逻辑备份工具
mysqlhotcopy仅拥有备份MylSAM和ARCHIVE表
●启用二进制日志进行增量备份
进行增量备份,需要刷新二进制日志
●第三方工具备份
免费的MySQL热备份软件Percona XtraBackup
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 'auth'mysql> 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-2020-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 2017 COPYING-rw-r--r-- 1 mysql mysql 17987 9月 13 2017 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
原创文章,作者:筱凯,如若转载,请注明出处:https://www.jingyueyun.com/ask/480.html