1 Oracle Databaseの管理

この章では、UNIXベースのオペレーティング・システムでOracle Databaseを管理する方法について説明します。内容は次のとおりです。

関連項目:

1.1 概要

Oracle Databaseを使用するには、Oracle Databaseの環境変数、パラメータおよびユーザー設定を設定する必要があります。この章では、Oracle Databaseの各種設定について説明します。

Oracle Databaseのファイルおよびプログラムでは、疑問符(?)は環境変数ORACLE_HOMEの値を表します。たとえば、Oracle Databaseでは、次のSQL文中の疑問符は、Oracleホーム・ディレクトリのフルパス名に展開されます。

SQL> ALTER TABLESPACE TEMP ADD DATAFILE '?/dbs/temp02.dbf' SIZE 200M

同様に、アットマーク(@)記号は環境変数ORACLE_SIDを表します。たとえば、ファイルが現行のインスタンスに属していることを示す場合は、次のコマンドを実行します。

SQL> ALTER TABLESPACE tablespace_name ADD DATAFILE tempfile@.dbf

1.2 環境変数

この項では、通常使用されるOracle Databaseおよびオペレーティング・システムの環境変数について説明します。Oracle Databaseをインストールする前に、いくつかの環境変数を定義する必要があります。このセクションでは、次のトピックについて説明します。

環境変数の現在の設定値を表示するには、envコマンドを使用します。たとえば、環境変数ORACLE_SIDの値を表示するには、次のコマンドを実行します。

$ env | grep ORACLE_SID

すべての環境変数の現在の設定値を表示するには、envコマンドを次のように実行します。

$ env | more

1.2.1 Oracle Databaseの環境変数

次の表は、Oracle Databaseで使用する一部の環境変数を示します。

表1-1 Oracle Databaseの環境変数

変数 定義

NLS_LANG

機能: クライアント環境の言語、地域およびキャラクタ・セットを指定します。NLS_LANGで指定するクライアント・キャラクタ・セットは、端末または端末エミュレータのキャラクタ・セットと一致している必要があります。必要に応じて、非対話型バッチ・プログラムを起動する前にNLS_LANGを一時的にリセットして別のキャラクタ・セットに変更し、そのプログラムで処理されるファイルおよびスクリプトのキャラクタ・セットに一致させることができます。NLS_LANGで指定されたキャラクタ・セットがデータベースのキャラクタ・セットと異なる場合、そのキャラクタ・セットは自動的に変換されます。

この変数のパラメータ・リストの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

構文: language_territory.characterset

例: french_france.we8iso8859p15

ORA_NLS10

機能: 言語、地域、キャラクタ・セットおよび言語の定義ファイルが保存されているディレクトリを指定します。

構文: directory_path

例: $ORACLE_HOME/nls/data

ORA_TZFILE

機能: タイム・ゾーン・ファイルのフルパスおよびファイル名を指定します。Oracle Database Serverでは、常に大規模タイム・ゾーン・ファイル($ORACLE_HOME/oracore/zoneinfo/timezlrg_number.dat)が使用されます。クライアント側で小規模タイム・ゾーン・ファイルを使用する場合、この環境変数を小規模タイム・ゾーン・ファイルのフルパス($ORACLE_HOME/oracore/zoneinfo/timezone_number.dat)に設定する必要があります。クライアント側で小規模タイム・ゾーン・ファイルを使用する場合、アクセスするデータベースでは、必ず小規模タイム・ゾーン・ファイルで認識されるタイム・ゾーン・リージョンのみにデータが含まれるようにする必要があります。

構文: directory_path

例: $ORACLE_HOME/oracore/zoneinfo/timezlrg_11.dat

ORACLE_BASE

機能: Optimal Flexible Architectureに準拠したインストールのOracleディレクトリ構造の基本となるディレクトリを指定します。

構文: directory_path

例: /u01/app/oracle

ORACLE_HOME

機能: Oracleソフトウェアが格納されているディレクトリを指定します。

構文: directory_path

例: $ORACLE_BASE/product/18.0.0/dbhome_1

ORACLE_PATH

機能: SQL*PlusなどのOracleアプリケーションが使用するファイルの検索パスを指定します。ファイルのフルパス名が指定されていない場合やファイルが現行のディレクトリにない場合、Oracleアプリケーションでは、ORACLE_PATHを使用してそのファイルの場所を特定します。

構文: ディレクトリをコロンで区切ったリスト:

directory1:directory2:directory3

例: /u01/app/oracle/product/18.0.0/dbhome_1/bin:

ORACLE_SID

機能: Oracleシステムの識別子を指定します。

構文: 英字で始まり、数字と英字で構成される文字列を指定します。システム識別子は、8文字以内で指定することをお薦めします。この環境変数の詳細は、『Oracle Databaseインストレーション・ガイド』を参照してください。

例: SAL1

ORACLE_TRACE

機能: インストール時のシェル・スクリプトのトレースを有効にします。この環境変数をTに設定した場合は、ほとんどのOracleシェル・スクリプトでset -xコマンドが使用されます。これによって、シェル・スクリプトの実行時にコマンドとそれらの引数が印刷されます。他の値を設定した場合、または値を設定しない場合、そのスクリプトでは、set -xコマンドが使用されません。

構文: TまたはT以外

例: T

ORAENV_ASK

機能: oraenvまたはcoraenvスクリプトで、環境変数ORACLE_SIDの値を入力するためのプロンプトを表示するかどうかを制御します。NOに設定した場合、環境変数ORACLE_SIDの値を入力するためのプロンプトは表示されません。他の値に設定した場合、または値を設定しない場合、スクリプトによって環境変数ORACLE_SIDの値を入力するためのプロンプトが表示されます。

構文: NOまたはNO以外

例: NO

SQLPATH

機能: SQL*Plusでのlogin.sqlファイルの検索先ディレクトリまたはディレクトリのリストを指定します。

構文: ディレクトリをコロンで区切ったリスト: directory1:directory2:directory3

例: /home:/home/oracle:/u01/oracle

TNS_ADMIN

機能: Oracle Net Services構成ファイルが格納されているディレクトリを指定します。

構文: directory_path

例: $ORACLE_HOME/network/admin

TWO_TASK

機能: 接続文字列に使用するデフォルトの接続識別子を指定します。この環境変数が設定されている場合は、接続文字列に接続識別子を指定しないでください。たとえば、環境変数TWO_TASKsalesに設定されている場合、次のコマンドを使用してデータベースに接続できます。

SQL> CONNECT username
Enter password: password

構文: 任意の接続識別子

値の範囲: ネーミング・メソッドを使用して解決できる有効な接続識別子(tnsnames.oraファイルやディレクトリ・サーバーなど)

例: PRODDB_TCP

NLS_OS_CHARSET

機能: ファイル名およびユーザー名がオペレーティング・システムによりエンコードされるUNIXロケールのキャラクタ・セットに対応するOracleキャラクタ・セット名を指定します。UNIXロケール・キャラクタ・セットとOracleクライアントのキャラクタ・セットが異なる場合、環境変数NLS_OS_CHARSETを設定する必要があります。たとえば、NLS_LANGがSQLスクリプトのエンコードで使用する特定のキャラクタ・セットに設定されて、そのスクリプトがSQL*Plusセッションで実行される場合、これらの2つのキャラクタ・セットは異なる場合があります。通常、Oracleクライアントのキャラクタ・セットおよびオペレーティング・システムのキャラクタ・セットは同一で、NLS_OS_CHARSETを設定しなくでください。

構文: characterset

例: WE8ISO8859P1

注意:

  • 競合を防ぐため、Oracle Databaseサーバーのプロセスと同じ名前の環境変数を定義しないでください。たとえば、ARCHPMONおよびDBWRなどです。

  • Oracleインストール所有者(oracleユーザー)の環境変数が未設定の場合、または設定したパスが正しくない場合、Oracle Databaseの起動時に次のような未定義のエラーが発生することがあります。データベースを起動する前に、すべての環境変数が正しく設定されていることを確認します。詳細は、My Oracle Supportノート373303.1を参照してください。

    https://support.oracle.com/epmos/faces/DocumentDisplay?id=373303.1

注意:

My Oracle Supportノート373303.1で提案されている変更を実装する前に、Oracle Supportに連絡する必要があります。

1.2.2 LinuxおよびUNIXの環境変数

Oracle Databaseでは、オペレーティング・システムの環境変数を使用して、システム・リソースとソフトウェアの場所を定義します。

表1-2 Oracle Databaseで使用する環境変数

変数 定義

ADA_PATH (IBM AIX on POWER Systems (64-Bit)のみ)

機能: Adaコンパイラが格納されているディレクトリを指定します

構文: directory_path

例: /usr/lpp/powerada

CLASSPATH

機能: Javaアプリケーションで使用します。この環境変数に必要な設定は、Javaアプリケーションによって異なります。詳細は、Javaアプリケーション製品のドキュメントを参照してください。

構文: ディレクトリまたはファイルをコロンで区切ったリスト: directory1:directory2:file1:file1

例: デフォルトの設定はありません。CLASSPATHには、次のディレクトリが含まれている必要があります。

$ORACLE_HOME/jdk/jre/lib:$ORACLE_HOME/jlib

DISPLAY

機能 :Xベースのツールで使用します。入出力に使用するディスプレイ・デバイスを指定します。詳細は、使用しているX Window Systemのドキュメントを参照してください。

構文: hostname:server[.screen]

hostnameはシステム名(IPアドレスまたは別名)、serverはサーバーの順次コード番号、screenは画面の順次コード番号です。使用するモニターが1つの場合は、サーバーと画面のどちらにも値0を使用します(0.0)。

注意: 使用するモニターが1つの場合、screenはオプションです。

例:
192.0.2.1:0.0
password:0

HOME

機能: ユーザーのホーム・ディレクトリを指定します。

構文: directory_path

例: /home/example_home

LANGまたはLC_ALL

機能: メッセージなどの出力でオペレーティング・システムが使用する言語およびキャラクタ・セットを指定します。また、Oracle Universal Installer、Oracle Database Configuration AssistantなどのJavaでプログラムされているOracleツールでは、ユーザー・インタフェースの言語を判別するためにこの変数を使用することがあります。詳細は、オペレーティング・システムのドキュメントを参照してください。

LD_OPTIONS

機能: デフォルトのリンカー・オプションを指定します。この環境変数の詳細は、ldのmanページを参照してください。

LPDEST (Oracle Solarisのみ)

機能: デフォルトのプリンタの名前を指定します。

構文: string

例: docprinter

LD_LIBRARY_PATH

機能: UNIXおよびLinux上のライブラリの検索に使用するパスを指定する環境変数。環境変数の名前は、LIBPATH(IBM AIX on POWER Systems (64-Bit)の場合)、SHLIB_PATH(HP-UXの場合)など、オペレーティング・システムにより異なる場合があります。

構文: ディレクトリをコロンで区切ったリスト: directory1:directory2:directory3

例: /usr/dt/lib:$ORACLE_HOME/lib

PATH

機能: シェルで、実行可能プログラムの場所を特定するために使用されます。$ORACLE_HOME/binディレクトリが含まれている必要があります。

構文: ディレクトリをコロンで区切ったリスト: directory1:directory2:directory3

例: /bin:/usr/bin:/usr/local/bin:/usr/bin/X11:$ORACLE_HOME/bin:$HOME/bin:

PRINTER

機能: デフォルトのプリンタの名前を指定します。

構文: string

例: docprinter

TEMPTMPおよびTMPDIR

機能: 一時ファイル用のデフォルト・ディレクトリを指定します。設定されている場合、一時ファイルを作成するツールが次のいずれかのディレクトリに作成します。

構文: directory_path

例: /u02/oracle/tmp

USER (HP-UX Itaniumシステムで接続にSSHを使用する場合)

機能: ログインするユーザーの名前を指定します。

構文: string

例: oracle

1.2.3 共通の環境設定

この項では、デフォルト・シェルに応じてoraenvまたはcoraenvスクリプトを使用し、共通のオペレーティング・システム環境を設定する方法について説明します。

  • Bourne、BashまたはKornシェルの場合は、oraenvコマンドを使用します。

  • Cシェルの場合は、coraenvコマンドを使用します。

oraenvおよびcoraenvスクリプト・ファイル

oraenvおよびcoraenvスクリプトはインストール中に作成されます。これらのスクリプトは、oratabファイルの内容に基づいて環境変数を設定し、次の機能を提供します。

  • データベースの変更をすべてのユーザー・アカウントに反映して更新するための主な方法

  • oratabファイルに指定されているデータベース間で切替えを行うためのメカニズム

開発システムからデータベースに対して頻繁に追加や削除を行ったり、同一システム上にインストールされた複数の異なるOracle Database間でユーザーが切替えを行う場合があります。oraenvまたはcoraenvスクリプトを使用すると、ユーザー・アカウントが更新されていることを確認し、データベース間で切替えを行うことができます。

注意:

oraenvまたはcoraenvスクリプトは、Oracleソフトウェア所有者(通常はoracle)ユーザーのシェル起動スクリプトからはコールしないでください。これらのスクリプトでは値の入力を促すプロンプトが表示されるため、システムの起動時にdbstartスクリプトが自動的にデータベースを起動できなくなります。

oraenvまたはcoraenvスクリプトは通常、ユーザーのシェル起動ファイル(.profileまたは.loginなど)からコールされます。これは、環境変数ORACLE_SIDおよびORACLE_HOMEを設定し、$ORACLE_HOME/binディレクトリを環境変数PATHの設定に含めます。データベース間で切替えを行う場合に、oraenvまたはcoraenvスクリプトを実行して、これらの環境変数を設定できます。

注意:

これらのスクリプトのいずれかを実行するには、適切なコマンドを使用します。

  • coraenvスクリプトの場合:

    % source /usr/local/bin/coraenv
    
  • oraenvスクリプトの場合:

    $ . /usr/local/bin/oraenv

ローカルbinディレクトリ

oraenvcoraenvおよびdbhomeスクリプトを含むディレクトリは、ローカルbinディレクトリと呼ばれます。すべてのデータベース・ユーザーは、このディレクトリへの読取りアクセス権が必要です。ローカルbinディレクトリのパスをユーザーの環境変数PATHの設定に追加してください。インストール後にroot.shスクリプトを実行すると、ローカルbinディレクトリのパスを要求するプロンプトが表示されます。指定したディレクトリに、oraenvcoraenvおよびdbhomeスクリプトが自動的にコピーされます。デフォルトのローカルbinディレクトリは、/usr/local/binです。root.shスクリプトを実行しない場合は、手動でoraenvまたはcoraenvスクリプトとdbhomeスクリプトを、$ORACLE_HOME/binディレクトリからローカルbinディレクトリにコピーできます。

1.2.4 システム・タイム・ゾーンの設定

環境変数TZは、タイム・ゾーンを設定します。これによって、時間を夏時間に変更したり、別のタイム・ゾーンにすることができます。

関連項目:

1.3 初期化パラメータ

これらの各項では、Oracle Database初期化パラメータについて説明します。

トピック:

1.3.1 ASM_DISKSTRING初期化パラメータ,

注意:

ASM_DISKSTRING初期化パラメータをサポートしているのは、自動ストレージ管理インスタンスのみです。

ASM_DISKSTRING初期化パラメータに値を割り当てるための構文は、次のとおりです。

ASM_DISKSTRING = 'path1'[,'path2', . . .]

この構文のpathnは、RAWデバイスへのパスです。パスを指定する際は、ワイルドカード文字を使用できます。

表1-3に、ASM_DISKSTRING初期化パラメータに対するプラットフォーム固有のデフォルト値を示します。

表1-3 ASM_DISKSTRING初期化パラメータのデフォルト値

プラットフォーム デフォルト検索文字列

Oracle Solaris

/dev/rdsk/*

Linux

/dev/sd*

IBM AIX on POWER Systems (64ビット)

/dev/rhdisk*

HP-UX

/dev/rdisk*

1.3.2 DISK_ASYNCH_IO初期化パラメータ(HP-UX)

DISK_ASYNCH_IO初期化パラメータは、データベース・ファイルがRAWディスクとファイル・システムのどちらに置かれるかを決定します。非同期I/Oは、データベース・ファイルの記憶域オプションとしてRAWパーティションを使用する自動ストレージ管理ディスク・グループでのみ使用できます。DISK_ASYNCH_IOパラメータには、ファイルが存在する場所に応じてTRUEまたはFALSEを設定できます。デフォルトでは、この値はTRUEに設定されます。

注意:

DISK_ASYNCH_IOパラメータは、データベース・ファイルがファイル・システム上に置かれる場合、FALSEに設定する必要があります。このパラメータをTRUEに設定する必要があるのは、データベース・ファイルがRAWパーティション上に置かれる場合のみです。

1.3.3 PROCESSOR_GROUP_NAME初期化パラメータ

PROCESSOR_GROUP_NAMEは、インスタンスが稼働しているプロセッサ・グループの名前を指定します。このパラメータは、指定されたオペレーティング・システム・プロセッサ・グループのプロセッサでのみ稼働するよう、Oracle Databasesに対して指示します。NUMAシステムの場合、システム・グローバル領域(SGA)およびプログラム・グローバル領域(PGA)はすべて、このプロセッサ・グループのCPUに関連付けられたNUMAノードから割り当てられます。

PROCESSOR_GROUP_NAMEパラメータはLinux x86-64およびOracle Solaris 11 SRU 4以上でのみサポートされています。

Linux x86-64では、制御グループ(cgroups)と呼ばれるLinuxの機能によってCPUの名前付きサブセットが作成されます。cgroupsはLinuxカーネル・バージョン2.6.24で導入されます。これは、グループの名前と1つのCPUセットを指定して作成します。プロセスがcgroupにマップされると、そのcgroupに関連付けられたCPUのみが使用されます。

Oracle Solaris 11 SRU 4では、リソース・プールと呼ばれる機能を使用してCPUの名前付きサブセットが作成されます。各リソース・プールは名前と1つのCPUセットで構成されます。プロセスがリソース・プールにマップされると、そのリソース・プールに関連付けられたCPUが使用されます。

注意:

PROCESSOR_GROUP_NAMEパラメータは、専用の接続ブローカを使用するデータベースに対してのみ設定することをお薦めします。専用接続ブローカの構成には、USE_DEDICATED_BROKER初期化パラメータを使用します。

1.3.4 診断データの管理

診断データにはトレース・ファイル、ダンプおよびコア・ファイルがあり、問題を短時間で効率的に解決できます。