将SQL数据库从较高版本备份和还原

问题描述 投票:0回答:1

我正在寻找一种创建命令行脚本来备份SQL Server 2016的方法,该脚本可以在旧版本的SQL Server 2012中进行还原。

我们使用[]从SQL Server 2016进行每日备份>

BACKUP DATABASE XXXX TO DISK = "C:\BACKUP.BAK"

并且此备份将提供给运行较旧​​的SQL Server 2012的第三方。

当他们使用SMSS时,会收到一条错误消息,指出有关不兼容版本的错误。

我尝试使用ALTER DATBASE XXXX SET COMPATIBILITY_LEVEL = 110(甚至比SQL Server 2012版本更低的目标)...认为可以在其2012年中加载它,但是当他们尝试加载时,它仍然指出备份文件位于2016年(v13.xxx)?!

示例备份脚本

USE MYDB;
ALTER DATABASE MYDB SET SINGLE_USER

GO  
-- TARGETING SQL Server SQL Server 2012
ALTER DATABASE MYDB SET COMPATIBILITY_LEVEL = 110
GO

BACKUP DATABASE MYDB
TO DISK = 'C:\TEMP\MYDB.BAK'  

ALTER DATABASE MYDB SET MULTI_USER   
GO

有人可以让我知道我在做什么错吗?

谢谢

我正在寻找一种创建命令行脚本来备份SQL Server 2016的方法,该脚本可以在旧版本的SQL Server 2012中进行还原。我们每天使用... ...从SQL Server 2016中进行每日备份...]] >

您只是简单地[[CANNOT

执行此操作-您无法将SQL Server的较新版本中的数据库附加/分离或备份/还原到较旧版本
-内部文件结构是差异太大,无法支持向后兼容。而且“数据库兼容性级别”也无济于事。您可以通过以下方式解决此问题:>

  • 在所有计算机上使用相同版本的SQL Server-然后您可以轻松地在实例之间备份/还原数据库

  • 否则,您可以在SQL Server Management Studio(Tasks > Generate Scripts)中使用结构(表,视图,存储过程等)和内容(表中包含的实际数据)创建数据库脚本,第三方工具

  • 或您可以使用第三方工具(如Red-Gate的SQL CompareSQL Data Compare)在源和目标之间进行“区分”,根据这些差异生成更新脚本,然后在目标上执行这些脚本平台;这适用于不同的SQL Server版本。
  • sql-server backup
    1个回答
    0
    投票

    您只是简单地[[CANNOT

    © www.soinside.com 2019 - 2024. All rights reserved.