我需要为 ETL 作业从多个访问数据库读取参考数据。数据所有者生成了一个文件,其中包含一系列链接表,将它们全部整合到一个地方。但是,如果其中一个基本文件是使用锁定 (.ldb) 文件打开的,则 OLEDB 提供程序将拒绝打开链接表。
SSIS 包设置有多个从 OLEDB 源读取的数据流任务。澄清一下,这些是参考表,不一定在当时更新 - .mdb 文件有一个锁定 (.ldb) 文件。
是否可以配置 MS jet OLEDB 驱动程序以强制打开链接表,而忽略锁?
我们研究过的几个备选方案是:
以相反的方式配置链接表 - 将源放在中央数据库中并从其他访问 DBS 链接到它们。企业不愿意这样做,我们也没有权力强迫它。
将基础数据库复制到暂存区并打开副本 - 这是我们的 B 计划,尽管它涉及在慢速 WAN 链接上移动大约 2GB 并在 ETL 作业开始时增加延迟(几乎所有内容都取决于这些参考表)。如果可能的话,我宁愿避免延迟。
编辑:查看我的回答 - 问题是由于缺少对锁定文件的写权限以及驱动程序返回的模棱两可的错误消息。
发现问题 - 变相的权限问题。Jet 驱动程序需要对该目录具有写访问权限,以便它可以更新锁定文件。当它无法写入锁定文件时,它会将玩具扔出小床,并显示一条误导性的错误消息。