6

Oracle または SQL Server データベースに接続する ASP .NET アプリケーションがあります。ソース管理下にある「.bak」ファイルを単純に復元する「restore database...」などの SQL コマンドを使用して、既存の SQL Server に新しいデータベースをインストールするインストーラーが開発されました。

私は Oracle を初めて使用し、アプリケーションが 10g と互換性を持つように移植されたのはごく最近のことです。

現在、「exp.exe」ツールを使用して「.dmp」ファイルを生成し、「imp.exe」を使用して開発ボックスにインポートしています。

「Oracle Database Installer」を作成するにはどうすればよいですか?

スクリプト ファイルを使用してデータベースを作成し、データベースに必要な既定のデータを入力しますか?

舞台裏で「imp.exe」ツールを実行しますか?

システム管理者が宛先サーバーを選択して完了できるように、クリーンなインターフェイスを提供する必要がありますか?それとも、「.dmp」ファイルを提供するだけでよいでしょうか? ベストプラクティスは何ですか?

ありがとう。

4

4 に答える 4

7

問題は、顧客が Oracle について何を知っているかということです。

  • 何もない?おそらく、この位置を再考する必要があります。Oracle は非常に大規模で複雑です。顧客が何も知らないと仮定すると、不適切なチュートリアルやヘルプの提供を開始します。

  • 最小限の有能?能力があれば、自分でインプを実行するのに十分な知識があります。また、SQL を実行するスクリプトを実行するのに十分な知識があります。

  • 実際の DBA の? Oracle を購入できるほとんどの組織は、本物の DBA を購入する余裕があります。本物の DBA は、多くのことに対処できます。手を握る必要はあまりありません。中には、店舗の基準に従って保管パラメーターを割り当てるのが好きな人もいます。

適切なデフォルトをスクリプトに提供する必要があります。誰かがすべてのストレージ パラメータを簡単に見つけて、必要に応じて微調整できるように、スクリプトを定義する必要があります。

初期データは、エクスポート/インポートまたはスクリプトを介して取得できます。私はスクリプトの方が好きです。

于 2008-12-22T13:38:40.387 に答える
5

私は、DBA、開発者、およびアーキテクトとして、両方の側 (コンシューマーとプロバイダー) からこれを繰り返してきました。

プロバイダーとしての私の偉大な功績の 1 つ (1996 年) は、最大の保険会社 (数百万ドルの商品) を対象とした商用保険金請求管理ソフトウェア製品のインストール CD を作成したことです。そのインストール CD には、Oracle 7.2 RDBMS エンジン、FileNet 光ストレージ システム (紙のドキュメントをスキャンして、カタログ化されたバイナリ バージョンを作成する)、およびカスタム請求処理アプリケーション (VB 4.0 で構築) がインストールされ、すべて統合され、すぐに実行できます。インストール プロセスの一環として、ユーザーは Oracle ソフトウェアのインストールをスキップしたり、カスタマイズしたりできます。また、ユーザーはデータベース構成のすべての主要な詳細 (データベース、スキーマ、テーブルスペース、サイズ、ディスクなど) をカスタマイズ/上書きできます。

また、必要に応じてクライアントのサイトに出張するなど、この製品のフィールド サービスも提供しました。インストール CD を文字通り何百回も再現できるあらゆるシナリオでテストしましたが、出張はおろか電話さえ必要な現場での故障は一度もありませんでした (出張は 4 回ありましたが、事前販売のため)。代わりは)。

最近 (2007 年)、私は巨大企業の内部システム用に Oracle 10g データベースを作成するスクリプトを作成しました。本番環境では、データベースのサイズは 8 TB で、主にデータ量の多い単一のトランザクション テーブル用です。テストでは、データベースのサイズは中程度のサーバーで約 1 TB でした。開発中、データベースは私のラップトップで実行できるように約 100 MB のサイズになりました。EXACT SAME SCRIPTS は 3 つの環境すべてを作成し、それらを拡張して新しい環境/マシンを約 5 分で処理することができました。このデータベースには極端なパフォーマンス チューニングが含まれていたため、関連するすべての特性のカスタマイズが絶対的に重要でした。

保険金請求処理製品の話に戻りますが、私はもともと SQL Server データベースから Oracle データベースへの変換をリードするために雇われていたことを付け加えておきます。ほとんどの潜在的なクライアントは、SQL Server ベースの製品を専門的で本格的なソリューションとは見なしていなかったため、この変換はビジネス上の必要性として認識されました。これは今日ではあまり一般的ではありませんが、一般的には依然として当てはまります。対象となる顧客 (特にエンタープライズ クラスの顧客) が好む複数のデータベース オプションに対応できるソフトウェア製品は、市場に浸透する可能性が高くなります。

同様に、インストール CD も不可欠な要素と見なされていました。しかし、そのような状況やその他の状況から、ほとんどの「実際の」DBA はインポート ベースのデータベース インストールを受け入れないことがわかりました。DBA およびアーキテクトとして、私は同じ理由で間違いなくそうしないことを知っています。

簡単に言えば、インポート ベースのデータベース インストールでは、顧客は結果のデータベースをほとんど制御できません。それは顧客にとって不透明であり、顧客はそれが何をしたのか疑問に思っています。これにより、顧客は、自分ができるわずかな制御を行使しようとするために多大な努力を費やすことを余儀なくされます. これは壊れやすく、エラーが発生しやすいことで有名です (Oracle のインポートは、所有権と許可の問題、制約の問題などでよく知られています)。これらすべての影響を考慮すると、インポート ベースのデータベース インストールは専門的ではありません。顧客のニーズを第一に考えていません。

データベースのインストールをスクリプト化することで、適切な種類の透明性、構成可能性、選択的な再現性、およびプロフェッショナリズムが要求する全体的な顧客管理が提供されます。また、インポートでは理解できない方法で、データベース設計の決定の影響を適切に理解することをお勧めします。

幸運をお祈りしています。

于 2008-12-22T22:19:09.727 に答える
1

個人的には、可能であればデータベースの作成とデータのロードに SQL スクリプトを使用することを好みます。私はPL/SQL Developerを使用する傾向があります。既存のデータベースからスクリプトを生成するためのいくつかの優れたオプションがあります。これらを取得したら、sqlplus または任意の SQL を実行できる任意のアプリケーション コード (Java を使用した JDBC など) を使用してスクリプトを実行できます。 Toadは、Oracle 開発用のより一般的な (そしてより高価な) ツールです。

SQL エクスポートの唯一の制限は、CLOB/BLOB フィールドをエクスポートできないことです。それらがある場合は、それらを個別に (PL/SQL エクスポートとして) 実行するか、すべてを PL/SQL エクスポートとして実行する必要があります。ファイルが事実上バイナリ エクスポート (拡張子 .pde) であり、実行方法がより制限されていることを除いて、これにはドラマはありません。

SQL ソース ファイルのもう 1 つの大きな利点は、簡単にバージョン管理できることです。1 つまたは 2 つのスクリプトを実行するだけでデータベース環境を作成できるのは非常に便利です。

Oracle のインポートおよびエクスポート ツールは、バックアップおよび復元操作により適していると思います。

さて、それをお客様にお届けするということですが、おっしゃる通り、DBAさんにお渡しすることになりそうです。ほとんどすべての Oracle インストールには、DBA が関与します。SQL スクリプトを使用してスキーマを作成し、データをロードすることは問題ありません。彼らは多くのサイト固有の構成を行っています (たとえば、予想される負荷に基づいて、SGA、一時テーブルスペース、同時接続数などを調整します)。

ベンダーとして、関連する構成に関するガイダンスを提供できます。また、サポートや場合によってはインストールに関与することもできますが、最終的にはベンダーにとって何が有効かを判断する必要があります。Oracle は、多数のオペレーティング システムとハードウェアのバリエーションで実行され、ネットワーク トポロジとファイアウォールの構成は無限に変化します。これらすべてをインストーラーや一連の指示に含めることはできません (前述のガイドラインを除く)。

于 2008-12-22T13:52:23.917 に答える
0

私が(oracle)dbの作成に最後に関与したとき(社内DBAを持つかなり大規模な会社の場合)、DBAは次のようなことを知りたがっていました。

  • 私たちがdbと呼びたかったもの、
  • 必要なテーブルスペースと、各テーブルスペースに含まれるデータ量の見積もり
  • 接続するユーザーの数。

(メモリから)データベースとテーブルスペースをセットアップし、実行できる単純なスクリプトの組み合わせを提供しました(または、タスクの自動化が容易でない場合は明確な指示)
これは社内アプリ用でしたが、だからあなたのマイレージは変わるかもしれませんが、私の場合、彼らはすべての指示を明確に綴って、(a)間違ったことをすることにつながる誤解の可能性がないようにし、(b)何かが行われなかった場合に彼らの側で責任を負わないようにしたかったのです。 t作業(「私たちは指示に従っただけでした」)

于 2008-12-22T14:42:02.973 に答える