关于sql server:如何将数百个MS Access数据库迁移到中央服务?

关于sql server:如何将数百个MS Access数据库迁移到中央服务?

How would you migrate hundreds of MS Access databases to a central service?

我们实际上在网络上浮动着100个Access数据库。 有些使用量很少,有些使用量很大,有些则没有使用。 我们要做的是将这些数据库集中到一个托管数据库中,并在其中保留尽可能多的报告和表格。

这样做的好处是可以进行某种使用情况跟踪,还可以更加注意存储在这些应用程序中的一些重要的分散数据。

RDBMS(Oracle,MS SQL服务器)或其将在其上运行的堆栈(LAMP,ASP.net,Java)没有任何实际限制,并且显然也没有银弹。 我们想要一些可以自动消除最初繁琐工作的工具。


我们将用户升级(使用升级向导或手动升级)到SQL Server。通常很简单。将所有访问表替换为链接到sql server的表,并保留所有表格/报告/宏的访问权限。在访问方面的投资不会丢失,用户可以继续照常营业。您可以获得sql server和集中式备份的可靠性。请记住-我们是针对几个大型访问数据库(而非数百个)执行此操作的。我将进行几十个试点,看看效果如何。

更新:
我刚刚发现了这个,sql服务器迁移助手,它可能值得一看:
http://www.microsoft.com/sql/solutions/migration/default.mspx

更新:是的,对于设计不良的数据库,将需要进行一些重构。至于如何处理访问蔓延?我在拥有大量技术用户的公司中遇到过这种情况(工程师尤其是这方面最糟糕的人……而且擅长蔓延)。我们进行了一次审核-(在备份之后)删除了一年多没有接触过的所有数据库。根据数据库中的位置和/或数据分配"所有者"。如果数据库位于" S:\ quality \ test_dept"中,那么质量经理和首席测试工程师必须拥有该数据库的所有权,否则我们将其删除(在备份之后再次)。


升级Access应用程序并不是什么灵丹妙药。可能有些事情会更快,但是某些类型的操作将是真正的狗。这意味着通常必须通过在服务器端移动数据检索逻辑(视图,存储过程,传递查询)来彻底测试大型应用程序并解决性能瓶颈。

但是,这并不是一个真正的答案。

我认为该问题没有任何自动化的答案。确实,我会说这是人员问题,而不是编程问题。有人必须调查网络并确定所有Access数据库的所有权,然后采访用户以了解正在使用的内容和未使用的内容。然后,应评估每个应用程序是否应该折叠到企业范围的数据存储/应用程序中,或者将其最初实现为几个用户的小型应用程序是更好的方法。

那不是您想听到的答案,但这恰恰是正确的答案,因为这是人员/管理问题,而不是编程任务。


Oracle有一个迁移工作台,可以将MS Access系统移植到Oracle Application Express,这值得研究。

http://apex.oracle.com


大卫·芬顿(David Fenton)的评论

您的管理规则将如下所示:

如果数据库中的数据仅由一个用户用于其自己的工作(单独),则他们可以将其保留在自己的网络共享中。

如果数据库中的数据供一个以上的人使用(即使只有两个人),则该数据库必须位于中央服务器上,并由IT部门管理(备份,架构更改,接口等)。 )。 这是因为有经验的人需要协调整个演出,否则我们将冒险下一个人的时间/资源。


所以?将服务器专用于您的Access数据库。

现在,您不仅可以进行某种使用情况跟踪,而且还可以更加注意存储在这些应用程序中的一些重要的分散数据。

无论如何,这就是您要做的,只是您想使用其他数据库引擎而不是NTFS。

现在,您必须强制用户使用您的服务器。

好吧,您可以通过告诉他们不再使用旧备份覆盖他们的数据来鼓励他们,因为现在您将拥有这些数据,并且您将不再这样做。

此外,您可以告诉他们,他们的应用程序现在将运行得更快,因为您将从即时病毒扫描中排除该文件夹(您不对其他数据库执行此操作,这就是为什么它们充满了sql-injection恶意软件,但这些数据库不会暴露在互联网上),并计划关闭数据包签名(您无需在专用服务器上使用它:仅适用于将文件共享放在域服务器上的用户) 。

简便的升级途径,改进的用户服务,更好的IT集中和控制能力。每个人都是赢家。


推荐阅读