Sql server 如何将数百个MS Access数据库迁移到中央服务?

Sql server 如何将数百个MS Access数据库迁移到中央服务?,sql-server,oracle,ms-access,Sql Server,Oracle,Ms Access,我们有100个访问数据库漂浮在网络上。有些使用量很轻,有些使用量很大,有些则完全没有使用。我们想做的是将这些数据库集中到一个托管数据库中,并在其中保留尽可能多的报告和表格 这样做的好处是能够进行某种使用情况跟踪,并且能够更加关注存储在这些应用程序中的一些重要分散数据 对RDBMS(Oracle、MS SQL server)或它将运行的堆栈(LAMP、ASP.net、Java)没有真正的限制,显然不会有解决这个问题的灵丹妙药。我们希望能够以自动方式删除初始的grunt工作。我们将用户升级(使用升级

我们有100个访问数据库漂浮在网络上。有些使用量很轻,有些使用量很大,有些则完全没有使用。我们想做的是将这些数据库集中到一个托管数据库中,并在其中保留尽可能多的报告和表格

这样做的好处是能够进行某种使用情况跟踪,并且能够更加关注存储在这些应用程序中的一些重要分散数据

对RDBMS(Oracle、MS SQL server)或它将运行的堆栈(LAMP、ASP.net、Java)没有真正的限制,显然不会有解决这个问题的灵丹妙药。我们希望能够以自动方式删除初始的grunt工作。

我们将用户升级(使用升级向导或手动)到SQL server。这通常是非常直截了当的。用链接到sql server的表替换所有access表,并将所有窗体/报表/宏保留在access中。在访问方面的投资没有损失,用户可以像往常一样继续运营。您可以获得sql server和集中备份的可靠性。请记住,我们已经为一些大型access数据库而不是数百个数据库完成了这项工作。我会做几十个飞行员,看看结果如何

更新: 我刚找到这个sql server迁移助手,它可能值得一看:


更新:是的,对于设计糟糕的数据库,需要进行一些重构。至于如何处理通道蔓延?我曾在拥有大量技术用户的公司遇到过这种情况(尤其是工程师,他们是最糟糕的……还有excel的蔓延)。我们做了一次审计(备份后)删除了超过一年未涉及的任何数据库。根据数据库中的位置和/或数据分配“所有者”。如果数据库位于“S:\quality\test\u dept”中,则质量经理和首席测试工程师必须对其拥有所有权,否则我们将删除它(备份后再次删除)。

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


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

不过,这并不是这个问题的答案

我认为这个问题没有任何自动的答案。事实上,我会说这是一个人的问题,而不是一个编程问题。必须有人调查网络,确定所有Access数据库的所有权,然后采访用户,找出哪些在使用,哪些没有。然后,应评估每个应用程序是否应折叠到企业范围的数据存储/应用程序中,或者其最初作为少数用户的小型应用程序实现是否是更好的方法


这不是你想听到的答案,但这是正确的答案,因为这是一个人事/管理问题,而不是一个编程任务。

那么?将服务器专用于Access数据库

现在,您有了某种使用情况跟踪的好处,并且能够更加关注存储在这些应用程序中的一些重要分散数据

这就是您要做的,只是您想使用不同的数据库引擎而不是NTFS

现在你必须强迫用户进入你的服务器

好吧,你可以鼓励他们告诉他们你不再用旧备份覆盖他们的数据,因为现在你将拥有这些数据,你不再这样做了

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


简单的升级路径、改进的用户服务、更大的IT集中度和控制力。每个人都是赢家。

进一步了解David Fenton的评论

您的管理规则如下:

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

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

@David…没有银弹不是任何人想听的答案:)但我同意这是正确的答案。