2017-04-22 367 views
2

我越来越想恢复的SQL Server 2014在SQL Server 2016的备份与兼容模式时出现错误110错误尝试的SQL Server 2014恢复的SQL Server 2016的备份与兼容模式时,110

消息3169,级别16,状态1,行38
数据库在运行版本13.00.4001的服务器上备份。该版本与运行版本12.00.5532的此服务器不兼容。可以在支持备份的服务器上恢复数据库,也可以使用与此服务器兼容的备份。

消息3013,级别16,状态1,行38
RESTORE DATABASE正在异常终止。
执行批处理期间遇到错误。退出。

升级到SQL Server 2016不是此解决方案的选项。

+0

@downvoter我不认为要求不可能值得赞成。这对其他人来说仍然是有用的参考。 – Caltor

+0

@Caltor:done - 作为回复发布 –

回答

0

这是不可能的。

需要的SQL Server 2016(或更高版本)的实例来恢复与SQL Server的备份中2016

数据库的兼容版本是不相关的恢复所需的SQL Server版本数据库的备份。 SQL Server支持向后兼容性,因此您可以在SQL Server 2016上恢复从SQL Server 2014开始的备份,但反过来并不是从未受到支持。没有选项或配置将允许你绕过这个限制。

+0

我收到了关于RedGate SQLBackup Tool的建议,以了解这种情况http://www.red-gate.com/products/dba/sql-backup/support/。你有什么看法,你有没有关于这个工具的经验或反馈? – AbrandaoL

+0

@AlexandreBrandãoLustosa:他们提供14天的免费试用 - 为什么不下载一个副本并尝试一下呢? –

+1

@AlexandreBrandãoLustosa根据我的经验,使用SQL Server的备份工具仍在内部使用SQL Server的'BACKUP'和'RESTORE'命令。他们只是将文件发送到虚拟备份设备接口(VDI)(即使用'BACKUP DATABASE [MyDatabase] TO VIRTUAL_DEVICE = ....'。由于您仍然在使用SQL Server的'RESTORE'命令,因此我想象你会有完全相同的问题,除非他们声称要修改数据库或文件中的数据库版本,这会让我觉得这是一个非常危险的功能。 –

0

如何设置链接服务器或某种导出/导入作为解决方法。

+0

I will consider this选项,谢谢! – AbrandaoL

3

CAN NOT不断从SQL Server(例如2016)的版本恢复备份到服务器与旧版本(例如SQL服务器2014) - 有没有记录(或无证)的方式,没有方法,没有解决方法,没有黑客来实现这一点 - 这是不可能的。

内部数据库结构太不同了,无法提供“向后”兼容性路径。摆弄兼容级别也无济于事,因为这不会真正改变数据库文件的内部 - 它只是启用/禁用某些T-SQL功能。

最简单的解决方案是在所有系统上只使用SQL Server的相同版本。这样,您可以轻松地从一台机器备份,并将该数据库恢复到另一台机器上。

如果这不可行,那么您必须使用T-SQL脚本将结构和/或内容(数据)中的更改从较新版本传输到较旧版本。您可以使用Redgate SQL CompareSQL Data Compare等工具来帮助您生成这些T-SQL脚本,也可以自己编写这些脚本。或者你建立一些其他的方式来同步两个数据库。

或者如果您需要移动“仅”数据,则可以检入导入/导出向导,然后将数据从SQL Server 2016转储为中间格式(Access,Excel)并将其重新导入到从那里的旧的SQL Server。

+0

非常感谢您的详细解释,我只需要移动数据,我将按照您指示的方式运行这个过程,我将执行BCP提取并将其重新导入到数据库中。 – AbrandaoL