SQL Server 2000中的完整备份、差异备份操作
在SQL Server 2000中,假定我们拥有一个数据库为:Test, 现在需要它每天19:00自动进行一次备份,并且以后一旦发生数据库错误,我们都可以通过备份文件将数据库恢复到任何一个备份过的时刻点。
备份步骤:
1. 在“SQL Server企业管理器”中注册数据库所在的服务器,注意要使用sa用户名和口令,否则以后执行备份调度的时候,会出现权限不足,导致不能进行备份。
2. 确保该服务器的SQL Server Agent服务是开启的,因为所有的调度都是通过该代理进行执行的。
3. 在“SQL Server企业管理器”中选中Test数据库,右键打开“备份数据库”窗口,指定一个新的文件Test-daily.bak,选择“完全”进行一次完全备份。
4. 再次打开“备份数据库”窗口,这次使用“差异备份”,“重写”选项设置为“追加到媒体”,目的文件仍然是前面步骤所指定的Test-daily.bak,并在“调度”选项中设置为每天的19:00,这样,SQL Server会在每天的19:00将数据库自上次备份以来发生的变化,以增量备份的方式追加到Test-daily.bak文件中。(测试的时候,可以设置为每天的每1分钟进行一次备份,以便可以很快的看到备份结果)
在需要进行数据库恢复的时候,可以按照如下还原步骤进行操作:
1. 新建一个数据库,比如名为Back, 右键打开“还原数据库”窗口,选择“从设备”进行还原,然后在“选择设备…”中选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,“备份号”默认为1(对应的就是备份步骤3中的初次完全备份),不必更改。在“选项”标签页中,选中“强制还原”,最关键的一步是,在“恢复完成状态”中,选中第2或第3项,即保证“能还原其它事务日志”,这样还原之后,这个新的数据库就回到了我们进行第一次完全备份时候的状态,此时,该Back数据库将处于“正在装载”或“只读”的状态,没有关系,这是正常的,因为我们接下来还需要通过事务日志将该数据库恢复到指定的某个状态。
2. 再次打开“还原数据库”窗口,同样选择“从设备”进行还原,然后在“选择设备…”中选定备份所使用的Test-daily.bak文件,回到“还原数据库”窗口,点击“备份号”后面的“查看内容…”按钮,在新的窗口中,可以看到里面列出了每天19:00左右备份过的备份集(除了最顶上一个是我们初次的完全备份集,其它都是每天的增量备份集),选中想要恢复的某个备份集,单击“确定”回到主窗口,可以看到“还原备份集”默认选中的是“差异”,再单击确定,这样,Back数据库就恢复到了我们选定的某个备份集了。
上述还原步骤可以重复进行,直到我们找到确切需要的某个备份集。
另外,恢复后的数据库名称是Back,如果想将其改名为Test,可以执行EXEC sp_renamedb 'Back', 'Test',在重命名数据库之前,应该确保没有人使用该数据库,而且数据库设置为单用户模式。
补充:需要在"备份数据库"->"常规"选项卡里选中"重写现有媒体",这样在"选项"选项卡里才能设定"备份集到期时间",并且发现,这样设定好"到期时间"之后,即使将"重写现有媒体"改为"追加到媒体",所设定的"到期时间"还是有效的,通过这种方式应该可以实现保留最近N天的备份。
SQL Server 2000中的完整备份、差异备份操作的更多相关文章
- SQL Server 2000中的并行处理和执行计划中的位图运算符
SQL Server 2000中的并行处理和执行计划中的位图运算符 摘抄自:SQLServer 2000并行处理和位图简介 刘志斌 并行查询介绍Degree of Parallelism(并行度) 一 ...
- SQL Server 2000中查询表名,列名及字段类型
经常碰到一些忘记表名称的情况,此时只记得个大概,此时可通过查询系统表Sysobjects找到所要的表名,如要查找包含用户的表名,可通过以下SQL语句实现, Select * From sysobjec ...
- SQL Server 2012不支持从SQL Server 2000的备份进行还原
错误: dbbackup failed: Unable to restore database 'ppt'Not valid backupThe database was backed up on a ...
- SQL Server 2005 中的分区表和索引
SQL Server 2005 中的分区表和索引 SQL Server 2005 69(共 83)对本文的评价是有帮助 - 评价此主题 发布日期 : 3/24/2005 | 更新 ...
- SQL Server 2000向SQL Server 2008 R2推送数据
[文章摘要]最近做的一个项目要获取存在于其他服务器的一些数据,为了安全起见,采用由其他“服务器”向我们服务器推送的方式实现.我们服务器使用的是SQL Server 2008 R2,其他“服务器”使用的 ...
- 使用SQL Server 2000索引视图提高性能
什么是索引视图? 许多年来,Microsoft? SQL Server? 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的数据的某 ...
- SQL Server 2000 ——系统表和系统视图
一.系统表 数据字典的详细信息请查SQL SERVER BOL,这里仅列出一部分. 1.1.sysservers 1.查看所有本地服务器及链接服务器 select * from master..sys ...
- [转]SQL Server 数据库中的 MD5 和 SHA1
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果 ...
- SQL SERVER 2005中利用XML对字符串拆分的方法
1.常规方法(可运用于SQL SERVER 2000中) DECLARE @str varchar(1000) DECLARE @idoc int; DECLARE @doc xml;set @str ...
随机推荐
- 由“大数据量Excel入库高效方式”瞥见“并联系统”之优势
使用场景: 当你有一个Excel文件,需要把其中的数据高速录入到数据库中,文件中包含10万条以上数据. 设计方案: 我们将整个过程分成三个阶段,A(装载Excel文件). ...
- C++ 名称空间
在程序中,只使用 using namespace std; 而不使用其他的名称空间,如using namespace boost; 这样的好处有: 1.可以避免不同名称空间中的名称冲突: 2.可以很清 ...
- C++ map注意事项
1.在map中,由key查找value时,首先要判断map中是否包含key. 2.如果不检查,直接返回map[key],可能会出现意想不到的行为.如果map包含key,没有问题,如果map不包含key ...
- [C++基础]随机数,随机种子数
#include <stdlib.h> #include <iostream> #include <ctime> using namespace std; void ...
- MySql文章
转: MySql安全建议 http://www.cnblogs.com/crystal189/p/3492640.html
- innodB的隐式锁
http://blog.csdn.net/taozhi20084525/article/details/19545231 一.知识准备之隐式锁 参考:http://www.uml.org.cn/sjj ...
- 面试感悟----一名3年工作经验的程序员应该具备的技能 JAVA 必读书
http://www.cnblogs.com/xrq730/p/5260294.html#3470685 http://www.cnblogs.com/xrq730/p/4994545.html
- WinForm实现跨进程通信的方法
public class WinMessageHelper { private struct COPYDATASTRUCT { public IntPtr dwData; public int cbD ...
- 自定义强大的C#网络操作基础类(NetHelper)
using System; using System.Text;using System.Net.Sockets;using System.Net.Mail;using System.Net; nam ...
- 2. Android框架和工具之 Volley
Java基础知识强化之网络编程笔记23:Android网络通信之 Volley(Google开源网络通信库)