SQL Serever学习12——数据库的备份和还原

公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低。

数据的导出和导入

数据转换服务

数据转换服务DTS(Data Transmission Service)提供数据传送功能,可以通过交互操作从不同的数据源中导入数据,数据的来源特性可以用于查询数据的导入时间,地点以及运算方法。

数据的导入和导出是以相同格式读写数据,从文本或者oracle书库中导入数据到sqlserver,DTS也可以将sqlserver数据导出到一个ODBC数据源或者Excel表。

数据转换数据源类型

使用数据转换服务导入与导出,可以连接到以下数据源:

  • 大多数OLE DB和ODBC数据源
  • 文本文件
  • 一个或多个sqlserver实例
  • oracle,informix,Access,FoxPro数据库
  • Excel工作表格

销售管理数据库数据的导出和导入

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

注意:这个Excel文件需要提前建立的,否则没选项

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

可以预览导出的数据

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

然后去对应的目录打开Excel文件

SQL Serever学习12——数据库的备份和还原

导出的效果如图

SQL Serever学习12——数据库的备份和还原

导出查询语句的数据

SQL Serever学习12——数据库的备份和还原

如果需要导出的数据并不是一个对象,而是需要从数据表检索的数据,可以使用查询语句来规定导出数据的范围

基本步骤和上面一样

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

导入数据

导入外部Excel的步骤和导出的步骤类似,只是个别设置正好相反

将Excel中买家工作表导入销售管理数据库的买家表

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

这里可以先预览一下导入的数据

注意:这里如果导入的Excel如果有空行,由于主键是唯一的,可能会报错(主键ID为空格)

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

数据导入进去了

SQL Serever学习12——数据库的备份和还原

数据库的备份和还原

由于理论知识太多,不如先来一个实际操作感受一下数据库的备份

销售管理数据库备份

公司的日常运行情况为早上8点营业,中午11点30休息,下午13点30营业,晚上8点下班,通常每天晚上5点到8点为销售比较集中的时间。

根据这个情况,可以分析出,数据库每天的首次运行时间应该是早上8点,结束的时间是在晚上8点,所以每天晚上下班后应该对数据库进行一次完整备份,并且每进行一次完整备份后,上次的备份文件就不需要保存了。

在每天的运行过程中,11点30分会有一次休息情况,此时应该进行一次差异备份,所有的备份都备份到指定的备份设置中。

依据分析,制定备份方案:立即完成一次完成备份,然后执行每晚8点进行一次完整备份,并删除上次备份,最后每天中午11点30进行一次差异备份。

创建备份设备

SQL Serever学习12——数据库的备份和还原

指定设备名称和备份的地址

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

销售管理的完整备份

SQL Serever学习12——数据库的备份和还原

设置源数据

SQL Serever学习12——数据库的备份和还原

设置备份集信息

根据要求,每天晚上8点都会进行一次完整备份,前一天的备份就不需要了,备份过期时间应该是1天,所以这里选择晚于按钮,设置1天

SQL Serever学习12——数据库的备份和还原

目标信息

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

确认备份

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

备份计划制定

普通数据库人工操作可以,但是如果每天晚上8点都进行一次完整备份,既不方便也很难保证,所以,通过sqlserver中的维护计划功能完成。

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

将工具栏的“备份数据库任务”拖动到右边的任务窗口

SQL Serever学习12——数据库的备份和还原

双击红叉,打开“备份数据库任务”窗口

备份类型选完整

SQL Serever学习12——数据库的备份和还原

数据库选择“销售管理”

SQL Serever学习12——数据库的备份和还原

备份过期时间设置为晚于1天

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

然后确定

SQL Serever学习12——数据库的备份和还原

也可以先点击“查看T-SQL”查看sql

SQL Serever学习12——数据库的备份和还原

计划制定

打开作业计划属性

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

完成,保存即可。

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

差异备份

接下来是每天中午11点30的差异备份,步骤类似

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

确定,保存

SQL Serever学习12——数据库的备份和还原

还原数据库

选择需要还原的数据库,右键,任务,还原,选择数据库

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

SQL Serever学习12——数据库的备份和还原

数据库备份机制

数据库故障类型

数据库故障类型可以归为5种:

  • 事务故障,事务执行到最后没有正常提交,有的可以通过事务程序本身发现,有的是非预期的,事务程序不能处理。
  • 系统故障,操作系统故障,CPU故障,DBMS代码错误,突然停电,这是内存内容,尤其是缓冲区内容丢失,但是存储在外存的数据未受影响。
  • 介质故障,磁盘损坏,磁头碰撞,瞬时磁场干扰,虽然发生可能性最小,但是破坏性最大,数据无法恢复。
  • 计算机病毒,一些恶意人为编制的计算机程序破坏。
  • 用户操作错误,用户有意无意的删除数据库中有用数据或加入错误数据

数据库备份类型

sqlserver备份方式有4种:

  • 完整备份,备份整个数据库,包括用户表,系统表等,还有事务日志,需要较大空间,备份时间长。
  • 差异备份,是完整备份的补充(需要先还原完整备份),比完整备份小,速度快,因此可以经常使用。
  • 事务日志备份,备份事务日志内容,可以使用事务日志备份将数据库还原到故障点,但是必须先还原完整备份,然后依次还原每个事务日志备份。
  • 文件和文件组备份,备份某些文件,可以分多次来备份数据库,避免大型数据备份的时间过长,当数据库文件非常大,采用这个备份很有效。当数据库文件损坏,可以只还原被损坏的文件或文件组,从而加快了还原速度。

设计备份策略

sqlserver中可以将数据库备份到磁盘或者磁带,备份到磁盘有2种方式:

  • 文件方式
  • 备份设备方式

2种方式都体现为文件形式

 备份数据库主要考虑:

  • 备份时间
  • 时间间隔
  • 备份方式
  • 备份地方

如果数据库中数据变动比较频繁,可以使用3种备份方式交替使用。

比如,每天下班时做一次完整备份,在做完完整备份之前每隔8小时做一次差异备份,做完2次差异备份之间每隔1小时做一次事务日志备份。

这样,一旦数据库发生损坏,可以将数据还原到最近1小时以内的状态,同时又能减少数据库备份数据的时间和减少备份数据库文件的大小。

备份设备

数据库系统中专门用来存储备份数据的物理设备,常用的设备包括磁盘备份设备,磁带备份设备,命名管道备份设备

其中磁盘备份设备是最常用的。他的物理名称是备份地址和文件名的组合,如“D:\backup\back20180826.bak”,他的逻辑名称存储在sqlserver的sysdevices系统表中,如销售管理备份20180826.

数据库还原方式

大致有4种:

  1. 完整备份还原
    1. 无论是做完整备份还原,差异备份还原,事务日志还原,第一步都是做完整备份还原。
  2. 差异备份还原
    1. 完整备份还原之后,还原最后一次做的差异备份。
  3. 事务日志备份还原
    1. 这个比较复杂,例如某个数据库在每周日做一次完整备份,每天晚上21点做一次差异备份,在白天每3小时做一次事务日志备份。
    2. 假设在周五早上8点发生故障,那么还原的步骤是:
      1. 还原周日的完整备份
      2. 还原周四晚上21点做的差异备份
      3. 依次还原差异备份之后的事务日志备份,就是周四晚上24点,周五早上3点,周五早上6点所作的事务日志备份
  4. 文件和文件组备份还原
    1. 如果数据库某个文件损坏了,可以使用该还原模式
    2. 注意,还原之前查看数据使用状态,如果有其他人在使用,则无法还原数据库。

还原模式设置

还原模式分为3种:

简单模式,可以将数据库还原到上一次备份,因为没有日志备份,只能还原到最近备份数据库的时间,而不能还原到特定的时间点。

完整模式,保留了事务日志,没有还原到故障点。

大容量日志模式,记录大多数大容量操作,完整记录其他事务,通常作为完整还原模式的补充。

ok,数据库备份的原理就说到这里。

上一篇:如何用SQL语句实现Mysql数据库的备份与还原


下一篇:Codeforces Round #426 (Div. 2)【A.枚举,B.思维,C,二分+数学】