在生成环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果

使用数据库过程中,有多种原因造成数据的丢失:

1 程序错误:指对数据库操作的程序难免有些错误,造成数据丢失

2 人为错误:指由于使用人员的误操作造成的数据破坏,还有可能是黑 客对系统×××造成的数据丢失等

3 计算机失败:指运行数据库的服务器操作系统或软件破坏,有可能造成数据的损坏

4 磁盘失败:指硬盘等存储数据的硬件设备,长时间运行后可能损坏,造成数据丢失

5 灾难:火灾,地震,偷窃等现象,都有可能造成数据丢失


数据库备份的分类:

 1 物理备份:指对数据库操作系统的物理文件(如数据文件,日志文件)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份)

      冷备份:在关闭数据库时进行的备份操作,能够较好的保存数据库的完整性

      热备份:在数据库运行状态中进行操作,这种备份方法依赖于数据库的日志文件

 2 逻辑备份:指对数据库逻辑组件(如表等数据库对象)的备份

 从数据库的备份策略角度,备份可以分为完全备份,差异备份和增量备份

     (1)完全备份:每次对数据库进行完整的备份。可以备份整个数据库,包含用户表,系统表,索引,视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以做一次完全备份的周期要长些

     (2)差异备份:备份那些自从上次完全备份之后被修改过的文件,只备份数据库的部分内容。它比完全备份要小,因为只包含自上次完全备份以来所改变的数据库。优点是存储和恢复速度快

     (3)增量备份:只有那些在上次完全备份或者增量备份后被修改的文件才会被备份


下面我将对数据库进行完全备份


一 使用tar打包文件夹备份

Mysql的数据库文件默认都是保存在安装目录的data文件夹下面,可以直接保存data文件夹,但是占用的的空间较大,可以使用tar打包压缩进行保存

1.jpg

2.jpg

1在data目录下可以看到一些数据库文件

2查看系统中有没有xz工具包,如果没有可以用yum安装

3使用tar命令,将data目录下的文件打包到/opt目录下,在/opt目录下可以看到有一个压缩包,如果数据库文件损坏,直接把压缩文件解压过去即可


二 使用mysqldump工具备份

3.jpg

4.jpg

5.jpg

6.jpg

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表示对这张表的结构进行备份


三 恢复整库

7.jpg

8.jpg

9.jpg

10.jpg

1 删除两个数据库

2使用mysql命令恢复&#xff0c;不登录数据库&#xff0c;直接 &#39;mysql -u 用户名 -p [密码] <库备份脚本的路径&#39;&#xff0c;在恢复之前需要将原来的数据库删除

3使用source命令恢复&#xff0c;登录数据库后&#xff0c;输入命令‘source 备份脚本的路径’&#xff0c;在恢复前也要删除原有数据库

     #注意如果在备份数据库时没有加上database&#xff0c;那么在恢复时需要重新创建一个数据库


四 恢复表

11.jpg

12.jpg

13.jpg

14.jpg

1 进入数据库&#xff0c;删除原有的表

2 在数据库中使用source命令直接恢复&#xff0c;&#39;source 备份脚本路径&#39;

3 使用mysql命令恢复表&#xff0c;‘mysql -u 用户名 -p [密码] 库名 <库备份脚本的路径’   #注意这条命令中需要指定库名

4查看表&#xff0c;可以看到删除的表已经被恢复了