可以将旧版MYSQL数据库恢复到SQL Server 2017而不更新吗?

问题描述 投票:2回答:4

我使用T-SQL成功地将早期版本的备份恢复到MS SQL 2017上。

但是,在还原期间,数据库将升级到当前版本。

这是一个问题,因为我希望修改数据库,然后进行备份,然后将其传输并恢复到使用相同早期版本的MS SQL的另一个系统。

是否可以在数据库升级的情况下运行RESTORE?

一直在查看T-SQL文档而未发现此内容。

我使用的T-SQL代码是:

USE master
GO
ALTER DATABASE Polly SET SINGLE_USER
with ROLLBACK IMMEDIATE
GO

RESTORE DATABASE Polly FROM DISK = 'C:\data\Polly.bak';
GO

USE Polly
DELETE FROM SytLog;
GO

ALTER DATABASE Polly SET MULTI_USER
GO

如果有人对上面有一般改进,我很乐意提出建议。

当上述运行时,我得到:数据库'Polly'运行从版本782到版本801的升级步骤。...数据库'Polly'运行从版本868到版本869的升级步骤。

希望看到没有升级步骤,但只有数据库仍然可用。

sql-server tsql restore
4个回答
0
投票

当上述运行时,我得到:数据库'Polly'运行从版本782到版本801的升级步骤。...数据库'Polly'运行从版本868到版本869的升级步骤。

希望看到没有升级步骤,但只有数据库仍然可用。

这是不可能的。 SQL Server的每个版本都有datalog files结构,服务器版本之间有所不同。如果您从较低版本的db文件restoreattach数据库单向更新,以具有当前版本的SQL Server所需的结构。

不可能不升级,因为当前版本的服务器需要db文件的新结构。

围绕compatibility level / read_only property的所有猜测都没有任何帮助,当前的服务器将永远不会运行不是所需结构的文件。

readonly数据库的情况下,其文件将被升级,但数据库将保持readonly

Compatibility leveldatabase version(db文件的版本)完全无关。它告诉服务器应该使用什么版本的query optimizer,仍然可以解析遗留的syntax等等。


0
投票

Microsoft documentation说:

如果将SQL Server 2005(9.x)或更高版本的数据库还原到SQL Server 2017,则会自动升级数据库。

虽然我会在绝望的情况下尝试创建只读数据库并恢复它。

但这不是供应商直接支持的黑魔法。


0
投票

不,这是不可能的。将数据库附加到较新版本的SQL Server后,您无法将其移回旧版本。在这种情况下,唯一的选择是导出/导入数据。如果您需要修改数据库并将其移回旧服务器,则需要安装具有相同旧版本的服务器并在那里进行恢复!


0
投票

兼容性级别很重要。即使需要更改数据库的兼容级别,在某些情况下也无法简单地还原备份。

将在SQL Server 2008 R2上创建的数据库备份还原到SQL Server 2012实例的过程非常顺利,但如果尝试在SQL Server 2012上还原SQL Server 2000备份,则无法直接执行此操作。

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