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

Sql 当Excel中有许多引用时,将数据库迁移到新服务器,sql,sql-server,excel,vba,Sql,Sql Server,Excel,Vba,在工作中,我们试图升级基础设施,并最终分离应用程序服务器和数据库服务器。我们希望将当前的SQL server DBs迁移到一个新的数据库服务器,但我们办公室里有许多Excel电子表格,它们有数据库连接和链接到当前数据库服务器的数据源 找到所有这些参考文献将是一项相当艰巨的任务。是否有任何方法可以在不必查找和更新每个Excel文件的情况下重新路由所有这些数据源?我们甚至不确定所有这些都使用一致的驱动程序,一些可能是ODBC,很多肯定是OLE,一些甚至可能通过Excel宏使用ADO.Net 有没有人

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

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


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

假设excel电子表格中的SQL Server连接是由DNS名称而不是IP创建的,则以下过程将完成此工作:

  • 使用新主机名和新DNS记录设置新服务器,就像标准的新安装一样
  • 将数据和配置移动到新服务器。记住移动登录并确保它们正确映射
  • 更改旧服务器的名称。确保DNS不再引用旧名称
  • 将新DNS记录(A记录)添加到DNS服务器,参考新服务器的IP。(顺便说一句,您也可以使用WINS/SQL别名,而不是DNS服务器方式)
  • 现在,旧名称被引用到新服务器IP。但是,由于Kerberos协议,连接在AD环境中无法工作。要使其正常工作,假设服务器的新名称为newname.ADDomain.com,SQL server的服务帐户为ADDomain\sqlsvc,请在SQL server上运行以下命令:
    setpn-s MSSQLSVC/newname.ADDomain.com:1433 ADDomain\sqlsvc
    。如果您不在域环境中或未使用windows身份验证,则可以跳过此步骤
  • 完成后,客户端将能够使用旧名称连接新服务器。我建议,在执行此过程之前,您应该确保知道如何执行此操作,以及在需要时如何回滚(这意味着,确保您知道如何使用旧名称启动和运行旧服务器)

    如果你想安全地准备好未来的变化,你应该考虑做一点改变:不要用旧名称作为新服务器的别名,而是设置AlWOWSON集群,并使用这个旧名称作为侦听器的名称,而不是新DB服务器本身的名称。 这样,将来的移动将更容易,因为客户端将始终使用侦听器名称进行连接,并且AlwaysOn将它们路由到活动服务器


    希望这有帮助。

    假设excel电子表格中的SQL Server连接是由DNS名称而不是IP创建的,则以下过程将完成此工作:

  • 使用新主机名和新DNS记录设置新服务器,就像标准的新安装一样
  • 将数据和配置移动到新服务器。记住移动登录并确保它们正确映射
  • 更改旧服务器的名称。确保DNS不再引用旧名称
  • 将新DNS记录(A记录)添加到DNS服务器,参考新服务器的IP。(顺便说一句,您也可以使用WINS/SQL别名,而不是DNS服务器方式)
  • 现在,旧名称被引用到新服务器IP。但是,由于Kerberos协议,连接在AD环境中无法工作。要使其正常工作,假设服务器的新名称为newname.ADDomain.com,SQL server的服务帐户为ADDomain\sqlsvc,请在SQL server上运行以下命令:
    setpn-s MSSQLSVC/newname.ADDomain.com:1433 ADDomain\sqlsvc
    。如果您不在域环境中或未使用windows身份验证,则可以跳过此步骤
  • 完成后,客户端将能够使用旧名称连接新服务器。我建议,在执行此过程之前,您应该确保知道如何执行此操作,以及在需要时如何回滚(这意味着,确保您知道如何使用旧名称启动和运行旧服务器)

    如果你想安全地准备好未来的变化,你应该考虑做一点改变:不要用旧名称作为新服务器的别名,而是设置AlWOWSON集群,并使用这个旧名称作为侦听器的名称,而不是新DB服务器本身的名称。 这样,将来的移动将更容易,因为客户端将始终使用侦听器名称进行连接,并且AlwaysOn将它们路由到活动服务器


    希望这能有所帮助。

    让这成为一个教训,不要将excel用作数据库前端:),但要回答您的问题,如果旧服务器脱机,您可能可以使用DNS别名。这是在一家投资公司。卓越是一种宗教。谢谢您的回答,但我想知道DNS是否涵盖所有类型的SQL server连接。:-)与SQL server的连接将使用NetBIOS机器名、TCPIP地址或url。你不能让它们和旧服务器一样吗?你可以使用Excel,你只需要在它和数据库之间加一层。相信我,我在几家金融公司工作过,经历过很多次这种痛苦。DNS应该涵盖大部分,但可能不能涵盖所有。如果没有关于如何定义连接的标准,那么您可能会遇到必须手动处理的异常值。让这成为一个教训,不要将excel用作数据库前端:),但为了回答您的问题,如果旧服务器脱机,您可能可以使用DNS别名。这是在一家投资公司。卓越是一种宗教。谢谢您的回答,但我想知道DNS是否涵盖所有类型的SQL server连接。:-)与SQL server的连接将使用NetBIOS机器名、TCPIP地址或url。你不能让他们成为山姆吗