SQLServer2005数据库没有删除所有其他快照引发的问题及其解决方法
2013-05-07 13:58
405 查看
SQLServer2005数据库没有删除所有其他快照引发的问题及其解决方法
问题重现及其解决方法如下:
--查询FYTEST数据库下TEST表中的内容
SELECT * FROM FYTEST.dbo.TEST;
--创建FYTEST数据库的第一个快照,快照为:FYTEST_DBSS1
CREATE DATABASE FYTEST_DBSS1 ON
(NAME = FYTEST,
FILENAME = 'D:\FYTEST_DBSS1.SS')
AS SNAPSHOT OF FYTEST
GO
如下图:
--更新FYTEST数据库中TEST表的数据
UPDATE FYTEST.dbo.TEST SET levelNO='二级';
--查询更新后的数据
SELECT * FROM FYTEST.dbo.TEST;
--创建FYTEST数据库的第二个快照,快照为FYTEST_DBSS2
CREATE DATABASE FYTEST_DBSS2 ON
(NAME = FYTEST,
FILENAME = 'D:\FYTEST_DBSS2.ss')
AS SNAPSHOT OF FYTEST
GO
--更新FYTEST数据库中TEST表的数据
UPDATE FYTEST.dbo.TEST SET levelNO='三级';
--查询更新后的数据
SELECT * FROM FYTEST.dbo.TEST;
--查看快照1中TEST表的内容
SELECT * FROM FYTEST_DBSS1.dbo.TEST;
--查看快照2中TEST表的内容
SELECT * FROM FYTEST_DBSS2.dbo.TEST;
--查看现在FYTSET数据库中TEST表的内容
SELECT * FROM FYTEST.dbo.TEST;
--从数据库快照中恢复数据库到快照创建的时刻
--使用master数据库
USE master
GO
RESTORE DATABASE FYTEST
FROM DATABASE_SNAPSHOT='FYTEST_DBSS1'
GO
产生错误的原因是没有删除所有其他快照
解决方法:
方法一:手动删除其它快照
数据库快照-->找到要删除的快照-->右键-->删除即可。
方法二:使用代码删除其它快照
DROP DATABASE FYTEST_DBSS2
注意:这里的 FYTEST_DBSS2为要删除的快照名称
删除其他快照后,然后再重新执行下面语句
--从数据库快照中恢复数据库到快照1创建的时刻
--使用master数据库
USE master
GO
RESTORE DATABASE FYTEST
FROM DATABASE_SNAPSHOT='FYTEST_DBSS1'
GO
发现执行成功!
--确认是否恢复了FYTEST数据库下的TEST表的内容
SELECT * FROM FYTEST.DBO.TEST;
可以看到FYTEST数据库下TEST表中的数据恢复了。
--删除数据库快照
DROP DATABASE FYTEST_DBSS
问题重现及其解决方法如下:
--查询FYTEST数据库下TEST表中的内容
SELECT * FROM FYTEST.dbo.TEST;
--创建FYTEST数据库的第一个快照,快照为:FYTEST_DBSS1
CREATE DATABASE FYTEST_DBSS1 ON
(NAME = FYTEST,
FILENAME = 'D:\FYTEST_DBSS1.SS')
AS SNAPSHOT OF FYTEST
GO
如下图:
--更新FYTEST数据库中TEST表的数据
UPDATE FYTEST.dbo.TEST SET levelNO='二级';
--查询更新后的数据
SELECT * FROM FYTEST.dbo.TEST;
--创建FYTEST数据库的第二个快照,快照为FYTEST_DBSS2
CREATE DATABASE FYTEST_DBSS2 ON
(NAME = FYTEST,
FILENAME = 'D:\FYTEST_DBSS2.ss')
AS SNAPSHOT OF FYTEST
GO
--更新FYTEST数据库中TEST表的数据
UPDATE FYTEST.dbo.TEST SET levelNO='三级';
--查询更新后的数据
SELECT * FROM FYTEST.dbo.TEST;
--查看快照1中TEST表的内容
SELECT * FROM FYTEST_DBSS1.dbo.TEST;
--查看快照2中TEST表的内容
SELECT * FROM FYTEST_DBSS2.dbo.TEST;
--查看现在FYTSET数据库中TEST表的内容
SELECT * FROM FYTEST.dbo.TEST;
--从数据库快照中恢复数据库到快照创建的时刻
--使用master数据库
USE master
GO
RESTORE DATABASE FYTEST
FROM DATABASE_SNAPSHOT='FYTEST_DBSS1'
GO
产生错误的原因是没有删除所有其他快照
解决方法:
方法一:手动删除其它快照
数据库快照-->找到要删除的快照-->右键-->删除即可。
方法二:使用代码删除其它快照
DROP DATABASE FYTEST_DBSS2
注意:这里的 FYTEST_DBSS2为要删除的快照名称
删除其他快照后,然后再重新执行下面语句
--从数据库快照中恢复数据库到快照1创建的时刻
--使用master数据库
USE master
GO
RESTORE DATABASE FYTEST
FROM DATABASE_SNAPSHOT='FYTEST_DBSS1'
GO
发现执行成功!
--确认是否恢复了FYTEST数据库下的TEST表的内容
SELECT * FROM FYTEST.DBO.TEST;
可以看到FYTEST数据库下TEST表中的数据恢复了。
--删除数据库快照
DROP DATABASE FYTEST_DBSS
相关文章推荐
- eclipse导入Java web项目,项目名出现红叉而其他地方没有红叉的问题解决方法
- 【总结】关于自己装Ubuntu以来遇到的所有问题及其解决方法
- eclipse导入Java web项目,项目名出现红叉而其他地方没有红叉的问题解决方法
- 在使用Myeclipse时遇到由于删除action而引发的空指针异常问题的解决方法
- vmware 删除后安装不了,vmware workstation.msi failed——(转载)(我用此方法没有解决问题)
- ubuntu 14.04 删除ibus输入法引发的问题及解决方法
- eclipse导入java web项目,项目出现红叉而其他地方没有红叉的问题解决方法
- 关于在用curl函数post网页数据时,遇上表单提交 type为submit 类型而且没有name和id时可能遇到的问题及其解决方法
- eclipse导入Java web项目,项目名出现红叉而其他地方没有红叉的问题解决方法
- 2015年7月4日解决问题:eclipse连接access数据库问题//java五中布局及其应用方法//equals()与==的区别等
- u盘禁止删除和写入,只能读取的问题解决方法。
- 解决ThinkPHP的Create方法失效而没有提示错误信息的问题
- 软件架构乱弹——问题域及其解决方法
- 韦东山教程ARM的时钟设置出现的问题及其解决方法
- dedecms删除所有栏目或文章后,新建ID不从1开始的解决方法
- python递归删除指定目录及其所有内容的方法
- CFileDialog改变文件路径导致的一系列问题(如无法安全删除u盘、访问相对路径失败)的解决方法
- Android 编程下小米2 真机调试中存在的问题及其解决方法
- 关于Silverlight对匿名类型数据绑定的问题及其解决方法
- 使用centos linux-2.6.32-220.23.1.el6源码编译时出现的问题及其解决方法