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

时间:2020-03-05 18:48:37  来源:igfitidea点击:

我们实际上有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"中,那么质量经理和首席测试工程师必须拥有该数据库的所有权,否则我们将其删除(再次备份后)。

回答

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

http://apex.oracle.com

回答

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

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

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

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

回答

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

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

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

现在,我们必须强制用户使用服务器。

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

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

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

回答

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

管理规则将如下所示:

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

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