数据恢复是对数据库进行备份和还原,当数据库因为各种原因被损坏或者无法读取的时候,会造成无法估量的后果,这个时候就需要数据库还原工具,进行还原。
数据库故障分为“软故障”和“硬故障”两种,“软故障”是因为断电导致软件方面的故障,“硬故障”是因为物理硬件坏了,导致数据库破损。相当于电脑的操作系统故障和物理设备的故障。
数据库恢复分为完全备份和增量备份,完整备份效果最好,但是比较消耗时间;增量的备份保存的是对数据库的操作,在完整备份的基础上,使用增量备份也可以达到还原要求,但是增量备份时间消耗比较少,所以在选择数据库还原策略的时候,因为根据实际情况选择完全备份和增量备份。
全部总结链接
SQL基础 (数据库、表、数据的增删改查、视图相关,以及所有实验报告源代码)
游标 (类似C++ 的 指针)
存储过程(类似 C++ 的自定义函数)
触发器 (类似 自定义的陷阱,或者说是监听器,满足某个条件了执行某个方法)
用户权限及权限管理 (类似Windows的多用户管理)
并发控制 (了解多个用户同时对数据造成错误的情况 和 解决方法)
数据恢复(当数据库数据丢失,相应的解决方法)
课程名称 数据库基础
实验项目 实验15 数据恢复
实验要求:
(1)软故障后的恢复。
参照例题中的程序设计事务及事务处理的程序;
模拟软故障的情形,使设计的事务及事务处理程序的各个分支都可以执行到;
体会事务的原子性和一致性。
(2)硬故障后的恢复。
针对一个具体的数据库设计一个备份恢复策略;
做数据库全备份和若干增量备份(每次备份后都有一些数据操作);
模拟一个硬故障(假设数据库损坏);
备份当前日志;
恢复数据库。
(3)在实验报告中要给出具体的操作步骤和过程,并针对各种情况做出具体的分析和讨论。
实验过程
首先是概念问题。数据库恢复是建立在数据库故障之上的。数据库故障分为软故障和硬故障,软故障指的是突然停电、应用程序被强制结束的情况下,数据库的数据丢失或者损坏。硬故障指的是保存数据库的物理介质坏了,造成数据的遗失或者无法读取。
总体思路:
第一题:然而机房的电脑自带重启还原,无法实现断电重启的条件,我让一个事务(若干修改指令中间加了一个等待指令,以便我使用任务管理器强制关闭sql server),因为事务的原子性,虽然等待指令前的修改指令已经被执行,但是因为事务未完全执行完毕,所以被还原恢复。
第二题:题目给出了条件是“假设数据库损坏”,我先把数据库完整备份,然后把数据库脱机,最后把数据库恢复。
代码截图:
第一题:软故障后的恢复
图 1 首先看到原始的 学时 数据为6
图 2 设计一个事务 内有若干更新操作 中间加一个等待期
图 3 在等待期内 使用任务管理器 强制结束
图 4 再次登入数据库 查看学时数据 还是为6,说明事务完全没有执行
第二题:硬故障后的恢复
图 5 首先对‘学生管理系统‘进行完整备份
图 6 然后模拟 硬故障 删除该数据库
图 7 接着还原数据库 覆盖还原
图 8 接着打开还原的数据库 发现数据和原先一致