c# – 使用SMO Restore对象恢复差异备份
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用SMO Restore对象恢复差异备份,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1614字,纯文字阅读大概需要3分钟。
内容图文
我试图通过首先还原完整备份然后使用Microsoft.SqlServer.Management.Smo.Restore类还原差异备份来还原数据库.使用以下代码恢复完整备份:
Restore myFullRestore = new Restore();
myFullRestore.Database = "DatabaseName";
myFullRestore.Action = RestoreActionType.Database;
myFullRestore.AddDevice(@"C:\BackupFile.bak", DeviceType.File);
myFullRestore.FileNumber = 1;
myFullRestore.SqlRestore(myServer); // myServer is an already-existing instance of Microsoft.SqlServer.Management.Smo.Server
恢复完整备份(成功完成)后,恢复差异备份的代码如下:
Restore myDiffRestore = new Restore();
myDiffRestore.Database = "DatabaseName";
myDiffRestore.Action = RestoreActionType.Database;
myDiffRestore.AddDevice(@"C:\BackupFile.bak", DeviceType.File);
myDiffRestore.FileNumber = 4; // file contains multiple backup sets, this is the index of the set I want to use
myDiffRestore.SqlRestore(myServer);
但是,此代码将抛出Microsoft.SqlServer.Management.Smo.FailedOperationException,并显示消息“为服务器’servername’恢复失败”.
我是否需要明确声明我正在恢复差异备份,如果是,我该如何进行此操作?或者这个问题不是很明显吗?任何关于我做错事(或忽视做)的建议都将不胜感激.
更新:不确定这是否是最初的拼写错误或早期版本是否具有此形式的API,但对于此行的更高版本
fullRestore.AddDevice(...);
应该
fullRestore.Devices.AddDevice(...)
解决方法:
经过一点点的挖掘后,我想出了这个.为了使差异备份还原起作用,需要在NoRecovery设置为true的情况下执行完全还原:
// before executing the SqlRestore command for myFullRestore...
myFullRestore.NoRecovery = true;
这指定需要应用另一个事务日志,在这种情况下是差异备份.此页面包含一些我认为有用的信息:
http://doc.ddart.net/mssql/sql70/ra-rz_9.htm
内容总结
以上是互联网集市为您收集整理的c# – 使用SMO Restore对象恢复差异备份全部内容,希望文章能够帮你解决c# – 使用SMO Restore对象恢复差异备份所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。