atsukanrockのブログ

Microsoft系技術を中心にぼちぼち更新します

読書メモ『プロとしてのOracleアーキテクチャ入門 Oracle現場主義』

プロとしてのOracleアーキテクチャ入門 Oracle現場主義

プロとしてのOracleアーキテクチャ入門 Oracle現場主義

の読書メモを記す。随時追記する。

アラートログ

アラートログは、データベース運用中に発生した重要なエラーや、起動・終了などの管理操作に関する重要な情報が出力される、テキスト形式のログファイルです。Oracleにトラブルが発生した場合は、まずアラートログを確認します。

とのこと。Oracleを起動・終了する度、このファイルにログが出力されている。

出力先は以下のとおり。

Oracleバージョン 出力先
9i、10g 初期化パラメータBACKGROUND_DUMP_DESTに指定したディレクト
11g ADR_HOME配下のtraceディレクトリ。「ADR_HOME」はV$DIAG_INFOビューで確認できる

リカバリ

リカバリ処理には以下の3種類ある。本書ではその具体的な手順は述べられていないが、とりあえずことばだけでも覚えておこう。

名称 説明
トランザクションリカバリ ロールバックのこと
クラッシュリカバリ インスタンス障害(サーバプロセス強制終了など)後の起動時に、SMONにより自動的に実行される。
ロールバック*1とロールフォワード*2が行われる
メディアリカバリ データファイル破損時などに手動で行う。
以下のとおりである必要がある。
  • データファイルなどのバックアップを取得している
  • アーカイブログモードでの運用である
バックアップ済のデータファイルを戻し(リストア)、アーカイブログファイル、REDOログファイルでロールフォワードする

Net Services

Oracle Net Servicesは、Oracleをネットワーク環境で使用するために必要な製品群をまとめた総称で、Oracle NetやOracle Net Listener(リスナー)、Net Configuration Assistant、Net Managerなどで構成されます。

インスタンスへの接続方法
  • ローカル接続
  • リモート接続

の2つの方法がある。

ローカル接続

インスタンスが稼働するマシン(データベースサーバー)上のクライアントアプリケーションから、インスタンスにアクセスする場合にのみ使用できる接続方法です。

  1. クライアントを実行する前に、環境変数ORACLE_SIDを設定しておく必要がある
  2. ローカル接続のみを利用するのであれば、Oracle Net Servicesは不要
リモート接続
  1. 「クライアント/サーバー接続」とも呼ばれる
  2. Oracle Net Servicesのうち、「Oracle Net」という製品を使う
  3. サーバ、クライアントの両方に「Oracle Net」のインストールが必要
Oracle Client
  1. Oracleに接続するクライアントマシンには、インストールが必要*3
  2. Oracle JDBC Thinドライバは、Oracle Netを介さずOracleと通信可能
Oracle Net Servicesの構成

以下の設定ファイルで構成する。

ファイル名 配置先 説明
listener.ora サーバ リスナー設定
tnsnames.ora クライアント、サーバ*4 ネットサービス名と接続記述子の対応付け
sqlnet.ora サーバ、クライアント Oracle Netの各種設定(EZCONNECTを有効にする設定もこのファイル)

ちなみに、これらのファイルは/network/admin/以外のディレクトリにも配置できるそうだ。そのうえ、/network/admin/より他のディレクトリが優先して読み込まれるらしい。あまり知られていない事実*5だと思うので、使わない方が良いだろう。

*1:トランザクション中にデータベースバッファキャッシュがいっぱいになると、コミットしていなくてもデータファイルに変更が書き込まれるため、必要になることがある

*2:REDOログファイルを基にした、コミット済トランザクションの適用

*3:Oracle JDBC Thinドライバは例外的に不要

*4:サーバ上でリモート接続する場合

*5:私も知らなかった