Sql server 迁移SQL Server 2000数据库时出现问题

Sql server 迁移SQL Server 2000数据库时出现问题,sql-server,sql-server-2000,sql-server-2017,sage-erp,Sql Server,Sql Server 2000,Sql Server 2017,Sage Erp,我们正在将SQL Server 2000实例迁移到SQL Server 2017。我能够通过SQL Server备份还原成功地移动所有数据库,但有一个数据库出现问题。我甚至可以移动此数据库,但问题是,当用户试图通过Sage ERP应用程序(5.4版)连接到此数据库时,他们会收到以下消息: 数据损坏,DBSETUP:创建应用程序表。未找到表“表名” 虽然我检查了表是否存在,并且一致性没有错误。然后,我们在SQL Server 2017实例上创建了一个空白数据库,并尝试通过Sage应用程序将SQL

我们正在将SQL Server 2000实例迁移到SQL Server 2017。我能够通过SQL Server备份还原成功地移动所有数据库,但有一个数据库出现问题。我甚至可以移动此数据库,但问题是,当用户试图通过Sage ERP应用程序(5.4版)连接到此数据库时,他们会收到以下消息:

数据损坏,DBSETUP:创建应用程序表。未找到表“表名”

虽然我检查了表是否存在,并且一致性没有错误。然后,我们在SQL Server 2017实例上创建了一个空白数据库,并尝试通过Sage应用程序将SQL Server 2000数据库转储到
.REC
文件中,并将其移动到SQL Server 2017实例,但我们无法移动它

有多个
.REC
文件,传输开始,其他
.REC
文件移动成功,但在一个特定的
.REC
文件处停止,并显示以下消息:

(错误=0本机代码=0)


在SQL Server 2000中,数据库的大小是32 GB,但当我们通过Sage将其移动到SQL Server 2017时,它将变为45 GB。这是我们注意到的一件事。我们检查了兼容性和排序规则也正常。我还检查了数据库和特定表的一致性,没有错误。这是我们迄今为止一直在尝试的,在过去的3周里我们一直在努力,非常感谢您的帮助。

如果没有垫脚石服务器,2000数据库不可能迁移到2017年,因为格式太不同了。因此,在您的情况下,您可以在2005/2008服务器上恢复2000数据库,从那里进行备份,并在运行更高版本的实例上恢复它。Paul Randal在这里完美地解释了这一点:

您是否在原始数据库上运行了CHECKDB?在迁移的数据库上呢?是的,我在这两个数据库上都运行了DBCC,可以。谁是原始数据库的所有者?听起来像是权限问题。您确定已正确重定向Sage以连接到新服务器吗?新表是否具有使Sage用户可见的权限?我刚刚尝试将sql2000.bak文件还原到sql2017实例,但我得到
该数据库是在运行版本8.00.2305的服务器上备份的。该版本与运行版本14.00.3048的服务器不兼容。你到底在干什么?此迁移是否涉及中间版本的sql2008r2?我知道,在通过SQL备份还原进行迁移时,我将数据库移动到了中间版本的2008 r2服务器,然后移动到了2017,但问题是无法通过Sage应用程序访问数据库。然后,我们使用Sage应用程序将数据库文件转储到.REC文件,我们可以将其他数据库直接从SQL 2000移动到SQL 2017,但只有一个数据库存在问题。