【 tulaoshi.com - SQLServer 】
理主要是为防止非法登录者或非授权用户对SQL Server 数据库或数据造成破坏,但在有些情况下这种安全管理机制显得力不从心。例如合法用户不小心对数据库数据做了不正确的操作或者保存数据库文件的磁盘遭到损坏或者运行SQL Server 的服务器因某种不可预见
的事情而导致崩溃。所以我们需要提出另外的方案即数据库的备份和恢复来解决这种问题。本章的主要目的就是介绍备份、恢复的含
义,数据库备份的种类以及备份设备等基本的概念,以及如何创建备份和恢复数据库,使读者对其有全面的了解和认识,能够自主制定自己的备份和恢复计划。
15.1.1 备份和恢复
备份和恢复组件是SQL Server 的重要组成部分。备份就是指对SQL Server 数据库或事务日志进行拷贝,数据库备份记录了在进行备份这一操作时数据库中所有数据的状态,如果数据库因意外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库。
由于SQL Server 支持在线,备份所以通常情况下可一边进行备份,一边进行其它操作,但是,在备份过程中不允许执行以下操作: 创建或删除数据库文件; 创建索引; 执行非日志操作; 自动或手工缩小数据库或数据库文件大小。 如果以上各种操作正在进行当中,且准备进行备份则备份,处理将被终止;如果在备份过程中,打算执行以上任何操作,则操作将失败而备份继续进行。
恢复就是把遭受破坏或丢失数据或出现错误的数据库恢复到原来的正常状态,这一状态是由备份决定的,但是为了维护数据库的一致性,在备份中未完成的事务并不进行恢复。
进行备份和恢复的工作主要是由数据库管理员来完成的。实际上数据库管理员日常比较重要、比较频繁的工作就是对数据库进行备份和恢复。
注意:如果在备份或恢复过程中发生中断,则可以重新从中断点开始执行备份或恢复。这在备份一个大型数据库时极有价值。
15.1.2 数据库备份的类型
在SQL Server 2000 中有四种备份类型,分别为; 数据库备份(Database Backups) 事务日志备份(Transaction Log Backup) 差异备份(Differential Database Backups) 文件和文件组备份(File and File Group Backup) 下面我们将详细介绍其所表述的内容,并涉及到一些使用时注意事项。
1 数据库备份(Database Backups) 数据库备份是指对数据库的完整备份,包括所有的数据以及数据库对象。实际上备份数据库过程就是首先将事务日志写到磁盘上,
然后根据事务创建相同的数据库和数据库对象以及拷贝数据的过程。由于是对数据库的完全备份,所以这种备份类型不仅速度较慢,
而且将占用大量磁盘空间。正因为如此,在进行数据库备份时,常将其安排在晚间,因为此时整个数据库系统几乎不进行其它事务操作,从而可以提高数据库备份的速度。
在对数据库进行完全备份时,所有未完成的事务或者发生在备份过程中的事务都不会被备份。如果您使用数据库备份类型,
则从开始备份到开始恢复这段时间内发生的任何针对数据库的修改将无法恢复。所以我们总是在一定的要求或条件下才使用这种备份类型,比如: 数据不是非常重要,尽管在备份之后恢复之前数据被修改,但这种修改是可以忍受的; 通过批处理或其它方法,在数据库恢复之后可以很容易地重新实现在数据损坏前发生的修改; 数据库变化的频率不大。 在进行数据库备份时,如果您在备份完成之后又进行了事务日志备份,则在数据库备份过程中发生的事务将被备份:但若只进行数据库备份,常将数据库选项“trunc.log onchkpt” 设置为true, 这样每次在运行到检查点(checkpoint) 时,都会将事务日志截断。
注意:如果对数据一致性要求较高(将数据库恢复到发生损坏的刻),则不应使用数据库备份。
2 事务日志备份(Transaction Log Backup) 事务日志备份是指对数据库发生的事务进行备份,包括从上次进行事务日志备份、差异备份和数据库完全备份之后,所有已经完成的事务。在以下情况下我们常选择事务日志备份。 不允许在最近一次数据库备份之后发生数据丢失或损坏现象; 存储备份文件的磁盘空间很小或者留给进行备份操作的时间有限,例如兆字节级的数据库需要很大的磁盘空间和备份时间; 准备把数据库恢复到发生失败的前一点; 数据库变化较为频繁。 由于