我有一个连接到 Oracle 或 SQL Server 数据库的 ASP .NET 应用程序。已经开发了一个安装程序,可以使用诸如“恢复数据库...”之类的 sql 命令将新数据库安装到现有 SQL Server,该命令只是恢复我们保留在源代码控制之下的“.bak”文件。

我对 Oracle 非常陌生,我们的应用程序最近才被移植到与 10g 兼容。

我们目前使用“exp.exe”工具生成“.dmp”文件,然后使用“imp.exe”将其导入开发人员框中。

您将如何创建“Oracle 数据库安装程序”?

您会使用脚本文件创建数据库,然后使用以下内容填充数据库吗 必需的 默认数据?

您会在幕后运行“imp.exe”工具吗?

我们是否需要为系统管理员提供一个干净的界面,以便他们可以选择目标服务器并完成操作,或者我们应该只向他们提供“.dmp”文件?最佳实践是什么?

谢谢。

有帮助吗?

解决方案

问题是——您的客户对 Oracle 了解多少?

  • 没有什么?您可能应该重新考虑这个立场。Oracle 非常庞大且复杂。如果您假设您的客户一无所知,那么您就会开始提供不合适的教程和帮助。

  • 最低限度的能力?如果他们有能力,他们就有足够的知识来自己经营小鬼。此外,他们还了解足够的知识来运行执行 SQL 的脚本。

  • 真正的DBA?大多数能够负担得起 Oracle 费用的组织都能够负担得起真正的 DBA。真正的 DBA 可以处理很多事情——他们不需要太多的帮助。他们中的一些人喜欢根据他们的商店标准分配存储参数。

您应该提供一个具有合理默认值的脚本。您应该以一种人们可以轻松找到所有存储参数并在必要时调整它们的方式来定义脚本。

您的初始数据可以通过导出/导入或通过脚本进行。我更喜欢剧本。

其他提示

我已经从两侧(消费者和提供者),为DBA,显影剂,和建筑师反复做这个。

将作为供应商,我的大成就之一(1996年),是为有针对性的到最大的保险公司商业保险理赔管理软件产品(一个数百万美元的项目)的安装光盘的制作。在安装CD安装了Oracle RDBMS 7.2发动机,FileNet的光学存储系统(扫描纸张文件并创建编目二进制版本),而我们的定制要求处理应用程序(内置在VB 4.0),全部集成并准备运行。作为安装过程的一部分,用户可以跳过Oracle软件安装或自定义,用户可以自定义/覆盖数据库配置在其所有主要的细节(数据库,模式,表空间大小,磁盘等)。

我还本产品,其中包括行进根据需要向客户端站点提供的现场服务。我测试了安装光盘数百次,我可以复制每一个可以想象的情景下,我们从未有过,需要连个电话场失败,更何况是一个旅程(我做旅游四次,但对于售前的东西代替)。

最近(2007年),我的脚本Oracle 10g数据库的创建用于在megacorp内部系统。在生产中,该数据库在8 TB大小,多为具有高数据容量的单个事务表。在测试中,数据库是围绕着1个TB大小适合中等服务器。在发展中,数据库是大约100 MB大小在我的笔记本上运行。完全相同的脚本创建的所有三种环境,我可以扩展他们在大约五分钟来处理新的环境/机。该数据库涉及极端性能调整,因此所有相关特性的定制是绝对至关重要的。

回到保险索赔处理产品 - 让我请加我最初雇来导致从SQL Server数据库中其转化为Oracle数据库。这种转换被认定为商业需要,因为大多数潜在客户并不认为基于SQL-Server产品作为一个专业,认真的解决方案。今天很为普遍不大,但它仍然适用于一般:一个软件产品的市场渗透的一个更好的机会,如果它可以容纳多个数据库选项的目标客户(尤其是企业级用户)

为首选。

同样地,在安装CD也被看作是一个重要因素。然而,这种情况下,还有许多人向我透露最“真实”的DBA不会接受一个基于进口数据库的安装。作为DBA和建筑师,我知道,我是绝对不会出于同样的原因。

简而言之,基于进口数据库的安装使客户在升级的数据库中几乎没有任何控制。它是不透明的客户,让他们质疑它的所作所为。它迫使用户花费巨大的努力,试图锻炼一下小的控制,他们可以。这是出了名的脆弱和容易出错(甲骨文进口以及所有权和权限问题,约束问题等的通称)。权衡所有这些影响,基于进口数据库安装不专业 - 它不把客户的需求放在第一位

脚本数据库安装提供了合适的种透明性,可配置性,选择性的可重复性,和整体客户控制该专业性的要求。它还鼓励你正确理解的方式,进口没有你的数据库设计决策的影响。

最佳的愿望。

我个人赞成SQL脚本来创建数据库和数据负载在可能的情况。我倾向于使用 PL / SQL开发人员。它有一些很好的选择,从现有数据库脚本。一旦你有了这些,你可以用sqlplus或任何应用程序代码,可以执行任意SQL(如JDBC与Java)运行的脚本。 蟾蜍是为Oracle开发更常见的(和更昂贵的)工具。

一个SQL出口的唯一的限制是它不能导出CLOB / BLOB字段。如果你有这些,您可能需要单独做他们(作为PL / SQL输出),或做整个事情的PL / SQL的出口。那里有与此没有电视剧,除了该文件实际上是一个二进制输出(扩展.pde),是比较有限的,你如何执行它。

SQL源文件的另一大优点是它们可以容易地版本控制。这是非常方便的,能够通过运行一个或两个脚本来创建数据库环境。

在导入和导出工具为Oracle我觉得是更适用于备份和恢复操作。

现在,作为用于传递给客户,从您的意见,似乎你会被给予该DBA的。几乎所有的Oracle安装将有数据库管理员参与。他们将被罚款使用SQL脚本来创建模式和进行数据加载。它们将被做了很多特定于站点的配置的(例如,调谐SGA,临时表空间,并发连接#等基于预期负载)。

您(作为卖方),可在任何相关的配置给予指导,您可以涉足的支持,并可能安装,但最终还是由他们来找出他们的作品。甲骨文运行在大量的操作系统,并与网络拓扑和防火墙configuraiton无限变化的硬件变体。你不能因子在所有这些给安装或者甚至一组指令(除前面提到的准则)。

上次我参与创建(oracle)数据库(对于一家拥有内部 DBA 的相当大的公司),DBA 想要了解以下内容:

  • 我们想要称之为数据库的东西,
  • 我们需要什么表空间,以及每个表空间中有多少数据的估计
  • 有多少用户将连接。

(凭记忆)他们设置了数据库和表空间,然后我们提供了他们可以运行的简单脚本的组合(如果任务不容易自动化,则提供清晰的说明)
正如我所说,这是针对内部应用程序的,因此您的情况可能会有所不同,但就我而言,他们希望清楚地阐明所有说明,以便 (a) 不可能出现误解导致做错事,并且(b) 如果某些事情不起作用,他们无需承担任何责任(“我们只是按照说明进行操作”)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top