ヘッダーをスキップ

Oracle Database 管理者ガイド
10gリリース2(10.2)

B19224-02
目次
目次
索引
索引

戻る 次へ

2 Oracle Databaseの作成

この章では、Oracle Databaseの作成プロセスについて説明します。この章の内容は、次のとおりです。

Oracle Databaseの作成方法の決定

Oracle Databaseは、次の3通りの方法で作成できます。

次の項では、データベースを手動で作成する方法について説明します。

Oracle Databaseの手動作成

この項では、データベースの計画段階と実際の作成について説明します。

データベースを作成する前の考慮点

データベースの作成では、いくつかのオペレーティング・システム・ファイルを準備することで、それらのファイルをOracle Databaseとしてまとめて動作できるようにします。データベースは、データ・ファイルの数やアクセスするインスタンスの数にかかわらず、一度のみ作成します。データベースの作成では、既存のデータベース内の情報を消去し、同じ名前と物理構造を持つ新規データベースを作成することもできます。

この項の内容は、次のとおりです。

データベース作成計画

データベースの作成を準備するには、調査と綿密な計画が必要です。表2-1に、推奨する処理を示します。

表 2-1    データベース計画タスク 

処理  追加情報 

データベース表と索引を計画し、それらが必要とする領域を見積ります。  

第II部「Oracle Databaseの構造と記憶域」

第IV部「スキーマ・オブジェクト」 

データベースを構成する基礎となるオペレーティング・システム・ファイルのレイアウトを計画します。ファイルを適切に分散すると、ファイル・アクセス時のI/Oが分散されるため、データベースのパフォーマンスを大幅に向上できます。Oracleソフトウェアをインストールしてデータベースを作成するときにI/Oを分散させるには、いくつかの方法があります。たとえば、REDOログ・ファイルを異なるディスクに配置したり、ストライプ化を使用できます。競合が少なくなるようにデータ・ファイルを配置できます。また、データの密度(データ・ブロック当たりの行数)を制御できます。 

『Oracle Databaseパフォーマンス・チューニング・ガイド』

オペレーティング・システム固有のOracleマニュアル 

データベース記憶域を構成するオペレーティング・システム・ファイルの作成および管理に、Oracle Managed Filesおよび自動ストレージ管理の使用を検討します。  

第III部「自動ファイル管理および自動記憶域管理」 

グローバル・データベース名を選択します。グローバル・データベース名とは、ネットワーク構造内におけるデータベースの名前と位置です。グローバル・データベース名を作成するには、DB_NAMEDB_DOMAINの2つの初期化パラメータを設定します。 

「グローバル・データベース名の決定」 

初期化パラメータ・ファイルに含まれる初期化パラメータについて理解します。特にサーバー・パラメータ・ファイルの概要と操作について理解します。サーバー・パラメータ・ファイルを使用すると、初期化パラメータをサーバー側のディスク・ファイルに永続的に格納して管理できます。 

「初期化パラメータの理解」

「サーバー・パラメータ・ファイルの概要」

『Oracle Databaseリファレンス』 

データベース・キャラクタ・セットを選択します。

データ・ディクショナリ内のデータも含め、すべての文字データは、そのデータベースのキャラクタ・セットに格納されます。データベースの作成時には、データベース・キャラクタ・セットを指定する必要があります。

異なるキャラクタ・セットを使用したクライアントがデータベースにアクセスする場合は、クライアント・キャラクタ・セットをすべて含むスーパーセットを選択します。そうしないと、キャラクタの変換が必要な場合、オーバーヘッドが増大し、データが消失する危険性が大きくなります。

代替キャラクタ・セットを指定することもできます。

注意: AL32UTF8は、XMLTypeデータに適したOracle Databaseキャラクタ・セットです。これは、すべての有効なXMLキャラクタをサポートする、IANAに登録されているUTF-8エンコーディング規格に相当します。

Oracle Databaseデータベース・キャラクタ・セットUTF8(ハイフンなし)をデータベース・キャラクタ・セットAL32UTF8またはキャラクタ・エンコーディングUTF-8と混同しないでください。データベース・キャラクタ・セットUTF8は、AL32UTF8に置き換わっています。XMLデータにはUTF8を使用しないでください。UTF8は、Unicodeバージョン3.1以前のみをサポートしており、有効なXMLキャラクタをすべてサポートしているわけではありません。AL32UTF8にはこのような制限はありません。

XMLデータにデータベース・キャラクタ・セットUTF8を使用すると、致命的なエラーが発生したりセキュリティに悪影響を及ぼす可能性があります。データベース・キャラクタ・セットによってサポートされていない文字が入力ドキュメント要素名に含まれている場合、置換文字(通常は「?」)に置き換えられます。これにより、解析が終了して例外が発生します。 

『Oracle Databaseグローバリゼーション・サポート・ガイド』 

データベースでサポートする必要のあるタイムゾーンを検討します。

Oracle Databaseでは、2つのタイムゾーン・ファイルのいずれかが有効なタイムゾーンのソースとして使用されます。デフォルトのタイムゾーン・ファイルは、timezonelrg.datです。このファイルには、他のタイムゾーン・ファイルtimezone.datより多くのタイムゾーンが含まれます。 

「データベースのタイムゾーン・ファイルの指定」 

データベースの標準ブロック・サイズを選択します。このサイズはデータベースの作成時にDB_BLOCK_SIZE初期化パラメータによって指定しますが、データベースの作成後は変更できません。

標準ブロック・サイズは、SYSTEM表領域およびその他の大部分の表領域で使用されます。また、表領域の作成時に、最大4つの非標準ブロック・サイズを指定できます。  

「データベース・ブロック・サイズの指定」 

SYSAUX表領域の適切な初期サイズを決定します。 

「SYSAUX表領域の作成」 

SYSTEM以外のユーザーに対してはデフォルトの表領域を使用し、データベース・オブジェクトがSYSTEM表領域に誤って保存されないようにします。 

「デフォルト永続表領域の作成」 

UNDOデータを管理するために、UNDO表領域を使用します。 

第10章「UNDO表領域の管理」 

バックアップおよびリカバリ計画を作成し、データベースを障害から保護します。重要な点として、多重化による制御ファイルの保護、適切なバックアップ・モードの選択、およびオンラインREDOログとアーカイブREDOログの管理があげられます。  

第6章「REDOログの管理」

第7章「アーカイブREDOログの管理」

第5章「制御ファイルの管理」

『Oracle Databaseバックアップおよびリカバリ基礎』 

インスタンスの起動と停止、データベースのマウントとオープンの原理およびオプションについて理解します。 

第3章「起動と停止」 

作成の前提条件

新しいデータベースを作成するには、次の前提条件を満たす必要があります。

各前提条件については、オペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください。Oracle Universal Installerを使用すると、表示される手順に従ってインストールでき、環境変数、ディレクトリ構造および認可の設定に関するヘルプが表示されます。

データベースの作成

ここでは、データベースを手動で作成する際に必要な手順について説明します。これらの手順は、説明されている順序どおりに行う必要があります。前の項で説明した前提条件をすでに完了している必要があります。つまり、Oracleソフトウェアのインストール・プロセスの一部として、オペレーティング・システム固有の環境変数など、Oracle Databaseの作成環境をあらかじめ設定しておきます。

手順1: インスタンス識別子(SID)の決定

手順2: DBAの認証方式の設定

手順3: 初期化パラメータ・ファイルの作成

手順4: インスタンスへの接続

手順5: サーバー・パラメータ・ファイルの作成(推奨)

手順6: インスタンスの起動

手順7: CREATE DATABASE文の発行

手順8: 追加の表領域の作成

手順9: スクリプトの実行によるデータ・ディクショナリ・ビューの作成

手順10: スクリプトの実行による追加オプションのインストール(オプション)

手順11: データベースのバックアップ

各手順に示されている例では、サンプル・データベースmynewdbを作成しています。


注意

  • この項の各手順には、このマニュアル内の他の部分および他のマニュアルへの相互参照が記載されています。これらの相互参照を使用すると、まだ十分に理解していない初期化パラメータやデータベース構造に関する知識の習得および理解に役立つ資料を参照できます。

  • Oracleの自動ストレージ管理を使用してディスク記憶域を管理している場合は、次の手順を実行する前に、ASMインスタンスを起動し、ディスク・グループを構成する必要があります。自動ストレージ管理の詳細は、第12章「自動ストレージ管理の使用」を参照してください。

 

手順1: インスタンス識別子(SID)の決定

インスタンスは、システム・グローバル領域(SGA)とOracle Databaseのバックグラウンド・プロセスで構成されます。インスタンスに対して一意のOracleシステム識別子(SID)を決定し、環境変数ORACLE_SIDに設定します。この識別子は、後で作成してシステムで同時に実行する他のOracle Databaseインスタンスと区別するために使用されます。

UNIXオペレーティング・システム用の次の例では、手順4: インスタンスへの接続で接続するインスタンスのSIDを設定しています。

% setenv ORACLE_SID mynewdb

手順2: DBAの認証方式の設定

データベースを作成するには、作成するユーザーが認証を受け、適切なシステム権限が付与されている必要があります。認証方式には、パスワード・ファイル方式またはオペレーティング・システム方式を使用できます。DBAの認証と認可については、このマニュアルの次の項を参照してください。

手順3: 初期化パラメータ・ファイルの作成

Oracleインスタンスが起動すると、初期化パラメータ・ファイルが読み込まれます。このファイルは、読取り専用テキスト・ファイルか、または読取り/書込みバイナリ・ファイルです。読取り専用テキスト・ファイルは、テキスト・エディタを使用して変更します。読取り/書込みバイナリ・ファイルは、データベースにより動的に変更されたり(チューニング目的)、発行したSQLコマンドにより変更されます。バイナリ・ファイル(推奨)は、サーバー・パラメータ・ファイルと呼ばれています。この手順では、テキスト形式の初期化パラメータ・ファイルを作成します。この後の手順で、テキスト・ファイルからサーバー・パラメータ・ファイルを作成することもできます。

テキスト形式の初期化パラメータ・ファイルを作成するには、配布媒体で提供されているサンプルの初期化パラメータ・ファイルのコピーまたはこのマニュアルのサンプルを編集します。


注意

Unixオペレーティング・システムの場合、Oracle Universal Installerにより、サンプルのテキスト形式の初期化パラメータ・ファイルが次の場所にインストールされます。

$ORACLE_HOME/dbs/init.ora
 

操作を容易にするために、デフォルトのファイル名を使用して、Oracle Databaseのデフォルトの場所に初期化パラメータ・ファイルを配置します。こうすることにより、Oracle Databaseが初期化パラメータ・ファイルのデフォルトの場所を自動的に参照するため、データベースの起動時にSTARTUPコマンドのPFILE句を指定する必要がなくなります。

初期化パラメータ・ファイルの名前、場所およびサンプルの内容、初期化パラメータの設定方法の詳細は、「初期化パラメータの理解」を参照してください。

手順4: インスタンスへの接続

SQL*Plusを起動して、AS SYSDBAとしてOracle Databaseインスタンスに接続します。

$ SQLPLUS /nolog
CONNECT SYS/password AS SYSDBA

手順5: サーバー・パラメータ・ファイルの作成(推奨)

サーバー・パラメータ・ファイルを作成することをお薦めします。サーバー・パラメータ・ファイルを使用すると、データベース・コマンドを使用して初期化パラメータを変更したり、停止と起動の後にも変更内容を保持することが可能になります。サーバー・パラメータ・ファイルは、編集したテキスト形式の初期化パラメータ・ファイルから作成します。 詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。

次のスクリプトは、テキスト初期化パラメータ・ファイルからサーバー・パラメータ・ファイルを作成し、デフォルトの場所に書き込みます。スクリプトは、SYSDBAとして接続した後、インスタンス起動の前後に実行できます。サーバー・パラメータ・ファイルを有効にするには、データベースを再起動する必要があります。

-- create the server parameter file 
CREATE SPFILE='/u01/oracle/dbs/spfilemynewdb.ora' FROM
       PFILE='/u01/oracle/admin/initmynewdb/scripts/init.ora';
SHUTDOWN 
-- the next startup will use the server parameter file
EXIT

手順6: インスタンスの起動

データベースをマウントせずにインスタンスを起動します。通常、この方法で起動するのはデータベースの作成時またはメンテナンス時のみです。STARTUPコマンドで、NOMOUNT句を指定します。この例では、サーバー・パラメータ・ファイルがデフォルトの場所に配置されているため、PFILE句の指定は不要です。

STARTUP NOMOUNT

この時点で、新しいデータベースの作成に備えて、SGAが作成され、バックグラウンド・プロセスが起動します。データベース自体はまだ存在しません。

関連項目

 

手順7: CREATE DATABASE文の発行

新しいデータベースを作成するには、CREATE DATABASE文を使用します。次の文では、データベースmynewdbを作成します。

CREATE DATABASE mynewdb
   USER SYS IDENTIFIED BY pz6r58
   USER SYSTEM IDENTIFIED BY y1tz5p
   LOGFILE GROUP 1 ('/u01/oracle/oradata/mynewdb/redo01.log') SIZE 100M,
           GROUP 2 ('/u01/oracle/oradata/mynewdb/redo02.log') SIZE 100M,
           GROUP 3 ('/u01/oracle/oradata/mynewdb/redo03.log') SIZE 100M
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXLOGHISTORY 1
   MAXDATAFILES 100
   MAXINSTANCES 1
   CHARACTER SET US7ASCII
   NATIONAL CHARACTER SET AL16UTF16
   DATAFILE '/u01/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE
   EXTENT MANAGEMENT LOCAL
   SYSAUX DATAFILE '/u01/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE tbs_1
   DEFAULT TEMPORARY TABLESPACE tempts1
      TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf' 
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs 
      DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

次の特性を持つデータベースが作成されます。

手順8: 追加の表領域の作成

データベースを稼働させるには、ユーザー用のファイルと表領域を追加作成する必要があります。次のサンプル・スクリプトは、追加の表領域を作成します。

CONNECT SYS/password AS SYSDBA
-- create a user tablespace to be assigned as the default tablespace for users
CREATE TABLESPACE users LOGGING 
     DATAFILE '/u01/oracle/oradata/mynewdb/users01.dbf' 
     SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;
-- create a tablespace for indexes, separate from user tablespace
CREATE TABLESPACE indx LOGGING 
     DATAFILE '/u01/oracle/oradata/mynewdb/indx01.dbf' 
     SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;

表領域の作成方法の詳細は、第8章「表領域の管理」を参照してください。

手順9: スクリプトの実行によるデータ・ディクショナリ・ビューの作成

ビュー、シノニムおよびPL/SQLパッケージの作成に必要なスクリプトを実行します。

CONNECT SYS/password AS SYSDBA
@/u01/oracle/rdbms/admin/catalog.sql
@/u01/oracle/rdbms/admin/catproc.sql
EXIT

次の表に、スクリプトの説明を示します。

スクリプト  説明 

CATALOG.SQL  

データ・ディクショナリ表のビュー、動的パフォーマンス・ビューおよび多くのビューに対するパブリック・シノニムを作成します。シノニムにPUBLICアクセスを付与します。  

CATPROC.SQL  

PL/SQLに必要なスクリプトやPL/SQLとともに使用されるスクリプトをすべて実行します。 

手順10: スクリプトの実行による追加オプションのインストール(オプション)

必要に応じて、他のスクリプトも実行できます。実行するスクリプトは、使用またはインストール対象として選択する機能とオプションによって異なります。 使用可能なスクリプトは、『Oracle Databaseリファレンス』を参照してください。

このデータベースとともに稼働する他のOracle製品をインストールする場合は、それらの製品のインストール指示を参照してください。製品によっては、追加のデータ・ディクショナリ表を作成する必要があります。通常は、これらの表を作成して、データベースのデータ・ディクショナリにロードするためのコマンド・ファイルが提供されます。

インストールを計画している製品のインストールと管理に関する指示は、製品固有のOracleマニュアルを参照してください。

手順11: データベースのバックアップ

メディア障害が発生した場合にリカバリするための完全なファイル・セットが確実に存在するように、データベースの全体バックアップを作成してください。データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。

CREATE DATABASE文の理解

CREATE DATABASE文を実行すると、Oracle Databaseは(最低限)いくつかの操作を実行します。実際の操作は、CREATE DATABASE文で指定した句、および初期化パラメータの設定に応じて実行されます。Oracle Databaseが最低限実行する操作は、次のとおりです。

この項では、CREATE DATABASE文の複数の句について説明します。 これには、「手順7: CREATE DATABASE文の発行」で説明した句と、その他の句が含まれます。ここで説明するCREATE DATABASEの句の多くは、データベースの作成と管理を簡素化するために使用できます。

この項の内容は、次のとおりです。

データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定

CREATE DATABASE文でユーザーSYSおよびSYSTEMのパスワード指定に使用する句は、次のとおりです。

これらの句を省略すると、これらのユーザーにはそれぞれデフォルトのパスワードchange_on_installおよびmanagerが割り当てられます。デフォルトのパスワードが使用された場合は、そのことを示すレコードがアラート・ログに書き込まれます。データベースを保護するには、データベース作成直後にALTER USER文を使用して、これらのパスワードを変更する必要があります。

これらの句は、このリリースのOracle Databaseではオプションですが、指定することをお薦めします。デフォルトのパスワードは一般に知られており、後で変更するのを怠ると、データベースを悪意のユーザーによる攻撃にさらすことになります。

関連項目

「セキュリティに関する考慮点」 

ローカル管理のSYSTEM表領域の作成

CREATE DATABASE文にEXTENT MANAGEMENT LOCAL句を指定し、ローカル管理のSYSTEM表領域を作成します。この文を正常に実行するには、COMPATIBLE初期化パラメータを9.2以上に設定する必要があります。EXTENT MANAGEMENT LOCAL句を指定しない場合は、デフォルトでディクショナリ管理のSYSTEM表領域が作成されます。ディクショナリ管理表領域は廃止されました。

ローカル管理のSYSTEM表領域は、デフォルトでAUTOALLOCATEが使用可能な状態で作成されます。これは、エクステント数とエクステント・サイズがシステムによって判断および制御されることを示します。ローカル管理のSYSTEM表領域では、自動割当てポリシーのため、作成されるオブジェクトの初期サイズが大きくなる場合があります。ローカル管理のSYSTEM表領域を作成する場合に、UNIFORMエクステント・サイズを指定することはできません。

ローカル管理のSYSTEM表領域を指定してデータベースを作成する場合は、次の条件が満たされているかどうかを確認してください。

SYSAUX表領域の作成

SYSAUX表領域は、データベース作成時に必ず作成されます。このSYSAUX表領域は、SYSTEM表領域の補助的な表領域として機能します。この表領域は、以前に固有の表領域を必要としていたOracle Databaseの多くの機能と製品に対するデフォルト表領域であるため、データベースで必要な表領域の数が削減されます。この表領域は、DBAによるメンテナンスが必要です。SYSTEM表領域を以前に使用していたその他の機能でSYSAUX表領域が使用できるようになったため、SYSTEM表領域への負荷が軽減されます。

SYSAUX表領域に対して指定できるのは、データ・ファイルの属性のみで、CREATE DATABASE文でSYSAUX DATAFILE句を使用して指定します。SYSAUX表領域の必須属性はOracle Databaseによって設定されます。次の必須属性があります。

これらの属性は、ALTER TABLESPACE文で変更できません。変更しようとするとエラーが発生します。また、SYSAUX表領域の削除や名前の変更はできません。

SYSAUX表領域のサイズは、SYSAUXを使用するデータベース・コンポーネントのサイズにより決定します。SYSAUX占有データを使用する全コンポーネントのリストは、表2-2を参照してください。これらのコンポーネントの初期サイズに基づいて、SYSAUX表領域には、データベース作成時に最低限240MB必要です。SYSAUX表領域の領域要件は、データベースが完全に配置された後、その使用状況やワークロードによって増加します。 変動する基準に基づいてSYSAUX表領域の領域消費を管理する方法の詳細は、「SYSAUX表領域の管理」を参照してください。

SYSTEM表領域に対してDATAFILE句を指定している場合は、SYSAUX DATAFILE句も指定する必要があります。指定しない場合は、CREATE DATABASE文が失敗します。 この要件は、Oracle Managed Files機能が使用可能な場合は適用されません(「データベース作成時のOracle Managed Filesの作成」を参照してください)。

他の句を指定しないでCREATE DATABASE文を発行すると、デフォルトのデータベースがSYSTEMおよびSYSAUX表領域用のデータ・ファイルとともに作成されます。これらの表領域は、システムによって決定されたデフォルトの位置、またはOracle Managed Filesの初期化パラメータによって指定された位置に格納されます。

SYSAUX表領域のセキュリティ属性はSYSTEM表領域と同じです。


注意

このマニュアルでは、データベース作成時のSYSAUXデータベースの作成について説明しています。SYSAUX表領域を必要としないOracle Databaseのリリースからアップグレードするときは、アップグレード・プロセス時にSYSAUX表領域を作成する必要があります。この操作については、『Oracle Databaseアップグレード・ガイド』を参照してください。 


表2-2に、インストール時のデフォルト表領域としてSYSAUX表領域を使用するコンポーネント、および以前のリリースでそのコンポーネントが格納されていた表領域を示します。

表 2-2    データベース・コンポーネントとSYSAUX表領域 
SYSAUXを使用するコンポーネント  以前のリリースでの格納先表領域 

アナリティック・ワークスペース・オブジェクト表 

SYSTEM 

Enterprise Managerリポジトリ 

OEM_REPOSITORY 

LogMiner 

SYSTEM 

ロジカル・スタンバイ 

SYSTEM 

OLAP API履歴表 

CWMLITE 

Oracle Data Mining 

ODM 

Oracle Spatial 

SYSTEM 

Oracle Streams 

SYSTEM 

Oracle Text 

DRSYS 

Oracle Ultra Search 

DRSYS 

Oracle interMedia ORDPLUGINSのコンポーネント 

SYSTEM 

Oracle interMedia ORDSYSのコンポーネント 

SYSTEM 

Oracle interMedia SI_INFORMTN_SCHEMAのコンポーネント 

SYSTEM 

サーバーの管理性のコンポーネント 

Oracle Database 10gの新規コンポーネント 

Statspackリポジトリ 

ユーザー定義 

Oracle Scheduler 

Oracle Database 10gの新規コンポーネント 

Workspace Manager 

SYSTEM 

これらのコンポーネントのインストール手順では、SYSAUX表領域に関する占有性を設定する手段が提供されます。

関連項目

SYSAUX表領域の管理方法の詳細は、「SYSAUX表領域の管理」を参照してください。 

自動UNDO管理の使用: UNDO表領域の作成

自動UNDO管理モードではUNDO表領域を使用します。自動UNDO管理モードを使用可能にするには、初期化パラメータ・ファイルでUNDO_MANAGEMENT初期化パラメータをAUTOに設定します。このモードでは、UNDOデータがUNDO表領域に格納され、Oracle Databaseによって管理されます。UNDO表領域を定義して名前を付ける必要がある場合は、データベース作成時にCREATE DATABASE文にUNDO TABLESPACE句を指定する必要もあります。この句を省略して自動UNDO管理を使用可能(UNDO_MANAGEMENT初期化パラメータをAUTOに設定)にすると、デフォルトのUNDO表領域SYS_UNDOTBSが作成されます。

関連項目

 

デフォルト永続表領域の作成

CREATE DATABASE文でDEFAULT TABLESPACE句を指定すると、データベースのデフォルト永続表領域が作成されます。この表領域は、Oracle Databaseによって、別の永続表領域が明示的に指定されていないSYSTEM以外のユーザーに対して割り当てられます。この句を指定しない場合、SYSTEM以外のユーザーに対するデフォルトの永続表領域はSYSTEM表領域です。デフォルトの永続表領域を作成することをお薦めします。

関連項目

CREATE DATABASEおよびALTER DATABASEDEFAULT TABLESPACE句の構文は、『Oracle Database SQLリファレンス』を参照してください。 

デフォルト一時表領域の作成

CREATE DATABASE文でDEFAULT TEMPORARY TABLESPACE句を指定すると、データベースにデフォルトの一時表領域が作成されます。Oracle Databaseは、この表領域を、一時表領域が明示的に割り当てられていないユーザーに対して一時表領域として割り当てます。

一時表領域または表領域グループは、CREATE USER文で明示的にユーザーに割り当てることができます。しかし、明示的に割り当てない場合は、データベースにデフォルトの一時表領域が指定されていないと、これらのユーザーには、デフォルトで、一時表領域としてSYSTEM表領域が割り当てられます。一時データをSYSTEM表領域に格納するのはよい方法ではなく、各ユーザーを個別に一時表領域に割り当てる方法は効率的ではありません。したがって、CREATE DATABASEDEFAULT TEMPORARY TABLESPACE句の使用をお薦めします。


注意

ローカル管理のSYSTEM表領域を指定すると、そのSYSTEM表領域は一時表領域として使用できません。この場合は、データベースによってデフォルトの一時表領域が作成されます。 この動作については、「ローカル管理のSYSTEM表領域の作成」を参照してください。 


デフォルトの一時表領域は、データベース作成後に追加または変更できます。これを行うには、CREATE TEMPORARY TABLESPACE文で新しい一時表領域または表領域グループを作成し、その後ALTER DATABASE DEFAULT TEMPORARY TABLESPACE文を使用して、作成した一時表領域を割り当てます。ユーザーの一時表領域は自動的に新しいデフォルト一時表領域に切り替えられます(または割り当てられます)。

次の文は、新しいデフォルト一時表領域を割り当てます。

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tempts2;

新しいデフォルト一時表領域がすでに存在している必要があります。ローカル管理のSYSTEM表領域を使用している場合は、新しいデフォルト一時表領域もローカル管理にする必要があります。

デフォルト一時表領域は削除またはオフライン化できませんが、新しいデフォルト一時表領域を割り当てた後で、古いほうの一時表領域を削除またはオフライン化することは可能です。デフォルト一時表領域を永続表領域に変更することはできません。

現行のデフォルト一時表領域の名前を取得するには、DATABASE_PROPERTIESビューのPROPERTY_NAME列とPROPERTY_VALUE列を問い合せます。これらの列には、「DEFAULT_TEMP_TABLESPACE」という値とデフォルト一時表領域の名前がそれぞれ表示されます。

関連項目

  • CREATE DATABASEおよびALTER DATABASEDEFAULT TEMPORARY TABLESPACE句の構文は、『Oracle Database SQLリファレンス』を参照してください。

  • 一時表領域の作成と使用については、「一時表領域」を参照してください。

  • 一時表領域グループの作成と使用については、「複数の一時表領域: 表領域グループの使用」を参照してください。

 

データベース作成時のOracle Managed Filesの作成

Oracle Managed Files機能を使用すると、CREATE DATABASE文に指定する句とパラメータの数を最小限に抑えることができます。この機能を使用するには、Oracle Databaseによって作成および管理されるファイルのディレクトリを指定するか、または自動ストレージ管理を使用します。自動ストレージ管理を使用する場合は、データベースによってファイルが作成および管理されるディスク・グループを、ファイルの冗長性とストライプ化も含めて指定します。

初期化パラメータ・ファイルにDB_CREATE_FILE_DESTDB_CREATE_ONLINE_LOG_DEST_nまたはDB_RECOVERY_FILE_DEST初期化パラメータを設定すると、データベースの基礎となるオペレーティング・システム・ファイルをOracle Databaseで作成および管理できます。指定した初期化パラメータおよびCREATE DATABASE文で指定した句に応じて、次のデータベース構造のオペレーティング・システム・ファイルが自動的に作成および管理されます。

次のCREATE DATABASE文で、Oracle Managed Files機能の動作を示します。必要な初期化パラメータは指定されているとします。

CREATE DATABASE rbdb1
     USER SYS IDENTIFIED BY pz6r58
     USER SYSTEM IDENTIFIED BY y1tz5p
     UNDO TABLESPACE undotbs
     DEFAULT TEMPORARY TABLESPACE tempts1;

データベース作成時の大型ファイル表領域のサポート

Oracle Databaseでは、大型ファイル表領域を作成できるようにすることで、表領域の管理を簡素化し、大規模なデータベースのサポートを可能にしています。大型ファイル表領域に含めることができるファイルは1つのみですが、そのファイルには最大40億ブロックまで設定できます。Oracle Databaseでは、データ・ファイルの最大数が制限されています(通常は64000ファイル)。したがって、大型ファイル表領域によって、Oracle Databaseの記憶域容量が大幅に増加します。

この項では、大型ファイル表領域のサポートを可能にするCREATE DATABASE文の句について説明します。

関連項目

大型ファイル表領域の詳細は、「大型ファイル表領域」を参照してください。 

デフォルトの表領域タイプの指定

CREATE DATABASE文のSET DEFAULT...TABLESPACE句によって、後続のCREATE TABLESPACE文でこのデータベースに使用される表領域のデフォルト・タイプが決定します。SET DEFAULT BIGFILE TABLESPACEまたはSET DEFAULT SMALLFILE TABLESPACEを指定します。この句を省略すると、デフォルトでは、従来のタイプのOracle Database表領域である小型ファイル表領域が作成されます。小型ファイル表領域には最大1022ファイルを含めることができ、それぞれ400万ブロックまで設定できます。

大型ファイル表領域を使用すると、Oracle Managed Filesの機能がさらに強化されます。これは、大型ファイル表領域によって、データ・ファイルがユーザーに対して完全に透過的になるためです。ALTER TABLESPACE文のSQL構文は、基礎となるデータ・ファイルではなく表領域で操作を実行できるように拡張されています。

表領域のデフォルト・タイプが大型ファイル表領域であることを指定するには、「データベース作成時のOracle Managed Filesの作成」に示したCREATE DATABASE文を次のように変更します。

CREATE DATABASE rbdb1
     USER SYS IDENTIFIED BY pz6r58
     USER SYSTEM IDENTIFIED BY y1tz5p
     SET DEFAULT BIGFILE TABLESPACE
     UNDO TABLESPACE undotbs
     DEFAULT TEMPORARY TABLESPACE tempts1;

デフォルトの表領域タイプをデータベース作成後に動的に変更するには、ALTER DATABASE文のSET DEFAULT TABLESPACE句を使用します。

ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;

データベースの現行のデフォルト一時表領域タイプを判断するには、DATABASE_PROPERTIESデータ・ディクショナリ・ビューを次のように問い合せます。

SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES 
   WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';

デフォルトの表領域タイプの上書き

SYSTEMおよびSYSAUX表領域は、常にデフォルトの表領域タイプで作成されます。ただし、UNDOおよびDEFAULT TEMPORARY表領域のデフォルトの表領域タイプは、CREATE DATABASE操作時に、明示的に上書きできます。

たとえば、次のように指定すると、デフォルトの表領域タイプが小型ファイルのデータベースで、大型ファイルのUNDO表領域を作成できます。

CREATE DATABASE rbdb1
...
     BIGFILE UNDO TABLESPACE undotbs
        DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'
        SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

次のように指定すると、デフォルトの表領域タイプが大型ファイルのデータベースで、小型ファイルのDEFAULT TEMPORARY表領域を作成できます。

CREATE DATABASE rbdb1
   SET DEFAULT BIGFILE TABLSPACE
...
     SMALLFILE DEFAULT TEMPORARY TABLESPACE tempts1
        TEMPFILE '/u01/oracle/oradata/mynewdb/temp01.dbf' 
        SIZE 20M REUSE
...

データベースのタイムゾーンとタイムゾーン・ファイルの指定

データベースのタイムゾーンと、サポートするタイムゾーン・ファイルを指定できます。

データベースのタイムゾーンの設定

データベースの作成時のデータベース・タイムゾーンを設定するには、CREATE DATABASE文のSET TIME_ZONE句を使用します。データベース・タイムゾーンを設定しないと、サーバーのオペレーティング・システムのタイムゾーンにデフォルト設定されます。

セッションのデータベース・タイムゾーンを設定するには、ALTER SESSION文のSET TIME_ZONE句を使用します。

関連項目

データベース・タイムゾーンの設定の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 

データベースのタイムゾーン・ファイルの指定

Oracleホーム・ディレクトリには、次の2つのタイムゾーン・ファイルがあります。デフォルトのタイムゾーン・ファイルは、$ORACLE_HOME/oracore/zoneinfo/timezonelrg.datです。より小さいタイムゾーン・ファイル$ORACLE_HOME/oracore/zoneinfo/timezone.datがあります。

すでに小さいタイムゾーン・ファイルを使用していてOracle Database 10g環境でも引き続き使用する場合や、デフォルトのタイムゾーン・ファイルから小さいタイムゾーン・ファイルに変更する場合は、次のタスクを実行します。

  1. データベースを停止します。

  2. 環境変数ORA_TZFILEに、timezone.datファイルのフルパス名を設定します。

  3. データベースを再起動します。

すでにデフォルトのタイムゾーン・ファイルを使用している場合、データベースのデータに小さいタイムゾーン・ファイルにはないタイムゾーンが使用されている可能性があるため、小さいタイムゾーン・ファイルに変更するのは実用的ではありません。

情報を共有しているすべてのデータベースが同じタイムゾーン・データファイルを使用する必要があります。

タイムゾーン・ファイルには有効なタイムゾーン名が含まれています。また、各タイムゾーンには次の情報も含まれています。

ファイル内で、データベースで使用されているタイムゾーン名を表示するには、次の問合せを実行します。

SELECT * FROM V$TIMEZONE_NAMES;

FORCE LOGGINGモードの指定

一部のデータ定義言語文(CREATE TABLEなど)では、NOLOGGING句を使用できますが、ある種のデータベース操作ではデータベースREDOログにREDOレコードが生成されません。NOLOGGING句を設定すると、データベース・リカバリ・メカニズム外で容易にリカバリできる操作は高速化されますが、メディア・リカバリとスタンバイ・データベースに悪影響を与える可能性があります。

Oracle Databaseでは、DDL文にNOLOGGINGが指定されていても、REDOレコードを強制的に書き込ませることができます。データベースでは、一時表領域と一時セグメントのREDOレコードは生成されないため、FORCE LOGGINGはオブジェクトに影響を与えません。

関連項目

NOLOGGINGモードで実行できる操作の詳細は、『Oracle Database SQLリファレンス』を参照してください。 

FORCE LOGGING句の使用

データベースをFORCE LOGGINGモードにするには、CREATE DATABASE文でFORCE LOGGING句を使用します。この句を指定しない場合、データベースはFORCE LOGGINGモードになりません。

データベースの作成後に、ALTER DATABASE文を使用してデータベースをFORCE LOGGINGモードにします。この文は、ロギングなしの直接書込みがすべて完了するまで待機するため、完了までに長時間かかる可能性があります。

次のSQL文を使用すると、FORCE LOGGINGモードを取り消しできます。

ALTER DATABASE NO FORCE LOGGING;

データベースに対してFORCE LOGGINGを指定するかどうかに関係なく、表領域レベルでFORCE LOGGINGまたはNO FORCE LOGGINGを選択的に指定できます。ただし、データベースのFORCE LOGGINGモードが有効になっている場合は、表領域の設定より優先されます。データベースに対して有効になっていない場合は、個々の表領域の設定が実行されます。データベース全体をFORCE LOGGINGモードにするか、または個々の表領域をFORCE LOGGINGモードにすることをお薦めします。一度に両方の設定を行わないでください。

FORCE LOGGINGモードは、データベースの永続属性です。つまり、データベースが停止され、再起動されても、同じロギング・モードのままです。ただし、制御ファイルを再作成すると、CREATE CONTROL FILE文でFORCE LOGGING句を指定しないかぎり、データベースはFORCE LOGGINGモードで再起動しません。

関連項目

表領域の作成にFORCE LOGGING句を使用する方法の詳細は、「REDOレコードの書込みの制御」を参照してください。 

FORCE LOGGINGモードのパフォーマンスに関する考慮点

FORCE LOGGINGモードは、ある程度のパフォーマンスの低下を伴います。主として完全メディア・リカバリを確実に行うためにFORCE LOGGINGを指定し、アクティブになっているスタンバイ・データベースがない場合は、次の点を考慮する必要があります。

データベースがNOARCHIVELOGモードで稼働している場合、通常はFORCE LOGGINGモードにする利点はありません。NOARCHIVELOGモードではメディア・リカバリが不可能であるため、FORCE LOGGINGと組み合せて使用する場合は、ほとんど利点がなく、パフォーマンスが低下する可能性があります。

初期化パラメータの理解

Oracleインスタンスが起動すると、初期化パラメータ・ファイルから初期化パラメータが読み込まれます。このファイルは、読取り専用テキスト・ファイルまたは読取り/書込みバイナリ・ファイルのどちらかです。バイナリ・ファイルはサーバー・パラメータ・ファイルと呼ばれ、常にサーバー上に存在します。サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更したり、停止と起動の後にも変更内容を保持することが可能になります。また、Oracle Databaseサーバーによる自己チューニングの基礎ともなります。これらの理由により、サーバー・パラメータ・ファイルを使用することをお薦めします。サーバー・パラメータ・ファイルは、編集したテキスト形式の初期化パラメータ・ファイルから作成したり、データベース・コンフィギュレーション・アシスタントを使用して作成することが可能です。

サーバー・パラメータ・ファイルを作成する前に、テキスト形式の初期化パラメータ・ファイルを使用してインスタンスを起動できます。起動時には、Oracleインスタンスは最初にデフォルトの場所にあるサーバー・パラメータ・ファイルを検索します。この場所にない場合は、テキスト形式の初期化パラメータ・ファイルを検索します。STARTUPコマンドの引数にテキスト形式の初期化パラメータ・ファイルの名前を指定して、既存のサーバー・パラメータ・ファイルを上書きすることもできます。

サーバー・パラメータ・ファイルの詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。 STARTUPコマンドの詳細は、「初期化パラメータ・ファイルの理解」を参照してください。

テキスト形式の初期化パラメータ・ファイルのデフォルトのファイル名と場所は、次の表のとおりです。

プラットフォーム  デフォルト名  デフォルトの場所 

UNIXとLinux 

init$ORACLE_SID.ora

たとえば、mynewdbデータベースの初期化パラメータ・ファイル名は次のようになります。

initmynewdb.ora  

$ORACLE_HOME/dbs

たとえば、mynewdbデータベースの初期化パラメータ・ファイルは次の場所に配置されます。

/u01/oracle/dbs/initmynewdb.ora  

Windows 

init%ORACLE_SID%.ora  

%ORACLE_HOME%¥database 

初期化パラメータ・ファイルのサンプル

次に、UNIXシステムでデータベースの作成に使用する初期化パラメータ・ファイルの例を示します。

control_files              = (/u0d/lcg03/control.001.dbf,
                              /u0d/lcg03/control.002.dbf,
                              /u0d/lcg03/control.003.dbf)
db_name                    = lcg03

db_domain                  = us.oracle.com

log_archive_dest_1         =
"LOCATION=/net/fstlcg03/private/yaliu/testlog/log.lcg03.fstlcg03/lcg03/arch"
log_archive_dest_state_1   = enable

db_block_size              = 8192
pga_aggregate_target       = 2500M

processes                  = 1000
sessions                   = 1200
open_cursors               = 1024

undo_management            = AUTO

shared_servers             = 3
remote_listener            = tnsfstlcg03

undo_tablespace            = smu_nd1
compatible                 = 10.2.0

sga_target                 = 1500M

nls_language               = AMERICAN
nls_territory              = AMERICA
db_recovery_file_dest      =
/net/fstlcg03/private/yaliu/testlog/log.lcg03.fstlcg03/lcg03/arch
db_recovery_file_dest_size = 100G

Oracle Databaseでは通常、データベース・ソフトウェアとともに、適切な値が設定されたサンプル初期化パラメータ・ファイルを提供しており、データベース・コンフィギュレーション・アシスタントでも自動的に作成されます。構成やオプション、およびデータベースのチューニング計画によっては、オラクル社が提供するこれらの初期化パラメータを編集し、他の初期化パラメータを追加することが可能です。関連する初期化パラメータのうち、初期化パラメータ・ファイル内に特に設定されていないものには、デフォルト値が適用されます。

Oracle Databaseを初めて作成する場合は、変更するパラメータ値の数を最小限にとどめておくことをお薦めします。データベースと環境に慣れてから、多数の初期化パラメータをALTER SYSTEM文で動的にチューニングしてください。テキスト形式の初期化パラメータ・ファイルを使用している場合、現行のインスタンスについてのみ変更できます。永続的に変更するには、初期化パラメータ・ファイル内で手動で更新する必要があります。それ以外の場合は、次回データベースを停止して起動すると、変更内容が失われます。サーバー・パラメータ・ファイルを使用している場合、ALTER SYSTEM 文で行った初期化パラメータ・ファイルの変更内容は、停止して起動した後も持続します。この操作については、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。

ここでは、新しいデータベースを作成する前に追加または編集できるいくつかの基本的な初期化パラメータについて説明します。

この項の内容は、次のとおりです。

グローバル・データベース名の決定

グローバル・データベース名は、ユーザー指定のローカル・データベース名と、ネットワーク構造内でのデータベースの位置で構成されます。データベース名のローカル名コンポーネントはDB_NAME初期化パラメータによって決定し、ネットワーク構造内のドメイン(論理的な位置)はDB_DOMAINパラメータによって決定します。これら2つのパラメータの設定を組み合せて、ネットワーク内で一意となるデータベース名を形成する必要があります。

たとえば、test.us.acme.comというグローバル・データベース名を持つデータベースを作成するには、新しいパラメータ・ファイルのパラメータを次のように編集します。

DB_NAME = test
DB_DOMAIN = us.acme.com

ALTER DATABASE RENAME GLOBAL_NAME文を使用すると、データベースのGLOBAL_NAMEを変更できます。ただし、最初にDB_NAMEおよびDB_DOMAIN初期化パラメータを変更し、制御ファイルを再作成した後に、データベースを停止して再起動する必要があります。

関連項目

データベース名の変更手段であるDBNEWIDユーティリティの使用方法は、『Oracle Databaseユーティリティ』を参照してください。 

DB_NAME初期化パラメータ

DB_NAMEには、8文字以内のテキスト文字列を設定する必要があります。DB_NAMEに指定した名前は、データベースの作成時に、データベースのデータ・ファイル、REDOログ・ファイルおよび制御ファイルに記録されます。データベース・インスタンスの起動時に、パラメータ・ファイル内のDB_NAMEパラメータの値と制御ファイル内のデータベース名が一致しないと、データベースは起動しません。

DB_DOMAIN初期化パラメータ

DB_DOMAINは、データベースが作成されるネットワーク・ドメインを指定するテキスト文字列です。通常、これはデータベースを所有する組織の名前です。作成しようとしているデータベースが分散データベース・システムの一部である場合は、データベースを作成する前に、この初期化パラメータに特に注意してください。

関連項目

分散データベースの詳細は、第VII部「分散データベースの管理」を参照してください。 

フラッシュ・リカバリ領域の指定

フラッシュ・リカバリ領域は、Oracle Databaseでバックアップおよびリカバリに関連するファイルを格納および管理できる位置です。この領域は、Oracle Managed Filesの現行のデータベース・ファイル(データ・ファイル、制御ファイルおよびオンラインREDOログ)用の位置であるデータベース領域とは異なります。

フラッシュ・リカバリ領域を指定するには、次の初期化パラメータを使用します。

RAC環境では、これら2つのパラメータの設定がすべてのインスタンスで同じであることが必要です。

これらのパラメータは、LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータの値を設定している場合は使用可能にできません。フラッシュ・リカバリ領域を設定する前に、これらのパラメータを使用禁止にする必要があります。かわりに、LOG_ARCHIVE_DEST_nパラメータの値を設定できます。ローカルのLOG_ARCHIVE_DEST_nに値を設定しない場合は、フラッシュ・リカバリ領域を設定すると、そのフラッシュ・リカバリ領域にLOG_ARCHIVE_DEST_10が暗黙的に設定されます。

フラッシュ・リカバリ領域によってデータベースのバックアップ操作およびリカバリ操作が簡素化されるため、この領域を使用することをお薦めします。

関連項目

フラッシュ・リカバリ領域の作成方法と使用方法については、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。 

制御ファイルの指定

CONTROL_FILES初期化パラメータでは、データベースに対して1つ以上の制御ファイル名を指定します。CREATE DATABASE文を実行すると、CONTROL_FILESパラメータに記述した制御ファイルが作成されます。

初期化パラメータ・ファイルにCONTROL_FILESが含まれていない場合は、オペレーティング・システム固有のデフォルト・ファイル名を使用して制御ファイルが作成されるか、またはOracle Managed Filesを使用可能にしている場合はOracle Managed Filesの制御ファイルが作成されます。

データベース用の制御ファイルを作成するときに新しいオペレーティング・システム・ファイルを作成する場合は、CONTROL_FILESパラメータに記述されているファイル名が現在のシステム上に存在するいずれのファイル名とも一致しないことを確認してください。データベース用の制御ファイルを作成するときに既存のファイルを再利用または上書きする場合は、CONTROL_FILESパラメータに記述されているファイル名が、現在のシステム上に存在するファイル名と一致することを確認してください。


注意

CONTROL_FILEを指定する場合は十分注意してください。不注意からすでに存在するファイルを指定してCREATE DATABASE文を実行すると、そのファイルの内容が上書きされます。 


データベースごとに、少なくとも2つの制御ファイルを別々の物理ディスク・ドライブに格納して使用することをお薦めします。

関連項目

 

データベース・ブロック・サイズの指定

データベースの標準ブロック・サイズは、DB_BLOCK_SIZE初期化パラメータで指定します。標準ブロック・サイズはSYSTEM表領域で使用され、その他の表領域ではデフォルトとして使用されます。Oracle Databaseは、最大4つの非標準ブロック・サイズをサポートします。

DB_BLOCK_SIZE初期化パラメータ

標準ブロック・サイズには、最も一般的に使用するブロック・サイズを選択します。多くの場合、設定が必要なブロック・サイズは標準ブロック・サイズのみです。通常、DB_BLOCK_SIZEは4Kまたは8Kに設定します。このパラメータの値を指定しないと、オペレーティング・システム固有のデフォルト・データ・ブロック・サイズが使用されますが、大抵の場合、このデフォルト・ブロック・サイズで十分です。

データベースの作成後は、データベースを再作成する以外にブロック・サイズを変更する方法はありません。データベースのブロック・サイズがオペレーティング・システムのブロック・サイズと異なる場合は、データベースのブロック・サイズをオペレーティング・システムのブロック・サイズの倍数にする必要があります。たとえば、使用しているオペレーティング・システムのブロック・サイズが2KB(2048バイト)の場合、次のDB_BLOCK_SIZE初期化パラメータの設定は有効です。

DB_BLOCK_SIZE=4096

データ・ブロック・サイズを大きくすると、ディスクとメモリーのI/O(データのアクセスと格納)の効率が向上します。したがって、次の条件に該当する場合は、オペレーティング・システムのブロック・サイズより大きいブロック・サイズの指定を考慮してください。

非標準ブロック・サイズ

CREATE TABLESPACE文でBLOCKSIZE句を指定すると、非標準のブロック・サイズを持つ表領域を作成できます。これらの非標準ブロック・サイズには、2の累乗である2KB、4KB、8KB、16KB、32KBのいずれかを指定します。最大ブロック・サイズに関するプラットフォーム固有の制限が適用されるので、プラットフォームによっては、これらのサイズの一部は指定できない場合があります。

非標準ブロック・サイズを使用する場合は、使用するすべての非標準ブロック・サイズについて、SGAメモリーのバッファ・キャッシュ領域内にサブキャッシュを構成する必要があります。これらのサブキャッシュの構成に使用する初期化パラメータについては、次の項の「システム・グローバル領域(SGA)の管理」を参照してください。

データベースに複数のブロック・サイズを指定できる機能は、特にデータベース間で表領域をトランスポートする場合に役立ちます。たとえば、OLTP環境から、8KBの標準ブロック・サイズを使用するデータ・ウェアハウス環境に、4KBのブロック・サイズを使用する表領域をトランスポートできます。

関連項目

 

システム・グローバル領域(SGA)の管理

ここでは、システム・グローバル領域(SGA)に割り当てられるメモリーの量に影響を与える初期化パラメータについて説明します。SGA_MAX_SIZE以外の初期化パラメータは、ALTER SYSTEM文で値を変更できる動的なパラメータです。SGAのサイズは動的で、これらのパラメータを動的に変更することにより、拡大または縮小できます。

この項の内容は、次のとおりです。

SGAのコンポーネントおよびグラニュル

SGAは、特定のクラスのメモリー割当て要求を満たすために使用されるメモリーのプールである多数のメモリー・コンポーネントで構成されます。メモリー・コンポーネントの例として、共有プール(SQLおよびPL/SQL実行のメモリー割当てに使用)、Javaプール(Javaオブジェクトおよびその他のJava実行メモリーに使用)、およびバッファ・キャッシュ(キャッシュ・ディスク・ブロックに使用)などがあります。すべてのSGAコンポーネントがグラニュルという単位で領域を割当ておよび割当て解除します。Oracle Databaseは、各SGAコンポーネントに対するグラニュルの内部数でSGAメモリーの使用状況を追跡します。

SGAの動的コンポーネント用のメモリーは、グラニュル単位で割り当てられます。グラニュル・サイズは、合計SGAサイズにより決定されます。一般に、ほとんどのプラットフォームでは、合計SGAサイズが1GB以下の場合、グラニュル・サイズは4MBです。1GBより大きいSGAのグラニュル・サイズは16MBです。一部にプラットフォーム依存性が存在する場合があります。たとえば、32ビットのWindows NTの場合、1GBより大きいSGAのグラニュル・サイズは8MBです。詳細は、使用しているオペレーティング・システム固有のマニュアルを参照してください。

V$SGAINFOビューを問い合せると、インスタンスで使用中のグラニュル・サイズを確認できます。SGAのすべての動的コンポーネントに、同じグラニュル・サイズが使用されます。

コンポーネントに対してグラニュル・サイズの倍数でないサイズを指定すると、そのサイズは最も近い倍数に繰り上げられます。たとえば、グラニュル・サイズが4MBの場合にDB_CACHE_SIZEを10MBとして指定すると、実際には12MBが割り当てられます。

SGAのサイズの制限

インスタンスの存続期間中のSGAの最大サイズは、SGA_MAX_SIZE初期化パラメータによって決まります。バッファ・キャッシュ、共有プール、ラージ・プール、JavaプールおよびStreamsプールのサイズに影響を与える初期化パラメータは動的に変更できますが、これらのサイズとSGAの他のコンポーネント(固定SGA、可変SGAおよびREDOログ・バッファ)のサイズとの合計が、SGA_MAX_SIZEで指定された値を超えるような変更はできません。

SGA_MAX_SIZEが指定されていない場合は、初期化時に指定またはデフォルト設定されたコンポーネントすべての合計がデフォルト値として設定されます。SGA_MAX_SIZEに指定した値が、データベースの初期化時に、すべてのコンポーネントに対してパラメータ・ファイルで明示的にまたはデフォルトで割り当てたメモリーの合計より少ない場合、SGA_MAX_SIZEの設定は無視されます。

共有メモリーの自動管理の使用

共有メモリーの自動管理機能を使用可能にするには、SGA_TARGETパラメータを0(ゼロ)以外の値に設定します。このパラメータは、個々のコンポーネントの特定のセットに対して割り当てられるメモリーを制御するパラメータを置換します。これらのメモリーは、現在、自動的かつ動的にサイズ変更(チューニング)されるようになっています。


注意

共有メモリーの自動管理が機能するには、STATISTICS_LEVEL初期化パラメータがTYPICAL(デフォルト)またはALLに設定されている必要があります。 


SGA_TARGET初期化パラメータには、SGAの合計サイズが反映されます。表2-3に、SGA_TARGETにメモリーが含まれるSGAコンポーネント(自動サイズ設定SGAコンポーネント)と、コンポーネントに対応する初期化パラメータを示します。

表 2-3    自動サイズ設定SGAコンポーネントと対応するパラメータ 
SGAコンポーネント  初期化パラメータ 

固定SGAおよびOracle Databaseインスタンスに必要なその他の内部割当て 

N/A 

共有プール 

SHARED_POOL_SIZE 

ラージ・プール 

LARGE_POOL_SIZE 

Javaプール 

JAVA_POOL_SIZE 

バッファ・キャッシュ 

DB_CACHE_SIZE 

Streamsプール 

STREAMS_POOL_SIZE 

表2-4にリストされているパラメータは、設定された場合、SGA_TARGETからメモリーを取得しますが、表2-3にリストされたコンポーネントに使用されるメモリーは残されます。

表 2-4    SGA_TARGETの領域を使用する手動サイズ設定SGAコンポーネント 
SGAコンポーネント  初期化パラメータ 

ログ・バッファ 

LOG_BUFFER 

KEEPバッファ・キャッシュおよびRECYCLEバッファ・キャッシュ 

DB_KEEP_CACHE_SIZE

DB_RECYCLE_CACHE_SIZE 

非標準ブロック・サイズ・バッファ・キャッシュ 

DB_nK_CACHE_SIZE 

SGA_TARGETを0(ゼロ)以外の値に設定する他に、すべての自動サイズ設定SGAコンポーネントの値を0(ゼロ)に設定して、これらのコンポーネントの完全な自動チューニングを有効にする必要があります。

また、1つ以上の自動サイズ設定SGAコンポーネントの値を0(ゼロ)以外に設定することもできます。これにより、SGAのチューニング時にこの値がこのコンポーネントの最小設定として使用されます。この操作については、この項の後半を参照してください。


注意

より簡単に共有メモリーの自動管理を有効にするには、Oracle Enterprise Manager(EM)を使用します。共有メモリーの自動管理を有効にし、合計SGAサイズを設定すると、EMによりALTER SYSTEM文が自動的に生成され、SGA_TARGETが特定のサイズに設定され、自動サイズ設定SGAコンポーネントがすべて0(ゼロ)に設定されます。

SQL*Plusを使用してSGA_TARGETを設定する場合、自動サイズ設定SGAコンポーネントを0(ゼロ)または最小値に設定する必要があります。 


V$SGA_TARGET_ADVICEビューには、SGA_TARGETの値を決定する際に役立つ情報が表示されます。 詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

共有メモリーの自動管理の有効化

共有メモリーの自動管理を有効化するには、次の手順を実行します。

  1. 手動管理から移行する場合は、手動モードで動作中のインスタンスで次の問合せを実行してSGA_TARGETの値を取得します。

    SELECT (
       (SELECT SUM(value) FROM V$SGA) -
       (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY)
       ) "SGA_TARGET"
    FROM DUAL;
    
    
  2. テキスト形式の初期化パラメータ・ファイルを編集してデータベースを再起動するか、次の文を発行して、SGA_TARGETの値を設定します。

    ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
    
    

    この場合、valueは、手順1で計算した値か、すべてのSGAコンポーネントのサイズ合計とSGA_MAX_SIZEの間の値です。 SCOPE句の詳細は、「ALTER SYSTEMを使用した初期化パラメータ値の変更」を参照してください。

  3. 次の項目のいずれかを実行します。

    • より完全な自動チューニングを行うには、表2-3に記載されている自動サイズ設定SGAコンポーネントの値を0(ゼロ)に設定します。これを行うには、テキスト形式の初期化パラメータ・ファイルを編集するか、手順2と同様のALTER SYSTEM文を発行します。

    • 1つ以上の自動サイズ設定SGAコンポーネントの最小サイズを制御するには、これらのコンポーネントのサイズを目的の値に設定します(詳細は、次の項を参照してください)。その他の自動サイズ設定SGAコンポーネントの値を0(ゼロ)に設定します。これを行うには、テキスト形式の初期化パラメータ・ファイルを編集するか、手順2と同様のALTER SYSTEM文を発行します。

たとえば、SGA_MAX_SIZEが1200Mに設定されている手動モードのインスタンスのパラメータが、現在次のように構成されているとします。

また、問合せが次のような結果であるとします。

SELECT SUM(value) FROM V$SGA = 1200M
SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY = 208M

Oracle Enterprise Managerで合計SGAサイズを992Mに設定するか、次の文を発行することにより、共有メモリーの自動管理を利用できます。

ALTER SYSTEM SET SGA_TARGET = 992M;
ALTER SYSTEM SET SHARED_POOL_SIZE = 0;
ALTER SYSTEM SET LARGE_POOL_SIZE = 0;
ALTER SYSTEM SET JAVA_POOL_SIZE = 0;
ALTER SYSTEM SET DB_CACHE_SIZE = 0;
ALTER SYSTEM SET STREAMS_POOL_SIZE = 0;

992Mは、1200M - 208Mから算出された値です。

自動サイズ設定SGAコンポーネントの最小値の設定

自動サイズ設定SGAコンポーネントに対応するパラメータに最小値を指定して、これらのコンポーネントのサイズをある程度制御できます。この設定は、特定のコンポーネントで最低限のメモリーが確保されていないとアプリケーションが正しく動作しないことがわかっている場合に便利です。コンポーネントに対してSGA領域の最小量を指定するには、対応する初期化パラメータの値を設定します。次に、構成例を示します。

この例の共有プールとデフォルト・バッファ・プールは、指定値(それぞれ32Mおよび100M)より小さい値にはサイズ設定されません。残りの124M(256 - 132)が、すべての手動および自動サイズ設定コンポーネントによって使用可能です。

SGAコンポーネント間の実際の配分値は、次のようになります。

パラメータ値によって、割り当てられるSGA領域の最小量が決定します。固定ビューV$SGA_DYNAMIC_COMPONENTSおよびV$SGAINFOには、各SGAコンポーネントの現行の実際サイズが表示されます。SGAコンポーネントの現行の実際値は、Oracle Enterprise Managerのメモリー構成ページでも参照できます。

1つ以上の自動サイズ設定コンポーネントの最小サイズを手動で制限すると、動的な調整に使用されるメモリーの合計量が減少します。この量が減少すると、システムがワークロードの変動に適応するシステムの機能が次々に制限されます。したがって、この方法は特別な場合を除いてお薦めしません。デフォルトの自動管理は、システム・パフォーマンスおよび使用可能なリソースの使用が最大になるように動作します。

自動チューニングと共有プール

共有メモリーの自動管理機能を使用可能にすると、内部チューニング・アルゴリズムにより、ワークロードに基づいて共有プールの最適サイズが決定されるようになります。通常、値を少しずつ徐々に増加することにより、この値に収束していきます。内部チューニング・アルゴリズムでは、通常、共有プールは縮小されません。これは、共有プール内にオープン・カーソルや確保されたPL/SQLパッケージおよびその他のSQL実行状態が存在することにより、解放可能なグラニュルを見つけることができないためです。このため、内部チューニング・アルゴリズムでは、共有プールの控えめな増分のみが行われます。まず、控えめなサイズから開始し、パフォーマンスが最適になったサイズで共有プールを安定させます。

SGAパラメータの動的変更

SGA_TARGETの値、および個々のコンポーネントを動的に制御するパラメータを変更するには、ALTER SYSTEM文を使用します。詳細は、「ALTER SYSTEMを使用した初期化パラメータ値の変更」を参照してください。

SGA_TARGETの動的変更

SGA_TARGETパラメータは、SGA_MAX_SIZEパラメータに指定された値まで増やすことができ、減らすこともできます。SGA_TARGETの値を減らした場合は、メモリーを解放する1つ以上の自動調整コンポーネントがシステムによって識別されます。SGA_TARGETは、1つ以上の自動調整コンポーネントがその最小サイズに達するまで減らすことができます。Oracle Databaseでは、SGA_TARGETの最小許容値を決定するときに、自動サイズ設定コンポーネントに設定された値、SGA_TARGET領域を使用する手動サイズ設定コンポーネント、およびCPUの数など、いくつかの要因が考慮されます。

SGA_TARGETが変更されたときに、消費される物理メモリーの量の変更は、オペレーティング・システムによって異なります。動的共有メモリーをサポートしない一部のUNIXプラットフォームでは、SGAで使用される物理メモリーはSGA_MAX_SIZEパラメータの値と同じです。SGA_TARGETSGA_MAX_SIZEより小さい値に設定した場合、このようなプラットフォームでは実際の利点はありません。したがって、これらのプラットフォームでは、SGA_MAX_SIZEを設定しないことをお薦めします。

SolarisやWindowsなどの他のプラットフォームでは、SGAで消費される物理メモリーはSGA_TARGETと同じです。

SGA_TARGETがサイズ変更された場合、対応する初期化パラメータに最小値を設定していない自動調整コンポーネントのみが影響を受けます。手動で構成されたコンポーネントは影響を受けません。

たとえば、次のような構成環境とします。

この例では、SGA_TARGETは1024Mまでサイズを増やすことができ、また、自動サイズ設定コンポーネントの1つ以上がその最小サイズに達するまでサイズを減らすこともできます。正確な値は、システムのCPU数などの環境要因によって決定します。ただし、DB_8K_CACHE_SIZEの値は常に128Mで固定です。

SGA_TARGETの値が減ったとき、自動調整コンポーネントの最小値が指定されている場合、これらのコンポーネントは、その最小値より小さい値には減少しません。次のパラメータの組合せを考えてみます。

最後の例で、SGA_TARGETの値が減った場合でも、DB_8K_CACHE_SIZEパラメータの値は128Mで永続的に固定です。また、プライマリ・バッファ・キャッシュ(DB_CACHE_SIZEパラメータで決定)の値は、96Mより小さい値には減少しません。このように、SGA_TARGETの減少量は制限されます。


注意

共有メモリーの自動管理機能を使用可能にする場合、データベースを起動する前に、SGA_TARGETを0(ゼロ)以外の目的の値に設定しておくことをお薦めします。SGA_TARGETを0(ゼロ)から0(ゼロ)以外の値に動的に変更しても、共有プールを縮小できないために、目的の結果が得られないことがあります。起動後も、必要に応じてSGA_TARGETの値を動的に増減できます。 


自動管理コンポーネントのパラメータの変更

SGA_TARGETが設定されていない場合、共有メモリーの自動管理機能は使用できません。したがって、すべてのコンポーネント・パラメータのサイズ変更に関するルールは以前のリリースの場合と同じです。ただし、共有メモリーの自動管理が有効な場合は、自動的にサイズ変更したコンポーネントについて手動で指定したサイズが、そのコンポーネントの下限のサイズとして機能します。この制限は、対応するパラメータの値を変更することで動的に変更できます。

特定のSGAコンポーネントに指定したサイズの下限が、現在のサイズより小さい場合、そのコンポーネントのサイズはすぐには変更されません。新しい設定は自動チューニング・アルゴリズムを将来において減少した最小サイズに制限するのみです。たとえば、次のような構成を考えてみます。

この例では、LARGE_POOL_SIZEコンポーネントの現行の実際のサイズを超える値に増加した場合は、増加した最小サイズを格納するためにコンポーネントが拡張されます。たとえば、LARGE_POOL_SIZEの値を300Mに増やした場合、ラージ・プールは300Mに達するまで徐々に拡張されます。このサイズ変更は、1つ以上の自動チューニング・コンポーネントに影響を与えます。

LARGE_POOL_SIZEの値を200まで減らしても、コンポーネントのサイズが即座に変更されることはありません。この新しい設定は将来ラージ・プールが減らされる限度を200Mまでに制限するのみです。

手動サイズ設定コンポーネントのパラメータの変更

手動サイズ設定コンポーネントのパラメータも動的に変更できます。ただし、最小サイズは設定しないで、パラメータの値によって、対応するコンポーネントの正確なサイズを指定します。手動サイズ設定コンポーネントのサイズを増やすと、余分なメモリーが1つ以上の自動サイズ設定コンポーネントから削除されます。手動サイズ設定コンポーネントのサイズを減らすと、解放されたメモリーが複数の自動サイズ設定コンポーネントに提供されます。

たとえば、次のような構成を考えてみます。

この例のDB_8K_CACHE_SIZEを16M増やして144Mにすると、その16Mが、自動サイズ設定コンポーネントから削除されます。同様に、DB_8K_CACHE_SIZEを16M減らして112Mにすると、その16Mが、自動サイズ設定コンポーネントに提供されます。

共有メモリーの手動管理の使用

SGA_TARGETを設定せず、共有メモリーの自動管理を使用しない場合、SGAの各コンポーネントは手動で構成する必要があります。ここでは、SGAの各コンポーネントのサイズを制御するパラメータの設定ガイドラインを説明します。

バッファ・キャッシュ初期化パラメータの設定

SGAコンポーネントであるバッファ・キャッシュのサイズは、バッファ・キャッシュ初期化パラメータによって決まります。これらのパラメータを使用して、データベースで使用される各ブロック・サイズのキャッシュ・サイズを指定します。これらの初期化パラメータはすべて動的です。

データベースで複数のブロック・サイズを使用する場合は、DB_CACHE_SIZEと、少なくとも1つのDB_nK_CACHE_SIZEパラメータを設定する必要があります。Oracle Databaseは、DB_CACHE_SIZEパラメータに適切なデフォルト値を割り当てますが、DB_nK_CACHE_SIZEパラメータはデフォルトで0(ゼロ)に設定され、追加のブロック・サイズ・キャッシュは構成されません。

バッファ・キャッシュのサイズはパフォーマンスに影響を及ぼします。一般に、キャッシュ・サイズを大きくすると、ディスクの読取りと書込みの回数が少なくなります。ただし、キャッシュを大きくすると、メモリーを過度に消費してページングやスワッピングが発生する可能性があります。

DB_CACHE_SIZE初期化パラメータ

DB_CACHE_SIZE初期化パラメータによって、旧リリースで使用されていたDB_BLOCK_BUFFERS初期化パラメータが置換されました。DB_CACHE_SIZEパラメータは、標準ブロック・サイズ・バッファのキャッシュ・サイズをバイト単位で指定します。したがって、DB_CACHE_SIZEの値を指定するには、必要なバッファの数を決定し、その値にDB_BLOCK_SIZEに指定したブロック・サイズを乗算します。

下位互換性を維持するため、DB_BLOCK_BUFFERSパラメータはまだ機能しますが、これは静的パラメータのままであり、動的なサイズ設定パラメータと組み合せることはできません。

DB_nK_CACHE_SIZE初期化パラメータ

非標準のブロック・サイズ・バッファのサイズおよび数は、次の初期化パラメータによって指定します。

各パラメータは、対応するブロック・サイズのバッファ・キャッシュ・サイズを指定します。 次に例を示します。

DB_BLOCK_SIZE=4096

DB_CACHE_SIZE=12M
DB_2K_CACHE_SIZE=8M
DB_8K_CACHE_SIZE=4M

この例では、パラメータによりデータベースの標準ブロック・サイズが4KBに指定されています。標準ブロック・サイズ・バッファのキャッシュ・サイズは12MBです。また、2KBおよび8KBのキャッシュ・サイズがそれぞれ8MBと4MBで構成されます。


注意

DB_nK_CACHE_SIZEパラメータを使用して、標準ブロック・サイズのキャッシュ・サイズは指定できません。たとえば、DB_BLOCK_SIZEの値が2KBの場合にDB_2K_CACHE_SIZEを設定しても無効です。標準ブロック・サイズのキャッシュ・サイズは、常にDB_CACHE_SIZEの値によって決まります。 


共有プール・サイズの指定

SHARED_POOL_SIZE初期化パラメータは、SGAのコンポーネントである共有プールのサイズを指定または調整する動的なパラメータです。Oracle Databaseによって、適切なデフォルト値が選択されます。

Oracle Database 10gリリース1より前のリリースでは、割り当てられる共有プールのメモリー量は、SHARED_POOL_SIZE初期化パラメータの値に、インスタンスの起動時に計算された内部SGAオーバーヘッド量を足した値と等しい値でした。内部SGAオーバーヘッドとは、その他複数の初期化パラメータの値に基づいて起動時にOracleによって割り当てられるメモリーです。このメモリーを使用して、SGAの様々なコンポーネントの状態を維持します。たとえば、SHARED_POOL_SIZEパラメータが64MBに設定されており、計算された内部SGAオーバーヘッドの値が12MBである場合、SHARED_POOL_SIZEパラメータの値が64MBとして表示されていても、SGAの共有プールの実際のサイズは64+12=76MBになります。

Oracle Database 10gリリース1以降では、内部SGAオーバーヘッドのサイズは、ユーザー指定のSHARED_POOL_SIZEの値に含まれます。つまり、共有メモリーの自動管理機能を使用していない場合、起動時に割り当てられた共有プールのメモリー量は、SHARED_POOL_SIZE初期化パラメータの値とまったく同じになります。手動SGAモードの場合、このパラメータは、内部SGAオーバーヘッドの値に目的の共有プール・サイズの値を足した値に設定する必要があります。前の例では、起動時にSHARED_POOL_SIZEパラメータが64MBに設定されている場合、内部SGAオーバーヘッドの値が変更されていないと仮定すると、起動後に使用可能な共有プールの値は64-12=52MBになります。起動後に共有プールのメモリーとして有効な値を64MB維持するには、SHARED_POOL_SIZEパラメータを64+12=76MBに設定する必要があります。

Oracle Database 10gの移行ユーティリティでは、アップグレード前の内部SGAオーバーヘッドの値とこのパラメータの古い値に基づいて、このパラメータに新しい値を使用することをお薦めします。Oracle Database 10gでは、内部SGAオーバーヘッド(共有プールの起動オーバーヘッドとも呼ばれます)の正確な値は、V$SGAINFOビューから問合せできます。また、手動SGAモードの場合、ユーザー指定のSHARED_POOL_SIZEの値が小さすぎるために、内部SGAオーバーヘッドの必要量にも満たないときは、起動時にORA-371エラーが生成され、SHARED_POOL_SIZEパラメータに使用すべき値が提示されます。

Oracle Database 10gで共有メモリーの自動管理を使用する場合、共有プールは自動的にチューニングされ、ORA-371エラーは生成されません。

ラージ・プール・サイズの指定

LARGE_POOL_SIZE初期化パラメータは、SGAのコンポーネントであるラージ・プールのサイズを指定または調整する動的なパラメータです。ラージ・プールは、SGAのオプションのコンポーネントです。ラージ・プールを作成する場合は、LARGE_POOL_SIZEパラメータを設定する必要があります。 ラージ・プールの構成方法は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

Javaプール・サイズの指定

JAVA_POOL_SIZE初期化パラメータは、SGAのコンポーネントであるJavaプールのサイズを指定または調整する動的なパラメータです。Oracle Databaseによって、適切なデフォルト値が選択されます。 Javaプールの構成方法は、『Oracle Database Java 開発者ガイド』を参照してください。

Streamsプール・サイズの指定

STREAMS_POOL_SIZE初期化パラメータは、SGAのコンポーネントであるStreamsプールのサイズを指定または調整する動的なパラメータです。STREAMS_POOL_SIZEが0(ゼロ)に設定されている場合、Oracle Streams製品では、メモリーが必要時にバッファ・キャッシュからStreamsプールに転送されます。 詳細は、『Oracle Streams概要および管理』のStreamsプールを参照してください。

SGAに関する情報の表示

次のビューで、SGAコンポーネントとその動的サイズ変更に関する情報を提供します。

ビュー  説明 

V$SGA  

システム・グローバル領域(SGA)に関する要約情報が表示されます。 

V$SGAINFO  

様々なSGAコンポーネントのサイズ、グラニュル・サイズおよび空きメモリーなど、SGAに関するサイズ情報が表示されます。 

V$SGASTAT  

SGAに関する詳細情報が表示されます。 

V$SGA_DYNAMIC_COMPONENTS  

SGAの動的コンポーネントに関する情報が表示されます。このビューでは、インスタンスの起動時以降に完了したすべてのSGAサイズ変更操作に基づいて情報が要約されます。  

V$SGA_DYNAMIC_FREE_MEMORY  

将来の動的なSGAサイズ変更操作に使用可能なSGAメモリーの容量に関する情報が表示されます。 

V$SGA_RESIZE_OPS  

最後に完了した400件のSGAサイズ変更操作に関する情報が表示されます。 

V$SGA_CURRENT_RESIZE_OPS  

現在進行中のSGAサイズ変更操作に関する情報が表示されます。サイズ変更の操作は、動的なSGAコンポーネントの拡大または縮小です。 

V$SGA_TARGET_ADVICE 

SGA_TARGETをチューニングする際に役立つ情報が表示されます。 詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。 

最大プロセス数の指定

Oracle Databaseに同時に接続できるオペレーティング・システム・プロセスの最大数は、PROCESSES初期化パラメータによって決定します。このパラメータの値は、最低でも各バックグラウンド・プロセスごとに1つ、および各ユーザー・プロセスごとに1つです。バックグラウンド・プロセスの数は、使用しているデータベースの機能によって異なります。たとえば、アドバンスト・キューイングまたはファイル・マッピング機能を使用している場合は、追加のバックグラウンド・プロセスが必要です。自動ストレージ管理を使用している場合は、追加プロセスを3つ追加します。

50のユーザー・プロセスを実行する予定の場合は、PROCESSES初期化パラメータの値を70に設定するように見積もることをお薦めします。

UNDO領域管理方法の指定

すべてのOracle Databaseには、データベースの変更を取り消すために使用する情報の管理方法が必要です。これらの情報は、主にコミットされる前のトランザクションの処理レコードから構成されます。これらのレコードを総称してUNDOデータと呼びます。この項では、UNDO表領域を使用する自動UNDO管理用の環境を設定する方法について説明します。

関連項目

第10章「UNDO表領域の管理」 

UNDO_MANAGEMENT初期化パラメータ

UNDO_MANAGEMENT初期化パラメータは、インスタンスを自動UNDO管理モード(UNDOがUNDO表領域に格納されます)で起動するかどうかを指定します。デフォルトでは、このパラメータはMANUALに設定されます。自動UNDO管理モードを使用可能にするには、このパラメータをAUTOに設定します。

UNDO_TABLESPACE初期化パラメータ

インスタンスを自動UNDO管理モードで起動すると、そのインスタンスは、UNDOデータを格納するためのUNDO表領域を選択しようとします。データベースがUNDO管理モードで作成されている場合は、デフォルトのUNDO表領域(システム生成のSYS_UNDOTS表領域またはユーザー指定のUNDO表領域)が、インスタンス起動時に使用されるUNDO表領域となります。インスタンスに対するこのデフォルトは、UNDO_TABLESPACE初期化パラメータに値を指定することで上書きできます。このパラメータは特に、Oracle Real Application Clusters環境のインスタンスに特定のUNDO表領域を割り当てる際に役立ちます。

UNDO表領域が、データベースの作成時またはUNDO_TABLESPACE初期化パラメータによって指定されなかった場合、データベース内で最初に使用可能なUNDO表領域が選択されます。使用可能なUNDO表領域がない場合、インスタンスはUNDO表領域なしで起動します。このようなモードでは実行しないようにしてください。

COMPATIBLE初期化パラメータおよび非下位互換性

COMPATIBLE初期化パラメータによって、ディスクのファイル形式に影響を与える機能の使用をデータベースで使用可能または使用不可にできます。たとえば、Oracle Database 10gデータベースを作成した場合でも、初期化パラメータ・ファイルにCOMPATIBLE = 9.2.0.2を指定すると、10.0との互換性が必要な機能を使用しようとするとエラーが発生します。これは、データベースが9.2.0.2互換性レベルにあるとみなされているためです。

データベースの互換性レベルを上げることができます。COMPATIBLE初期化パラメータを使用してデータベースの互換性を上げた場合、下位の互換性レベルの設定を使用してデータベースを起動する方法はありません。ただし、互換性を上げる前の時点にPoint-in-Timeリカバリすることはできます。

COMPATIBLEパラメータのデフォルト値は、主要な最新リリースの番号です。


注意

Oracle Database 10gの場合、COMPATIBLEパラメータのデフォルト値は10.2.0です。最小値は9.2.0です。デフォルト値を使用してOracle Databaseを作成した場合は、このリリースのすべての新機能をすぐに使用でき、データベースのダウングレードはありません。 


関連項目

  • データベースの互換性とCOMPATIBLE初期化パラメータの詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

  • データベースのPoint-in-Timeリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』を参照してください。

 

ライセンスに関するパラメータの設定


注意

Oracleでは、同時セッションの数によるライセンス提供がなくなりました。したがって、LICENSE_MAX_SESSIONSおよびLICENSE_SESSIONS_WARNING初期化パラメータは不要のため、廃止されました。  


指名ユーザー・ライセンスを使用している場合、Oracle Databaseではこの形式のライセンスを施行できます。データベース内に作成するユーザーの数に対して、制限を設定できます。この制限に達すると、それ以上のユーザーは作成できません。


注意

このメカニズムでは、データベースにアクセスする人がそれぞれ一意のユーザー名を持ち、ユーザー名を共有していないものと想定しています。したがって、指名ユーザー・ライセンスによってOracleのライセンス契約に従っていることを保証できるように、複数のユーザーが同じ名前を使用してログインすることを許可しないでください。 


データベースに作成するユーザー数を制限するには、次の例に示すように、そのデータベースの初期化パラメータ・ファイルにLICENSE_MAX_USERS初期化パラメータを設定します。

LICENSE_MAX_USERS = 200

データベース作成のトラブルシューティング

データベースの作成に失敗した場合は、アラート・ログを参照すると、失敗の原因とその対処措置を判別できます。 アラート・ログの詳細は、「データベースの動作の監視」を参照してください。

インスタンスを停止し、CREATE DATABASE文によって作成されたファイルをすべて削除した後で、データベースを再作成してください。データベースの作成に失敗した原因となるエラーを訂正し、データベースを再作成してください。

データベースの削除

データベースの削除には、データベースのデータ・ファイル、REDOログ・ファイル、制御ファイルおよび初期化パラメータ・ファイルの削除も含まれます。DROP DATABASE文では、すべての制御ファイルと制御ファイルに記述されている他のすべてのデータベース・ファイルが削除されます。DROP DATABASE文を正しく使用するには、次の条件をすべて満たす必要があります。

この文の例を次に示します。

DROP DATABASE;

DROP DATABASE文は、アーカイブ・ログ・ファイル、およびデータベースのコピーまたはバックアップには影響を与えません。これらのファイルを削除する場合は、Recovery Managerを使用することをお薦めします。データベースがRAWディスク上にある場合、そのRAWディスクにある実際の特殊ファイルは削除されません。

データベース・コンフィギュレーション・アシスタントを使用してデータベースを作成した場合は、データベースおよびファイルの削除にこのツールを使用できます。

サーバー・パラメータ・ファイルを使用した初期化パラメータの管理

Oracle Databaseの初期化パラメータは、テキスト形式の初期化パラメータ・ファイルに格納されていました。管理性を向上させるために、データベースを起動および停止している間も持続するバイナリ形式のサーバー・パラメータ・ファイルによる初期化パラメータのメンテナンスを選択できます。ここでは、サーバー・パラメータ・ファイルの概要を示し、各パラメータ格納方式を使用した初期化パラメータの管理方法について説明します。この項の内容は、次のとおりです。

サーバー・パラメータ・ファイルの概要

サーバー・パラメータ・ファイルは、Oracle Databaseサーバーが稼働するマシンで管理される初期化パラメータのリポジトリと考えられます。これは、サーバー側初期化パラメータ・ファイルとして設計されています。サーバー・パラメータ・ファイルに格納された初期化パラメータは永続的で、インスタンスの実行中に行ったパラメータの変更は、インスタンスを停止し、起動しても有効です。この配置によって、ALTER SYSTEM文による変更を持続させるために、初期化パラメータを手動で更新する必要がなくなります。また、Oracle Databaseサーバーによる自己チューニングの基礎ともなります。

最初のサーバー・パラメータ・ファイルは、CREATE SPFILE文を使用して、テキスト初期化パラメータ・ファイルから作成します(データベース・コンフィギュレーション・アシスタントから直接作成することもできます)。サーバー・パラメータ・ファイルは、テキスト・エディタで編集できないバイナリ・ファイルです。Oracle Databaseには、サーバー・パラメータ・ファイルのパラメータの設定を表示および変更するために、他のインタフェースが用意されています。


注意

テキスト・エディタでバイナリ形式のサーバー・パラメータ・ファイルをオープンし、そのテキストを表示することは可能ですが、手動で編集しないでください。手動で編集すると、ファイルが破損します。また、インスタンスが起動できなくなり、たとえインスタンスが起動しても失敗します。 


PFILE句を使用せずにSTARTUPコマンドを発行すると、Oracleインスタンスは、初期化パラメータの設定を読み込むために、オペレーティング・システム固有のデフォルトの場所でサーバー・パラメータ・ファイルを探します。サーバー・パラメータ・ファイルが見つからない場合、テキスト形式の初期化パラメータ・ファイルを探します。サーバー・パラメータ・ファイルがあってもテキスト形式の初期化パラメータ・ファイルの設定を優先する場合は、STARTUPコマンドの発行時にPFILE句を指定する必要があります。 サーバー・パラメータ・ファイルを使用してインスタンスを起動する方法の詳細は、「データベースの起動」を参照してください。

サーバー・パラメータ・ファイルへの移行

現在、テキスト形式の初期化パラメータ・ファイルを使用している場合は、次の手順に従ってサーバー・パラメータ・ファイルに移行します。

  1. 初期化パラメータ・ファイルがクライアント・マシン上にある場合は、FTPなどを使用して、クライアント・マシンからサーバー・マシンにファイルをトランスポートしてください。


    注意

    Oracle Real Application Clusters環境でサーバー・パラメータ・ファイルに移行する場合は、インスタンス固有のすべての初期化パラメータ・ファイルを、1つの初期化パラメータ・ファイルに結合する必要があります。この操作の方法、およびOracle Real Application Clustersのインストールの一部であるインスタンスでサーバー・パラメータ・ファイルを使用する際の固有の処理については、次のマニュアルを参照してください。

    • 『Oracle Real Application Clusters インストレーションおよび構成』

    • 『Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド』

     

  2. CREATE SPFILE文を使用して、サーバー・パラメータ・ファイルを作成します。この文を実行すると、初期化パラメータ・ファイルが読み込まれて、サーバー・パラメータ・ファイルが作成されます。CREATE SPFILE文を発行するために、データベースを起動する必要はありません。

  3. 新しく作成したサーバー・パラメータ・ファイルを使用して、インスタンスを起動します。

サーバー・パラメータ・ファイルの作成

CREATE SPFILE文を使用すると、テキスト形式の初期化パラメータ・ファイルからサーバー・パラメータ・ファイルを作成できます。この文を実行するには、SYSDBAまたはSYSOPERシステム権限が必要です。


注意

DBCAを使用してデータベースを作成した場合は、サーバー・パラメータ・ファイルが自動的に作成されます。 


CREATE SPFILE文は、インスタンスの起動前後に実行できます。ただし、すでにサーバー・パラメータ・ファイルを使用してインスタンスを起動している場合に、インスタンスで現在使用されているのと同じサーバー・パラメータ・ファイルを再作成しようとすると、エラーが発生します。

次の例では、初期化パラメータ・ファイル/u01/oracle/dbs/init.oraからサーバー・パラメータ・ファイルを作成しています。 この例ではSPFILEの名前を指定していないため、表2-5に示されているプラットフォーム固有のデフォルトの名前と場所でファイルが作成されます。

CREATE SPFILE FROM PFILE='/u01/oracle/dbs/init.ora';

次の例では、名前を指定してサーバー・パラメータ・ファイルを作成しています。

CREATE SPFILE='/u01/oracle/dbs/test_spfile.ora'
       FROM PFILE='/u01/oracle/dbs/test_init.ora';

初期化パラメータ・ファイルからサーバー・パラメータ・ファイルを作成すると、初期化パラメータ・ファイル内のパラメータ設定と同じ行に記述されているコメントもサーバー・パラメータ・ファイルで管理されます。他のコメントはすべて無視されます。

サーバー・パラメータ・ファイルは、必ずデータベースが稼働しているマシン上に作成されます。サーバー上に同じファイル名のサーバー・パラメータ・ファイルがすでに存在する場合は、新しい情報で上書きされます。

サーバー・パラメータ・ファイルの名前と場所には、データベース・サーバーによるデフォルト設定を使用することをお薦めします。これにより、データベースの管理が容易になります。たとえば、STARTUPコマンドはこのデフォルトの場所を想定して、パラメータ・ファイルを読み込みます。次の表は、サーバー・パラメータ・ファイルのデフォルトの名前と場所を示しています。この表では、SPFILEをファイルと想定しています。RAWデバイスの場合、デフォルトの名前は論理ボリュームまたはパーティション・デバイスの名前となり、デフォルトの場所も異なります。

表 2-5    UNIXとWindowsのサーバー・パラメータ・ファイルのデフォルトの名前と場所 
プラットフォーム  デフォルト名  デフォルトの場所 

UNIXとLinux 

spfile$ORACLE_SID.ora 

$ORACLE_HOME/dbsまたはデータ・ファイルと同じ場所 

Windows 

spfile%ORACLE_SID%.ora 

%ORACLE_HOME%¥database 


注意

起動時に、インスタンスは最初にspfile$ORACLE_SID.oraという名前のサーバー・パラメータ・ファイルを検索します。このファイルが見つからない場合、spfile.oraを検索します。spfile.oraを使用すると、すべてのReal Application Cluster(RAC)インスタンスが同じサーバー・パラメータ・ファイルを使用できるようになります。

サーバー・パラメータ・ファイルが見つからない場合は、テキスト形式の初期化パラメータ・ファイルinit$ORACLE_SID.oraが検索されます。 


サーバー・パラメータ・ファイルをデフォルト以外の場所に作成した場合、サーバー・パラメータ・ファイルを指し示すテキスト形式の初期化パラメータ・ファイルを作成する必要があります。 詳細は、「データベースの起動」を参照してください。

SPFILE初期化パラメータ

SPFILE初期化パラメータには、現在のサーバー・パラメータ・ファイルの名前を指定します。サーバーでデフォルトのサーバー・パラメータ・ファイルが使用されている場合(つまり、PFILEを指定せずにSTARTUPコマンドを発行した場合)、SPFILEの値はサーバーによって内部的に設定されます。SQL*PlusコマンドのSHOW PARAMETERS SPFILE(またはパラメータの値を問い合せる他の方法)を使用すると、現在使用中のサーバー・パラメータ・ファイルの名前が表示されます。

ALTER SYSTEMを使用した初期化パラメータ値の変更

ALTER SYSTEM文を使用すると、初期化パラメータ値を設定、変更またはデフォルトにリストアできます。テキスト形式の初期化パラメータ・ファイルを使用している場合、現行のインスタンスに対するパラメータの値のみALTER SYSTEM文で変更されます。これは、ディスク上の初期化パラメータを自動的に更新するメカニズムがないためです。以後のインスタンスに渡すためには、ディスク上の初期化パラメータを手動で更新する必要があります。サーバー・パラメータ・ファイルを使用している場合は、このような制限はありません。

初期化パラメータ値の設定または変更

初期化パラメータ値を設定または変更するには、ALTER SYSTEM文でSET句を指定します。また、次の表のように、変更の適用範囲を指定する場合は、オプションのSCOPE句を指定します。

SCOPE句  説明 

SCOPE = SPFILE  

サーバー・パラメータ・ファイルのみに変更が適用されます。次のような効果があります。

  • 動的パラメータの場合は、次の起動時に変更が有効になり、以後持続します。

  • 静的パラメータの場合も、動的パラメータと同じように動作します。静的パラメータでは、SCOPE指定のみ使用できます。

 

SCOPE = MEMORY  

メモリーのみに変更が適用されます。次のような効果があります。

  • 動的パラメータの場合は、変更が即時に有効になりますが、サーバー・パラメータ・ファイルは更新されないので、変更は持続しません。

  • 静的パラメータでは、この指定は使用できません。

 

SCOPE = BOTH  

サーバー・パラメータ・ファイルとメモリーの両方に変更が適用されます。次のような効果があります。

  • 動的パラメータの場合は、変更が即時に有効になり、持続します。

  • 静的パラメータでは、この指定は使用できません。

 

サーバーがサーバー・パラメータ・ファイルを使用していない場合にSCOPE=SPFILEまたはSCOPE=BOTHを指定すると、エラーが発生します。デフォルトは、インスタンス起動時にサーバー・パラメータ・ファイルを使用した場合はSCOPE=BOTH、テキスト形式の初期化パラメータ・ファイルを使用した場合はMEMORYになります。

動的パラメータの場合は、DEFERREDキーワードを指定することもできます。このキーワードを指定すると、これから確立するセッションでのみ変更が有効になります。

オプションのCOMMENT句を使用すると、パラメータの更新にテキスト文字列を対応付けることができます。SCOPESPFILEまたはBOTHに指定した場合に、サーバー・パラメータ・ファイルにコメントが記述されます。

次の文は、インスタンスで許可するジョブ・キュー・プロセスの最大数を変更します。この文にはコメントが含まれており、変更をメモリーにのみ適用する(つまり、インスタンスを停止し、起動すると変更は無効になります)ことを明示しています。

ALTER SYSTEM SET JOB_QUEUE_PROCESSES=50
                 COMMENT='temporary change on Nov 29'
                 SCOPE=MEMORY;

次の例では、属性のリストをとる複雑な初期化パラメータを設定しています。値を設定するパラメータは、LOG_ARCHIVE_DEST_n初期化パラメータです。この文によって、このパラメータの既存の設定を変更して新しいアーカイブ先を作成できます。

ALTER SYSTEM 
     SET LOG_ARCHIVE_DEST_4='LOCATION=/u02/oracle/rbdb1/',MANDATORY,'REOPEN=2'
         COMMENT='Add new destimation on Nov 29'
         SCOPE=SPFILE;

値がパラメータのリストで構成されている場合は、個々の属性を位置または序数によって編集することはできません。パラメータを更新するたびに、完全な値のリストを指定する必要があります。これによって、新しいリストで古いリストが完全に置換されます。

サーバー・パラメータ・ファイルのエクスポート

CREATE PFILE文を使用すると、サーバー・パラメータ・ファイルをテキスト形式の初期化パラメータ・ファイルにエクスポートできます。このエクスポートは、次のような場合に必要になる場合があります。

PFILE句にエクスポート・ファイルを指定して、インスタンスを起動することもできます。

CREATE PFILE文を実行するには、SYSDBAまたはSYSOPERシステム権限が必要です。エクスポート・ファイルは、データベース・サーバー・マシン上に作成されます。パラメータ設定と同じ行に記述されている、パラメータに関するコメントがすべて含まれます。

次の例では、サーバー・パラメータ・ファイルからテキスト形式の初期化パラメータ・ファイルを作成しています。

CREATE PFILE FROM SPFILE;

この例ではファイル名を指定していないため、プラットフォーム固有のデフォルト・サーバー・パラメータ・ファイルから、プラットフォーム固有の名前で初期化パラメータ・ファイルが作成されます。

次の例では、サーバー・パラメータ・ファイルからテキスト形式の初期化パラメータ・ファイルを作成していますが、複数のファイル名が指定されています。

CREATE PFILE='/u01/oracle/dbs/test_init.ora'
       FROM SPFILE='/u01/oracle/dbs/test_spfile.ora';

サーバー・パラメータ・ファイルのバックアップの作成

サーバー・パラメータ・ファイルをエクスポートして、そのバックアップを作成できます。詳細は、「サーバー・パラメータ・ファイルのエクスポート」を参照してください。データベースのバックアップおよびリカバリ計画がRecovery Managerを使用して実装されている場合は、Recovery Managerを使用してバックアップを作成できます。サーバー・パラメータ・ファイルのバックアップは、データベースのバックアップ作成時に自動的に作成されますが、Recovery Managerを使用すると現在アクティブになっているサーバー・パラメータ・ファイルのバックアップを作成できます。

関連項目

『Oracle Databaseバックアップおよびリカバリ基礎』 

サーバー・パラメータ・ファイルのエラーおよびリカバリ

起動時やエクスポート操作時にサーバー・パラメータ・ファイルの読込みでエラーが発生した場合、または作成時にサーバー・パラメータ・ファイルの書込みでエラーが発生した場合は、エラーが出力されて操作が終了します。

パラメータの更新時にサーバー・パラメータ・ファイルの読込みまたは書込みでエラーが発生した場合は、アラート・ログにエラーが記録されて、サーバー・パラメータ・ファイルに対する後続のパラメータ更新がすべて無視されます。この時点では、次の処理のいずれかを実行できます。

パラメータ設定の表示

パラメータの設定は、次の表に示すように、いくつかの方法で表示できます。

方法  説明 

SHOW PARAMETERS  

このSQL*Plusコマンドを使用すると、現在使用しているパラメータの値が表示されます。 

CREATE PFILE  

このSQL文は、バイナリ形式のサーバー・パラメータ・ファイルからテキスト形式の初期化パラメータ・ファイルを作成します。  

V$PARAMETER  

このビューを使用すると、現在有効なパラメータの値が表示されます。 

V$PARAMETER2  

このビューを使用すると、現在有効なパラメータの値が表示されます。各リスト・パラメータ値が行として出力されるので、このビューのほうがリスト・パラメータ値を容易に識別できます。  

V$SPPARAMETER  

このビューを使用すると、サーバー・パラメータ・ファイルの現在の内容が表示されます。インスタンスでサーバー・パラメータ・ファイルが使用されていない場合は、ISSPECIFIED列にFALSEが返されます。  

関連項目

ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 

Oracle Database 10gに対するアプリケーション・サービスの定義

ここでは、Oracle Database 10gのサービスについて説明します。この項の内容は、次のとおりです。

サービスとは、Oracle Database 10gのワークロードを管理するための論理的な抽象概念です。サービスによって、ワークロードは相互に独立したグループに分割されます。各サービスは、共通の属性、サービスレベルのしきい値および優先順位を持つワークロードを表します。グループ化は作業の属性に基づいて行われます。これらの属性には、使用するアプリケーション機能、アプリケーション機能を実行する場合の優先順位、管理の対象となるジョブ・クラス、アプリケーション機能またはジョブ・クラスで使用するデータの範囲などが含まれる場合があります。たとえば、Oracle E-Business Suiteでは、一般会計、売掛/未収金、受注などの各役割に対するサービスが定義されています。

Oracle Database 10gでは、複数のサービスがOracle Databaseに組み込まれており、ワークロードに関する単一のシステム・イメージ、ワークロードの優先順位、現実のトランザクションに対するパフォーマンス測定、およびパフォーマンス目標に違反した場合のアラートと処理を提供しています。サービスを使用すると、ワークロードの構成、管理、有効化と無効化を実行でき、さらに単一エンティティとして測定できます。これらの作業は、データベース・コンフィギュレーション・アシスタント(DBCA)、Netコンフィギュレーション・アシスタント(NetCA)、Enterprise Manager(EM)などの標準的なツールを使用して実行できます。Enterprise Managerは、表示と操作に関するサービスを全体としてサポートし、必要な場合はインスタンス・レベルへのドリルダウンをサポートしています。

Real Application Clusters(RAC)は1つ以上のインスタンスにまたがるサービスで、実際のトランザクション・パフォーマンスに基づいた現実的なワークロードの均衡化に役立ちます。これによって、エンドツーエンドの無人リカバリ、ワークロードによるロール変更、位置の完全な透過性が可能となります。また、RACを使用すると、Enterprise Manager、DBCAおよびServer Control Utility(SRVCTL)で多数のサービス機能を管理できます。

サービスは、パフォーマンス・チューニングに追加のディメションも提供します。すべてのセッションを匿名で共有している大部分のシステムでは、「サービスとSQL」によるチューニングで「セッションとSQL」によるチューニングを置換できます。サービスを使用することで、ワークロードが表示可能および測定可能となります。リソースの使用と待機は、アプリケーションがその起因となっています。また、サービスに割り当てたリソースは、ロードの増減にあわせて調整できます。この動的なリソース割当てによって、要求の発生に対応した費用効率の高いソリューションが可能となります。たとえば、サービスを自動的に測定し、そのパフォーマンスをサービス・レベルのしきい値と比較できます。パフォーマンス違反はEnterprise Managerにレポートされるため、自動ソリューションまたはスケジュールされたソリューションを実行できます。

関連項目

RACにおけるサービスの詳細は、『Oracle Real Application Clusters 配置およびパフォーマンス』を参照してください。 

サービスの配置

Oracle Database 10gのサービスは、インストールでデータベース内に構成され、一意のグローバル名、関連するパフォーマンス目標および関連する重要性が各サービスに与えられます。これらのサービスは、Oracle Databaseと緊密に統合され、データ・ディクショナリに保持されます。サービス情報は、次のサービス固有のビューで参照できます。

次の追加ビューにも、サービスに関する情報が表示されます。

Oracle Database機能のいくつかは、サービスをサポートしています。自動ワークロード・リポジトリ(AWR)は、サービスのパフォーマンスを管理します。AWRには、実行時間、待機クラスおよびサービスで使用されたリソースも含めて、サービスのパフォーマンスが記録されます。AWRは、サービス応答時間がしきい値を超えた場合、警告をアラートします。動的なビューには、現在のサービス・パフォーマンスのメトリックが時間の履歴単位でレポートされます。各サービスには、応答時間とCPU使用に関するサービス品質のしきい値があります。

さらに、データベース・リソース・マネージャによって、サービスがコンシューマ・グループにマップされます。このマッピングによって、サービスの優先順位を他のサービスと関連させて自動的に管理できます。コンシューマ・グループを使用すると、比率またはリソース使用の観点から相対的な優先順序を定義できます。この点に関する詳細は、『Oracle Real Application Clusters 配置およびパフォーマンス』を参照してください。

サービスの構成

サービスには、アプリケーション、アプリケーション機能およびデータの範囲が、機能サービスまたはデータ依存サービスとして記述されています。機能サービスは最も一般的なワークロードのマッピングです。特定の機能を使用する複数のセッションはまとめてグループ化されます。Oracle*Applications、ERP、CRMおよびiSupportの機能については、作業の機能的な分割が作成されます。SAP、ダイアログおよび更新の機能についても、作業の機能的な分割が作成されます。

これに対して、データ依存ルーティングは、データ・キーに基づいてセッションをサービスにルーティングします。作業要求のサービスへのマッピングは、アプリケーション・サーバーとTPモニターのオブジェクト関連マッピング・レイヤーで発生します。たとえば、RACでは、データベースが共有されているため、これらの範囲は要求に基づいて完全に動的にできます。

また、RACデータベースには、事前接続のアプリケーション・サービスを定義できます。事前接続のサービスは、複数のインスタンスにまたがって、障害時にサービスをサポートします。この事前接続のサービスは、TAF事前接続モードをサポートし、RAC使用時には透過的に管理されます。

アプリケーション・サービスに加えて、Oracle Databaseでは、2つの内部サービスもサポートされています。SYS$BACKGROUNDはバックグラウンド・プロセスのみで使用され、SYS$USERSはサービスに関連していないユーザー・セッションに対するデフォルトのサービスです。

DBMS_SERVICEパッケージを使用するか、またはSERVICE_NAMESパラメータを設定して、単一インスタンスのOracle Databaseにアプリケーション・サービスを作成します。応答時間の目標や各サービスの重要性は、後で、EMを介して個別に定義するか、またはEnterprise Managerの機能である「Copy Thresholds From a Baseline」を使用して「Manage Metrics」ページまたは「Edit Threshold」ページで定義できます。PL/SQLを使用して定義することもできます。

サービスの使用

サービスを使用するために、アプリケーション・コードを変更する必要はありません。クライアント側の作業はサービスへの接続です。サーバー側の作業は、ジョブ・スケジューラに対するジョブ・クラスの作成時にサービスを指定し、分散データベースにデータベース・リンクを指定することです。サービス下で実行される作業要求は、そのサービスのパフォーマンスしきい値を継承し、サービスの一部として測定されます。

クライアント側での使用

中間層アプリケーションおよびクライアントとサーバーのアプリケーションでは、サービスをTNS接続データ内の接続の一部として指定することで、サービスを利用します。この接続データは、Thick Netドライバ用のTNSnamesファイル内、Thinドライバ用のURL指定ファイル内にあるか、またはOracle Internet Directory内に保持されている可能性があります。たとえば、Oracle Application Server 10gのデータ・ソースは、サービスにルーティングされるように設定されています。 簡易接続ネーミングを使用している場合、この接続には、hr/hr@myDBhost/myserviceのようなホスト名とサービス名のみが必要です。また、Oracle E-Business Suiteの場合、サービスはアプリケーション・データベース識別子で保持され、ICXパラメータのCookieに保持されます。

サーバー側での使用

Oracle Scheduler、パラレル実行、Oracle Streamsアドバンスト・キューイングなどのサーバー側での作業では、ワークロード定義の一部としてサービス名を設定します。

Oracle Schedulerの場合は、ジョブ・クラスの作成時にそのジョブ・クラスで使用するサービスを定義します。実行中に複数のジョブがジョブ・クラスに割り当てられ、サービス内で複数のジョブ・クラスが実行されます。ジョブ・クラスとともにサービスを使用することで、ジョブ・スケジューラによって実行される作業が、ワークロード管理とパフォーマンス・チューニングに対して示されます。

パラレル問合せとパラレルDMLの場合、問合せコーディネータは他のクライアントと同じようにサービスに接続します。パラレル問合せプロセスは、実行中そのサービスを継承します。問合せが終了した時点で、パラレル実行プロセスはデフォルトのサービスに戻ります。

関連項目

Oracle Schedulerの詳細は、第27章「スケジューラの使用」を参照してください。 

データベースを作成した後の考慮点

データベースの作成後は、インスタンスが稼働しており、データベースがオープンしているので、通常どおりにデータベースを使用できます。必要に応じて、他の処理を実行できます。ここでは、その処理の一部について説明します。

セキュリティに関する考慮点


セキュリティ拡張に関する注意

このリリースのOracle Databaseと以降のリリースで、デフォルトのデータベース・ユーザー・アカウントのセキュリティを確保するために、セキュリティ機能が拡張されています。このリリースのセキュリティ・チェックリストは、『Oracle Databaseセキュリティ・ガイド』にあります。このチェックリストを参照し、その内容に従ってデータベースを構成してください。  


データベースを作成した後は、Oracle Identity Managementが活用できるように構成できます。 構成方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

新しく作成したデータベースには、データベースの管理にとって重要なユーザー・アカウントが少なくとも3つあります。SYSSYSTEMおよびSYSMANです。


注意

データベースへの不当なアクセスを防ぎ、データベースの整合性を保護するには、データベースの作成時に、ユーザー・アカウントSYSSYSTEMに対して新しいパスワードを指定することが重要です。パスワードを指定するには、手動でデータベースを作成するときに次のCREATE DATABASE句を指定するか、またはDBCAを使用してデータベースを作成します。

  • USER SYS IDENTIFIED BY

  • USER SYSTEM IDENTIFIED BY


認可されたユーザーのみが使用する追加の管理アカウントは、Oracle Databaseによって提供されます。これらのアカウントを、オラクル社が提供するパスワードを理解している未認可のユーザーによる使用から保護するには、それぞれのパスワードを期限切れにして最初にロックします。データベース管理者には、これらのアカウントのロック解除とリセットに関する役割があります。

表2-6に、Oracle Databaseが提供する管理アカウントを示します。使用しているデータベースに対して選択したオプションによっては、すべてのアカウントがシステムに存在していない可能性があります。

表 2-6    Oracle Databaseが提供する管理ユーザー・アカウント 
ユーザー名  パスワード  説明  関連項目 

CTXSYS 

CTXSYS 

Oracle Textのアカウント。 

『Oracle Text リファレンス』 

DBSNMP 

DBSNMP 

Oracle Enterprise ManagerのManagement Agentコンポーネントがデータベースの監視と管理に使用するアカウント。 

『Oracle Enterprise Manager 基本インストレーションおよび構成』 

LBACSYS 

LBACSYS 

Oracle Label Securityの管理者アカウント。 

『Oracle Label Security 管理者ガイド』 

MDDATA 

MDDATA 

ジオコーダとルーターのデータを保存するためにOracle Spatialで使用されるスキーマ。 

『Oracle Spatial ユーザーズ・ガイドおよびリファレンス』 

MDSYS 

MDSYS 

Oracle SpatialおよびOracle interMedia Locatorの管理者アカウント。 

『Oracle Spatial ユーザーズ・ガイドおよびリファレンス』 

DMSYS 

DMSYS 

Oracle Data Miningのアカウント。  

『Oracle Data Mining 管理者ガイド』

『Oracle Data Mining概要』 

OLAPSYS 

MANAGER 

OLAPのメタデータ構造の作成に使用するアカウント。このアカウントはOLAP Catalog(CWMLite)を所有しています。 

『Oracle OLAP アプリケーション開発者ガイド』 

ORDPLUGINS 

ORDPLUGINS 

Oracle interMediaのユーザー。このスキーマにはオラクル社が提供するプラグインとサード・パーティ形式のプラグインがインストールされています。 

『Oracle interMedia ユーザーズ・ガイド』 

ORDSYS 

ORDSYS 

Oracle interMediaの管理者アカウント。 

『Oracle interMedia ユーザーズ・ガイド』 

OUTLN 

OUTLN 

計画の安定性をサポートするアカウント。計画の安定性によって、同じSQL文に対して同じ実行計画を保持できます。OUTLNは、保存したアウトラインに関連するメタデータを集中管理するロールとして機能します。 

『Oracle Databaseパフォーマンス・チューニング・ガイド』 

SI_INFORMTN_
SCHEMA
 

SI_INFORMTN_
SCHEMA
 

SQL/MM Still Image Standardに関する情報ビューを保存するアカウント。 

『Oracle interMedia ユーザーズ・ガイド』 

SYS 

CHANGE_ON_
INSTALL
 

データベース管理タスクの実行に使用するアカウント。 

『Oracle Database管理者ガイド』 

SYSMAN 

CHANGE_ON_
INSTALL
 

Oracle Enterprise Managerのデータベース管理タスクの実行に使用するアカウント。これらのタスクは、SYSおよびSYSTEMでも実行できます。 

『Oracle Enterprise Manager 基本インストレーションおよび構成』 

SYSTEM 

MANAGER 

データベースの管理タスクの実行に使用する別のアカウント。 

『Oracle Database管理者ガイド』 

関連項目

  • ユーザーSYSおよびSYSTEMの詳細は、「DBAのユーザー名」を参照してください。

  • 新しいユーザーの追加方法とパスワードの変更方法は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • ユーザー・アカウントのロック解除に使用するALTER USER文の構文は、『Oracle Database SQLリファレンス』を参照してください。

 

透過的データの暗号化の有効化

透過的データの暗号化は、データベース列をデータファイルに格納する前に暗号化する機能です。ユーザーがオペレーティング・システムのツールを使用してデータファイル内を直接参照し、データベースのアクセス制御メカニズムを回避しようとしても、透過的データの暗号化により、このようなユーザーが機密情報を参照できないようになります。

CREATE TABLE権限を持つユーザーは、表内の1つ以上の列を選択して暗号化できます。データはデータ・ファイル内と監査ログ(監査がオンになっている場合)内で暗号化されます。適切な権限を持つデータベース・ユーザーは、暗号化されていない形式でデータを参照できます。透過的データの暗号化を有効にする方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

安全な外部パスワード・ストアの作成

アプリケーションがパスワード資格証明を使用してデータベースに接続するような大規模な配置の場合、これらの資格証明はクライアント側のOracle Walletに格納できます。Oracle Walletは、認証および署名資格証明を格納するための安全なソフトウェア・コンテナです。

クライアント側のOracle Walletにデータベースのパスワード資格証明を格納することにより、アプリケーション・コード、バッチ・ジョブまたはスクリプトにユーザー名とパスワードを組み込む必要がなくなります。そのため、スクリプトやアプリケーション・コードにパスワードを記載することによるリスクが軽減されます。また、ユーザー名とパスワードを変更するたびにコードを変更する必要がなくなるため、メンテナンスが楽になります。また、アプリケーション・コードを変更する必要がなくなるため、これらのユーザー・アカウントにパスワード管理ポリシーを規定しやすくなります。

外部パスワード・ストアを使用するようにクライアントを構成すると、アプリケーションは次の構文を使用して、パスワード認証を使用するデータベースに接続できるようになります。

CONNECT /@database_alias

このCONNECT文にはデータベースへのログイン資格証明を指定する必要はありません。かわりに、システムによってクライアント・ウォレットにあるデータベースへのログイン資格証明が検索されます。

関連項目

安全な外部パスワード・ストアを使用するようにクライアントを構成する方法、および外部パスワード・ストア内の資格証明を管理する方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。 

Oracle Databaseのサンプル・スキーマのインストール

Oracle Databaseの配布媒体には、各種のSQLファイルが格納されています。このSQLファイルでは、システムの試用、SQLの学習、追加の表、ビュー、シノニムの作成などが可能です。

Oracle Databaseには、Oracle Database機能の理解に役立つサンプル・スキーマが含まれています。Oracle Databaseに関するすべてのマニュアルと研修資料は、更新時にサンプル・スキーマ環境に変換されます。

サンプル・スキーマはデータベース・コンフィギュレーション・アシスタントによって自動的にインストールするか、手動でインストールできます。 スキーマとインストール手順の詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。

データベースに関する情報の表示

「パラメータ設定の表示」にリストしたビューの他に、次のビューを使用してデータベースの内容や構造に関する情報を参照できます。

ビュー  説明 

DATABASE_PROPERTIES 

永続的なデータベース・プロパティが表示されます。 

GLOBAL_NAME 

グローバル・データベース名が表示されます。 

V$DATABASE 

制御ファイル内のデータベース情報が表示されます。 


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引