目录

  • 第1单元    数据库系统导论
    • ● 任务1.1  数据库基本概念
    • ● 任务1.2  设计E—R 图
    • ● 任务1.3   将E-R图转换成关系模型
    • ● 任务1.4   练习与作业
    • ● 教与学参考资源
  • 第2单元   认识SQL SERVER数据库
    • ● 任务2.1 数据库应用场景
    • ● 任务2.3  SQL  Server 数据库安装
    • ● 任务2.4 SQL Server 的管理
    • ● 任务2.5  使用SSMS连接数据库
    • ● 教与学参考资源
  • 第3单元  创建和管理数据库
    • ● 任务3.1 创建数据库
    • ● 任务3.1(2)  命令创建数据库
    • ● 任务3.2 管理数据库
    • ● 任务3.2(2) 查看、收缩数据库
    • ● 教与学参考资源
  • 第4单元 创建和管理数据库表
    • ● 任务4.1 SQL Server常用数据类型
    • ● 任务4.2  创建数据表
    • ● 任务4.3  命令创建表
    • ● 任务4.4 实施完整性约束
    • ● 教与学参考资源
  • 第 5 单元   查询数据表
    • ● 任务5.1 单表数据查询
    • ● 任务5.2 多表数据查询
    • ● 任务5.3 嵌套查询
    • ● 任务5.4 合并查询结果
    • ● 教与学参考资源
  • 第6单元  管理表中数据
    • ● 任务6.1   添加数据
    • ● 任务6.2  修改数据
    • ● 任务6.3  删除数据
    • ● 习题与训练
    • ● 教与学参考资源
  • 第7单元  使用索引和视图
    • ● 任务7.1  使用索引
    • ● 使用T-SQL创建索引
    • ● 任务7.2  使用视图
    • ● 使用T-SQL语句创建视图
    • ● 教与学参考资源
  • 第8单元 Transact-SQL语言编程
    • ● 任务8.1   声明和使用变量
    • ● 任务8.2   流控语句
    • ● 任务8.3   常用系统函数
    • ● 任务8.4   创建自定义函数
    • ● 教与学参考资源
  • 第9单元  事务和锁
    • ● 任务   9.1     事务
    • ● 事务的基本操作
    • ● 任务9.2    锁
    • ● 死锁及避免方法(例)
    • ● 教与学参考资源
  • 第10单元  创建和管理存储过程
    • ● 任务10.1 存储过程及优点
    • ● 任务10.2 创建和执行存储过程
    • ● 任务10.3   存储过程参数和返回值
    • ● 任务10.4 修改、删除、 重新编译存储过程
    • ● 教与学参考资源
  • 第11单元 创建和管理触发器
    • ● 任务1 触发器的作用和分类
    • ● 任务2 触 发器的创建与执行
    • ● 任务3 创建级联触发器
    • ● 任务4 修改、删除触发器
  • 第12单元 创建和使用游标
    • ● 任务1  游标的作用及使用步骤
    • ● 任务2  创建基本游标
    • ● 任务3  使用变量保存游标数据
    • ● 任务4  使用循环环提取游标数据
  • 第13单元 SQL Server用户管理
    • ● 任务1数据库安全管理概述
    • ● 任务2SQL Server 安全机制
    • ● 任务3 账号、角色及权限管理
    • ● 任务4数据库完整性管理
    • ● 任务5 数据库的备份与还原
    • ● 任务6   数据的导入与导出
  • 第14单元  综合应用案例
    • ● 概述
    • ● 需求分析
    • ● 概述设计-逻辑设计- 物理设计
    • ● 编写数据库设计说明书
  • 学生做项目成果展示
    • ● 项目一  设计《我班同学数据库》
    • ● 项目二  设计《(Teaching)教学数据库》
    • ● 项目三  数据库应用系统设计开发项目
    • ● 项目四 《华夏-宿舍管理系统》设计开发
    • ● 项目五   综合实训大作业
    • ● 综合实训团队项目大作业
    • ● 学生完成项目摘录展示
  • 总复习与综合训练
    • ● 总复习
    • ● 综合训练一
    • ● 综合训练二
    • ● 综合训练三
    • ● 综合训练四
    • ● 综合训练五
    • ● 简答综合训练
  • 在线专题测验
    • ● 自检自测一
    • ● 自检自测二
  • 拓展   数据库管理工具平台  Navicat
    • ● 关于Navica
    • ● Navicat 的系统需求
    • ● Navicat 的用户界面
    • ● Navicat 创建数据库对象
    • ● 在Navicat创建的SQL 程序脚本
    • ● 在Navicat创建的SQL  server 脚本(2)
    • ● 综合实训(1)
    • ● 综合实训(2)
  • 技术拓展   (MYSQL)数据库技术与应用
    • ● MYSQL技术
  • 教与学图片剪影
    • ● 教学团队
    • ● 学生学习实训
    • ● 活动与交流
任务5 数据库的备份与还原

数据库的备份与还原

   数据库的备份和还原是维护数据库的安全想和完整性的重要组成部分,是保证数据库安全的两项密不可分的重要方法。用户的错误操作和蓄意破坏,病毒的攻击或其它不可抗拒的力量,都有可能造成数据库的破坏和丢失。通过数据库的备份和还原,可以恢复数据库的正常使用。

数据库备份概念与备份类型

备份是指制作数据库的副本,将数据库中的部分或全部内容复制到其他的存储介质(如磁盘)上保存起来的过程,以便在数据库遭到破坏时能够修复数据库


备份类型:

1、完整备份

完整备份是任何备份策略中都要求完成的第一种备份类型。备份过程可以通过SSMS和T-SQL命令方式

2、差异备份

当数据量十分庞大时,执行一次完成备份需要耗费非常多时间和空间,因此完整备份不能频繁进行,创建了数据库的完整备份以后,如果数据库从上次备份以来只修改了很少的数据时,比较适合使用差异备份。

3、事务日志备份

如果已经执行了完整备份和差异备份,但是如果没有执行事务日志备份,则数据库可能无法正常工作。 尽管事务日志备份依赖完整备份,但它并不备份数据库本身。这种类型的备份只记录事务日志的适当部分,明确地说,就是备份自从上一个事务以来已经发生了变化的部分。

使用事务日志备份,可以将数据库恢复到故障点或特定的时间点。一般情况下,事务日志备份比完整备份和差异备份使用的资源少。因此,可以更频繁地创建事务日志备份,减少数据丢失的风险。

3、文件和文件组备份

现在,有越来越多的公司拥有了TB级的数据库,这些数据库称为超大型数据库。对于超大型数据库,如果每次都执行完整数据备份不切实际,应当执行数据库文件或文件组备份。 

文件组是一种将数据库存放在多个文件上的方法,并允许控制数据库对象(比如表或视图)存储到文件组当中的哪些文件上。利用文件组备份,每次可以备份这些文件当中的一个或多个文件,而不是同时备份整个数据库。


备份设备是用来存储数据库、事务日志或者文件和文件组备份的存储介质,在执行备份数据之前,需要创建备份设备。

1.使用SQL Server Management Studio管理器创建备份设备 

使用Microsoft SQL Server Management Studio管理器创建备份设备

的操作步骤如下: 

(1)  在【对象资源管理器】中,单击服务器名称以展开服务器树。

(2)  展开【服务器对象】节点,右键单击【备份设备】选项。 

(3)  从弹出的菜单中选择【新建备份设备】命令,打开【备份设备】窗口。

 

(4)  在【备份设备】窗口,输入设备名称并且指定被备份文件的完整路径。


5)单击【确定】按钮,完成备份设备的创建。 

2.使用系统存储过程SP_ADDUMPDEVICE创建备份设备 

使用系统存储过程SP_ADDUMPDEVICE来添加磁盘和磁带设备。

SP_ADDUMPDEVICE [ @devtype = ]‘device_type’,

[ @logicalname = ]‘logical_name' ,

[ @physicalname = ]‘hysical_name’ [, [ @cntrltype = ]

 controller_type |[ @devstatus = ]‘device_status’ } ] 

上述语法中的各参数的含义如下:

[ @devtype = ]‘device_type’ :该参数指备份设备的类型。类

型可以是disk、tape和pipe。其中,disk用于指硬盘文件作为备份

设备;tape用于指Microsoft Windows支持的任何磁带设备。pipe

是指使用命名管道备份设备。 

[ @logicalname = ]‘logical_name’ :该参数指在BACKUP和

RESTORE语句中使用的备份设备的逻辑名称。logical_name的数据

类型为sysname,无默认值,且不能为NULL。 

[ @physicalname = ]‘physical_name’ :该参数指备份设备的

物理名称。物理名称必须遵从操作系统文件名规则或者网络设备的

通用命名约定,并且必须包含完整路径。无默认值,且不能为NULL。 

[ @cntrltype = ]‘controller_type’ :如果cntrltype的值是

2,则表示是磁盘;如果cntrltype值是5,则表示是磁带。

[ @devstatus = ]‘device_status’ :devicestatus如果是

noskip,表示读ANSI磁带头,如果是skip,表示跳过ANSI磁带头。 


【例】创建一个名称为Test的备份设备  

EXEC SP_ADDUMPDEVICE  'disk','Test','D:\test.bak'


当数据库备份设备创建完成后,根据做好的备份策略,进入数据库备份阶段

T-SQL方式


1、恢复模式

 首先从数据库【恢复模式】说起,因为数据库如果恢复模式设置不正确,会导致数据无法还原。

 恢复模式有三种:完整恢复模式,大容量日志恢复模式,简单恢复模式

1) 完整恢复模式。为默认恢复模式。它会完整记录下操作数据库的每一个步骤。使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。 

 2)大容量日志恢复模式。它是对完整恢复模式的补充。简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。比如一次在数据库中插入数十万条记录时,在完整恢复模式下每一个插入记录的动作都会记录在日志中,使日志文件变得非常大,在大容量日志恢复模式下,只记录必要的操作,不记录所有日志,这样一来,可以大大提高数据库的性能,但是由于日志不完整,一旦出现问题,数据将可能无法恢复。因此,一般只有在需要进行大量数据操作时才将恢复模式改为大容量日志恢复模式,数据处理完毕之后,马上将恢复模式改回完整恢复模式。 

   3)简单恢复模式。在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。通常,此模式只用于对数据库数据安全要求不太高的数据库。并且在该模式下,数据库只能做完整和差异备份。


2. 数据库备份模式

    四种备份:完全备份,差异备份,事务日志备份,文件和文件组备份


  1)完整备份:备份整个数据库的所有内容,包括事务日志。该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。

    2) 差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。因此,差异备份通常作为常用的备份方式。

    3) 事务日志备份:事务日志备份只备份事务日志里的内容。事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。

    4) 文件和文件组备份。如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。