将文件存储到oracle db

Ski*_*zzo 2 oracle oracle-11g-r2 blob

我正在开发一个用于获取合同的 java web 应用程序,并且必须从外部系统接收一些文件。对于每份新合同,我都会收到有关新客户的一些信息和音频文件。现在我可以将文件保存在 db 上(我使用的是 Oracle 11g)或只保存 db 上的链接,然后在服务器上维护该文件。

您认为更好的解决方案是什么?上述两种方式的优缺点是什么?

Mik*_*hke 5

我的强烈建议(不管 RDBMS 是什么):单独存储文件。这使得数据库更小,这在您备份、迁移、复制等时很重要。此外,您可以将数据库和文件分开在不同的磁盘上,从而对存储位置有更多的控制(例如,具有不同故障转移策略的磁盘子系统)。

然而,这意味着您需要一种向客户端提供文件的方法,这需要额外的工作(但也需要额外的机会,因为您不受 DB 通信协议的约束)。

存储在数据库中的专业人士显然是将数据返回给客户端的简单方法。

  • 如果您选择这样做,请注意备份和恢复策略。数据库中提到了确保文件系统中所有内容的责任,*反之亦然*现在由您自己承担。同样,当您添加或删除文件和元数据时,没有跨越数据库和文件系统的事务。您将不得不自己编写协调和整理代码。 (2认同)