1. 数据库备份的重要性
在生产环境中,数据库的安全性是至关重要的,任何数据的丢失都可能产生严重的后果。数据库的备份的重要性主要体现在:
(1) 提高系统的高可用性和灾难可恢复性,在数据库系统崩溃时,没有数据库备份就没法找到数据。
(2)使用数据库备份还原数据库,时数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新添加数据,代价太大。
(3)没有数据库就没有一切,数据库的备份是一种灾害的强力手段。
使用数据库的过程中,有多种原因造成数据丢失:程序错误、认为错误、计算机失误、磁盘失败、灾难(如火灾、地震)和盗窃。
2.数据库的备份分类
备份方式分很多种,从物理与逻辑的角度,备份分为以下几类:
(1)物理备份:值对数据库操作系统的物理文件(如数据文件、日志文件等)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份 (热备份)。
冷备份:在关闭数据库时进行的备份操作,能够较好的保证数据库的完整性。
热备份:在数据库运行状态中进行操作,这种备份依赖于数据库的日志文件。
(2)逻辑备份:指对数据库逻辑组件 (如表等数据库对象)的备份。
从数据库的备份策略角度,备份可分为完全备份、差异备份和增量备份。
完全备份:每次对数据库进行完整备份。可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程中所有数据库对象。但它需要花费更多的时间和空间,所以,做一次完全备份的周期要长些。
差异备份:备份那些自从上次完全备份之后被修改过的文件,值备份数据库的部分内容,比完全备份小,因此存储和恢复速度快。
增量备份:只有那些在上次完全备份或者增量备份后修改的文件才会被备份。
MySQL 数据库的备份可以采用两种方式,因为数据库实际就是文件,直接打包数据库文件夹,或者使用专用备份工具 mysqldump 进行备份工作。
1.使用 tar 打包文件夹备份
Mysql 的数据库文件默认多事保存在安装目录 data 文件夹下面,可以直接保存 data 文件夹,但是占用的空间较大,可以使用tar打包压缩进行保存。
(1)数据库文件很大,可以使用压缩率较大的xz格式压缩,首先检查 xz 压缩工具是否安装[root@localhost opt]# rpm -q xz //zx压缩工具已经安装
xz-5.2.2-1.el7.x86_64
(2)都数据库文件夹 /usr/local/mysql/data/ 进行打包操作 放到 /opt/目录下[root@localhost opt]# tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/ /opt/
(3)查看打包命令是否成功,已经生产备份文件。对比压缩前后的文件大小。[root@localhost opt]# ls
mysql-2018-09-03.tar.xz mysql-5.7.17 rh //压缩生成的备份文件 ,时间格式为 年月日
[root@localhost opt]# du -sh /opt/mysql-2018-09-03.tar.xz
684K /opt/mysql-2018-09-03.tar.xz
[root@localhost opt]# du -sh /usr/local/mysql/data/ //压缩备份文件占用空间很小134M /usr/local/mysql/data/
(4)如果数据库文件丢失,可以解压缩备份文件,相当于做了数据恢复的工作。[root@localhost opt]# tar Jxvf /opt/mysql-2018-09-03.tar.xz /usr/local/mysql/data/
2.使用mysqldump 工具备份
前面介绍的对MtSQL 整个数据库目录压缩的方式,是备份数据库中所有内容。使用 mysqldump 可以更加灵活的控制备份内容,比如某几个表或库都可以单独备份。
(1)使用 mysqldump 命令对某些表进行完全备份,命令格式如下:mysqldump -u 用户名 -p [密码] [选项] [数据库名] [数据表名] > /备份路径 /备份文件名
下面演示对库 school 中的表 info 进行备份,备份文件是