Oracleデータベースの仕組みを簡単に説明します

せっかく勉強するので、重要そうな部分を記録しておきます。
データベース稼働中にOracleデータベースが常にアクセスしているファイル

  • 制御ファイル
  • REDOログファイル
  • データファイル

です。
アーカイブREDOログファイルはREDOログの退避時にのみアクセスします。

制御ファイルとは何か

  • 制御ファイルの配置先はCONTROL_FILES初期化パラメータで指定します。
  • 制御ファイルは多重化することができます。
  • 制御ファイルに障害が発生すると、データベースは停止します。
  • 制御ファイルにはデータベースの物理的な構成要素を格納します。

データベースの設定値を保存するのは初期化パラメータファイルです。

制御ファイルに格納されている情報

  • データベース名
  • データファイルとREDOログファイルの名前と記録位置
  • データベース作成時のタイムスタンプ
  • アクティブなREDOログファイルのログ順序番号
  • チェックポイントに関する情報

2018年10月16日の記録

今日は株価が反転しました。新しい記事をつくるのもどうかと思うので、ここに記載しておきます。つみたてNISAのボーナス積み立て日の設定があったのですが、ちょうど株価が下落したタイミングで積み立てをすることができたようです。ボーナス月は実際のボーナス月とは関係なく、適当な月に設定できるので、つみたてNISAといっても、ある程度はタイミングを見計らった投資をすることができます。そのようなノウハウは意外とNISA関連書籍にも書いてないものなので、ぜひとも書いておきたいなと思った次第です。さて、本編に戻りましょう。

Oracle Netはデータベースのインストール時に自動で構成されます。
Oracle Netは異なるネットワーク間の通信を提供するものです。

クライアント・サーバー形式でOracleデータベースを使用する場合
クライアントとサーバーの両方にOracle Netを構成する必要があります。

Webアプリケーションサーバーを経由してOracleを使用する場合
この場合、アプリケーションサーバーとデータベースサーバーにOracle Netを構成する必要があります。ただし、クライアント側にはOracle Netを構成する必要はありません。なぜなら、クライアントはブラウザからアプリケーションサーバーに通信するだけであり、Oracleとは直接データのやりとりを行わないからです。

利用者からデータベースに接続できないと連絡があった。データベースサーバー上からSQL*Plusで確認したところ、接続することができた。クライアントから接続できない原因は何か。
普通に考えたらネットワーク障害のような気がしますね。でも、そんな選択肢はありません。

  • クライアントにCONNECTロールを付与していない。
  • リスナー・プロセスが起動していない。

が正解選択肢です。
不正解とされる選択肢は

  • インスタンスが起動していない。→ データベースに接続できない。
  • ユーザープロセスが起動していない。→ SQL*Plus自体は起動している。
  • サーバープロセスが起動していない。→ データベースに接続できない。

なにか微妙な感じです。ここで大事なのは、サーバー上から自分自身には接続できるということですね。これで、データベース自体は正常に動作しているということがわかるのです。

まとめ

このあたりで、Oracleの講義を終わります。

システム開発

Posted by @erestage