| Oracle Database 管理者ガイド 10gリリース2(10.2) B19224-02 |
|
この章では、Oracle Databaseの作成プロセスについて説明します。この章の内容は、次のとおりです。
関連項目
Oracle Databaseは、次の3通りの方法で作成できます。
DBCAは、選択したインストール・タイプに応じてOracle Universal Installerから起動でき、GUIを使用して、データベースの作成プロセスを説明しています。また、DBCAは、Oracle Databaseのインストール後いつでも、データベースのコピー(クローン)を作成するためにスタンドアロン・ツールとして起動することもできます。 DBCAを使用したデータベースの作成方法の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
CREATE DATABASE文の使用CREATE DATABASE SQL文を使用してデータベースを作成できます。この方法で作成する場合は、実行可能なデータベースを作成する前に他の処理が必要です。この処理には、ユーザー表領域と一時表領域の作成、データ・ディクショナリ表のビューの作成、Oracle組込みパッケージのインストールなどがあります。これらの処理を実行するには、準備されたスクリプトを実行します。スクリプトの多くは管理者用に提供されています。
データベース作成用の既存のスクリプトがある場合は、Oracle Databaseの新機能を利用するために、これらのスクリプトの編集を検討してください。Oracle Databaseソフトウェア・ファイルとともにサンプル・データベース作成スクリプトとサンプル初期化パラメータ・ファイルが配布されています。どちらもニーズにあわせて編集できます。 「Oracle Databaseの手動作成」を参照してください。
旧リリースのOracle Databaseを使用している場合、完全に新しいデータベースを作成する場合のみデータベースの作成が必要になります。既存のOracle Databaseをアップグレードすると、新しいリリースのデータベース・ソフトウェアで使用できます。既存のOracle Databaseのアップグレードについては、『Oracle Databaseアップグレード・ガイド』を参照してください。
次の項では、データベースを手動で作成する方法について説明します。
この項では、データベースの計画段階と実際の作成について説明します。
データベースの作成では、いくつかのオペレーティング・システム・ファイルを準備することで、それらのファイルをOracle Databaseとしてまとめて動作できるようにします。データベースは、データ・ファイルの数やアクセスするインスタンスの数にかかわらず、一度のみ作成します。データベースの作成では、既存のデータベース内の情報を消去し、同じ名前と物理構造を持つ新規データベースを作成することもできます。
この項の内容は、次のとおりです。
データベースの作成を準備するには、調査と綿密な計画が必要です。表2-1に、推奨する処理を示します。
新しいデータベースを作成するには、次の前提条件を満たす必要があります。
各前提条件については、オペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください。Oracle Universal Installerを使用すると、表示される手順に従ってインストールでき、環境変数、ディレクトリ構造および認可の設定に関するヘルプが表示されます。
ここでは、データベースを手動で作成する際に必要な手順について説明します。これらの手順は、説明されている順序どおりに行う必要があります。前の項で説明した前提条件をすでに完了している必要があります。つまり、Oracleソフトウェアのインストール・プロセスの一部として、オペレーティング・システム固有の環境変数など、Oracle Databaseの作成環境をあらかじめ設定しておきます。
手順9: スクリプトの実行によるデータ・ディクショナリ・ビューの作成
手順10: スクリプトの実行による追加オプションのインストール(オプション)
各手順に示されている例では、サンプル・データベースmynewdbを作成しています。
|
注意
|
インスタンスは、システム・グローバル領域(SGA)とOracle Databaseのバックグラウンド・プロセスで構成されます。インスタンスに対して一意のOracleシステム識別子(SID)を決定し、環境変数ORACLE_SIDに設定します。この識別子は、後で作成してシステムで同時に実行する他のOracle Databaseインスタンスと区別するために使用されます。
UNIXオペレーティング・システム用の次の例では、手順4: インスタンスへの接続で接続するインスタンスのSIDを設定しています。
% setenv ORACLE_SID mynewdb
データベースを作成するには、作成するユーザーが認証を受け、適切なシステム権限が付与されている必要があります。認証方式には、パスワード・ファイル方式またはオペレーティング・システム方式を使用できます。DBAの認証と認可については、このマニュアルの次の項を参照してください。
Oracleインスタンスが起動すると、初期化パラメータ・ファイルが読み込まれます。このファイルは、読取り専用テキスト・ファイルか、または読取り/書込みバイナリ・ファイルです。読取り専用テキスト・ファイルは、テキスト・エディタを使用して変更します。読取り/書込みバイナリ・ファイルは、データベースにより動的に変更されたり(チューニング目的)、発行したSQLコマンドにより変更されます。バイナリ・ファイル(推奨)は、サーバー・パラメータ・ファイルと呼ばれています。この手順では、テキスト形式の初期化パラメータ・ファイルを作成します。この後の手順で、テキスト・ファイルからサーバー・パラメータ・ファイルを作成することもできます。
テキスト形式の初期化パラメータ・ファイルを作成するには、配布媒体で提供されているサンプルの初期化パラメータ・ファイルのコピーまたはこのマニュアルのサンプルを編集します。
操作を容易にするために、デフォルトのファイル名を使用して、Oracle Databaseのデフォルトの場所に初期化パラメータ・ファイルを配置します。こうすることにより、Oracle Databaseが初期化パラメータ・ファイルのデフォルトの場所を自動的に参照するため、データベースの起動時にSTARTUPコマンドのPFILE句を指定する必要がなくなります。
初期化パラメータ・ファイルの名前、場所およびサンプルの内容、初期化パラメータの設定方法の詳細は、「初期化パラメータの理解」を参照してください。
SQL*Plusを起動して、AS SYSDBAとしてOracle Databaseインスタンスに接続します。
$ SQLPLUS /nolog CONNECT SYS/password AS SYSDBA
サーバー・パラメータ・ファイルを作成することをお薦めします。サーバー・パラメータ・ファイルを使用すると、データベース・コマンドを使用して初期化パラメータを変更したり、停止と起動の後にも変更内容を保持することが可能になります。サーバー・パラメータ・ファイルは、編集したテキスト形式の初期化パラメータ・ファイルから作成します。 詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。
次のスクリプトは、テキスト初期化パラメータ・ファイルからサーバー・パラメータ・ファイルを作成し、デフォルトの場所に書き込みます。スクリプトは、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
データベースをマウントせずにインスタンスを起動します。通常、この方法で起動するのはデータベースの作成時またはメンテナンス時のみです。STARTUPコマンドで、NOMOUNT句を指定します。この例では、サーバー・パラメータ・ファイルがデフォルトの場所に配置されているため、PFILE句の指定は不要です。
STARTUP NOMOUNT
この時点で、新しいデータベースの作成に備えて、SGAが作成され、バックグラウンド・プロセスが起動します。データベース自体はまだ存在しません。
新しいデータベースを作成するには、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;
次の特性を持つデータベースが作成されます。
mynewdbという名前が付けられます。グローバル・データベース名は、mynewdb.us.oracle.comです。 「DB_NAME初期化パラメータ」および「DB_DOMAIN初期化パラメータ」を参照してください。
CONTROL_FILES初期化パラメータ(データベース作成前に初期化パラメータ・ファイルに設定)で指定された3つの制御ファイルが作成されます。 「初期化パラメータ・ファイルのサンプル」および「制御ファイルの指定」を参照してください。
SYSのパスワードはpz6r58、SYSTEMのパスワードはy1tz5pです。SYSおよびSYSTEMのパスワードを指定する2つの句は、このリリースのOracle Databaseではオプションです。ただし、指定する場合は、両方の句を指定する必要があります。 これらの句の使用方法の詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。
LOGFILE句で指定された3つのREDOログ・ファイルがあります。MAXLOGFILES、MAXLOGMEMBERSおよびMAXLOGHISTORYは、REDOログの制限を定義します。第6章「REDOログの管理」を参照してください。
MAXDATAFILESによって、このデータベースでオープンできるデータ・ファイルの最大数が指定されます。この数は、制御ファイルの初期サイズに影響を及ぼします。
MAXINSTANCESの指定により、このデータベースをマウントし、オープンできるインスタンスが1つのみに制限されます。
US7ASCIIキャラクタ・セットが使用されます。
NATIONAL CHARACTER SETとしてAL16UTF16キャラクタ・セットが指定されます。このキャラクタ・セットは、特にNCHAR、NCLOBまたはNVARCHAR2として定義された列にデータを格納する際に使用されます。
DATAFILE句で指定したとおりに、SYSTEM表領域(オペレーティング・システム・ファイル/u01/oracle/oradata/mynewdb/system01.dbfからなる)が作成されます。指定した名前のファイルがすでに存在する場合は上書きされます。
SYSTEM表領域はローカル管理になります。「ローカル管理のSYSTEM表領域の作成」を参照してください。
SYSAUX DATAFILE句で指定したとおりに、SYSAUX表領域(オペレーティング・システム・ファイル/u01/oracle/oradata/mynewdb/sysaux01.dbfからなる)が作成されます。「SYSAUX表領域の作成」を参照してください。
DEFAULT TABLESPACE句により、指定した名前で、このデータベース用のデフォルト永続表領域が作成されます。
DEFAULT TEMPORARY TABLESPACE句により、指定した名前で、このデータベース用のデフォルト一時表領域が作成されます。「デフォルト一時表領域の作成」を参照してください。
UNDO TABLESPACE句によって、UNDO表領域が指定の名前で作成されます。初期化パラメータ・ファイルでUNDO_MANAGEMENT=AUTOを指定した場合は、このデータベース用のUNDOデータがこのUNDO表領域に格納されます。「自動UNDO管理の使用: UNDO表領域の作成」を参照してください。
CREATE DATABASE文ではARCHIVELOG句が指定されていないため、初期状態ではREDOログ・ファイルはアーカイブされません。これはデータベース作成時の慣例です。後でALTER DATABASE文を使用して、ARCHIVELOGモードに切り替えることができます。mynewdbのアーカイブに関連する初期化パラメータ・ファイル内の初期化パラメータは、LOG_ARCHIVE_DEST_1およびLOG_ARCHIVE_FORMATです。第7章「アーカイブREDOログの管理」を参照してください。
関連項目
CREATE DATABASE文で指定できる句およびパラメータ値の詳細は、『Oracle Database SQLリファレンス』を参照してください。
データベースを稼働させるには、ユーザー用のファイルと表領域を追加作成する必要があります。次のサンプル・スクリプトは、追加の表領域を作成します。
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章「表領域の管理」を参照してください。
ビュー、シノニムおよびPL/SQLパッケージの作成に必要なスクリプトを実行します。
CONNECT SYS/password AS SYSDBA @/u01/oracle/rdbms/admin/catalog.sql @/u01/oracle/rdbms/admin/catproc.sql EXIT
次の表に、スクリプトの説明を示します。
| スクリプト | 説明 |
|---|---|
|
|
データ・ディクショナリ表のビュー、動的パフォーマンス・ビューおよび多くのビューに対するパブリック・シノニムを作成します。シノニムに |
|
|
PL/SQLに必要なスクリプトやPL/SQLとともに使用されるスクリプトをすべて実行します。 |
必要に応じて、他のスクリプトも実行できます。実行するスクリプトは、使用またはインストール対象として選択する機能とオプションによって異なります。 使用可能なスクリプトは、『Oracle Databaseリファレンス』を参照してください。
このデータベースとともに稼働する他のOracle製品をインストールする場合は、それらの製品のインストール指示を参照してください。製品によっては、追加のデータ・ディクショナリ表を作成する必要があります。通常は、これらの表を作成して、データベースのデータ・ディクショナリにロードするためのコマンド・ファイルが提供されます。
インストールを計画している製品のインストールと管理に関する指示は、製品固有のOracleマニュアルを参照してください。
メディア障害が発生した場合にリカバリするための完全なファイル・セットが確実に存在するように、データベースの全体バックアップを作成してください。データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。
CREATE DATABASE文を実行すると、Oracle Databaseは(最低限)いくつかの操作を実行します。実際の操作は、CREATE DATABASE文で指定した句、および初期化パラメータの設定に応じて実行されます。Oracle Databaseが最低限実行する操作は、次のとおりです。
ARCHIVELOGモードの設定
SYSTEM表領域の作成
SYSAUX表領域の作成
この項では、CREATE DATABASE文の複数の句について説明します。 これには、「手順7: CREATE DATABASE文の発行」で説明した句と、その他の句が含まれます。ここで説明するCREATE DATABASEの句の多くは、データベースの作成と管理を簡素化するために使用できます。
この項の内容は、次のとおりです。
CREATE DATABASE文でユーザーSYSおよびSYSTEMのパスワード指定に使用する句は、次のとおりです。
これらの句を省略すると、これらのユーザーにはそれぞれデフォルトのパスワードchange_on_installおよびmanagerが割り当てられます。デフォルトのパスワードが使用された場合は、そのことを示すレコードがアラート・ログに書き込まれます。データベースを保護するには、データベース作成直後にALTER USER文を使用して、これらのパスワードを変更する必要があります。
これらの句は、このリリースのOracle Databaseではオプションですが、指定することをお薦めします。デフォルトのパスワードは一般に知られており、後で変更するのを怠ると、データベースを悪意のユーザーによる攻撃にさらすことになります。
CREATE DATABASE文にEXTENT MANAGEMENT LOCAL句を指定し、ローカル管理のSYSTEM表領域を作成します。この文を正常に実行するには、COMPATIBLE初期化パラメータを9.2以上に設定する必要があります。EXTENT MANAGEMENT LOCAL句を指定しない場合は、デフォルトでディクショナリ管理のSYSTEM表領域が作成されます。ディクショナリ管理表領域は廃止されました。
ローカル管理のSYSTEM表領域は、デフォルトでAUTOALLOCATEが使用可能な状態で作成されます。これは、エクステント数とエクステント・サイズがシステムによって判断および制御されることを示します。ローカル管理のSYSTEM表領域では、自動割当てポリシーのため、作成されるオブジェクトの初期サイズが大きくなる場合があります。ローカル管理のSYSTEM表領域を作成する場合に、UNIFORMエクステント・サイズを指定することはできません。
ローカル管理のSYSTEM表領域を指定してデータベースを作成する場合は、次の条件が満たされているかどうかを確認してください。
SYSTEM表領域にしないこと。 この条件を満たすために、CREATE DATABASE文にDEFAULT TEMPORARY TABLESPACE句を指定できます。この句を省略すると、Oracle Databaseによって、デフォルトの名前を使用してデフォルトの位置に表領域が自動的に作成されます。
CREATE DATABASE文にUNDO TABLESPACE句を使用すると、特定のUNDO表領域を作成できます。この句を省略すると、デフォルトの名前を使用してデフォルトの位置に、Oracle Databaseによってローカル管理のUNDO表領域が自動的に作成されます。
関連項目
SYSTEM表領域に対してEXTENT MANAGEMENT LOCALを指定する場合のDEFAULT TEMPORARY TABLESPACEおよびUNDO TABLESPACE句の使用の詳細は、『Oracle Database SQLリファレンス』を参照してください。
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表領域と同じです。
表2-2に、インストール時のデフォルト表領域としてSYSAUX表領域を使用するコンポーネント、および以前のリリースでそのコンポーネントが格納されていた表領域を示します。
これらのコンポーネントのインストール手順では、SYSAUX表領域に関する占有性を設定する手段が提供されます。
自動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文でDEFAULT TEMPORARY TABLESPACE句を指定すると、データベースにデフォルトの一時表領域が作成されます。Oracle Databaseは、この表領域を、一時表領域が明示的に割り当てられていないユーザーに対して一時表領域として割り当てます。
一時表領域または表領域グループは、CREATE USER文で明示的にユーザーに割り当てることができます。しかし、明示的に割り当てない場合は、データベースにデフォルトの一時表領域が指定されていないと、これらのユーザーには、デフォルトで、一時表領域としてSYSTEM表領域が割り当てられます。一時データをSYSTEM表領域に格納するのはよい方法ではなく、各ユーザーを個別に一時表領域に割り当てる方法は効率的ではありません。したがって、CREATE DATABASEのDEFAULT TEMPORARY TABLESPACE句の使用をお薦めします。
|
注意
ローカル管理の |
デフォルトの一時表領域は、データベース作成後に追加または変更できます。これを行うには、CREATE TEMPORARY TABLESPACE文で新しい一時表領域または表領域グループを作成し、その後ALTER DATABASE DEFAULT TEMPORARY TABLESPACE文を使用して、作成した一時表領域を割り当てます。ユーザーの一時表領域は自動的に新しいデフォルト一時表領域に切り替えられます(または割り当てられます)。
次の文は、新しいデフォルト一時表領域を割り当てます。
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tempts2;
新しいデフォルト一時表領域がすでに存在している必要があります。ローカル管理のSYSTEM表領域を使用している場合は、新しいデフォルト一時表領域もローカル管理にする必要があります。
デフォルト一時表領域は削除またはオフライン化できませんが、新しいデフォルト一時表領域を割り当てた後で、古いほうの一時表領域を削除またはオフライン化することは可能です。デフォルト一時表領域を永続表領域に変更することはできません。
現行のデフォルト一時表領域の名前を取得するには、DATABASE_PROPERTIESビューのPROPERTY_NAME列とPROPERTY_VALUE列を問い合せます。これらの列には、「DEFAULT_TEMP_TABLESPACE」という値とデフォルト一時表領域の名前がそれぞれ表示されます。
|
関連項目
|
Oracle Managed Files機能を使用すると、CREATE DATABASE文に指定する句とパラメータの数を最小限に抑えることができます。この機能を使用するには、Oracle Databaseによって作成および管理されるファイルのディレクトリを指定するか、または自動ストレージ管理を使用します。自動ストレージ管理を使用する場合は、データベースによってファイルが作成および管理されるディスク・グループを、ファイルの冗長性とストライプ化も含めて指定します。
初期化パラメータ・ファイルにDB_CREATE_FILE_DEST、DB_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;
DATAFILE句が指定されていないため、Oracle Managed FilesのSYSTEM表領域用のデータ・ファイルが作成されます。
LOGFILE句が指定されていないため、Oracleが管理するREDOログ・ファイルのグループが2つ作成されます。
SYSAUX DATAFILEが指定されていないため、Oracle Managed FilesのSYSAUX表領域用のデータ・ファイルが作成されます。
UNDO TABLESPACE句にDATAFILE副次句が指定されていないため、Oracle Managed FilesのUNDO表領域用のデータ・ファイルが作成されます。
DEFAULT TEMPORARY TABLESPACE句にTEMPFILE副次句が指定されていないため、Oracle Managed Filesのテンポラリ・ファイルが作成されます。
CONTROL_FILES初期化パラメータが指定されていない場合は、Oracle Managed Filesの制御ファイルも作成されます。
関連項目
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ホーム・ディレクトリには、次の2つのタイムゾーン・ファイルがあります。デフォルトのタイムゾーン・ファイルは、$ORACLE_HOME/oracore/zoneinfo/timezonelrg.datです。より小さいタイムゾーン・ファイル$ORACLE_HOME/oracore/zoneinfo/timezone.datがあります。
すでに小さいタイムゾーン・ファイルを使用していてOracle Database 10g環境でも引き続き使用する場合や、デフォルトのタイムゾーン・ファイルから小さいタイムゾーン・ファイルに変更する場合は、次のタスクを実行します。
すでにデフォルトのタイムゾーン・ファイルを使用している場合、データベースのデータに小さいタイムゾーン・ファイルにはないタイムゾーンが使用されている可能性があるため、小さいタイムゾーン・ファイルに変更するのは実用的ではありません。
情報を共有しているすべてのデータベースが同じタイムゾーン・データファイルを使用する必要があります。
タイムゾーン・ファイルには有効なタイムゾーン名が含まれています。また、各タイムゾーンには次の情報も含まれています。
ファイル内で、データベースで使用されているタイムゾーン名を表示するには、次の問合せを実行します。
SELECT * FROM V$TIMEZONE_NAMES;
一部のデータ定義言語文(CREATE TABLEなど)では、NOLOGGING句を使用できますが、ある種のデータベース操作ではデータベースREDOログにREDOレコードが生成されません。NOLOGGING句を設定すると、データベース・リカバリ・メカニズム外で容易にリカバリできる操作は高速化されますが、メディア・リカバリとスタンバイ・データベースに悪影響を与える可能性があります。
Oracle Databaseでは、DDL文にNOLOGGINGが指定されていても、REDOレコードを強制的に書き込ませることができます。データベースでは、一時表領域と一時セグメントのREDOレコードは生成されないため、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モードは、ある程度のパフォーマンスの低下を伴います。主として完全メディア・リカバリを確実に行うためにFORCE LOGGINGを指定し、アクティブになっているスタンバイ・データベースがない場合は、次の点を考慮する必要があります。
データベースがNOARCHIVELOGモードで稼働している場合、通常はFORCE LOGGINGモードにする利点はありません。NOARCHIVELOGモードではメディア・リカバリが不可能であるため、FORCE LOGGINGと組み合せて使用する場合は、ほとんど利点がなく、パフォーマンスが低下する可能性があります。
Oracleインスタンスが起動すると、初期化パラメータ・ファイルから初期化パラメータが読み込まれます。このファイルは、読取り専用テキスト・ファイルまたは読取り/書込みバイナリ・ファイルのどちらかです。バイナリ・ファイルはサーバー・パラメータ・ファイルと呼ばれ、常にサーバー上に存在します。サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更したり、停止と起動の後にも変更内容を保持することが可能になります。また、Oracle Databaseサーバーによる自己チューニングの基礎ともなります。これらの理由により、サーバー・パラメータ・ファイルを使用することをお薦めします。サーバー・パラメータ・ファイルは、編集したテキスト形式の初期化パラメータ・ファイルから作成したり、データベース・コンフィギュレーション・アシスタントを使用して作成することが可能です。
サーバー・パラメータ・ファイルを作成する前に、テキスト形式の初期化パラメータ・ファイルを使用してインスタンスを起動できます。起動時には、Oracleインスタンスは最初にデフォルトの場所にあるサーバー・パラメータ・ファイルを検索します。この場所にない場合は、テキスト形式の初期化パラメータ・ファイルを検索します。STARTUPコマンドの引数にテキスト形式の初期化パラメータ・ファイルの名前を指定して、既存のサーバー・パラメータ・ファイルを上書きすることもできます。
サーバー・パラメータ・ファイルの詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。 STARTUPコマンドの詳細は、「初期化パラメータ・ファイルの理解」を参照してください。
テキスト形式の初期化パラメータ・ファイルのデフォルトのファイル名と場所は、次の表のとおりです。
次に、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初期化パラメータを変更し、制御ファイルを再作成した後に、データベースを停止して再起動する必要があります。
DB_NAMEには、8文字以内のテキスト文字列を設定する必要があります。DB_NAMEに指定した名前は、データベースの作成時に、データベースのデータ・ファイル、REDOログ・ファイルおよび制御ファイルに記録されます。データベース・インスタンスの起動時に、パラメータ・ファイル内のDB_NAMEパラメータの値と制御ファイル内のデータベース名が一致しないと、データベースは起動しません。
DB_DOMAINは、データベースが作成されるネットワーク・ドメインを指定するテキスト文字列です。通常、これはデータベースを所有する組織の名前です。作成しようとしているデータベースが分散データベース・システムの一部である場合は、データベースを作成する前に、この初期化パラメータに特に注意してください。
フラッシュ・リカバリ領域は、Oracle Databaseでバックアップおよびリカバリに関連するファイルを格納および管理できる位置です。この領域は、Oracle Managed Filesの現行のデータベース・ファイル(データ・ファイル、制御ファイルおよびオンラインREDOログ)用の位置であるデータベース領域とは異なります。
フラッシュ・リカバリ領域を指定するには、次の初期化パラメータを使用します。
DB_RECOVERY_FILE_DEST: フラッシュ・リカバリ領域の位置。ディレクトリ、ファイル・システムまたは自動ストレージ管理(ASM)のディスク・グループです。RAWファイル・システムにはできません。RAC環境では、この位置はクラスタ・ファイル・システム、ASMディスク・グループ、またはNFSを介して構成された共有ディレクトリであることが必要です。
DB_RECOVERY_FILE_DEST_SIZE: フラッシュ・リカバリ領域で使用される最大総バイト数を指定します。この初期化パラメータは、DB_RECOVERY_FILE_DESTを使用可能にする前に指定する必要があります。
RAC環境では、これら2つのパラメータの設定がすべてのインスタンスで同じであることが必要です。
これらのパラメータは、LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータの値を設定している場合は使用可能にできません。フラッシュ・リカバリ領域を設定する前に、これらのパラメータを使用禁止にする必要があります。かわりに、LOG_ARCHIVE_DEST_nパラメータの値を設定できます。ローカルのLOG_ARCHIVE_DEST_nに値を設定しない場合は、フラッシュ・リカバリ領域を設定すると、そのフラッシュ・リカバリ領域にLOG_ARCHIVE_DEST_10が暗黙的に設定されます。
フラッシュ・リカバリ領域によってデータベースのバックアップ操作およびリカバリ操作が簡素化されるため、この領域を使用することをお薦めします。
CONTROL_FILES初期化パラメータでは、データベースに対して1つ以上の制御ファイル名を指定します。CREATE DATABASE文を実行すると、CONTROL_FILESパラメータに記述した制御ファイルが作成されます。
初期化パラメータ・ファイルにCONTROL_FILESが含まれていない場合は、オペレーティング・システム固有のデフォルト・ファイル名を使用して制御ファイルが作成されるか、またはOracle Managed Filesを使用可能にしている場合はOracle Managed Filesの制御ファイルが作成されます。
データベース用の制御ファイルを作成するときに新しいオペレーティング・システム・ファイルを作成する場合は、CONTROL_FILESパラメータに記述されているファイル名が現在のシステム上に存在するいずれのファイル名とも一致しないことを確認してください。データベース用の制御ファイルを作成するときに既存のファイルを再利用または上書きする場合は、CONTROL_FILESパラメータに記述されているファイル名が、現在のシステム上に存在するファイル名と一致することを確認してください。
データベースごとに、少なくとも2つの制御ファイルを別々の物理ディスク・ドライブに格納して使用することをお薦めします。
データベースの標準ブロック・サイズは、DB_BLOCK_SIZE初期化パラメータで指定します。標準ブロック・サイズはSYSTEM表領域で使用され、その他の表領域ではデフォルトとして使用されます。Oracle Databaseは、最大4つの非標準ブロック・サイズをサポートします。
標準ブロック・サイズには、最も一般的に使用するブロック・サイズを選択します。多くの場合、設定が必要なブロック・サイズは標準ブロック・サイズのみです。通常、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_MAX_SIZE以外の初期化パラメータは、ALTER SYSTEM文で値を変更できる動的なパラメータです。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_MAX_SIZE初期化パラメータによって決まります。バッファ・キャッシュ、共有プール、ラージ・プール、JavaプールおよびStreamsプールのサイズに影響を与える初期化パラメータは動的に変更できますが、これらのサイズとSGAの他のコンポーネント(固定SGA、可変SGAおよびREDOログ・バッファ)のサイズとの合計が、SGA_MAX_SIZEで指定された値を超えるような変更はできません。
SGA_MAX_SIZEが指定されていない場合は、初期化時に指定またはデフォルト設定されたコンポーネントすべての合計がデフォルト値として設定されます。SGA_MAX_SIZEに指定した値が、データベースの初期化時に、すべてのコンポーネントに対してパラメータ・ファイルで明示的にまたはデフォルトで割り当てたメモリーの合計より少ない場合、SGA_MAX_SIZEの設定は無視されます。
共有メモリーの自動管理機能を使用可能にするには、SGA_TARGETパラメータを0(ゼロ)以外の値に設定します。このパラメータは、個々のコンポーネントの特定のセットに対して割り当てられるメモリーを制御するパラメータを置換します。これらのメモリーは、現在、自動的かつ動的にサイズ変更(チューニング)されるようになっています。
SGA_TARGET初期化パラメータには、SGAの合計サイズが反映されます。表2-3に、SGA_TARGETにメモリーが含まれるSGAコンポーネント(自動サイズ設定SGAコンポーネント)と、コンポーネントに対応する初期化パラメータを示します。
| SGAコンポーネント | 初期化パラメータ |
|---|---|
|
固定SGAおよびOracle Databaseインスタンスに必要なその他の内部割当て |
N/A |
|
共有プール |
|
|
ラージ・プール |
|
|
Javaプール |
|
|
バッファ・キャッシュ |
|
|
Streamsプール |
|
表2-4にリストされているパラメータは、設定された場合、SGA_TARGETからメモリーを取得しますが、表2-3にリストされたコンポーネントに使用されるメモリーは残されます。
| SGAコンポーネント | 初期化パラメータ |
|---|---|
|
ログ・バッファ |
|
|
KEEPバッファ・キャッシュおよびRECYCLEバッファ・キャッシュ |
|
|
非標準ブロック・サイズ・バッファ・キャッシュ |
|
SGA_TARGETを0(ゼロ)以外の値に設定する他に、すべての自動サイズ設定SGAコンポーネントの値を0(ゼロ)に設定して、これらのコンポーネントの完全な自動チューニングを有効にする必要があります。
また、1つ以上の自動サイズ設定SGAコンポーネントの値を0(ゼロ)以外に設定することもできます。これにより、SGAのチューニング時にこの値がこのコンポーネントの最小設定として使用されます。この操作については、この項の後半を参照してください。
V$SGA_TARGET_ADVICEビューには、SGA_TARGETの値を決定する際に役立つ情報が表示されます。 詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
共有メモリーの自動管理を有効化するには、次の手順を実行します。
SGA_TARGETの値を取得します。
SELECT ( (SELECT SUM(value) FROM V$SGA) - (SELECT CURRENT_SIZE FROM V$SGA_DYNAMIC_FREE_MEMORY) ) "SGA_TARGET" FROM DUAL;
SGA_TARGETの値を設定します。
ALTER SYSTEM SET SGA_TARGET=value [SCOPE={SPFILE|MEMORY|BOTH}]
この場合、valueは、手順1で計算した値か、すべてのSGAコンポーネントのサイズ合計とSGA_MAX_SIZEの間の値です。 SCOPE句の詳細は、「ALTER SYSTEMを使用した初期化パラメータ値の変更」を参照してください。
ALTER SYSTEM文を発行します。
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領域の最小量を指定するには、対応する初期化パラメータの値を設定します。次に、構成例を示します。
この例の共有プールとデフォルト・バッファ・プールは、指定値(それぞれ32Mおよび100M)より小さい値にはサイズ設定されません。残りの124M(256 - 132)が、すべての手動および自動サイズ設定コンポーネントによって使用可能です。
SGAコンポーネント間の実際の配分値は、次のようになります。
パラメータ値によって、割り当てられるSGA領域の最小量が決定します。固定ビューV$SGA_DYNAMIC_COMPONENTSおよびV$SGAINFOには、各SGAコンポーネントの現行の実際サイズが表示されます。SGAコンポーネントの現行の実際値は、Oracle Enterprise Managerのメモリー構成ページでも参照できます。
1つ以上の自動サイズ設定コンポーネントの最小サイズを手動で制限すると、動的な調整に使用されるメモリーの合計量が減少します。この量が減少すると、システムがワークロードの変動に適応するシステムの機能が次々に制限されます。したがって、この方法は特別な場合を除いてお薦めしません。デフォルトの自動管理は、システム・パフォーマンスおよび使用可能なリソースの使用が最大になるように動作します。
共有メモリーの自動管理機能を使用可能にすると、内部チューニング・アルゴリズムにより、ワークロードに基づいて共有プールの最適サイズが決定されるようになります。通常、値を少しずつ徐々に増加することにより、この値に収束していきます。内部チューニング・アルゴリズムでは、通常、共有プールは縮小されません。これは、共有プール内にオープン・カーソルや確保されたPL/SQLパッケージおよびその他のSQL実行状態が存在することにより、解放可能なグラニュルを見つけることができないためです。このため、内部チューニング・アルゴリズムでは、共有プールの控えめな増分のみが行われます。まず、控えめなサイズから開始し、パフォーマンスが最適になったサイズで共有プールを安定させます。
SGA_TARGETの値、および個々のコンポーネントを動的に制御するパラメータを変更するには、ALTER SYSTEM文を使用します。詳細は、「ALTER SYSTEMを使用した初期化パラメータ値の変更」を参照してください。
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_TARGETをSGA_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が設定されていない場合、共有メモリーの自動管理機能は使用できません。したがって、すべてのコンポーネント・パラメータのサイズ変更に関するルールは以前のリリースの場合と同じです。ただし、共有メモリーの自動管理が有効な場合は、自動的にサイズ変更したコンポーネントについて手動で指定したサイズが、そのコンポーネントの下限のサイズとして機能します。この制限は、対応するパラメータの値を変更することで動的に変更できます。
特定の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_BLOCK_BUFFERS初期化パラメータが置換されました。DB_CACHE_SIZEパラメータは、標準ブロック・サイズ・バッファのキャッシュ・サイズをバイト単位で指定します。したがって、DB_CACHE_SIZEの値を指定するには、必要なバッファの数を決定し、その値にDB_BLOCK_SIZEに指定したブロック・サイズを乗算します。
下位互換性を維持するため、DB_BLOCK_BUFFERSパラメータはまだ機能しますが、これは静的パラメータのままであり、動的なサイズ設定パラメータと組み合せることはできません。
非標準のブロック・サイズ・バッファのサイズおよび数は、次の初期化パラメータによって指定します。
各パラメータは、対応するブロック・サイズのバッファ・キャッシュ・サイズを指定します。 次に例を示します。
DB_BLOCK_SIZE=4096 DB_CACHE_SIZE=12M DB_2K_CACHE_SIZE=8M DB_8K_CACHE_SIZE=4M
この例では、パラメータによりデータベースの標準ブロック・サイズが4KBに指定されています。標準ブロック・サイズ・バッファのキャッシュ・サイズは12MBです。また、2KBおよび8KBのキャッシュ・サイズがそれぞれ8MBと4MBで構成されます。
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_POOL_SIZE初期化パラメータは、SGAのコンポーネントであるJavaプールのサイズを指定または調整する動的なパラメータです。Oracle Databaseによって、適切なデフォルト値が選択されます。 Javaプールの構成方法は、『Oracle Database Java 開発者ガイド』を参照してください。
STREAMS_POOL_SIZE初期化パラメータは、SGAのコンポーネントであるStreamsプールのサイズを指定または調整する動的なパラメータです。STREAMS_POOL_SIZEが0(ゼロ)に設定されている場合、Oracle Streams製品では、メモリーが必要時にバッファ・キャッシュからStreamsプールに転送されます。 詳細は、『Oracle Streams概要および管理』のStreamsプールを参照してください。
次のビューで、SGAコンポーネントとその動的サイズ変更に関する情報を提供します。
Oracle Databaseに同時に接続できるオペレーティング・システム・プロセスの最大数は、PROCESSES初期化パラメータによって決定します。このパラメータの値は、最低でも各バックグラウンド・プロセスごとに1つ、および各ユーザー・プロセスごとに1つです。バックグラウンド・プロセスの数は、使用しているデータベースの機能によって異なります。たとえば、アドバンスト・キューイングまたはファイル・マッピング機能を使用している場合は、追加のバックグラウンド・プロセスが必要です。自動ストレージ管理を使用している場合は、追加プロセスを3つ追加します。
50のユーザー・プロセスを実行する予定の場合は、PROCESSES初期化パラメータの値を70に設定するように見積もることをお薦めします。
すべてのOracle Databaseには、データベースの変更を取り消すために使用する情報の管理方法が必要です。これらの情報は、主にコミットされる前のトランザクションの処理レコードから構成されます。これらのレコードを総称してUNDOデータと呼びます。この項では、UNDO表領域を使用する自動UNDO管理用の環境を設定する方法について説明します。
UNDO_MANAGEMENT初期化パラメータは、インスタンスを自動UNDO管理モード(UNDOがUNDO表領域に格納されます)で起動するかどうかを指定します。デフォルトでは、このパラメータはMANUALに設定されます。自動UNDO管理モードを使用可能にするには、このパラメータをAUTOに設定します。
インスタンスを自動UNDO管理モードで起動すると、そのインスタンスは、UNDOデータを格納するためのUNDO表領域を選択しようとします。データベースがUNDO管理モードで作成されている場合は、デフォルトのUNDO表領域(システム生成のSYS_UNDOTS表領域またはユーザー指定のUNDO表領域)が、インスタンス起動時に使用されるUNDO表領域となります。インスタンスに対するこのデフォルトは、UNDO_TABLESPACE初期化パラメータに値を指定することで上書きできます。このパラメータは特に、Oracle Real Application Clusters環境のインスタンスに特定のUNDO表領域を割り当てる際に役立ちます。
UNDO表領域が、データベースの作成時またはUNDO_TABLESPACE初期化パラメータによって指定されなかった場合、データベース内で最初に使用可能なUNDO表領域が選択されます。使用可能なUNDO表領域がない場合、インスタンスはUNDO表領域なしで起動します。このようなモードでは実行しないようにしてください。
COMPATIBLE初期化パラメータによって、ディスクのファイル形式に影響を与える機能の使用をデータベースで使用可能または使用不可にできます。たとえば、Oracle Database 10gデータベースを作成した場合でも、初期化パラメータ・ファイルにCOMPATIBLE = 9.2.0.2を指定すると、10.0との互換性が必要な機能を使用しようとするとエラーが発生します。これは、データベースが9.2.0.2互換性レベルにあるとみなされているためです。
データベースの互換性レベルを上げることができます。COMPATIBLE初期化パラメータを使用してデータベースの互換性を上げた場合、下位の互換性レベルの設定を使用してデータベースを起動する方法はありません。ただし、互換性を上げる前の時点にPoint-in-Timeリカバリすることはできます。
COMPATIBLEパラメータのデフォルト値は、主要な最新リリースの番号です。
指名ユーザー・ライセンスを使用している場合、Oracle Databaseではこの形式のライセンスを施行できます。データベース内に作成するユーザーの数に対して、制限を設定できます。この制限に達すると、それ以上のユーザーは作成できません。
データベースに作成するユーザー数を制限するには、次の例に示すように、そのデータベースの初期化パラメータ・ファイルに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句を指定する必要があります。 サーバー・パラメータ・ファイルを使用してインスタンスを起動する方法の詳細は、「データベースの起動」を参照してください。
現在、テキスト形式の初期化パラメータ・ファイルを使用している場合は、次の手順に従ってサーバー・パラメータ・ファイルに移行します。
CREATE SPFILE文を使用して、サーバー・パラメータ・ファイルを作成します。この文を実行すると、初期化パラメータ・ファイルが読み込まれて、サーバー・パラメータ・ファイルが作成されます。CREATE SPFILE文を発行するために、データベースを起動する必要はありません。
CREATE SPFILE文を使用すると、テキスト形式の初期化パラメータ・ファイルからサーバー・パラメータ・ファイルを作成できます。この文を実行するには、SYSDBAまたはSYSOPERシステム権限が必要です。
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デバイスの場合、デフォルトの名前は論理ボリュームまたはパーティション・デバイスの名前となり、デフォルトの場所も異なります。
| プラットフォーム | デフォルト名 | デフォルトの場所 |
|---|---|---|
|
UNIXとLinux |
|
|
|
Windows |
|
|
サーバー・パラメータ・ファイルをデフォルト以外の場所に作成した場合、サーバー・パラメータ・ファイルを指し示すテキスト形式の初期化パラメータ・ファイルを作成する必要があります。 詳細は、「データベースの起動」を参照してください。
SPFILE初期化パラメータには、現在のサーバー・パラメータ・ファイルの名前を指定します。サーバーでデフォルトのサーバー・パラメータ・ファイルが使用されている場合(つまり、PFILEを指定せずにSTARTUPコマンドを発行した場合)、SPFILEの値はサーバーによって内部的に設定されます。SQL*PlusコマンドのSHOW PARAMETERS SPFILE(またはパラメータの値を問い合せる他の方法)を使用すると、現在使用中のサーバー・パラメータ・ファイルの名前が表示されます。
ALTER SYSTEM文を使用すると、初期化パラメータ値を設定、変更またはデフォルトにリストアできます。テキスト形式の初期化パラメータ・ファイルを使用している場合、現行のインスタンスに対するパラメータの値のみALTER SYSTEM文で変更されます。これは、ディスク上の初期化パラメータを自動的に更新するメカニズムがないためです。以後のインスタンスに渡すためには、ディスク上の初期化パラメータを手動で更新する必要があります。サーバー・パラメータ・ファイルを使用している場合は、このような制限はありません。
初期化パラメータ値を設定または変更するには、ALTER SYSTEM文でSET句を指定します。また、次の表のように、変更の適用範囲を指定する場合は、オプションのSCOPE句を指定します。
| SCOPE句 | 説明 |
|---|---|
|
|
サーバー・パラメータ・ファイルのみに変更が適用されます。次のような効果があります。 |
|
|
メモリーのみに変更が適用されます。次のような効果があります。 |
|
|
サーバー・パラメータ・ファイルとメモリーの両方に変更が適用されます。次のような効果があります。 |
サーバーがサーバー・パラメータ・ファイルを使用していない場合にSCOPE=SPFILEまたはSCOPE=BOTHを指定すると、エラーが発生します。デフォルトは、インスタンス起動時にサーバー・パラメータ・ファイルを使用した場合はSCOPE=BOTH、テキスト形式の初期化パラメータ・ファイルを使用した場合はMEMORYになります。
動的パラメータの場合は、DEFERREDキーワードを指定することもできます。このキーワードを指定すると、これから確立するセッションでのみ変更が有効になります。
オプションのCOMMENT句を使用すると、パラメータの更新にテキスト文字列を対応付けることができます。SCOPEをSPFILEまたは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文を使用すると、サーバー・パラメータ・ファイルをテキスト形式の初期化パラメータ・ファイルにエクスポートできます。このエクスポートは、次のような場合に必要になる場合があります。
SHOW PARAMETERSコマンド、あるいはV$PARAMETERまたはV$PARAMETER2ビューの選択と同じです。
CREATE SPFILE文を使用して再作成するという手順で、サーバー・パラメータ・ファイルを変更する場合。
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 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にレポートされるため、自動ソリューションまたはスケジュールされたソリューションを実行できます。
Oracle Database 10gのサービスは、インストールでデータベース内に構成され、一意のグローバル名、関連するパフォーマンス目標および関連する重要性が各サービスに与えられます。これらのサービスは、Oracle Databaseと緊密に統合され、データ・ディクショナリに保持されます。サービス情報は、次のサービス固有のビューで参照できます。
DBA_SERVICES
ALL_SERVICESまたはV$SERVICES
V$ACTIVE_SERVICES
V$SERVICE_STATS
V$SERVICE_EVENTS
V$SERVICE_WAIT_CLASSES
V$SERV_MOD_ACT_STATS
V$SERVICE_METRICS
V$SERVICE_METRICS_HISTORY
次の追加ビューにも、サービスに関する情報が表示されます。
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 Identity Managementが活用できるように構成できます。 構成方法の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
新しく作成したデータベースには、データベースの管理にとって重要なユーザー・アカウントが少なくとも3つあります。SYS、SYSTEMおよびSYSMANです。
認可されたユーザーのみが使用する追加の管理アカウントは、Oracle Databaseによって提供されます。これらのアカウントを、オラクル社が提供するパスワードを理解している未認可のユーザーによる使用から保護するには、それぞれのパスワードを期限切れにして最初にロックします。データベース管理者には、これらのアカウントのロック解除とリセットに関する役割があります。
表2-6に、Oracle Databaseが提供する管理アカウントを示します。使用しているデータベースに対して選択したオプションによっては、すべてのアカウントがシステムに存在していない可能性があります。
|
関連項目
|
透過的データの暗号化は、データベース列をデータファイルに格納する前に暗号化する機能です。ユーザーがオペレーティング・システムのツールを使用してデータファイル内を直接参照し、データベースのアクセス制御メカニズムを回避しようとしても、透過的データの暗号化により、このようなユーザーが機密情報を参照できないようになります。
CREATE TABLE権限を持つユーザーは、表内の1つ以上の列を選択して暗号化できます。データはデータ・ファイル内と監査ログ(監査がオンになっている場合)内で暗号化されます。適切な権限を持つデータベース・ユーザーは、暗号化されていない形式でデータを参照できます。透過的データの暗号化を有効にする方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
アプリケーションがパスワード資格証明を使用してデータベースに接続するような大規模な配置の場合、これらの資格証明はクライアント側のOracle Walletに格納できます。Oracle Walletは、認証および署名資格証明を格納するための安全なソフトウェア・コンテナです。
クライアント側のOracle Walletにデータベースのパスワード資格証明を格納することにより、アプリケーション・コード、バッチ・ジョブまたはスクリプトにユーザー名とパスワードを組み込む必要がなくなります。そのため、スクリプトやアプリケーション・コードにパスワードを記載することによるリスクが軽減されます。また、ユーザー名とパスワードを変更するたびにコードを変更する必要がなくなるため、メンテナンスが楽になります。また、アプリケーション・コードを変更する必要がなくなるため、これらのユーザー・アカウントにパスワード管理ポリシーを規定しやすくなります。
外部パスワード・ストアを使用するようにクライアントを構成すると、アプリケーションは次の構文を使用して、パスワード認証を使用するデータベースに接続できるようになります。
CONNECT /@database_alias
このCONNECT文にはデータベースへのログイン資格証明を指定する必要はありません。かわりに、システムによってクライアント・ウォレットにあるデータベースへのログイン資格証明が検索されます。
Oracle Databaseの配布媒体には、各種のSQLファイルが格納されています。このSQLファイルでは、システムの試用、SQLの学習、追加の表、ビュー、シノニムの作成などが可能です。
Oracle Databaseには、Oracle Database機能の理解に役立つサンプル・スキーマが含まれています。Oracle Databaseに関するすべてのマニュアルと研修資料は、更新時にサンプル・スキーマ環境に変換されます。
サンプル・スキーマはデータベース・コンフィギュレーション・アシスタントによって自動的にインストールするか、手動でインストールできます。 スキーマとインストール手順の詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
「パラメータ設定の表示」にリストしたビューの他に、次のビューを使用してデータベースの内容や構造に関する情報を参照できます。
| ビュー | 説明 |
|---|---|
|
|
永続的なデータベース・プロパティが表示されます。 |
|
|
グローバル・データベース名が表示されます。 |
|
|
制御ファイル内のデータベース情報が表示されます。 |
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|