一直困扰的数据库在线还原,终于得到了个好的解决办法。
之前的想法是,网上普遍再说的,在还原前需要把数据库所在进程杀死,再进行还原,能通过数据库语句把所在进程找出来,但是发现在杀死一次后,之后不能再找出,在使用还原语句还原的时候,还发现数据库被占用。一直无法得到解决办法。网上也没有好的解决办法。所以一直困扰着。
今天偶然在数据库书上看到,可以先把数据库设置为脱机状态,让数据库处于离线状态。再来进行数据库的还原,处于离线,应该就不会再占有了?为了保险我现在SQL上实施了,发现是可行的。
之后便用于数据库的还原上:
首先先执行离线语句:
Alter Database DBNAME Set Offline with Rollback immediate"
之后执行数据库还原语句:
RESTORE DATABASE DBNAME FROM DISK =" + "'" + path + "'" + "WITH REPLACE
最后在执行数据库在线语句:
ALTER DATABASE DBNAME SET ONLINE WITH ROLLBACK IMMEDIATE;
怎么样 ,数据库还原了把?
注意别忘了备份原来的数据库哦,不然就没了。
在向服务器发送请求时发生传输级错误。 (provider: 共享内存提供程序, error: 1 - 执行读/写操作期间检测到 I/O 错误
出现该错误的时候,只要使用SqlConnection.ClearAllPools();清理连接池即可。
本文出自 “马迪飞点net” 博客,请务必保留此出处http://2529441.blog.51cto.com/2519441/652378