数据库原理及应用·备份和恢复数据库

11.1 为什么要备份数据库

11.1.1 哪些因素导致数据丢失

数据库各种故障引起数据库数据丢失或被破坏

现有数据库系统软件比如SQL Server(或其他DBMS)提供了内置的安全性和数据保护,但这种安全管理主要是为了防止非法登录者或非授权用户对SQL Server数据库或数据造成破坏,但在有些情况下这种安全管理机制是无能为力的。

总之,数据库数据丢失和破坏是难以避免的。

11.1.2 数据库故障的种类

存储介质故障

用户操作错误

服务器故障

病毒的侵害

自然灾害

11.1.3 如何避免数据损失

提高数据库管理系统的安全性

对数据库进行备份

11.1.4 什么是备份

备份是指定期或不定期地对数据库数据进行复制。

可以复制到本地机器上,也可以复制到其它介质上。

是保证系统安全的一项重要措施。

11.1.5 备份的作用

备份就是为了最大限度地降低灾难性数据丢失的风险,从数据库中定期保存用户对数据库所做的修改,用以将数据库从错误状态下恢复到某一正确状态的副本。

可以对数据进行转储,先对一台机器上的数据库进行备份,然后还原到另一台机器上,使两台机器器上具有相同的数据库。

备份是保证系统安全的一项重要措施。

11.1.6 如何进行备份

使用数据管理管理软件,比如SQL Server就提供了一套功能强大的、安全的数据备份和恢复工具,数据库的备份和恢复可以在系统发生错误的时候,抢救恢复以前的数据。

11.2 备份类型及备份内容和时间

11.2.1 备份类型

1. 完整备份(Dadabase-complete)

完整备份是对数据库的所有对象和事务日志中的事务进行备份,它可用作系统失败时恢复数据库的基础。 如果数据库是一个只读数据库,那么可以使用完全数据库备份。

特点:消耗时间和资源;备份不影响数据库的活动

2. 差异备份或称增量备份(Dadabase-differential)

差异备份是对最近一次数据库备份以来发生的数据变化进行备份。对于一个经常要进行数据操作的数据库进行备份,需要在完全数据库备份的基础上,进行差异备份。

优点:速度快,使备份一个数据库需要的时间最小,因为它要备份的数据量比完全备份小得多。通过增加差异备份的备份次数,可以降低丢失数据的风险

3. 事务日志备份(Transaction log)

事务日志备份是对数据库发生的事务进行备份,包括从上次进行事务日志备份、差异备份和数据库完全备份之后,所有已经完成的事务。它可以在相应的数据库备份的基础上,尽可能的恢复最新的数据库记录。由于它仅对数据库事务日志进行备份,所以其需要的磁盘空间和备份时间都比数据库备份少得多。

执行事务日志备份主要有两个原因:
①是要在一个安全的介质上存储自上次事务日志备份或数据库备份以来修改的数据;
②是要合适地关闭事务日志到它的活动部分的开始。

差异备份和事务日志备份的比较:

差异备份和事务日志备份的共同点,都减少了备份数据库所需的时间

差异备份和事务日志备份的差别,事务日志备份含有自上次备份以来一行修改几次的所有修改,而差异备份只含有该行的最后一次修改。

11.2.2 备份内容

系统数据库:记录了重要的系统信息,是确保系统正常运行的重要依据,必须完整备份

用户数据库:通常用户数据库中的数据依其重要性可分为关键数据和非关键数据。对于关键数据则是用户的重要数据,不易甚至不能重新创建,必须进行完整备份。

事务日志:相对于数据库备份,事务日志备份所需要的时间较少,但恢复需要的时间比较长。

11.2.3 备份时间

对于系统数据库(tempdb除外),修改之后立即备份比较好。

对用户数据库,由于数据经常变化,一般采用周期性的备份方法。

SQL数据库管理系统采用的是动态转储机制,就是在备份过程中允许用户操作数据库。

11.3 备份策略

11.3.1 完整备份

完整备份包括对数据和日志的备份

特点:适合数据库数据量不是很大,数据更改不频繁

11.3.2 完整备份加日志备份

用户不允许丢失太多数据,而且又不希望经常进行完整备份,这时可以在完整备份中间加入若干次日志备份。

11.3.3 完整备份加差异备份再加日志备份

当用户希望将进行完整备份的时间间隔再加大,比如每周的周日进行一次。如果还采用完整备份加日志备份的方法恢复起来比较耗时。在此种情况下可取完整备份加差异备份再加日志备份的策略,如下图所示。

这种策略的优势是备份和恢复的速度都比较快,而且当系统出现故障时,丢失的数据也相对较少。

11.4 实现备份

11.4.1 用SSMS工具实现备份

启动SSMS,登录到指定的数据库服务器,打开数据库文件夹,用右键单击所要进行备份的数据库图标,在弹出的快捷菜单中选择所有任务,再选择备份数据库 ,如图11-6所示。或者在要备份数据库的备份设备上(比如bk_baidudb)上右击鼠标,在弹出的菜单中选中“备份数据库”命令,如图11-7所示,均可打开类似的备份数据库窗口,如图11-8所示。

图11-6 选择“备份”命令
图11-7 选择“备份数据库”命令
图11-8 备份数据库窗口
图11-9 “选中备份目标”窗口
图11-10 选中好备份设备后的窗口
图11-12 完成备份后的提示窗口

11.4.2 使用Transact-SQL语句备份数据库

数据库备份使用的是BACKUP语句,该语句分为备份数据库和备份日志两种语法格式

1.备份数据库语句的语法格式:

BACKUP DATABASE 数据库名 TO {<备份设备名>}|DISK|TAPE} ={‘物理备份文件名’}
    [WITH
       [DIFFERENTIAL]
       [[,]{INIT|NOINIT}]
    ]

对BaiDuWaiMaiDB数据库进行一次完整备份,备份到备份设备bk_ baidudb上,并覆盖掉该设备上已有的内容。

BACKUP DATABASE BaiDuWaiMaiDB TO bk_ baidudb WITH INIT 

对BaiDuWaiMaiDB数据库进行一次差异备份,也备份到备份设备bk_ baidudb上,并保留该备份设备上已有的内容。

BACKUP DATABASE BaiDuWaiMaiDB TO bk_ baidudb WITH DIFFERENTIAL, INIT 

11.5 恢复数据库

11.5.1 数据库恢复概述

数据库备份后,一旦系统发生崩溃或者执行了错误的数据库操作,就可以从备份文件中恢复数据库。 数据库恢复是指将数据库备份加载到系统中的过程。系统在恢复数据库的过程中,自动执行安全性检查、重建数据库结构以及完整数据库内容。

11.5.2 恢复顺序

1.恢复最近的完整数据库备份。

2.恢复完整备份之后的最近的差异数据库备份

3.按事务日志备份的先后顺序恢复自完整备份之后的所有日志备份。

11.5.3 使用SSMS恢复数据库

1.打开SSMS,单击要登录的数据库服务器,然后从主菜单中选择工具,在菜单中选择还原数据库命令。

2.在还原为数据库旁的下拉列表中选择要恢复的数据库,在还原组中通过单击单选按钮来选择相应的数据库备份类型。

3.选中选项页框,进行其它选项的设置。

11.5.4 使用T-SQL语句恢复数据库

1.RESTORE DATABASE语句的的简化语法格式

RESTORE  DATABASE  数据库名
FROM  备份设备名
[WITH FILE=文件号
    [,]NORECOVERY
    [,]RECOVERY  
]

说明:

FILE=文件号:表示要还原的备份,文件号为1,表示备份设备上的第一个备份,为2则表示第二个备份。

NORECOVERY:表示对数据库恢复操作还没完成。

RECOVERY:表示对数据库恢复操作已经完成。

RESTORE LOG语句的简化语法格式

RESTORE  LOG  数据库名
FROM  备份设备名
[WITH FILE=文件号
    [,]NORECOVERY
    [,]RECOVERY  
]

说明:参数说明同RESTORE DATABASE语句。

从备份设备中恢复数据库

利用上例所创建的完整备份恢复整个数据库。

RESTORE DATABASE BaiDuWaiMaiDB FROM bk_ baidudb WITH FILE=1, REPLACE

11.5.5 恢复系统数据库

1.关闭SQL Server,运行系统安装目录下的bin子目录下的rebuilem.exe文件,这是个命令行程序,运行后可以重新创建系统数据库。

2.系统数据库重新建立后,启动SQL Server。

3.SQL Server启动后,系统数据库是空的,没有任何系统信息。因此,需要从备份数据库中恢复。一般是先恢复master数据库,再恢复msdb数据库,最后恢复model数据库。

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yhan计算机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值