使用可由 SQL Server 2008 R2 导入的 SQL Server 2012 工具创建数据库备份

使用可由 SQL Server 2008 R2 导入的 SQL Server 2012 工具创建数据库备份

基本上,我正在学习 Ms 软件堆栈并开发一个使用安装到本地 ./SQLEXPRESS 实例的 *.mdf 文件的应用程序。

然后,我将机器上的所有软件升级到 Windows 8 RTM、Visual Studio 2012 Pro 等。并安装了 SQL Server Express 2012 和最新版本的基本 Management Studio。当我第一次启动 VS2012 时,它要求我将 MDF 文件转换为最新版本,我照做了。值得一提的是,我还有一个尚未升级/转换的副本。

现在我想在共享主机上部署和测试此应用程序,并将我的数据库加载到他们的 SQL 服务器上,此托管服务使用 SQL Server 2008 R2。当我尝试将由上述最新的 Ms 工具创建的 *.bak 文件导入到此服务器时,它给出了以下错误:The media family on device is incorrectly formed. SQL Server cannot process this media family. (severity 16) 我已阅读并发现这完全与版本不兼容有关,旧版本的 SQL 服务器无法处理由新一代工具创建的 *.bak 文件和其他文件。

我做的第一件事就是下载并加载 SQL Server Management Studio 2008 到我的 Windows 8 机器上,但令我失望的是,它没有成功,当我尝试备份时,它只是给我错误,总体感觉它有兼容性问题。可能是因为我连接到了新的本地 (LocalDB)\v11.0 服务器,而不是我不再安装的旧 ./SQLEXPRESS。

总体而言,我是否应该期望 SQL Server 2008 Express 和管理工具能够在 Windows 8 上运行?否则我有什么选择(除了在 VM 等中加载旧软件堆栈),也许在创建备份时有向后兼容模式?或者其他一些可以在 Windows 8 中运行并使用较旧的 mdf 文件版本执行 *.bak 转储的软件?

答案1

您无法将数据库备份从较高版本的 SQL Server 还原到较低版本的 SQL Server。

答案2

我能够从较新版本的 SQL Server Management Studio(在我的情况下指的是 SQL 2008 R2)连接到 2005 Express 实例,没有任何问题。我希望它能以相同的方式工作(我以前错了)。我会告诉它不要升级您现有的实例并保留在较旧的引擎上,以便您可以对其进行测试,然后将其部署到您的 VM 上。FWIW,您可以尝试使用“将数据库 @DatabaseName 备份到磁盘 = @FilePath WITH INIT,STATS = 10,CHECKSUM,COMPRESSION;”而不是使用内置备份,以便它在远程实例上为您远程执行该过程。您过去(可能仍然可以)在同一台机器上运行多个 SQL 版本(不确定是否支持此功能)。有什么阻止你这样做吗?

相关内容