在生成环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果
使用数据库过程中,有多种原因造成数据的丢失:
1 程序错误:指对数据库操作的程序难免有些错误,造成数据丢失
2 人为错误:指由于使用人员的误操作造成的数据破坏,还有可能是黑 客对系统×××造成的数据丢失等
3 计算机失败:指运行数据库的服务器操作系统或软件破坏,有可能造成数据的损坏
4 磁盘失败:指硬盘等存储数据的硬件设备,长时间运行后可能损坏,造成数据丢失
5 灾难:火灾,地震,偷窃等现象,都有可能造成数据丢失
数据库备份的分类:
1 物理备份:指对数据库操作系统的物理文件(如数据文件,日志文件)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)
冷备份:在关闭数据库时进行的备份操作,能够较好的保存数据库的完整性
热备份:在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件
2 逻辑备份:指对数据库逻辑组件(如表等数据库对象)的备份
从数据库的备份策略角度,备份可以分为完全备份,差异备份和增量备份
(1)完全备份:每次对数据库进行完整的备份。可以备份整个数据库,包含用户表,系统表,索引,视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以做一次完全备份的周期要长些
(2)差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库的部分内容。它比完全备份要小,因为只包含自上次完全备份以来所改变的数据库。优点是存储和恢复速度快
(3)增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份
下面我将对数据库进行完全备份
一 使用tar打包文件夹备份
Mysql的数据库文件默认都是保存在安装目录的data文件夹下面,可以直接保存data文件夹,但是占用的的空间较大,可以使用tar打包压缩进行保存
1在data目录下可以看到一些数据库文件
2查看系统中有没有xz工具包,如果没有可以用yum安装
3使用tar命令,将data目录下的文件打包到/opt目录下,在/opt目录下可以看到有一个压缩包,如果数据库文件损坏,直接把压缩文件解压过去即可
二 使用mysqldump工具备份
1 首先我创了school和school01两个库,同时在school的库中建了一张名为class的表
2 我开始对库进行备份
备份一个库 mysqldump -u 用户名 -p [密码] [选项] [数据库名] > /备份路径/备份文件名
备份多个库 mysqldump -u 用户名 -p [密码] [选项] --databases 库名1 库名2... > /备份路径/备份文件名
备份所有库 myqsldump -u 用户名 -p [密码] [选项] --all-databases > /备份路径/备份文件名
3 对class表进行备份
备份一张表 mysqldump -u 用户名 -p [密码] [选项] [数据库名] [数据表名] > /备份路径/备份文件名
mysqldump -u 用户名 -p [密码] -d [数据库名] [数据表名] > /备份路径/备份文件名 #-d表示对这张表的结构进行备份
三 恢复整库
1 删除两个数据库
2使用mysql命令恢复&#xff0c;不登录数据库&#xff0c;直接 &#39;mysql -u 用户名 -p [密码] <库备份脚本的路径&#39;&#xff0c;在恢复之前需要将原来的数据库删除
3使用source命令恢复&#xff0c;登录数据库后&#xff0c;输入命令‘source 备份脚本的路径’&#xff0c;在恢复前也要删除原有数据库
#注意如果在备份数据库时没有加上database&#xff0c;那么在恢复时需要重新创建一个数据库
四 恢复表
1 进入数据库&#xff0c;删除原有的表
2 在数据库中使用source命令直接恢复&#xff0c;&#39;source 备份脚本路径&#39;
3 使用mysql命令恢复表&#xff0c;‘mysql -u 用户名 -p [密码] 库名 <库备份脚本的路径’ #注意这条命令中需要指定库名
4查看表&#xff0c;可以看到删除的表已经被恢复了