SQL Server 数据恢复
2016-07-07 21:18
423 查看
配置SQL Server数据库恢复模式(2种方法)
用T-SQL设置恢复模式你可以使用“ALTER DATABASE”命令加“SET RECOVERY”语句来修改数据库的恢复模式。例如,下面的查询语句把“AdventureWorks”数据库的恢复模式设置为完全恢复模式。
ALTER DATABASE AdventureWorks SET RECOVERY FULL ;你可以查询“sys.databases”的目录视图,验证数据库的恢复模式状态。语句如下:
SELECT name, recovery_model, recovery_model_desc FROM sys.databases WHERE name = 'AdventureWorks' ;
你可以使用如下语句把数据库设置为大批量操作模式或者简单恢复模式,只需要在“”位置替换为你自己数据库的名称就可以了。
--Changing recovery model to Bulk-logged ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED ; --Changing recovery model to Simple ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE ;
在创建新数据库时,它会从模型数据库中继承恢复模式,默认是完全恢复模式。要修改默认恢复模式,你可以使用“ALTER DATABASE”语句修改模型数据库的恢复模式。
请注意,如果打算维护一致的事务日志备份,就不能切换到简单恢复模式,也不能从简单恢复模式改为其它。
使用SQL Server管理工具(SSMS)修改恢复模式
你可以在SQL Server管理工具中修改数据库的恢复模式。在对象浏览器中,右键单击你的数据库(在数据库节点下),然后点击属性。在数据库属性对话框中,点击选项标签页,然后修改恢复模式如下:
数据库右键→属性→选项→恢复模式
SQL Server 2008数据库误删数据如何进行数据恢复
SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:1. 至少有一个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复,无需借助第三方工具。
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后来找的是SQL Log Rescue,也不支持SQL Server 2008。
接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。
最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用Recovery for SQL Server进行恢复的操作步骤:
1. 运行Recovery for SQL Server
2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)
3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。
4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。
5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。
6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。
7. Next,选择被恢复数据存放的目标数据库。
8. Next, 选择 Import availiable data from both database and log files
9. Next, Next, 然后就完成数据的恢复!
附:
在完整恢复模式下将数据库还原到故障点 (Transact-SQL):https://msdn.microsoft.com/zh-cn/library/ms175093.aspx
还原数据库备份:https://msdn.microsoft.com/zh-cn/library/ms177429.aspx
完整数据库还原(简单恢复模式):https://msdn.microsoft.com/zh-cn/library/ms186216.aspx
完整数据库还原(完整恢复模式):https://msdn.microsoft.com/zh-cn/library/ms187495.aspx
文件还原(简单恢复模式):https://msdn.microsoft.com/zh-cn/library/ms187495.aspx
完整数据库还原(完整恢复模式):https://msdn.microsoft.com/zh-cn/library/ms187495.aspx
RESTORE (Transact-SQL):https://msdn.microsoft.com/zh-cn/library/ms186858.aspx
相关文章推荐
- session数据存入redis
- springmvc mongodb maven 整合
- session入redis
- 外键约束
- 在 windows 环境下部署redislive监控redis
- powerdesigner逆向工程 oracle
- mongodb 安装
- SQL索引问题
- PL/SQL 程序设计简介
- mysql单表多次自关联查询
- mysql 数学函数
- 数据库优化方案
- MySQL DATE_FORMAT()函数的使用
- CentOS7安装配置redis-3.0.0
- mysql命令大全(订正版)
- 性能优化之mysql索引优化
- Redis和Memcache对比及选择
- 3大主流NoSQL数据库性能对比测试报告
- mysql 根据某些字段之和排序
- laravel项目连接redis