当Excel中有许多引用时,将数据库迁移到新服务器



在工作中,我们正在尝试升级基础设施,并最终将应用程序服务器和数据库服务器分离。我们想将当前的SQL server数据库迁移到一个新的数据库服务器,但我们在办公室周围有许多Excel电子表格,这些电子表格具有数据库连接和链接到当前数据库服务器的数据源。

找到所有这些参考文献将是一项相当艰巨的任务。有没有任何方法可以重新路由所有这些数据源,而不必查找和更新现有的每个Excel文件?我们甚至不确定所有这些都使用一致的驱动程序,有些可能是ODBC,很多肯定是OLE,有些甚至可能通过Excel宏使用ADO.Net。

有人经历过这种情况吗?非常感谢您的帮助。

假设excel电子表格中与SQL Server的连接由DNS名称而非IP组成,则以下过程将完成工作:

  1. 使用新主机名、新DNS记录设置新服务器,就像标准的新安装一样
  2. 移动您的数据&配置到新服务器。请记住移动登录名并确保它们正确映射
  3. 更改旧服务器的名称。请确保DNS不再引用旧名称
  4. 将新的DNS记录(A记录)添加到DNS服务器,引用新服务器的IP。(顺便说一句,你也可以使用WINS/SQL别名,而不是DNS服务器的方式)
  5. 现在,旧名称被引用到新的服务器IP。但是,由于Kerberos协议,连接在AD环境中无法工作。为了使它工作,假设服务器的新名称是newname。ADDomain.com,并且SQL Server的服务帐户为ADDomain\sqlsvc,请在SQL Server上运行以下命令:SetSPN -S MSSQLSVC/newname.ADDomain.com:1433 ADDomainsqlsvc。如果您不在域环境中或者没有使用windows身份验证,则可以跳过此步骤

完成后,客户端将能够使用旧名称连接新服务器。我建议在执行此过程之前,您要确保知道如何执行此操作,以及在需要时如何回滚(也就是说,确保知道如何使用旧名称启动并运行旧服务器)。

如果你想安全起见,并为未来的更改做好准备,你应该考虑做一点更改:不要使用旧名称作为新服务器的别名,而是设置AlwaysOn集群,并使用这个旧名称作为侦听器的名称,而不是新DB服务器本身的名称。

这样,将来的移动将更容易,因为客户端将始终使用侦听器名称进行连接,AlwaysOn将把它们路由到活动服务器。

希望这能有所帮助。

最新更新