作为 DBA、开发人员和架构师,我从双方(消费者和提供者)反复这样做。
作为供应商,我的一项重大成就(1996 年)是为最大的保险公司(价值数百万美元的项目)的商业保险索赔管理软件产品创建了安装 CD。该安装 CD 安装了 Oracle 7.2 RDBMS 引擎、FileNet 光学存储系统(扫描纸质文档并创建编目二进制版本)和我们的自定义索赔处理应用程序(内置于 VB 4.0),所有这些都已集成并可以运行。作为安装过程的一部分,用户可以跳过 Oracle 软件安装或对其进行自定义,并且用户可以自定义/覆盖数据库配置的所有主要细节(数据库、模式、表空间、大小、磁盘等)。
我还为该产品提供了现场服务,其中包括必要时前往客户现场。我在我可以复制的每个可以想象的场景下对安装 CD 进行了数百次测试,我们从来没有遇到过需要打电话的现场故障,更不用说旅行了(我确实旅行了四次,但是为了预售的东西反而)。
最近(2007 年),我为一家大型公司的内部系统编写了一个 Oracle 10g 数据库的创建脚本。在生产中,数据库大小为 8 TB,主要用于具有高数据量的单个事务表。在测试中,数据库的大小约为 1 TB,适用于普通服务器。在开发过程中,数据库大小约为 100 MB,可以在我的笔记本电脑上运行。完全相同的脚本创建了所有三个环境,我可以在大约五分钟内扩展它们以处理新环境/机器。该数据库涉及极端的性能调整,因此所有相关特征的定制绝对至关重要。
回到保险理赔处理产品——让我补充一下,我最初受雇负责将其从 SQL Server 数据库转换为 Oracle 数据库。这种转换被认为是一种业务需要,因为大多数潜在客户并不将基于 SQL-Server 的产品视为专业、严肃的解决方案。这在今天并不常见,但它仍然普遍适用:如果软件产品能够适应目标客户(尤其是企业级客户)偏好的多个数据库选项,那么它就有更好的市场渗透机会。
同样,安装 CD 也被视为必不可少的元素。然而,这种情况以及更多情况向我表明,大多数“真正的”DBA 不会接受基于导入的数据库安装。作为一名 DBA 和架构师,我知道我绝对不会出于同样的原因。
简而言之,基于导入的数据库安装使客户几乎无法控制生成的数据库。它对客户来说是不透明的,让他们质疑它做了什么。它迫使客户付出巨大的努力来尝试行使他们所能做的微不足道的控制。它是出了名的脆弱和容易出错(Oracle 导入以所有权和权限问题、约束问题等而闻名)。权衡所有这些影响后,基于导入的数据库安装是不专业的——它没有将客户的需求放在首位。
编写数据库安装脚本可提供专业要求的正确透明度、可配置性、选择性可重复性和整体客户控制。它还鼓励您以导入不具备的方式正确理解数据库设计决策的影响。
最良好的祝愿。