这让我很困惑...
我们有一个 WSS3.0 前端服务器,它连接到单独的 SQL 服务器 (SQLA) 上的配置和内容数据库。此数据库服务器即将退役,因此我们将数据库移至新服务器 (SQLB)。数据库本身已恢复到新服务器,因此现在需要重新连接 WSS3.0 才能查看新数据库。根据我的研究,我应该能够运行:
stsadm -o renameserver -oldservername sqla -newservername sqlb
不过,在执行此操作之前,我查看了配置数据库以查找数据库连接信息,以便知道它是否正常工作。令我担心的是,dbo.Databases、dbo.Sites 和 dbo.VirtualServers 表都是空的!
与我的 WSS2.0 安装相比,所有这些表都填充了我期望的内容。我以 SA 身份执行所有这些操作,因此这不是权限问题。
我已经检查并再次检查了前端服务器上的 ConfigDb 连接字符串,它确实指向 SQLA 上的同一个数据库。
那么,为什么我的网站似乎在数据库中没有任何这些信息的情况下也能运行呢?如果我重新启动服务器会发生什么?WSS3.0 如何知道所有数据库的位置?
答案1
好的,我想我已经弄清楚问题出在哪里了。这是我的直觉……
WSS 3.0 的数据库布局是 WSS 2.0 中表的超集。在 WSS 3.0 的标准(非升级)安装中,它不使用已弃用的 WSS 2.0 表,而是选择将所有内容保留在 dbo.Objects 表中。但是,当您从 WSS 2.0 升级到 WSS 3.0 时,升级过程会从 dbo.Sites、dbo.Databases 表中获取数据并将其折叠到 dbo.Objects 表中。