web-dev-qa-db-ja.com

Oracleデータベースは次に何を作成しましたか?スキーマを作成しますか、それともテーブルスペースを作成しますか?

私はプログラマーで、ウィルソンと名付けたバレーボールを持って一人でDBA/Sysadminアイランドに放り込まれています。私はここで生き残るためにしています。

アプリケーション用のデータベースを作成することになっています。これが以前に実行されるサーバーには、非常によく似たアプリのデータベースがありました。私はOracleについてよく知らないので、ZFSファイルシステムを再利用し、それらがどのように作成されたかを残しました(正直に言って、なぜそのように作成されたのかわかりませんでしたが、それは正当な理由によるものだと確信しています) 。

app/oradata_smart_ora1    858M  12.2G   858M  /oradata/SMART/ora1
app/oradata_smart_ora2   7.18M  18.0G  7.18M  /oradata/SMART/ora2
app/oradata_smart_ora3   7.18M  36.0G  7.18M  /oradata/SMART/ora3
app/oradata_smart_ora4   60.6K   400G  60.6K  /oradata/SMART/ora4
app/oradata_smart_redo1   400M  2.61G   400M  /oradata/SMART/redo1
app/oradata_smart_redo2   200M  2.80G   200M  /oradata/SMART/redo2
app/oradata_smart_redo3   200M  2.80G   200M  /oradata/SMART/redo3

ファイルシステムを再利用したので、データベースを作成し、古いデータベースファイルと同じ場所(/ oradata/SMART/ora1、/ oradata/SMART/ora2、/ oradata/SMART/ora3)に制御ファイルを配置しました。 MySQLが機能するように思えて、私はapp/oradata_smart_ora4 60.6K 400G 60.6K /oradata/SMART/ora4特にデータベースをそこに格納します。

データベースは問題なく起動およびマウントされます。今私が行き詰まっているところです。私は thisthisthisthisthis などを読みましたより多くは、私はまだ疑問を持っています。

このサーバーは、その存続期間を通じて数百万/数十億のレコードを管理します。

  1. データベースが作成されたので、次のステップは?スキーマまたはテーブルスペースを作成しますか?
  2. テーブルスペースの質問:テーブルスペースのデータファイルは、テーブルの実際のデータが保存される場所ですか?いくつ必要ですか?デフォルトか一時的か?どれくらいのスペースが必要ですか?自動拡張?

私はこれらすべての質問に本当に申し訳ありませんが、Oracleのベストプラクティスに従って正しく実行したいのです。回答についてさらに情報が必要な場合はお知らせください。

2
Rhyuk

オラクルの概要を理解するための1つの場所を逃しました: コンセプトガイド 。それはすべての主要なトピックをカバーしています(バックアップとリカバリを含みます。これは非常に重要であり、あなたが投稿したリンクのリストには表示されません)。

次のステップは?スキーマまたはテーブルスペースを作成しますか?

両方とも!それらは直交しています。ユーザーは、データベースにアクセスする論理エンティティです。テーブルスペースはストレージの概念です。ユーザーは複数のテーブルスペースにアクセスでき、テーブルスペースは複数のスキーマからのデータを格納できます。両方が必要であり、作成するユーザーに適切なテーブルスペースへのアクセスを許可する必要があります。 (ユーザーとスキーマの違いについては、たとえば ここ を参照してください。)

テーブルスペースデータファイルは、テーブルからの実際のデータが格納される場所ですか?

はい、データベースのすべてのデータとインデックスはテーブルスペースに保存されます。主なストレージ構造は次のとおりです。

  • 通常の表領域には、通常の永続的なデータが格納されます。これは、データベースの最大の部分、つまりスペース使用量です。
  • 一時テーブルスペースには、非永続データ-セッションまたはトランザクションの最後にパージされるグローバル一時テーブル、ディスク上のソートなどの一時ストレージが格納されます。
  • Undo tablespace(s)and redo log files:これは、OracleがACID保証を提供するために使用するものです。
  • 制御ファイル:データベースを記述します(名前、ファイル、ログシーケンス、チェックポイント情報、さらにはバックアップ情報)。

(システムテーブルスペースは通常のテーブルスペースですが、何も格納しないでください。通常の使用ではOracleの内部およびオフリミットと見なしてください。)

さらに、 redoログファイル を十分に注意する必要があります。「データベースリカバリの最も重要な構造」です。それらは「ホット」(大量の書き込み)であり、独自のディスク/ LUN上にある必要があります。

[テーブルスペース/データファイル]はいくつ必要ですか?

あなたが必要なだけ。ここには一般的なルールはありません。データファイルの数は、格納する必要のあるデータの量、オペレーティングシステムの制限、Oracleデータファイルのサイズ制限、ストレージ(ハードディスク/ボリューム)の制約、バックアップ/リカバリの考慮事項(たとえば、巨大なBigfileデータファイルが1つしかない場合、最高のアイデア)、...

テーブルスペースをどのように構成するかはあなた次第です。テーブルスペース内の「アプリケーション」ごとにテーブルスペースを用意することは、開始するための優れたアプローチです。必要に応じて、後からいつでも追加のテーブルスペースを作成できます(ただし、オブジェクトをあるテーブルスペースから別のテーブルスペースに移動するには時間がかかり、ダウンタイムまたはかなり複雑な操作が必要になる場合があることに注意してください)。

デフォルトか一時的か?

両方とも!データを永続的に保存するためのスペースが必要です。また、データベースの操作のために一時的なストレージもいくらか必要です。

どれくらいのスペースが必要ですか?

数メガバイトから数テラバイトの間のどこでも–あなただけがここで知ることができます。テーブルに必要なスペースを見積もるには、同じ構造のテーブルを作成し、いくつかのサンプルデータ(多かれ少なかれ統計的に表に格納するものを表す必要があります)を入力して、スペース使用量を測定します。次に外挿します。必要なスペース(およびマテリアライズドビュー)を含めることを忘れないでください!

自動拡張?

はい、自動拡張機能を使用しますが、制限を設定します。おそらく、ファイルシステムで実際に使用可能なスペースを超えて自動拡張をOracleに試行させないでください。スペースの使用状況を監視します。 (データファイルの拡張には比較的コストがかかることに注意してください。自動拡張のサイズを小さくしすぎないでください。)

特にZFSの場合、Oracleはあなたが興味を持つかもしれないホワイトペーパーを持っています: Oracleデータベース用のZFSの構成 (270k PDF)。

6
Mat