项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复

2024-11-20
| 32页
| 317人阅读
| 4人下载
特供

内容正文:

数据库原理与应用技术MySQL 项目12 MySQL数据库的备份和恢复 1 《数据库原理与应用技术-MySQL》 MySQL数据库的备份和恢复 任务1 数据库备份概述 任务2 使用MYSQLDUMP命令进行备份 任务3 MySQL数据恢复 1 《数据库原理与应用技术-MySQL》 任务1 数据库备份概述 1 《数据库原理与应用技术-MySQL》 1. 数据库故障 (1)事务故障 事务故障有的是可以通过事务程序本身发现的,有的是非预期的,不能由事务程序处理,如运算溢出、并发事务发生死锁而被选中撤销、违反了某些完整性限制等。 事务故障意味着事务没有到达预期的终点,因此数据库可能处于不正确状态。恢复某事务要在不影响其他事务运行的情况下强行回滚该事务,即撤销该事务已经做出的任何对数据库的修改,使得该事务好像根本没有取消一样。这类恢复操作称为事务撤销。 (2)系统故障 系统故障是指造成系统停止运转的任何事件,其使得系统需要重新启动,如特定类型的硬件错误(CPU故障)、操作系统故障、数据库管理系统代码错误、突然停电等。这类故障会影响正在进行的所有事务,但不会破坏数据库。这时,主存内容尤其是数据缓冲池中的内容都会丢失,所有运行事务都非正常终止。 发生系统故障时,一些尚未完成的事务的结果可能已送入物理数据库,有些已完成的事务可能有一部分甚至全部留在缓冲池,尚未写回磁盘上的物理数据库,从而造成数据库可能处于不正确的状态。 1 《数据库原理与应用技术-MySQL》 (3)介质故障 介质故障也称为硬故障,是指外存故障,如硬盘损坏、磁头碰撞、瞬时强磁场干扰等。这类故障将破坏整个数据库或部分数据库,并影响正在存取相关数据的所有事务。这类故障比前两类故障发生的可能性小得多,但破坏性更大。 1 《数据库原理与应用技术-MySQL》 (4)计算机病毒 计算机病毒是具有破坏性的、可以自我复制的计算机程序。计算机病毒已成为计算机系统的主要威胁,自然也是数据库的主要威胁。数据库一旦被计算机病毒破坏,就要用恢复技术来恢复数据库。 1 《数据库原理与应用技术-MySQL》 2. 数据库恢复技术 (1)数据库恢复的概念 数据库恢复是指当数据库或数据遭到破坏时,通过技术手段快速、准确地进行恢复的过程。数据库恢复技术的核心是建立冗余数据,建立冗余数据的方法有数据备份和登记日志文件。 1 《数据库原理与应用技术-MySQL》 (2)数据备份 数据备份是指定期将数据库复制到另一个磁盘或其他存储介质上保存起来的过程。备用的数据称为后备副本。在数据库遭到破坏后,可以将后备副本重新载入。 数据备份可分为静态备份和动态备份。静态备份要求一切事务必须在静态备份前结束,新的事务必须在备份结束后开始,即在备份期间不允许对数据库进行存取或修改等操作。动态备份对数据库中的数据的操作无严格限制,备份和事务可并发进行。 1 《数据库原理与应用技术-MySQL》 (3)登记日志文件 日志文件用于记录事务对数据库的更新操作,以记录或数据块为单位。为了保证数据库的可恢复性,撰写日志文件时应遵循两条原则:第一,撰写的次序严格按照并发事务执行的时间次序;第二,应先写日志文件后写数据库。 有了日志文件,即使没有完成写数据库操作,也不会影响数据库的正确性。 1 《数据库原理与应用技术-MySQL》 3. 数据库备份的分类 (1)按备份时服务器是否在线分类 热备份:数据库正处于运行状态,此时通过数据库的日志文件进行备份。 温备份:进行数据备份时数据库服务正常运行,但数据只能读不能写。 冷备份:数据库处于关闭状态,能够较好的保证数据库的完整性。 1 《数据库原理与应用技术-MySQL》 (2)按备份的内容分类 物理备份:直接复制数据库文件进行备份。与逻辑备份相比,其速度快,但占用的存储空间较大。 逻辑备份:使用软件从数据库中提取数据并将结果写到一个文件上,该文件格式一般与原数据库的文件格式不同,该文件只是原数据库中数据内容的一个映像。 1 《数据库原理与应用技术-MySQL》 (3)按备份涉及的数据范围来分类 完整备份:完整备份是指备份整个数据库。指某一个时间点上的所有数据或应用进行的一个完全复制,包括用户表、系统表、索引、视图和存储过程等所有数据库对象。这是任何备份策略中都要求完成的一种备份类型,其他所有备份类型都依赖于完整备份。换句话说,如果没有执行完整备份,就无法执行增量备份和差异备份。 增量备份:增量备份是指对数据库从上一次完整备份或者最近一次增量备份以来改变的内容进行的备份。 差异备份:差异备份是指对最近一次完整备份以后发生改变的数据进行的备份。差异备份仅备份自最近一次完整备份后发生更改的数据。 1 《数据库原理与应用技术-MySQL》 4. 数据库备份的时机 由于备份是一种十分耗费时间和资源的操作,通常是不会频繁进行的,应该根据数据库使用情况确定一个合适的备份周期。一般来说,备份周期主要取决于可接受的数据丢失量和数据库活动的频繁程度。通常情况下,考虑在下面几个事件后备份数据库: (1)创建数据库或为数据库填充数据; (2)创建索引; (3)清理事务日志; (4)执行无日志操作。 1 《数据库原理与应用技术-MySQL》 任务2 使用MYSQLDUMP命令 进行备份 1 《数据库原理与应用技术-MySQL》 1. 基本概念 MYSQLDUMP命令是MySQL提供的实现数据库备份的工具,在Windows控制台的命令行窗口中执行。该文件存放在MySQL安装目录的bin文件夹下。 MYSQLDUMP是采用SQL级别的备份机制,它将数据表导出成SQL脚本文件,该文件包含多个CREATE和INSERT语句,使用这些语句可以重新创建表和插入数据。在不同的MySQL版本之间升级时相对比较合适,这也是最常用的备份方法。 使用MYSQLDUMP命令可以备份一个数据库,也可以备份多个数据库,还可以备份一个连接实例中的所有数据库。 2. 常用参数 MYSQLDUMP命令提供了许多参数,包括用于调试和压缩的参数。下面只列举部分常用的参数。运行帮助命令MYSQLDUMP--help,可以获得特定版本的完整参数列表。 --all-databases:备份所有数据库。 --databases dbname:备份某个数据库。 --lock-tables:锁定表。 --lock-all-tables:锁定所有的表。 --events:备份事件的相关信息。 --no-data:只备份DDL语句和表结构,不备份数据。 1 《数据库原理与应用技术-MySQL》 --master-data=n:备份的同时导出二进制日志文件及其位置。如果n为1,则把信息保存为CHANGE MASTER语句;如果n为2,则把信息保存为注释掉的CHANGE MASTER语句。 --routines:将存储过程和存储函数备份。 --single-transaction:实现热备份。 --triggers:备份触发器。 1 《数据库原理与应用技术-MySQL》 3. 备份一个完整的数据库 语法格式如下: MYSQLDUMP –u用户名 –h主机名 –p[密码] [--databases] 数据库名 >备份文件名.sql 参数说明如下: -p参数用来引导密码,密码可以在此处指定,也可以在后续输入。 -p和数据库名之间至少要有一个空格。 若没加--databases参数,则备份的SQL文件中不包含创建数据库的语句,在还原SQL文件中数据的时候,需要向一个已存在的数据库中还原。 在使用MYSQLDUMP命令备份数据库时,直接在DOS命令提示符窗口中执行该命令即可,不需要登录到MySQL数据库。 4. 备份多个数据库 语法格式如下: MYSQLDUMP –u用户名 –h主机名 –p[密码] --databases 数据库名1 数据库名2 … >备份文件名.sql 1 《数据库原理与应用技术-MySQL》 5. 备份所有数据库 语法格式如下: MYSQLDUMP –u用户名 –h主机名 –p[密码] --all-databases >备份文件名.sql 如果使用--all-databases备份了所有的数据库,那么在还原数据库时,不需要创建数据库并指定要操作的数据库,因为对应的备份文件中包含CREATE DATABASE语句和USE语句。 1 《数据库原理与应用技术-MySQL》 6. 备份数据库中的一个或多个表 语法格式如下: MYSQLDUMP –u 用户名 –h 主机名 –p[密码] 数据库名 表名1[表名2…] >备份文件名.sql 1 《数据库原理与应用技术-MySQL》 例12.1 使用root用户备份student数据库下的Score表和Course表,并将备份好的文件保存在D盘根目录下,文件名为stuDB_sql。 MYSQLDUMP -uroot -hlocalhost -p student Score Course > D: \stuDB_sql 命令执行后,可以在D盘根目录下找到stuDB_sql备份文件,该文件中记录了MySQL的版本、备份的主机名。还包含了创建Score表和Course表的SQL代码,以及向Score表和Course表中插入数据的代码。 1 《数据库原理与应用技术-MySQL》 例12.2 使用root用户备份student数据库和book数据库,并将备份好的文件保存在D盘根目录下,文件名为db.sql。 MYSQLDUMP -uroot -hlocalhost -p --databases student book> D: \db.sql 命令执行后,可以在D盘根目录下找到db.sql备份文件,该文件中除了基本信息外,还存储了创建student数据库和book数据库及它们包含的数据表的SQL语句。 1 《数据库原理与应用技术-MySQL》 例12.3 使用root用户备份该服务器下的所有数据库,并将备份好的文件保存在D盘根目录下,文件名为alldb.sql。 MYSQLDUMP -uroot -hlocalhost -p --all-databases > D: \alldb.sql 命令执行后,可以在D盘根目录下找到alldb.sql文件。文件中记录了该服务器中的所有数据库的信息,包括创建数据库和数据表的代码。 1 《数据库原理与应用技术-MySQL》 任务3 MySQL数据恢复 1 《数据库原理与应用技术-MySQL》 1. 数据恢复的概念 MySQL的数据恢复,就是当数据库中的数据遭到破坏时,让数据库根据备份的数据回到备份时的状态。这里所说的恢复是指恢复数据库中的数据,而数据库中的库是不能被恢复的。恢复的过程实际上就是将已备份的SQL脚本文件中的数据还原到数据库中的过程。可以使用MYSQL命令还原和使用SOURCE命令还原。 2. 使用MYSQL命令还原数据 MYSQL命令的语法格式如下: MYSQL -u用户名 -p[密码] [数据库名] <备份文件名.sql 语法说明如下: 数据库名是可选项。使用MYSQL命令进行数据还原时,如果SQL脚本文件中已经包含创建数据库的语句,那么该项可以省略,否则必须在MYSQL命令中加上数据库名,且该数据库必须已经存在,否则还原操作将失败。 备份文件名.sql:表示需要恢复的脚本文件,文件名前面可以加上一个绝对路径。 例12.4 使用MYSQL命令将D盘根目录的脚本文件“stuDB_sql”还原成数据库student2。 因为在stuDB_sql文件中没有创建数据库的命令,所以在执行上述语句前,必须先在MySQL服务器中创建名为“student2”的数据库。 mysql > CREATE DATABASE student2; 数据库student2创建成功后,回到Windows控制台的命令行窗口,执行还原数据库命令,代码如下。 mysql -uroot -p student2 < D: \stuDB_sql 命令执行成功后,stuDB_sql文件中的SQL语句会自动被执行,从而在student2数据库中恢复了Score表和Course表。 3. 使用SOURCE命令还原数据 MySQL数据库中的SOURCE命令也可以对SQL脚本文件进行数据的还原,这种方法与MySQL命令还原数据的主要区别在于:SOURCE命令必须在MySQL命令行中运行,也就是说,要先用MySQL命令连接到数据库,之后进行数据的还原操作。 具体操作步骤如下: 首先使用mysql命令连接到数据库,进入MySQL控制台,然后执行下列语句。 mysql > USE 数据库名; mysql > SOURCE 备份文件名.sql; 1 《数据库原理与应用技术-MySQL》 例12.5 使用SOURCE命令将D盘根目录的脚本文件“stuDB_sql”还原成数据库student3。 首先在MySQL服务器中创建名为“student3”的数据库,代码如下。 mysql > CREATE DATABASE student3; 打开该数据库,代码如下。 mysql > USE student3; 执行还原数据库命令,代码如下。 mysql > SOURCE D: \stuDB_sql; 该语句执行效果和在命令提示符窗口中执行MYSQL命令的一样。通过查看student3下的所有数据表,可以看到在student3数据库中成功恢复了Score表和Course表。 1 《数据库原理与应用技术-MySQL》 同步训练 数据库系统运行过程中,常见的故障有哪些? 数据库备份按备份涉及的数据范围来划分,可以分为哪几类? 为什么要进行数据库的备份? 数据库备份的时机有哪些? 如何使用MYSQLDUMP命令备份所有数据库?写出命令。 $$

资源预览图

项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
1
项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
2
项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
3
项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
4
项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
5
项目12 MySQL数据库的备份(课件)-《数据库MYSQL》同步教学(河北科技出版社)和恢复
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。