TOP > 制御ファイルのメンテナンス

制御ファイルのメンテナンス


  1. 制御ファイルとは
  2. 制御ファイルのガイドライン
  3. 【参考】制御ファイルの作成
  4. 【参考】SQL*Loaderの制御ファイル


制御ファイルとは

全てのOracleデータベースは、制御ファイルを持っている。
制御ファイルはデータベースの物理構造を記録するようなもので、次のような内容が含まれている。

Oracleデータベースの制御ファイルはデータベースと共に作成される。
デフォルトでは、制御ファイルのコピーーは、データベースの作成時に少なくとも1つ作成されることになっている。
データベース作成時に、制御ファイルのコピーを2つ以上作成することをお薦めする。
その後も、制御ファイルを失ったり、制御ファイル内の設定を変更したりする場合には、制御ファイルを作成する必要がある。


制御ファイルのガイドライン

  1. 制御ファイルの命名
  2. 異なるディスク上での制御ファイルの多重化
  3. 制御ファイルの適切な配置
  4. 制御ファイルのサイズ管理

1.制御ファイルの命名

2.異なるディスク上での制御ファイルの多重化

3.制御ファイルの適切な配置

4.制御ファイルのサイズ管理


制御ファイルの作成

CREATE CONTROLFILE文を使用して、データベースの新しい制御ファイルを作成することができる。
新しい制御ファイルの作成は、次のような場合に必要となる。

  1. データベースの制御ファイルが全て破損し、制御ファイルのバックアップがない場合
  2. データベースの名前、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXDATAFILES、MAXINSTANCESなど、
    CREATE DATABASE文で最初に指定された永続的なデータベース設定の1つを変更する場合

CREATE CONTROLFILEの例
CREATE CONTROLFILE REUSE
DATABASE orders_2
LOGFILE GROUP 1 ('diskb:log1.log', 'diskc:log1.log') SIZE 50K,
GROUP 2 ('diskb:log2.log', 'diskc:log2.log') SIZE 50K
NORESETLOGS
DATAFILE 'diska:dbone.dat' SIZE 2M
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG;

警告:CREATE CONTROLFILE文は、指定したデータ・ファイルとオンラインREDOログ・ファイルに 損傷を与える可能性がある。
ファイル名を指定しないと、そのファイル内のデータが失われたり、データベース全体に アクセス出来なくなることがある。
よって、CREATE CONTROLFILE文を使用する時は、以下の手順に従うこと。

  • 新しい制御ファイルを作成する簡単な手順
    1. データベースのデータ・ファイルとオンラインREDOログ・ファイルの全てのリストを作成する。

      データベース・バックアップの推奨事項に従っていれば、現在のデータベース構造を反映する
      データ・ファイルとオンラインREDOログ・ファイルのリストが既にあるはずである。

    2. データベースを停止する。

    3. データベースのデータファイルとオンラインREDOログ・ファイル全てのバックアップを作成する。

    4. 新しいインスタンスを起動する。ただし、データベースのマウントとオープンは行わない。

    5. CREATE CONTROLFILE文を使用して、データベースの新しい制御ファイルを作成する。

    6. 新しい制御ファイルのバックアップをオフラインの記憶デバイスに格納する。

    7. データベースの初期化パラメータ・ファイルを編集する。

      データベースの初期化パラメータ・ファイルを編集して、ステップ5とステップ6で作成した制御ファイル全て
      (バックアップの制御ファイルを除く)を、CONTROL_FILESパラメータに指定すること。
      データベースを改名する場合は、DB_NAMEパラメータを編集して新しい名前を指定する。

    8. 必要に応じて、データベースをリカバリさせる。データベース・リカバリを行わない場合は、ステップ9にスキップする。

    9. データベースをオープンする。

  • SQL*Loaderの制御ファイル

    1. SQL*Loaderの概要
    2. SQL*Loaderの制御ファイル
    3. SQL*Loaderへの入力データおよびデータファイル
    4. BEGINDATA による制御ファイルのデータの識別と、INFILE データファイルの指定

    1.SQL*Loaderの概要

    2.SQL*Loaderの制御ファイル

    3.SQL*Loaderへの入力データおよびデータファイル

    4.BEGINDATA による制御ファイルのデータの識別と、INFILE データファイルの指定


    TOP > 制御ファイルのメンテナンス
    2001/09/21 担当:A.M