|
関連項目:
|
この項で説明されているガイドラインの一部を使用してデータベースを計画した後、グラフィカル・ツールまたはSQLコマンドを使用してデータベースを作成できます。通常は、Oracle Databaseソフトウェアのインストール時にデータベースを作成します。ただし、インストール後にもデータベースを作成できます。インストール後にデータベースを作成する理由には、次のものがあります。
Oracle Universal Installer(OUI)を使用してソフトウェアのみをインストールして、データベースを作成しなかったため。
既存のOracle Databaseと同じホスト・コンピュータに別のデータベース(およびデータベース・インスタンス)を作成するため。この場合、この章では、新しいデータベースが既存のデータベースと同じOracleホームを使用すると仮定します。OUIを再度実行すれば、新しいOracleホームにデータベースを作成することもできます。
データベースのコピー(クローン)を作成するため。
データベースを作成する具体的な方法には、次の方法があります。
Database Configuration Assistant(DBCA)グラフィカル・ツールを使用。
「DBCAを使用したデータベースの作成」を参照してください。
CREATE DATABASE SQL文を使用
「CREATE DATABASE文を使用したデータベースの作成」を参照してください。
データベースの作成では、いくつかのオペレーティング・システム・ファイルを準備することで、それらのファイルをOracle Databaseとしてまとめて動作できるようにします。データベースは、データファイルの数やアクセスするインスタンスの数にかかわらず、1回のみ作成します。データベースの作成では、既存のデータベース内の情報を消去し、同じ名前と物理構造を持つ新規データベースを作成することもできます。
この項の内容は、次のとおりです。
データベースの作成を準備するには、調査と綿密な計画が必要です。表2-1に、推奨する処理を示します。
表2-1 データベース計画タスク
| アクション | 追加情報 |
|---|---|
|
データベース表と索引を計画し、それらが必要とする領域を見積ります。 |
|
|
データベースを構成する基礎となるオペレーティング・システム・ファイルのレイアウトを計画します。ファイルを適切に分散すると、ファイル・アクセス時のI/Oが分散されるため、データベースのパフォーマンスを大幅に向上できます。Oracleソフトウェアをインストールしてデータベースを作成するときにI/Oを分散させるには、いくつかの方法があります。たとえば、REDOログ・ファイルを異なるディスクに配置したり、ストライプ化を使用できます。競合が少なくなるようにデータファイルを配置できます。また、データの密度(データ・ブロック当たりの行数)を制御できます。高速リカバリ領域を作成する場合は、データファイルとは異なる記憶デバイスに配置することをお薦めします。 この計画タスクを大幅に簡素化するには、データベース記憶域を構成するオペレーティング・システム・ファイルの作成および管理に、Oracle Managed Filesおよび自動ストレージ管理の使用を検討します。 |
『Oracle Automatic Storage Management管理者ガイド』 『Oracle Databaseパフォーマンス・チューニング・ガイド』 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』 該当のOracle Databaseインストレーション・ガイドなど、使用しているオペレーティング・システム固有のOracleマニュアル。 |
|
グローバル・データベース名を選択します。ネットワーク構造内のデータベースの名前と位置で構成されます。グローバル・データベース名を作成するには、 |
|
|
初期化パラメータ・ファイルに含まれる初期化パラメータについて理解します。特にサーバー・パラメータ・ファイルの概要と操作について理解します。サーバー・パラメータ・ファイルを使用すると、初期化パラメータをサーバー側のディスク・ファイルに永続的に格納して管理できます。 |
『Oracle Databaseリファレンス』 |
|
データ・ディクショナリ内のデータも含め、すべての文字データは、そのデータベースのキャラクタ・セットに格納されます。データベースの作成時には、データベース・キャラクタ・セットを指定します。 詳細は、「キャラクタ・セットの選択」を参照してください。 |
『Oracle Databaseグローバリゼーション・サポート・ガイド』 |
|
データベースでサポートする必要のあるタイム・ゾーンを検討します。 Oracle Databaseでは、2つのタイム・ゾーン・ファイルのいずれかが、有効なタイム・ゾーンのソースとして使用されます。デフォルトのタイム・ゾーン・ファイルは |
|
|
データベースの標準ブロック・サイズを選択します。このサイズはデータベースの作成時に 標準ブロック・サイズは、 |
|
|
セクター・サイズが4KBのディスク上にオンラインREDOログ・ファイルを格納する場合は、REDOログのブロック・サイズを手動で指定する必要があるかどうかを確認します。 |
|
|
|
|
|
|
|
|
UNDOデータを管理するために、UNDO表領域を使用します。 |
|
|
バックアップおよびリカバリ計画を作成し、データベースを障害から保護します。重要な点として、多重化による制御ファイルの保護、適切なバックアップ・モードの選択、およびオンラインREDOログとアーカイブREDOログの管理があげられます。 |
『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』 |
|
インスタンスの起動と停止、データベースのマウントとオープンの原理およびオプションについて理解します。 |
|
データベース・キャラクタ・セットとして、AL32UTF8をお薦めします。AL32UTF8とは、Unicode標準であるUTF-8エンコードに対してOracleで使用している名前です。Unicode標準は、現在世界で使用されている言語のほとんどをサポートする汎用キャラクタ・セットです。Unicode標準を使用することは、データベース処理を含め、すべての多言語テクノロジにおいて不可欠です。
データベースが作成され、本番データが累積された後にデータベース・キャラクタ・セットを変更することは、時間がかかる複雑なプロジェクトになります。そのため、インストール時に適切なキャラクタ・セットを選択することが重要です。データベースに現在多言語データが格納されていなくても、数年内に多言語データを格納する予定がある場合、通常は、データベース・キャラクタ・セットにAL32UTF8を選択することのみが、適切な判断となります。
ただし、UNIX、LinuxおよびMicrosoft Windowsの各プラットフォーム用のOracle Universal Installer (OUI)とDatabase Configuration Assistant (DBCA)で使用されるデフォルトのキャラクタ・セットは、AL32UTF8ではなく、ANSIコード・ページと呼ばれるMicrosoft Windowsキャラクタ・セットです。キャラクタ・セットは、OUIまたはDBCAを起動したオペレーティング・システム・セッションの現在の言語(ロケール)に基づいて選択されます。言語が英語(アメリカ)または西ヨーロッパ言語のいずれかである場合には、デフォルトのキャラクタ・セットはWE8MSWIN1252です。各Microsoft Windows ANSIコード・ページには、1つの言語または限定された言語のグループ(西ヨーロッパ言語のみ、東ヨーロッパ言語のみ、日本語のみなど)のデータのみを格納できます。
クライアント・ワークステーションのプラットフォームとしてMicrosoft Windowsが普及しているため、UNIXおよびLinuxの各プラットフォームで作成されたデータベースの場合にも、Microsoft Windowsのキャラクタ・セットがデフォルトとなっています。Oracle Clientライブラリでは、データベース・キャラクタ・セットと、Windows以外のクライアント・アプリケーションで使用されるキャラクタ・セットとの間で必要なキャラクタ・セット変換が自動的に実行されます。
また、提示されたキャラクタ・セットのリストから、使用する他の任意のキャラクタ・セットを選択することもできます。このオプションは、アプリケーション・ベンダーで必要な特定のキャラクタ・セットを選択したり、データベースに接続しているすべてのクライアントが共通して使用しているキャラクタ・セットを選択するときに使用できます。
AL32UTF8はマルチバイト・キャラクタ・セットであるため、WE8MSWIN1252などのシングルバイト・データベース・キャラクタ・セットに比べると、文字データに対するデータベースでの処理が若干遅くなることがあります。使用する文字がASCIIの対象外である大部分の言語について、その言語のテキストに必要な記憶領域をみると、その言語をサポートしているレガシー・キャラクタ・セットを使用した場合よりもAL32UTF8を使用した場合の方が大きくなります。記憶領域が大きくなるのは、英語以外の文字データに関してのみです。Unicodeでは、汎用性や柔軟性があるために、通常はこうした過剰な負担が生じます。
|
注意: バージョン8.1.7以前のOracle Databaseクライアントおよびサーバーとの互換性のために必要であるか、またはアプリケーション・ベンダーから明示的に要求された場合以外は、UTF8という名称のキャラクタ・セットをデータベース・キャラクタ・セットとして使用しないでください。名称は似ていますが、UTF8はUnicodeエンコーディングUTF-8の適切な実装ではありません。UTF-8処理が予期されている場合にUTF8キャラクタ・セットが使用されると、データの消失およびセキュリティの問題が発生する場合があります。このことは、XMLやURLアドレスなどのWeb関連データに特に該当します。 |
新しいデータベースを作成するには、次の前提条件を満たす必要があります。
必要なOracleソフトウェアがインストールされていること。これには、オペレーティング・システム固有の各環境変数の設定、およびソフトウェアとデータベース・ファイルのディレクトリ構造の設定が含まれます。
Oracle Databaseインスタンスを起動するために十分なメモリーが使用可能であること。
Oracle Databaseを実行するコンピュータ上に、設計したデータベースのための十分なディスク記憶域が使用可能であること。
各前提条件については、オペレーティング・システム固有の『Oracle Databaseインストレーション・ガイド』を参照してください。Oracle Universal Installerを使用すると、表示される手順に従ってインストールでき、環境変数、ディレクトリ構造および認可の設定に関するヘルプが表示されます。
Database Configuration Assistant(DBCA)はほとんど自動化されており、DBCAが完了するとデータベースが使用可能状態になるので、この方法でデータベースを作成することをお薦めします。選択したインストール・タイプによっては、Oracle Universal Installer(OUI)からDBCAを起動できます。また、Oracle Databaseをインストール後は、スタンドアロン・ツールとして、いつでもDBCAを起動できます。
DBCAは、対話型モードまたは非対話型(サイレント)モードで実行できます。対話型モードには、データベースを作成して構成するためのグラフィカル・インタフェースおよびガイド付きワークフローが用意されています。非対話型(サイレント)モードでは、データベース作成スクリプトを記述できます。DBCAを非対話型(サイレント)モードで実行するには、コマンドライン引数またはレスポンス・ファイル、あるいはその両方を指定します。
非対話型(サイレント)モードのDBCAの使用方法の詳細は、使用しているプラットフォームのインストレーション・ガイドの付録Aを参照してください。
次の例では、DBCAにコマンドライン引数を渡してデータベースを作成しています。
dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname ora11g -sid ora11g -responseFile NO_VALUE -characterSet AL32UTF8 -memoryPercentage 30 -emConfiguration LOCAL Enter SYSTEM user password: password Enter SYS user password: password Copying database files 1% complete 3% complete ...
完全なサイレント操作が実行されるように、stdoutをファイルにリダイレクトできます。ただし、その場合はコマンドライン引数またはレスポンス・ファイルに管理アカウントのパスワードを入力する必要があります。
DBCAコマンドライン引数の概要のヘルプを表示するには、次のコマンドを入力します。
dbca -help
デフォルトなど、引数の詳細は、配布媒体に同梱されているレスポンス・ファイル・テンプレートを参照してください。このファイルの名前と場所は、使用しているプラットフォームのインストレーション・ガイドの付録Aに記載されています。
手動でデータベースを作成する場合は、CREATE DATABASE SQL文を使用します。DBCAのかわりにこの文を使用する利点は、スクリプト内からデータベースを作成できることです。
CREATE DATABASE文を使用する場合は、実行可能なデータベースを作成する前に他の処理が必要です。この処理には、データ・ディクショナリ表のビューの作成、標準PL/SQLパッケージのインストールなどがあります。これらの処理には、提供されたスクリプトを実行します。
データベース作成用の既存のスクリプトがある場合は、Oracle Databaseの新機能を利用するために、これらのスクリプトの編集を検討してください。
この項の手順が適用できるのは、単一インスタンスのインストールの場合のみです。Oracle RACデータベースの作成手順の詳細は、使用しているプラットフォーム固有のOracle Real Application Clusters(Oracle RAC)インストレーション・ガイドを参照してください。
CREATE DATABASE文を使用してデータベースを作成するには、次の手順を実行します。次の例では、mynewdbというデータベースを作成します。
手順11: スクリプトの実行によるデータ・ディクショナリ・ビューの作成
手順12: (オプション)スクリプトの実行による追加オプションのインストール
|
ヒント: Oracle Automatic Storage Management (Oracle ASM)を使用してディスク記憶域を管理している場合は、これらの手順を実行する前に、Oracle ASMインスタンスを起動してディスク・グループを構成する必要があります。自動ストレージ管理の詳細は、Oracle Automatic Storage Management管理者ガイドを参照してください。 |
インスタンスに対して一意のOracleシステム識別子(SID)を決定し、コマンド・ウィンドウを開いて、環境変数ORACLE_SIDを設定します。後続の手順では、このコマンド・ウィンドウを使用します。
ORACLE_SIDは、後で作成して同じホスト・コンピュータで同時に実行する他のOracle Databaseインスタンスと区別するために使用されます。ORACLE_SIDでの有効な文字に関する制約はプラットフォーム固有です。一部のプラットフォームでは、SIDの大/小文字が区別されます。
|
注意: 一般的には、SIDはデータベース名と等しくなるように設定します。データベース名に指定できるのは最大8文字までです。詳細は、『Oracle Databaseリファレンス』のDB_NAME初期化パラメータに関する説明を参照してください。 |
次のUNIXおよびLinuxオペレーティング・システムの例では、「手順6: インスタンスへの接続」で接続するインスタンスのSIDを設定しています。
Bourne、Bash、またはKornシェルの場合:
ORACLE_SID=mynewdb export ORACLE_SID
Cシェルの場合:
setenv ORACLE_SID mynewdb
次の例では、Windowsオペレーティング・システム用のSIDを設定しています。
set ORACLE_SID=mynewdb
|
関連項目: Oracleインスタンスに関するバックグラウンド情報は、『Oracle Database概要』を参照してください。 |
プラットフォームによっては、環境変数を設定するか少なくとも正しく設定されていることを確認するまで、(「手順6: インスタンスへの接続」で必要な)SQL*Plusを起動できない場合があります。
たとえば、ほとんどのプラットフォームでは、ORACLE_SIDとORACLE_HOMEを設定する必要があります。さらに、PATH変数にORACLE_HOME/binディレクトリを含めるように設定することもお薦めします。UNIXおよびLinuxプラットフォームでは、これらの環境変数を手動で設定する必要があります。Windowsプラットフォームでは、Windowsレジストリ内のORACLE_HOMEとORACLE_SIDにOUIが値を自動的に割り当てます。インストール時にデータベースを作成しなかった場合は、レジストリ内のORACLE_SIDをOUIが設定しないため、後でデータベースを作成するときにORACLE_SID環境変数を設定する必要があります。
データベースを作成するには、作成するユーザーが認証を受け、適切なシステム権限が付与されている必要があります。必要な権限を付与された管理者として認証されるには、次の方法があります。
パスワード・ファイルによる方法
オペレーティング・システム認証による方法
この手順では、認証方式を決定します。
パスワード・ファイルによる認証方法を使用するには、「パスワード・ファイルの作成とメンテナンス」の説明に従ってパスワード・ファイルを作成します。オペレーティング・システム認証による方法を使用するには、必ずオペレーティング・システムの適切なユーザー・グループのメンバーになっているユーザー・アカウントでホスト・コンピュータにログインします。たとえば、UNIXおよびLinuxプラットフォームでは、通常dbaユーザー・グループを使用します。Windowsプラットフォームでは、Oracleソフトウェアをインストールするユーザーが、必要なユーザー・グループに自動的に配置されます。
Oracleインスタンスの起動時に、初期化パラメータ・ファイルが読み込まれます。このファイルには、テキスト・エディタで作成して変更できるテキスト・ファイルか、データベースにより作成されて動的に変更されるバイナリ・ファイルを使用できます。バイナリ・ファイル(こちらの使用を推奨)は、サーバー・パラメータ・ファイルと呼ばれます。ここで示す手順では、テキスト形式の初期化パラメータ・ファイルを作成します。後述の手順で、テキスト・ファイルからサーバー・パラメータ・ファイルを作成します。
テキスト形式の初期化パラメータ・ファイルを作成する方法の1つは、「初期化パラメータ・ファイルのサンプル」に記載されているサンプルを編集する方法です。
初期化パラメータのファイルを手動で作成する場合は、少なくとも表2-2に記載されているパラメータが含まれているようにしてください。記載されていない他のすべてのパラメータにはデフォルトの値があります。
表2-2 推奨される最低限の初期化パラメータ
| パラメータ名 | 必須 | 注意 |
|---|---|---|
|
|
はい |
データベース識別子。 |
|
|
いいえ |
推奨されています。提供されていない場合は、データベース・インスタンスにより初期化パラメータ・ファイルと同じ場所に制御ファイルが作成されます。このパラメータを提供することで制御ファイルを多重化できます。詳細は、「初期制御ファイルの作成」を参照してください。 |
|
|
いいえ |
インスタンスにより使用されるメモリーの合計容量を設定し、自動メモリー管理を有効にします。このパラメータのかわりに他の初期化パラメータを選択して、メモリーの使用をより詳細に手動で制御することもできます。「メモリーの手動構成」を参照してください。 |
操作を容易にするために、デフォルトのファイル名を使用して、Oracle Databaseのデフォルトの場所に初期化パラメータ・ファイルを配置します。このようにすることにより、Oracle Databaseが初期化パラメータ・ファイルのデフォルトの場所を自動的に参照するため、データベースの起動時にSTARTUPコマンドのPFILE句を指定する必要がなくなります。
使用しているプラットフォームの初期化パラメータ・ファイルのデフォルトのファイル名や場所など、初期化パラメータおよび初期化パラメータ・ファイルの詳細は、「初期化パラメータと初期化パラメータ・ファイルの概要」を参照してください。
Windowsプラットフォームでは、インスタンスが存在しない場合には、インスタンスに接続する前に手動で作成する必要があります。ORADIMコマンドを実行すると、新しいWindowsサービスが作成されて、Oracleインスタンスが作成されます。
インスタンスを作成する手順は、次のとおりです。
Windowsのコマンド・プロンプトで、次のコマンドを入力します。
oradim -NEW -SID sid -STARTMODE MANUAL -PFILE pfile
sidは対象のSID(mynewdbなど)、pfileはテキスト形式の初期化パラメータ・ファイルへの完全パスです。このコマンドでは、インスタンスは作成されますが起動されません。
|
注意: この時点では、-STARTMODE引数をAUTOに設定しないでください。設定すると新しいインスタンスが起動され、まだ存在しないデータベースをマウントしようとします。必要な場合は、手順14でこのパラメータをAUTOに変更できます。 |
ORADIMコマンドの詳細は、『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』のOracle Databaseインスタンスの管理にORADIMを使用する方法に関する項を参照してください。
SQL*Plusを起動して、SYSDBAシステム権限でOracle Databaseインスタンスに接続します。
パスワード・ファイルによる認証を使用するには、次のコマンドを入力してプロンプトが表示された後、SYSパスワードを入力します。
$ sqlplus /nolog SQL> CONNECT SYS AS SYSDBA
オペレーティング・システム認証を使用するには、次のコマンドを入力します。
$ sqlplus /nolog SQL> CONNECT / AS SYSDBA
SQL*Plusが次のメッセージを表示します。
Connected to an idle instance.
|
注意: SQL*Plusが次のようなメッセージを表示する場合があります。Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options その場合には、インスタンスがすでに起動されています。間違ったインスタンスに接続している可能性があります。 |
サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更でき、変更内容はデータベースを停止して起動した後も持続します。サーバー・パラメータ・ファイルは、編集済のテキスト形式の初期化ファイルから作成します。
次のSQL*Plusコマンドでは、テキスト形式の初期化パラメータ・ファイル(PFILE)がデフォルトの場所のデフォルトのファイル名で読み込まれ、テキスト形式の初期化パラメータ・ファイルからサーバー・パラメータ・ファイル(SPFILE)が作成されて、SPFILEがデフォルトのSPFILE名でデフォルトの場所に書き込まれます。
CREATE SPFILE FROM PFILE;
デフォルトのファイル名と場所を使用していない場合は、PFILEとSPFILEの両方のファイル名とパスワードを指定することもできます。
|
ヒント: サーバー・パラメータ・ファイルを有効にするには、データベースを再起動する必要があります。 |
|
注意: この時点でのサーバー・パラメータ・ファイルの作成はオプションですが、作成することをお薦めします。サーバー・パラメータ・ファイルを作成しないと、インスタンスが起動されるたびにテキスト形式の初期化パラメータ・ファイルが引き続き読み込まれます。重要: Oracle Managed Filesを使用しており、初期化パラメータ・ファイルに |
|
関連項目:
|
データベースをマウントせずにインスタンスを起動します。通常、この方法で起動するのはデータベースの作成時またはメンテナンス時のみです。STARTUPコマンドで、NOMOUNT句を指定します。この例では、初期化パラメータ・ファイルまたはサーバー・パラメータ・ファイルがデフォルトの場所に配置されているため、PFILE句の指定は不要です。
STARTUP NOMOUNT
この時点で、インスタンス・メモリーが割り当てられて、インスタンスのプロセスが起動されます。データベース自体はまだ存在しません。
新しいデータベースを作成するには、CREATE DATABASE文を使用します。
例1
次の文では、データベースmynewdbを作成します。このデータベース名は、初期化パラメータ・ファイルのDB_NAMEパラメータと同じにする必要があります。この例では、次のことを想定しています。
初期化パラメータ・ファイルのCONTROL_FILESパラメータには、制御ファイルの数と場所が指定されています。
ディレクトリ/u01/app/oracle/oradata/mynewdbが存在します。
ディレクトリ/u01/logs/myおよび/u02/logs/myが存在します。
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512, GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 325M REUSE SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 325M REUSE DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf' SIZE 20M REUSE UNDO TABLESPACE undotbs DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
次の特性を持つデータベースが作成されます。
データベースにはmynewdbという名前が付けられます。グローバル・データベース名はmynewdb.us.example.comになり、ドメイン部分(us.example.com)は、初期化パラメータ・ファイルから取得されます。「グローバル・データベース名の決定」を参照してください。
CONTROL_FILES初期化パラメータ(データベース作成前に初期化パラメータ・ファイルに設定)で指定された3つの制御ファイルが作成されます。「初期化パラメータ・ファイルのサンプル」および「制御ファイルの指定」を参照してください。
ユーザー・アカウントSYSとSYSTEMのパスワードが指定した値に設定されます。リリース11gからは、パスワードの大/小文字が区別されます。SYSおよびSYSTEMのパスワードを指定する2つの句は、このリリースのOracle Databaseではオプションです。ただし、いずれか一方の句を指定した場合は、もう一方の句も指定する必要があります。これらの句の使用方法の詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。
新しいデータベースには、LOGFILE句で指定されているように、REDOログ・ファイルのグループが3つあり、各グループには2つのメンバーが含まれます。MAXLOGFILES、MAXLOGMEMBERSおよびMAXLOGHISTORYは、REDOログの制限を定義します。「適切なREDOログ・ファイル数の選択」を参照してください。REDOログのブロック・サイズは、ディスクの物理セクターと同じサイズである512バイトに設定されています。ブロック・サイズを物理セクター・サイズと同じ(デフォルト)にする場合には、BLOCKSIZE句はオプションです。通常のセクター・サイズおよびブロック・サイズは512です。BLOCKSIZEに設定可能な値は512、1024および4096です。新しいディスクでセクター・サイズが4KBの場合には、オプションでBLOCKSIZEを4096に指定します。詳細は、「REDOログ・ファイルのブロック・サイズの計画」を参照してください。
MAXDATAFILESによって、このデータベースでオープンできるデータファイルの最大数が指定されます。この数は、制御ファイルの初期サイズに影響を及ぼします。
|
注意: データベースの作成時に、制限をいくつか設定できます。これらの制限には、オペレーティング・システムの制限によって制限され、その影響を受けるものがあります。たとえば、MAXDATAFILESを設定すると、Oracle Databaseは、初期のデータベースにデータファイルが1つしかなくても、制御ファイルにMAXDATAFILES個のファイル名を格納できるだけの領域を割り当てます。ただし、制御ファイルの最大サイズは制限されており、オペレーティング・システムによって異なるので、CREATE DATABASE文のパラメータをすべて理論的な最大値で設定できるとはかぎりません。
データベース作成時に制限を設定する方法の詳細は、『Oracle Database SQL言語リファレンス』および使用しているオペレーティング・システム固有のOracleマニュアルを参照してください。 |
このデータベースにデータを格納する際は、AL32UTF8キャラクタ・セットが使用されます。
NATIONAL CHARACTER SETとしてAL16UTF16キャラクタ・セットが指定されます。このキャラクタ・セットは、特にNCHAR、NCLOBまたはNVARCHAR2として定義された列にデータを格納する際に使用されます。
DATAFILE句で指定したとおりに、SYSTEM表領域(オペレーティング・システム・ファイル/u01/app/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表領域には、初期化パラメータ・ファイルでUNDO_MANAGEMENT=AUTOを指定した場合に、このデータベース用のUNDOデータが格納されます。このパラメータを省略すると、デフォルトではAUTOになります。「自動UNDO管理の使用: UNDO表領域の作成」を参照してください。
このCREATE DATABASE文ではARCHIVELOG句が指定されていないため、初期状態ではREDOログ・ファイルはアーカイブされません。これはデータベース作成時の慣例です。後でALTER DATABASE文を使用して、ARCHIVELOGモードに切り替えることができます。mynewdbのアーカイブに関連する初期化パラメータ・ファイル内の初期化パラメータは、LOG_ARCHIVE_DEST_1およびLOG_ARCHIVE_FORMATです。第13章「アーカイブREDOログの管理」を参照してください。
|
ヒント:
|
例2
この例では、より簡単なCREATE DATABASE文を使用できる、Oracle Managed Filesを使用したデータベースの作成例を示します。Oracle Managed Filesを使用するには、初期化パラメータDB_CREATE_FILE_DESTを設定する必要があります。このパラメータは、データベースで作成されて自動的に名前が付けられる様々なデータベース・ファイル用のベース・ディレクトリを定義します。次の文は、初期化パラメータ・ファイルにこのパラメータを設定する例を示しています。
DB_CREATE_FILE_DEST='/u01/app/oracle/oradata'
Oracle Managed Filesおよび次のCREATE DATABASE文を使用すると、SYSTEM表領域とSYSAUX表領域および文に指定されている追加の表領域がデータベースによって作成され、すべてのデータファイル、制御ファイルおよびREDOログ・ファイルのデフォルト・サイズとプロパティが選択されます。この方法で設定されるこれらのプロパティおよび他のデフォルト・データベース・プロパティは本番環境には適さない場合があるため、生成された設定を調べて必要に応じて変更することをお薦めします。
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password EXTENT MANAGEMENT LOCAL DEFAULT TEMPORARY TABLESPACE temp UNDO TABLESPACE undotbs1 DEFAULT TABLESPACE users;
|
ヒント: CREATE DATABASE文が失敗する場合で手順7を完了していない場合は、予期しない方法で初期化パラメータが設定されている、このインスタンス用の既存のサーバー・パラメータ・ファイル(SPFILE)がないかを確認します。たとえば、すべての制御ファイルへの完全パスがSPFILEに設定されている場合は、それらの制御ファイルが存在しないと、CREATE DATABASE文が失敗します。不必要なSPFILEを削除した後は、必ずインスタンスを停止して(STARTUP NOMOUNTを指定して)再起動します。詳細は、「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照してください。 |
|
関連項目:
|
データベースを稼働させるには、アプリケーション・データ用に追加の表領域を作成する必要があります。次のサンプル・スクリプトは、追加の表領域を作成します。
CREATE TABLESPACE apps_tbs LOGGING
DATAFILE '/u01/app/oracle/oradata/mynewdb/apps01.dbf'
SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
-- create a tablespace for indexes, separate from user tablespace (optional)
CREATE TABLESPACE indx_tbs LOGGING
DATAFILE '/u01/app/oracle/oradata/mynewdb/indx01.dbf'
SIZE 100M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL;
表領域の作成方法の詳細は、第14章「表領域の管理」を参照してください。
データ・ディクショナリ・ビュー、シノニムおよびPL/SQLパッケージの作成およびSQL*Plusの適切な稼働に必要なスクリプトを実行します。
SQL*Plusで、SYSDBA管理権限でOracle Databaseインスタンスに接続します。
@?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/utlrp.sql
SQL*Plusで、SYSTEMユーザーとしてOracle Databaseインスタンスに接続します。
@?/sqlplus/admin/pupbld.sql
アットマーク(@)はSQL*Plusスクリプトを実行するコマンドの省略記述です。疑問符(?)はOracleホーム・ディレクトリを表すSQL*Plusの変数です。次の表に、スクリプトの説明を示します。
| スクリプト | 説明 |
|---|---|
CATALOG.SQL |
データ・ディクショナリ表のビュー、動的パフォーマンス・ビューおよび多くのビューに対するパブリック・シノニムを作成します。シノニムにPUBLICアクセスを付与します。 |
CATPROC.SQL |
PL/SQLに必要なスクリプトやPL/SQLとともに使用されるスクリプトをすべて実行します。 |
UTLRP.SQL |
パッケージ、プロシージャおよび型も含めて、無効な状態となっているすべてのPL/SQLモジュールを再コンパイルします。 |
PUPBLD.SQL |
SQL*Plusに必要です。SQL*Plusがユーザーのコマンドを使用禁止にできるようにします。 |
必要に応じて、他のスクリプトも実行できます。実行するスクリプトは、使用またはインストール対象として選択する機能とオプションによって異なります。使用可能なスクリプトは、『Oracle Databaseリファレンス』を参照してください。
このデータベースとともに稼働する他のOracle製品をインストールする場合は、それらの製品のインストール方法を参照してください。製品によっては、追加のデータ・ディクショナリ表を作成する必要があります。通常は、これらの表を作成して、データベースのデータ・ディクショナリにロードするためのコマンド・ファイルが提供されます。
インストールを計画している製品のインストールと管理の方法は、製品固有のOracleマニュアルを参照してください。
メディア障害が発生した場合にリカバリするための完全なファイル・セットが確実に存在するように、データベースの全体バックアップを作成してください。データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
ホスト・コンピュータの再起動時に、Oracleインスタンスが自動的に起動されるように構成する必要がある場合があります。詳細は、オペレーティング・システムのドキュメントを参照してください。たとえばWindowsでは、次のコマンドを使用して、コンピュータの再起動時にデータベース・サービスがインスタンスを起動するように構成します。
ORADIM -EDIT -SID sid -STARTMODE AUTO -SRVCSTART SYSTEM [-SPFILE]
自動再起動時にインスタンスがSPFILEを読み込むようにする場合は、-SPFILE引数を使用する必要があります。
|
関連項目:
|
CREATE DATABASE文を実行すると、Oracle Databaseはいくつかの操作を実行します。実際の操作は、CREATE DATABASE文で指定した句、および初期化パラメータの設定に応じて実行されます。Oracle Databaseが最低限実行する操作は、次のとおりです。
データベース用のデータファイルの作成
データベース用の制御ファイルの作成
データベース用のREDOログ・ファイルの作成とARCHIVELOGモードの設定
SYSTEM表領域の作成
SYSAUX表領域の作成
データ・ディクショナリの作成
データベースへのデータの格納に使用するキャラクタ・セットの設定
データベース・タイム・ゾーンの設定
データベースのマウントとオープン
この項では、CREATE DATABASE文の複数の句について説明します。これには、「手順9: CREATE DATABASE文の発行」で説明した句と、その他の句が含まれます。ここで説明するCREATE DATABASE句の多くは、データベースの作成と管理を簡素化するために使用できます。
この項の内容は、次のとおりです。
CREATE DATABASE文でユーザーSYSおよびSYSTEMのパスワード指定に使用する句は、次のとおりです。
USER SYS IDENTIFIED BY password
USER SYSTEM IDENTIFIED BY password
これらの句を省略すると、これらのユーザーにはそれぞれデフォルトのパスワードchange_on_installおよびmanagerが割り当てられます。デフォルトのパスワードが使用された場合は、そのことを示すレコードがアラート・ログに書き込まれます。データベースを保護するには、データベース作成直後にALTER USER文を使用して、これらのパスワードを変更する必要があります。
これらの句は、このリリースのOracle Databaseではオプションですが、指定することをお薦めします。デフォルトのパスワードは一般に知られており、後で変更するのを怠ると、データベースを悪意のユーザーによる攻撃に対して無防備な状態で放置することになります。
パスワードを選択するときには、リリース11g以降ではパスワードの大/小文字が区別されることに注意してください。また、使用中のデータベースにパスワード形式の要件が設定されている場合もあります。詳細は、『Oracle Databaseセキュリティ・ガイド』のOracle Databaseによるパスワードの複雑度の検証方法に関する項を参照してください。
CREATE DATABASE文にEXTENT MANAGEMENT LOCAL句を指定すると、ローカル管理のSYSTEM表領域を作成できます。この文を正常に実行するには、COMPATIBLE初期化パラメータを10.0.0以上に設定する必要があります。EXTENT MANAGEMENT LOCAL句を指定しない場合は、デフォルトでディクショナリ管理のSYSTEM表領域が作成されます。ディクショナリ管理表領域は非推奨です。
ローカル管理のSYSTEM表領域を指定してデータベースを作成する場合にOracle Managed Filesを使用していない場合は、次の条件が満たされているかどうかを確認してください。
DEFAULT TEMPORARY TABLESPACE句をCREATE DATABASE文に指定
UNDO TABLESPACE句をCREATE DATABASE文に指定
|
関連項目:
|
SYSAUX表領域はデータベース作成時に必ず作成されます。SYSAUX表領域は、SYSTEM表領域の予備の表領域として機能します。これは、以前に固有の表領域を必要としていたOracle Databaseの多くの機能と製品に対するデフォルトの表領域であるため、データベースに必要な表領域の数が削減されます。また、SYSTEM表領域の負荷も軽減されます。
SYSAUX表領域に対して指定できるのはデータファイルの属性のみで、CREATE DATABASE文でSYSAUX DATAFILE句を使用して指定します。SYSAUX表領域の必須属性は、Oracle Databaseによって設定され、次のような属性があります。
PERMANENT
READ WRITE
EXTENT MANAGMENT LOCAL
SEGMENT SPACE MANAGMENT AUTO
これらの属性は、ALTER TABLESPACE文で変更できず、変更しようとするとエラーが発生します。SYSAUX表領域の削除や名前変更はできません。
SYSAUX表領域のサイズは、SYSAUXを使用するデータベース・コンポーネントのサイズにより決定します。V$SYSAUX_OCCUPANTSビューを問い合せることにより、これらのコンポーネントのリストを表示できます。これらのコンポーネントの初期サイズに基づいて、SYSAUX表領域には、データベース作成時に最低限400MB必要です。SYSAUX表領域の領域要件は、データベースが完全にデプロイされた後、その使用状況やワークロードによって増加します。SYSAUX表領域の領域消費を継続的に管理する方法の詳細は、「SYSAUX表領域の管理」を参照してください。
SYSTEM表領域に対してDATAFILE句を指定している場合は、SYSAUX DATAFILE句も指定する必要があり、指定しない場合は、CREATE DATABASE文が失敗します。この要件は、Oracle Managed Files機能が使用可能な場合は適用されません(「データベース作成時のOracle Managed Filesの作成」を参照してください)。
SYSAUX表領域のセキュリティ属性はSYSTEM表領域と同じです。
|
注意: このマニュアルでは、データベース作成時のSYSAUXデータベースの作成について説明しています。SYSAUX表領域を必要としないOracle Databaseのリリースからアップグレードするときは、アップグレード・プロセス時にSYSAUX表領域を作成する必要があります。この操作については、『Oracle Databaseアップグレード・ガイド』を参照してください。 |
自動UNDO管理ではUNDO表領域が使用されます。自動UNDO管理を使用可能にするには、初期化パラメータ・ファイルでUNDO_MANAGEMENT初期化パラメータをAUTOに設定します。このパラメータを省略すると、デフォルトでデータベースが自動UNDO管理になります。このモードでは、UNDOデータがUNDO表領域に格納され、Oracle Databaseによって管理されます。UNDO表領域を定義して名前を付けるには、データベース作成時にCREATE DATABASE文にUNDO TABLESPACE句を指定する必要があります。この句を省略して自動UNDO管理を使用可能にすると、SYS_UNDOTBSという名前のデフォルトのUNDO表領域が作成されます。
CREATE DATABASE文でDEFAULT TABLESPACE句を指定すると、データベースのデフォルト永続表領域が作成されます。この表領域には、Oracle Databaseによって、別の永続表領域が明示的に指定されていないSYSTEM以外のユーザーが割り当てられます。この句を指定しない場合、SYSTEM以外のユーザーに対するデフォルトの永続表領域はSYSTEM表領域です。デフォルトの永続表領域を作成することをお薦めします。
|
関連項目: CREATE DATABASEおよびALTER DATABASEのDEFAULT TABLESPACE句の構文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
CREATE DATABASE文でDEFAULT TEMPORARY TABLESPACE句を指定すると、データベースにデフォルトの一時表領域が作成されます。Oracle Databaseは、この表領域を、一時表領域が明示的に割り当てられていないユーザーに対して一時表領域として割り当てます。
一時表領域または表領域グループは、CREATE USER文で明示的にユーザーに割り当てることができます。ただし、それを行わない場合は、デフォルトの一時表領域がデータベースに指定されていないと、これらのユーザーには一時表領域としてSYSTEM表領域がデフォルトで割り当てられます。一時データをSYSTEM表領域に格納するのはよい方法ではなく、すべてのユーザーに一時表領域を個別に割り当てるのは非効率的です。したがって、CREATE DATABASEのDEFAULT TEMPORARY TABLESPACE句の使用をお薦めします。
|
注意: ローカル管理のSYSTEM表領域を指定すると、そのSYSTEM表領域は一時表領域として使用できません。この場合は、デフォルトの一時表領域を作成する必要があります。この動作については、「ローカル管理のSYSTEM表領域の作成」を参照してください。 |
|
関連項目:
|
Oracle Managed Files機能を使用すると、CREATE DATABASE文に指定する句とパラメータの数を最小限に抑えることができます。この機能を使用するには、Oracle Databaseによってファイルが作成および管理されるディレクトリまたはOracle Automatic Storage Management(Oracle ASM)ディスク・グループのいずれかを指定します。
初期化パラメータ・ファイルにDB_CREATE_FILE_DEST、DB_CREATE_ONLINE_LOG_DEST_nまたはDB_RECOVERY_FILE_DEST初期化パラメータを設定すると、データベースの基礎となるオペレーティング・システム・ファイルをOracle Databaseで作成および管理できます。指定した初期化パラメータおよびCREATE DATABASE文で指定した句に応じて、次のデータベース構造のオペレーティング・システム・ファイルがOracle Databaseによって自動的に作成および管理されます。
表領域とそのデータファイル
一時表領域とその一時ファイル
制御ファイル
REDOログ・ファイル
アーカイブREDOログ・ファイル
フラッシュバック・ログ
ブロック・チェンジ・トラッキング・ファイル
RMANバックアップ
次のCREATE DATABASE文で、Oracle Managed Files機能の動作を示します。必要な初期化パラメータは指定されているとします。
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE undotbs
DEFAULT TEMPORARY TABLESPACE tempts1
DEFAULT TABLESPACE users;
SYSTEM表領域はローカル管理の表領域として作成されます。EXTENT MANAGEMENT LOCAL句を指定しないと、SYSTEM表領域はディクショナリ管理の対象として作成されますが、この方法はお薦めしません。
DATAFILE句が指定されていないため、SYSTEM表領域用のOracle Managed Filesのデータファイルが作成されます。
LOGFILE句が指定されていないため、Oracleが管理するREDOログ・ファイルのグループが2つ作成されます。
SYSAUX DATAFILEが指定されていないため、SYSAUX表領域用のOracle Managed Filesのデータファイルが作成されます。
UNDO TABLESPACE句およびDEFAULT TABLESPACE句にDATAFILE副次句が指定されていないため、これらの各表領域用にOracle Managed Filesのデータファイルが作成されます。
DEFAULT TEMPORARY TABLESPACE句にTEMPFILE副次句が指定されていないため、Oracle Managed Filesの一時ファイルが作成されます。
初期化パラメータ・ファイルにCONTROL_FILES初期化パラメータが指定されていない場合は、Oracle Managed Filesの制御ファイルも作成されます。
サーバー・パラメータ・ファイル(「サーバー・パラメータ・ファイルを使用した初期化パラメータの管理」を参照)を使用している場合は、適切な初期化パラメータが自動的に設定されます。
|
関連項目:
|
Oracle Databaseでは、bigfile表領域を作成できるようにすることで、表領域の管理を簡素化し、大規模なデータベースのサポートを可能にしています。bigfile表領域に含めることができるファイルは1つのみですが、そのファイルには最大40億ブロックまで設定できます。1つのOracle Databaseのデータファイルの最大数は制限されています(通常は64000ファイル)。したがって、bigfile表領域によって、Oracle Databaseの記憶域容量が大幅に増加します。
この項では、bigfile表領域のサポートを可能にするCREATE DATABASE文の句について説明します。
CREATE DATABASE文のSET DEFAULT...TABLESPACE句によって、後続のCREATE TABLESPACE文でこのデータベースに使用される表領域のデフォルト・タイプが決定します。SET DEFAULT BIGFILE TABLESPACEまたはSET DEFAULT SMALLFILE TABLESPACEを指定します。この句を省略すると、デフォルトでは、従来のタイプのOracle Database表領域であるsmallfile表領域が作成されます。smallfile表領域には最大1022ファイルを含めることができ、それぞれ400万ブロックまで設定できます。
bigfile表領域によってデータファイルがユーザーに対して完全に透過的になるため、bigfile表領域を使用するとOracle Managed Filesの機能がさらに強化されます。ALTER TABLESPACE文のSQL構文は、基礎となるデータファイルではなく表領域で操作を実行できるように拡張されています。
表領域のデフォルト・タイプがbigfile表領域であることを指定するには、「データベース作成時のOracle Managed Filesの作成」に示したCREATE DATABASE文を次のように変更します。
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
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操作時に、明示的に上書きできます。
たとえば、次のように指定すると、デフォルトの表領域タイプがsmallfileのデータベースで、bigfileのUNDO表領域を作成できます。
CREATE DATABASE mynewdb
...
BIGFILE UNDO TABLESPACE undotbs
DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
次のように指定すると、デフォルトの表領域タイプがbigfileのデータベースで、smallfileのDEFAULT TEMPORARY表領域を作成できます。
CREATE DATABASE mynewdb
SET DEFAULT BIGFILE TABLESPACE
...
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つのタイム・ゾーン・ファイルがあります。タイム・ゾーン・ファイルには有効なタイム・ゾーン名が含まれています。タイム・ゾーンごとに次の情報も含まれています。
協定世界時(UTC)からのオフセット。
夏時間への移行時間。
標準時間と夏時間の略称。
デフォルトのタイム・ゾーン・ファイルはORACLE_HOME/oracore/zoneinfo/timezlrg_11.datです。タイム・ゾーン数の少ないタイム・ゾーン・ファイルはORACLE_HOME/oracore/zoneinfo/timezone_11.datにあります。
ファイル内で、データベースで使用されているタイム・ゾーン名を表示するには、次の問合せを実行します。
SELECT * FROM V$TIMEZONE_NAMES;
|
関連項目: タイム・ゾーン・ファイルの管理および選択の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
情報を共有しているすべてのデータベースが同じタイム・ゾーン・データファイルを使用する必要があります。
データベース・サーバーでは、定義数が多いタイム・ゾーン・ファイルが常にデフォルトで使用されます。定義数の少ないタイム・ゾーン・ファイルをクライアントで使用し、すべてのデータが定義数の少ないファイルのリージョンのみを参照することがわかっている場合、クライアントのORA_TZFILE環境変数をクライアントのtimezone_version.datファイルのフルパス名に設定できます。ここでversionは、データベース・サーバーによって使用されているタイム・ゾーン・ファイルのバージョンです。
デフォルトの定義数の多いタイム・ゾーン・ファイルをクライアントですでに使用している場合、定義数の少ないタイム・ゾーン・ファイルに変更するのは実用的ではありません。データベースに、定義数の少ないファイルには含まれていないタイム・ゾーンのデータが含まれている可能性があるためです。
一部のデータ定義言語文(CREATE TABLEなど)では、NOLOGGING句を使用できますが、ある種のデータベース操作ではデータベースREDOログにREDOレコードが生成されません。NOLOGGING句を設定すると、データベース・リカバリ・メカニズム外で容易にリカバリできる操作は高速化されますが、メディア・リカバリとスタンバイ・データベースに悪影響を与える可能性があります。
Oracle Databaseでは、DDL文にNOLOGGINGが指定されていても、REDOレコードを強制的に書き込ませることができます。データベースでは、一時表領域と一時セグメントのREDOレコードは生成されないため、FORCE LOGGINGはオブジェクトに影響を与えません。
|
関連項目: NOLOGGINGモードで実行できる操作の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
データベースを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を指定し、アクティブになっているスタンバイ・データベースがない場合は、次の点を考慮する必要があります。
発生すると思われるメディア障害の数
ロギングなしの直接書込みをリカバリできない場合のダメージの重大度
FORCE LOGGINGモードによるパフォーマンスの低下は許容範囲内かどうか
データベースがNOARCHIVELOGモードで稼働している場合、通常はFORCE LOGGINGモードにする利点はありません。NOARCHIVELOGモードではメディア・リカバリが不可能であるため、FORCE LOGGINGと組み合せて使用する場合は、ほとんど利点がなく、パフォーマンスが低下する可能性があります。
ここでは、新しいデータベースを作成する前に追加または編集できるいくつかの基本的な初期化パラメータについて説明します。この章では、次の項目について説明します。
|
関連項目:
|
Oracleインスタンスの起動時に、初期化パラメータ・ファイルから初期化パラメータが読み込まれます。このファイルでは、少なくともDB_NAMEパラメータを指定する必要があります。他のすべてのパラメータにはデフォルトの値があります。
初期化パラメータ・ファイルは、読取り専用のテキスト・ファイル(PFILE)または読取り/書込みのバイナリ・ファイルです。
バイナリ・ファイルはサーバー・パラメータ・ファイルと呼ばれています。サーバー・パラメータ・ファイルを使用すると、ALTER SYSTEMコマンドを使用して初期化パラメータを変更でき、変更内容は停止して起動した後も持続します。また、Oracle Databaseによる自己チューニングの基礎ともなります。このため、サーバー・パラメータ・ファイルを使用することをお薦めします。サーバー・パラメータ・ファイルは、編集済のテキスト形式の初期化ファイルから手動で作成するか、またはデータベースを作成するDatabase Configuration Assistant(DBCA)を使用して自動的に作成できます。
サーバー・パラメータ・ファイルを手動で作成する前に、テキスト形式の初期化パラメータ・ファイルを使用してインスタンスを起動できます。起動時に、Oracleインスタンスは最初にデフォルトの場所でサーバー・パラメータ・ファイルを検索し、見つからない場合は、テキスト形式の初期化パラメータ・ファイルを検索します。また、STARTUPコマンドの引数としてテキスト形式の初期化パラメータ・ファイルを指定すると、既存のサーバー・パラメータ・ファイルを上書きすることもできます。
テキスト形式の初期化パラメータ・ファイルのデフォルトのファイル名と場所は、次の表のとおりです。
| プラットフォーム | デフォルト名 | デフォルトの場所 |
|---|---|---|
| UNIXとLinux | initORACLE_SID.ora
たとえば、
|
ORACLE_HOME/dbs |
| Windows | initORACLE_SID.ora |
ORACLE_HOME\database |
初めてOracle Databaseを作成する場合は、変更するパラメータ値の数を最小限にとどめておくことをお薦めします。データベースと環境に慣れてから、多数の初期化パラメータをALTER SYSTEM文で動的にチューニングします。テキスト形式の初期化パラメータ・ファイルを使用している場合、現行のインスタンスについてのみ変更できます。これを永続的にするには、初期化パラメータ・ファイル内で手動で更新する必要があり、更新しない場合は、次回データベースを停止して起動すると変更内容が失われます。サーバー・パラメータ・ファイルを使用している場合、ALTER SYSTEM文で行った初期化パラメータ・ファイルの変更内容は、停止して起動した後も持続します。
テキスト形式の初期化パラメータ・ファイル(PFILE)には、次のいずれかの書式の名前/値ペアを含める必要があります。
値を1つのみ受け入れるパラメータの場合
parameter_name=value
1つ以上の値を受け入れるパラメータの場合(CONTROL_FILESパラメータなど)
parameter_name=(value[,value] ...)
文字列型のパラメータ値は、一重引用符(')で囲む必要があります。ファイル名の大/小文字区別が有効となるのは、ホスト・オペレーティング・システムで有効な場合のみです。
複数の値を受け入れるパラメータの場合、アラート・ログから名前/値ペアを簡単にコピーして貼り付けられるように、複数行でパラメータを繰り返すことができます。この場合、各行には異なる値が含まれます。
control_files='/u01/app/oracle/oradata/orcl/control01.ctl' control_files='/u01/app/oracle/oradata/orcl/control02.ctl' control_files='/u01/app/oracle/oradata/orcl/control03.ctl'
複数の値を受け入れないパラメータを繰り返した場合、最後に指定した値のみが有効です。
Oracle Databaseには通常、適切な値が設定されたテキスト形式の初期化パラメータのサンプルが用意されています。構成やオプション、およびデータベースのチューニング計画によっては、オラクル社が提供するこれらの初期化パラメータを編集し、他の初期化パラメータを追加することが可能です。
テキスト形式の初期化パラメータ・ファイルのサンプルはinit.oraという名前で、ほとんどのプラットフォームの次の場所にあります。
ORACLE_HOME/dbs
サンプル・ファイルの内容は、次のとおりです。
############################################################################## # Example INIT.ORA file # # This file is provided by Oracle Corporation to help you start by providing # a starting point to customize your RDBMS installation for your site. # # NOTE: The values that are used in this file are only intended to be used # as a starting point. You may want to adjust/tune those values to your # specific hardware and needs. You may also consider using Database # Configuration Assistant tool (DBCA) to create INIT file and to size your # initial set of tablespaces based on the user input. ############################################################################### # Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at # install time) db_name='ORCL' memory_target=1G processes = 150 audit_file_dest='<ORACLE_BASE>/admin/orcl/adump' audit_trail ='db' db_block_size=8192 db_domain='' db_recovery_file_dest='<ORACLE_BASE>/flash_recovery_area' db_recovery_file_dest_size=2G diagnostic_dest='<ORACLE_BASE>' dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)' open_cursors=300 remote_login_passwordfile='EXCLUSIVE' undo_tablespace='UNDOTBS1' # You may want to ensure that control files are created on separate physical # devices control_files = (ora_control1, ora_control2) compatible ='11.2.0'
グローバル・データベース名は、ユーザー指定のローカル・データベース名と、ネットワーク構造内でのデータベースの位置で構成されます。データベース名のローカル名コンポーネントはDB_NAME初期化パラメータによって決定し、ネットワーク構造内のドメイン(論理的な位置)はオプションで指定できるDB_DOMAINパラメータによって決定します。これら2つのパラメータの設定を組み合せて、ネットワーク内で一意となるデータベース名を形成する必要があります。
たとえば、test.us.example.comというグローバル・データベース名を持つデータベースを作成するには、新しいパラメータ・ファイルのパラメータを次のように編集します。
DB_NAME = test DB_DOMAIN = us.example.com
ALTER DATABASE RENAME GLOBAL_NAME文を使用すると、データベースのGLOBAL_NAMEを変更できます。ただし、最初にDB_NAMEおよびDB_DOMAIN初期化パラメータを変更し、制御ファイルを再作成した後に、データベースを停止して再起動する必要があります。制御ファイルの再作成は、ALTER DATABASE BACKUP CONTROLFILE TO TRACEコマンドで簡単に行えます。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
|
関連項目: データベース名の別の変更手段であるDBNEWIDユーティリティの使用方法は、『Oracle Databaseユーティリティ』を参照してください。 |
DB_NAMEには、8文字以内のテキスト文字列を設定する必要があります。DB_NAMEに指定した名前は、データベースの作成時に、データベースのデータファイル、REDOログ・ファイルおよび制御ファイルに記録されます。データベース・インスタンスの起動時に、(パラメータ・ファイル内の)DB_NAMEパラメータの値と制御ファイル内のデータベース名が一致しないと、データベースは起動しません。
高速リカバリ領域とは、Oracle Databaseでバックアップおよびリカバリに関連するファイルを格納および管理できる場所のことです。これは、現在のデータベース・ファイル(データファイル、制御ファイルおよびオンラインREDOログ)の場所であるデータベース領域とは別です。
高速リカバリ領域を指定するには、次の初期化パラメータを使用します。
DB_RECOVERY_FILE_DEST: 高速リカバリ領域の場所。ディレクトリ、ファイル・システムまたは自動ストレージ管理(Oracle ASM)のディスク・グループです。RAWファイル・システムにはできません。
Oracle Real Application Clusters(Oracle RAC)環境では、この位置はクラスタ・ファイル・システム、Oracle ASMディスク・グループ、またはNFSを介して構成された共有ディレクトリであることが必要です。
DB_RECOVERY_FILE_DEST_SIZE: 高速リカバリ領域で使用される最大総バイト数を指定します。この初期化パラメータは、DB_RECOVERY_FILE_DESTを使用可能にする前に指定する必要があります。
Oracle RAC環境では、これら2つのパラメータの設定がすべてのインスタンスで同じであることが必要です。
これらのパラメータは、LOG_ARCHIVE_DESTおよびLOG_ARCHIVE_DUPLEX_DESTパラメータの値を設定している場合は使用可能にできません。高速リカバリ領域を設定する前に、これらのパラメータを使用禁止にする必要があります。かわりに、LOG_ARCHIVE_DEST_nパラメータの値を設定できます。ローカルのアーカイブ先が設定されておらず、LOG_ARCHIVE_DEST_1の値が設定されていない場合は、LOG_ARCHIVE_DEST_1パラメータは、高速リカバリ領域を指し示すように暗黙的に設定されます。
高速リカバリ領域によってデータベースのバックアップ操作およびリカバリ操作が簡素化されるため、この領域を使用することをお薦めします。
|
関連項目: 高速リカバリ領域の作成方法と使用方法については、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
CONTROL_FILES初期化パラメータでは、データベースに対して1つ以上の制御ファイル名を指定します。CREATE DATABASE文を実行すると、CONTROL_FILESパラメータに記述した制御ファイルが作成されます。
初期化パラメータ・ファイルにCONTROL_FILESを指定しないと、オペレーティング・システム固有のデフォルト・ファイル名を使用して、初期化パラメータ・ファイルと同じディレクトリにOracle Databaseが制御ファイルを作成します。Oracle Managed Filesが使用可能な場合は、Oracle Managed Filesの制御ファイルが作成されます。
データベース用の制御ファイルを作成するときに新しいオペレーティング・システム・ファイルを作成する場合は、CONTROL_FILESパラメータに記述されているファイル名が現在のシステム上に存在するいずれのファイル名とも一致しないことを確認してください。データベース用の制御ファイルを作成するときに既存のファイルを再利用または上書きする場合は、CONTROL_FILESパラメータに記述されているファイル名が、現在のシステム上に存在するファイル名と一致することを確認し、CREATE DATABASE文にCONTROLFILE REUSE句を指定します。
DB_BLOCK_SIZE初期化パラメータは、データベースの標準ブロック・サイズを指定します。このブロック・サイズはSYSTEM表領域に使用され、その他の表領域ではデフォルトで使用されます。Oracle Databaseは、最大4つの非標準ブロック・サイズをサポートします。
標準ブロック・サイズには、最も一般的に使用するブロック・サイズを選択します。多くの場合、設定が必要なブロック・サイズはこれのみです。通常、DB_BLOCK_SIZEは4Kまたは8Kに設定します。このパラメータの値を指定しないと、オペレーティング・システム固有のデフォルト・データ・ブロック・サイズが使用されますが、大抵の場合、このデフォルト・ブロック・サイズで十分です。
データベースの作成後は、データベースを再作成する以外にブロック・サイズを変更する方法はありません。データベースのブロック・サイズがオペレーティング・システムのブロック・サイズと異なる場合は、データベースのブロック・サイズがオペレーティング・システムのブロック・サイズの倍数であることを確認してください。たとえば、使用しているオペレーティング・システムのブロック・サイズが2KB(2048バイト)の場合、次のDB_BLOCK_SIZE初期化パラメータの設定は有効です。
DB_BLOCK_SIZE=4096
データ・ブロック・サイズを大きくすると、ディスクとメモリーのI/O(データのアクセスと格納)の効率が向上します。したがって、次の条件に該当する場合は、オペレーティング・システムのブロック・サイズより大きいブロック・サイズの指定を考慮してください。
Oracle Databaseが大容量メモリーと高速ディスク・ドライブを装備した大型コンピュータ・システム上にある場合。たとえば、莫大なハードウェア資源を有するメインフレーム・コンピュータによって制御されるデータベースは、通常4KB以上のデータ・ブロック・サイズを使用します。
Oracle Databaseが動作するオペレーティング・システムのブロック・サイズが小さい場合。たとえば、オペレーティング・システムのブロック・サイズが1KBで、この値がデフォルトのデータ・ブロック・サイズと一致する場合、データベースは通常の処理で過度のディスクI/Oを実行している可能性があります。この場合にパフォーマンスを最高にするには、データベース・ブロックを複数のオペレーティング・システム・ブロックから構成する必要があります。
|
関連項目: デフォルトのブロック・サイズの詳細は、オペレーティング・システム固有のOracleマニュアルを参照してください。 |
CREATE TABLESPACE文でBLOCKSIZE句を指定すると、非標準のブロック・サイズを持つ表領域を作成できます。これらの非標準ブロック・サイズには、2の累乗である2KB、4KB、8KB、16KB、32KBのいずれかを指定します。最大ブロック・サイズに関するプラットフォーム固有の制限が適用されるので、プラットフォームによっては、これらのサイズの一部は指定できない場合があります。
非標準ブロック・サイズを使用する場合は、使用するすべての非標準ブロック・サイズについて、SGAメモリーのバッファ・キャッシュ領域内にサブキャッシュを構成する必要があります。これらのサブキャッシュの構成に使用する初期化パラメータについては、「自動共有メモリー管理の使用」を参照してください。
データベースに複数のブロック・サイズを指定できる機能は、特にデータベース間で表領域をトランスポートする場合に役立ちます。たとえば、OLTP環境から、8KBの標準ブロック・サイズを使用するデータ・ウェアハウス環境に、4KBのブロック・サイズを使用する表領域をトランスポートできます。
|
注意: 32KBのブロック・サイズは、64ビットのプラットフォームでのみ有効です。 |
|
注意: セクター・サイズが4KBのディスクを使用している場合、パフォーマンスが低下する可能性があるため、2KBのブロック・サイズを指定することはお薦めしません。詳細は、「REDOログ・ファイルのブロック・サイズの計画」を参照してください。 |
Oracle Databaseに同時に接続できるオペレーティング・システム・プロセスの最大数は、PROCESSES初期化パラメータによって決定します。このパラメータの値は、最低でも各バックグラウンド・プロセスごとに1つ、および各ユーザー・プロセスごとに1つです。バックグラウンド・プロセスの数は、使用しているデータベースの機能によって異なります。たとえば、アドバンスト・キューイングまたはファイル・マッピング機能を使用している場合は、追加のバックグラウンド・プロセスが必要です。自動ストレージ管理を使用している場合は、データベース・インスタンス用に追加プロセスを3つ追加します。
50のユーザー・プロセスを実行する予定の場合は、PROCESSES初期化パラメータの値を70に見積もって設定することをお薦めします。
データ定義言語(DDL)文は非ブロッキングまたはブロッキングのいずれかで、どちらのタイプのDDL文にも内部構造の排他ロックが必要です。DDL文の実行時にこのようなロックが使用できない場合、非ブロッキングDDL文とブロッキングDDL文の動作は異なります。
非ブロッキングDDLは、DDLの影響を受けるオブジェクトを参照している同時DMLトランザクションがすべてコミットするかロール・バックするまで待機します。
ブロッキングDDLは、ロックが使用できるようになった直後に実行していれば成功するような場合でも失敗します。
ブロッキングDDL文でロックを待機できるようにするには、DDLロック・タイムアウトを指定します。これは、DDLコマンドが必要なロックを待機する秒数であり、この秒数を超えるとDDL文は失敗します。
DDLロック・タイムアウトを指定するには、DDL_LOCK_TIMEOUTパラメータを使用します。設定可能なDDL_LOCK_TIMEOUTの値の範囲は、0から1,000,000です。デフォルトは0です。DDL_LOCK_TIMEOUTは、ALTER SESSION文を使用して、システム・レベルまたはセッション・レベルで設定できます。
|
注意: DDL_LOCK_TIMOUTパラメータは、非ブロッキングDDL文に作用しません。 |
|
関連項目:
|
すべてのOracle Databaseには、データベースの変更を取り消すために使用する情報の管理方法が必要です。これらの情報は、主にコミットされる前のトランザクションの処理レコードから構成されます。これらのレコードを総称してUNDOデータと呼びます。この項では、UNDO表領域を使用する自動UNDO管理用の環境を設定する方法について説明します。
UNDO_MANAGEMENT初期化パラメータでは、インスタンスを自動UNDO管理モード(UNDOがUNDO表領域に格納されます)で起動するかどうかを指定します。自動UNDO管理モードを使用可能にするには、このパラメータをAUTOに設定します。リリース11gからは、パラメータを省略するかNULLにすると、デフォルトでAUTOになります。
インスタンスを自動UNDO管理モードで起動すると、そのインスタンスは、UNDOデータを格納するためのUNDO表領域を選択しようとします。自動UNDO管理モードでデータベースが作成されている場合は、デフォルトのUNDO表領域(システム生成のSYS_UNDOTBS表領域またはユーザー指定のUNDO表領域)が、インスタンス起動時に使用されるUNDO表領域となります。インスタンスに対するこのデフォルトは、UNDO_TABLESPACE初期化パラメータに値を指定することで上書きできます。このパラメータは特に、Oracle Real Application Clusters環境のインスタンスに特定のUNDO表領域を割り当てる際に役立ちます。
UNDO表領域がUNDO_TABLESPACE初期化パラメータによって指定されていない場合は、データベース内で最初に使用可能なUNDO表領域が選択されます。使用可能なUNDO表領域がない場合、インスタンスはUNDO表領域のない状態で起動し、UNDOデータはSYSTEM表領域に書き込まれます。このモードでは実行しないようにしてください。
|
注意: CREATE DATABASE文を使用してデータベースを作成するときには、UNDO_TABLESPACEパラメータを初期化パラメータ・ファイルに指定しないでください。かわりに、UNDO TABLESPACE句をCREATE DATABASE文に指定します。 |
COMPATIBLE初期化パラメータによって、ディスクのファイル形式に影響を与える機能の使用をデータベースで使用可能または使用不可にできます。たとえば、Oracle Database 11g リリース2(11.2)データベースを作成しても、初期化パラメータ・ファイルにCOMPATIBLE=10.0.0を指定すると、11.2との互換性が必要な機能の使用を試行した場合にエラーが生成されます。これは、データベースが10.0.0互換性レベルにあるとみなされているためです。
COMPATIBLE初期化パラメータを変更することによって、データベースの互換性レベルを上げることができます。このようにすると、設定した互換性レベルよりも低いレベルではデータベースを起動できなくなりますが、互換性を上げる前の時点にPoint-in-Timeリカバリを実行することはできます。
COMPATIBLEパラメータのデフォルト値は、主要な最新リリースの番号です。
|
注意:
|
|
関連項目:
|
|
注意: Oracleでは、同時セッションの数によるライセンス提供がなくなりました。したがって、LICENSE_MAX_SESSIONSおよびLICENSE_SESSIONS_WARNING初期化パラメータは不要のため、非推奨になりました。 |
指名ユーザー・ライセンスを使用している場合、Oracle Databaseではこの形式のライセンスを施行できます。データベース内に作成するユーザーの数に対して、制限を設定できます。この制限に達すると、それ以上のユーザーは作成できません。
|
注意: このメカニズムでは、データベースにアクセスする人がそれぞれ一意のユーザー名を持ち、ユーザー名を共有していないものと想定しています。したがって、指名ユーザー・ライセンスによってOracleのライセンス契約に従っていることを保証できるように、複数のユーザーが同じ名前を使用してログインすることを許可しないでください。 |
データベースに作成するユーザー数を制限するには、次の例に示すように、そのデータベースの初期化パラメータ・ファイルにLICENSE_MAX_USERS初期化パラメータを設定します。
LICENSE_MAX_USERS = 200
Oracle Databaseの初期化パラメータは、テキスト形式の初期化パラメータ・ファイルに格納されていました。管理性を向上させるために、データベースを起動および停止している間も持続するバイナリ形式のサーバー・パラメータ・ファイルによる初期化パラメータのメンテナンスを選択できます。ここでは、サーバー・パラメータ・ファイルの概要を示し、各パラメータ格納方式を使用した初期化パラメータの管理方法について説明します。この項の内容は、次のとおりです。
サーバー・パラメータ・ファイルは、Oracle Databaseサーバーが稼働するシステムで管理される初期化パラメータのリポジトリと考えられます。これは、サーバー側の初期化パラメータ・ファイルとして設計されています。サーバー・パラメータ・ファイルに格納された初期化パラメータは持続性があり、インスタンスの実行中に加えられたパラメータへの変更はインスタンスの停止から起動までの間も持続します。この配置によって、ALTER SYSTEM文による変更を持続させるために、初期化パラメータを手動で更新する必要がなくなります。また、Oracle Databaseサーバーによる自己チューニングの基礎ともなります。
最初のサーバー・パラメータ・ファイルは、CREATE SPFILE文を使用して、テキスト形式の初期化パラメータ・ファイルから作成します。(Database Configuration Assistantで直接作成することもできます。)サーバー・パラメータ・ファイルは、テキスト・エディタで編集できないバイナリ・ファイルです。Oracle Databaseには、サーバー・パラメータ・ファイル内のパラメータの設定を表示および変更するために、他のインタフェースが用意されています。
|
注意: テキスト・エディタでバイナリ形式のサーバー・パラメータ・ファイルをオープンし、そのテキストを表示することは可能ですが、手動で編集しないでください。手動で編集すると、ファイルが破損します。また、インスタンスが起動できなくなり、たとえインスタンスが起動しても失敗します。 |
PFILE句を指定せずにSTARTUPコマンドを発行すると、Oracleインスタンスは、オペレーティング・システム固有のデフォルトの位置でサーバー・パラメータ・ファイルを検索し、そのファイルから初期化パラメータの設定を読み込みます。サーバー・パラメータ・ファイルが見つからない場合は、テキスト形式の初期化パラメータ・ファイルを検索します。サーバー・パラメータ・ファイルがあってもテキスト形式の初期化パラメータ・ファイルの設定を優先する場合は、STARTUPコマンドの発行時にPFILE句を指定する必要があります。サーバー・パラメータ・ファイルを使用してインスタンスを起動する方法の詳細は、「データベースの起動」を参照してください。
現在、テキスト形式の初期化パラメータ・ファイルを使用している場合は、次の手順に従ってサーバー・パラメータ・ファイルに移行します。
初期化パラメータ・ファイルがクライアント・システム上にある場合は、FTPなどを使用して、クライアント・システムからサーバー・システムにファイルを転送してください。
|
注意: Oracle Real Application Clusters環境でサーバー・パラメータ・ファイルに移行する場合は、インスタンス固有のすべての初期化パラメータ・ファイルを、1つの初期化パラメータ・ファイルに結合する必要があります。この操作の方法、およびOracle Real Application Clustersのインストールの一部であるインスタンスでサーバー・パラメータ・ファイルを使用する際の固有の処理については、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』および使用しているプラットフォーム固有のOracle Real Application Clustersインストレーション・ガイドを参照してください。 |
CREATE SPFILE FROM PFILE文を使用して、デフォルト位置にサーバー・パラメータ・ファイルを作成します。詳細は、「サーバー・パラメータ・ファイルの作成」 を参照してください。
この文を実行すると、テキスト形式の初期化パラメータ・ファイルが読み込まれて、サーバー・パラメータ・ファイルが作成されます。CREATE SPFILE文を発行するために、データベースを起動する必要はありません。
インスタンスを起動または再起動します。
インスタンスはデフォルト位置にある新規SPFILEを検出し、そのファイルを使用して起動します。
サーバー・パラメータ・ファイルを作成するには、CREATE SPFILE文を使用します。この文を実行するには、SYSDBAまたはSYSOPERシステム権限が必要です。
|
注意: Database Configuration Assistantを使用してデータベースを作成した場合は、サーバー・パラメータ・ファイルが自動的に作成されます。 |
CREATE SPFILE文は、インスタンスの起動前後に実行できます。ただし、すでにサーバー・パラメータ・ファイルを使用してインスタンスを起動している場合に、インスタンスで現在使用されているのと同じサーバー・パラメータ・ファイルを再作成しようとすると、エラーが発生します。
サーバー・パラメータ・ファイル(SPFILE)は、既存のテキスト形式の初期化パラメータ・ファイルまたはメモリーから作成できます。メモリーからのSPFILEの作成では、実行中のインスタンス内の初期化パラメータの現行値をSPFILEにコピーします。
次の例では、テキスト形式の初期化パラメータ・ファイル/u01/oracle/dbs/init.oraからサーバー・パラメータ・ファイルを作成しています。この例ではSPFILEの名前を指定していないため、ファイルは、表2-3に示したプラットフォーム固有のデフォルトの名前と場所で作成されます。
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';
次の例では、メモリー内の初期化パラメータの現行値から、デフォルトの場所にサーバー・パラメータ・ファイルを作成しています。
CREATE SPFILE FROM MEMORY;
デフォルトのSPFILE名と場所を使用するか、SPFILE名と場所を指定するかどうかに関係なく、同じ名前のSPFILEがその場所にすでに存在する場合は、警告メッセージなしに上書きされます。
テキスト形式の初期化パラメータ・ファイルからSPFILEを作成すると、初期化パラメータ・ファイル内のパラメータ設定と同じ行に記述されているコメントもSPFILEで管理されます。他のコメントはすべて無視されます。
SPFILEの名前と格納場所には、データベースによるデフォルト設定を使用することをお薦めします。これにより、データベースの管理が容易になります。たとえば、STARTUPコマンドはこのデフォルトの場所を想定して、SPFILEを読み込みます。
表2-3は、UNIX、LinuxおよびWindowsのプラットフォームごとに、テキスト形式の初期化パラメータ・ファイル(PFILE)とサーバー・パラメータ・ファイル(SPFILE)の両方のデフォルトの名前と場所を示しています(Oracle Automatic Storage Management(Oracle ASM)を使用する場合と使用しない場合について)。この表では、SPFILEをファイルと想定しています。RAWデバイスの場合、デフォルトの名前は論理ボリューム名またはパーティション・デバイスの名前となり、デフォルトの場所も異なります。
表2-3 UNIX、LinuxおよびWindowsにおけるPFILEおよびSPFILEのデフォルトの名前と場所
| プラットフォーム | PFILEのデフォルト名 | SPFILEのデフォルト名 | PFILEのデフォルトの場所 | SPFILEのデフォルトの場所 |
|---|---|---|---|---|
|
UNIXとLinux |
|
|
OH |
Oracle ASMを使用しない場合: OH Oracle ASMを使用する場合: データファイルと同じディスク・グループ脚注2 |
|
Windows |
|
|
OH |
Oracle ASMを使用しない場合: OH Oracle ASMを使用する場合: データファイルと同じディスク・グループ脚注2 |
脚注1OHはOracleホーム・ディレクトリを示す
脚注2DBCAを使用して作成されたデータベースを想定
|
注意: 起動時に、インスタンスは最初にspfileORACLE_SID.oraという名前のSPFILEを検索し、見つからない場合はspfile.oraを検索します。spfile.oraを使用すると、すべてのReal Application Clusters(Oracle RAC)インスタンスで同じサーバー・パラメータ・ファイルを使用できます。
いずれのSPFILEも見つからない場合、インスタンスはテキスト形式の初期化パラメータ・ファイル |
デフォルトの場所以外の場所にSPFILEを作成する場合は、デフォルトのPFILEの場所に、そのサーバー・パラメータ・ファイルを指し示すスタブPFILEを作成する必要があります。詳細は、「データベースの起動」を参照してください。
Oracle ASMが存在する場合にDBCAを使用してデータベースを作成すると、DBCAによってSPFILEはOracle ASMディスク・グループ内に配置され、このスタブPFILEも作成されます。
SPFILE初期化パラメータには、現在のサーバー・パラメータ・ファイルの名前を指定します。データベースでデフォルトのサーバー・パラメータ・ファイルが使用されている場合(つまり、PFILEパラメータを指定せずにSTARTUPコマンドを発行した場合)、SPFILEの値はサーバーによって内部的に設定されます。SQL*PlusコマンドのSHOW PARAMETERS SPFILE(またはパラメータの値を問い合せる他の方法)を使用すると、現在使用中のサーバー・パラメータ・ファイルの名前が表示されます。
ALTER SYSTEM文を使用すると、初期化パラメータ値を設定、変更またはデフォルトにリストアできます。テキスト形式の初期化パラメータ・ファイルを使用している場合、現行のインスタンスに対するパラメータの値のみALTER SYSTEM文で変更されます。これは、ディスク上のテキスト形式の初期化パラメータを自動的に更新するメカニズムがないためです。以後のインスタンスに渡すためには、ディスク上の初期化パラメータを手動で更新する必要があります。サーバー・パラメータ・ファイルを使用している場合は、このような制限はありません。
初期化パラメータには、次の2種類があります。
動的な初期化パラメータ: 現行のOracle Databaseインスタンスに対して変更できます。変更は即時に有効になります。
静的な初期化パラメータ: 現行のインスタンスに対して変更できません。これらのパラメータはテキスト形式の初期化パラメータまたはサーバー・パラメータ・ファイルで変更し、変更を有効にするにはデータベースを再起動する必要があります。
初期化パラメータ値を設定または変更するには、ALTER SYSTEM文でSET句を指定します。また、次の表のように、変更の適用範囲を指定する場合は、オプションのSCOPE句を指定します。
| SCOPE句 | 説明 |
|---|---|
SCOPE = SPFILE |
サーバー・パラメータ・ファイルのみに変更が適用されます。次のような効果があります。
静的パラメータでは、 |
SCOPE = MEMORY |
メモリーのみに変更が適用されます。次のような効果があります。
静的パラメータでは、この指定は使用できません。 |
SCOPE = BOTH |
サーバー・パラメータ・ファイルとメモリーの両方に変更が適用されます。次のような効果があります。
静的パラメータでは、この指定は使用できません。 |
インスタンスがサーバー・パラメータ・ファイルを使用して起動していない場合にSCOPE=SPFILEまたはSCOPE=BOTHを指定すると、エラーが発生します。デフォルトは、インスタンス起動時にサーバー・パラメータ・ファイルを使用した場合はSCOPE=BOTH、テキスト形式の初期化パラメータ・ファイルを使用した場合はMEMORYになります。
動的パラメータの場合は、DEFERREDキーワードを指定することもできます。このキーワードを指定すると、これから確立するセッションでのみ変更が有効になります。
SCOPEをSPFILEまたはBOTHに指定した場合は、オプションのCOMMENT句を使用すると、パラメータの更新にテキスト文字列を関連付けることができます。サーバー・パラメータ・ファイルにコメントが記述されます。
次の文は、接続を中断するまでのログイン試行の最大失敗回数を変更します。ここにはコメントが含まれており、変更をサーバー・パラメータ・ファイルにのみ適用することを明示しています。
ALTER SYSTEM SET SEC_MAX_FAILED_LOGIN_ATTEMPTS=3
COMMENT='Reduce from 10 for tighter security.'
SCOPE=SPFILE;
次の例では、属性のリストをとる複雑な初期化パラメータを設定しています。値を設定するパラメータは、LOG_ARCHIVE_DEST_n初期化パラメータです。この文によって、このパラメータの既存の設定を変更するか、または新しいアーカイブ先を作成できます。
ALTER SYSTEM
SET LOG_ARCHIVE_DEST_4='LOCATION=/u02/oracle/rbdb1/',MANDATORY,'REOPEN=2'
COMMENT='Add new destination on Nov 29'
SCOPE=SPFILE;
値がパラメータのリストで構成されている場合は、位置または序数によって個々の属性を編集することはできません。パラメータを更新するたびに、完全な値のリストを指定する必要があります。これによって、新しいリストで古いリストが完全に置換されます。
ALTER SYSTEM RESETコマンドを使用すると、インスタンスの起動に使用したSPFILEの初期化パラメータの設定をクリア(削除)できます。SCOPE=MEMORYおよびSCOPE=BOTHはいずれも指定できません。SCOPE = SPFILE句は必要ありませんが、指定してもかまいません。
次回のデータベース起動時にデフォルト値が使用されるように、SPFILEのパラメータをクリアできます。
|
関連項目: ALTER SYSTEMコマンドの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
CREATE PFILE文を使用すると、サーバー・パラメータ・ファイル(SPFILE)をテキスト形式の初期化パラメータ・ファイルにエクスポートできます。このエクスポートは、次のような場合に必要になる場合があります。
診断のために、現在インスタンスで使用しているすべてのパラメータのリストを作成する場合。これは、SQL*PlusのSHOW PARAMETERSコマンド、あるいはV$PARAMETERまたはV$PARAMETER2ビューの選択と同じです。
最初にエクスポートし、結果のテキスト・ファイルを編集してから、CREATE SPFILE文を使用して再作成するという手順で、サーバー・パラメータ・ファイル&spfile;を変更する場合。
PFILE句にエクスポート・ファイルを指定して、インスタンスを起動することもできます。
CREATE PFILE文を実行するには、SYSDBAまたはSYSOPERシステム権限が必要です。エクスポート・ファイルは、データベース・サーバー・システム上に作成されます。そこには、パラメータ設定と同じ行に記述されているパラメータに関するコメントがすべて含まれます。
次の例では、SPFILEからテキスト形式の初期化パラメータ・ファイルを作成しています。
CREATE PFILE FROM SPFILE;
この例ではファイル名を指定していないため、プラットフォーム固有のデフォルト・サーバー・パラメータ・ファイルから、プラットフォーム固有の名前で初期化パラメータ・ファイルが作成されます。
次の例では、サーバー・パラメータ・ファイルからテキスト形式の初期化パラメータ・ファイルを作成していますが、複数のファイル名が指定されています。
CREATE PFILE='/u01/oracle/dbs/test_init.ora'
FROM SPFILE='/u01/oracle/dbs/test_spfile.ora';
サーバー・パラメータ・ファイル(SPFILE)をエクスポートして、そのバックアップを作成できます。詳細は「サーバー・パラメータ・ファイルのエクスポート」を参照してください。データベースのバックアップおよびリカバリ計画がRecovery Manager(RMAN)を使用して実装されている場合は、RMANを使用してSPFILEのバックアップを作成できます。SPFILEのバックアップは、データベースのバックアップ作成時にRMANにより自動的に作成されますが、RMANを使用すると現在アクティブになっているSPFILEのバックアップも作成できます。
|
関連項目: 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』 |
サーバー・パラメータ・ファイル(SPFILE)が失われるかまたは破損した場合は、現行インスタンスが失敗するか、またはデータベース・インスタンス起動時の次回の試行が失敗する可能性があります。SPFILEをリカバリする方法は複数あります。
インスタンスが実行中の場合は、次のコマンドを発行して、メモリー内の初期化パラメータの現行値からSPFILEを再作成します。
CREATE SPFILE FROM MEMORY;
このコマンドでは、SPFILEはデフォルトの場所にデフォルトの名前で作成されます。新しい名前を使用して、または指定した場所にSPFILEを作成することもできます。例については、「サーバー・パラメータ・ファイルの作成」を参照してください。
有効なテキスト形式の初期化パラメータ・ファイル(PFILE)がある場合は、次のコマンドを使用してPFILEからSPFILEを再作成します。
CREATE SPFILE FROM PFILE;
このコマンドは、PFILEがデフォルトの場所にあり、デフォルトの名前であると想定しています。PFILEがデフォルト以外の場所にあるか、デフォルト以外の名前の場合に使用するコマンド構文については、「サーバー・パラメータ・ファイルの作成」を参照してください。
バックアップからSPFILEをリストアします。
詳細は、「サーバー・パラメータ・ファイルのバックアップの作成」を参照してください。
これらのいずれの方法も使用できない状況の場合は、次の手順を実行します。
アラート・ログのパラメータ値のリストからテキスト形式の初期化パラメータ・ファイル(PFILE)を作成します。
インスタンスの起動時に、起動に使用された初期化パラメータがアラート・ログに書き込まれます。このセクションを(XMLタグが含まれていない)テキスト・バージョンのアラート・ログからコピーして、新規PFILEに貼り付けることができます。
詳細は、「アラート・ログの表示」を参照してください。
PFILEからSPFILEを作成します。
詳細は、「サーバー・パラメータ・ファイルの作成」 を参照してください。
パラメータ更新時の読取り/書込みエラー
パラメータの更新時にサーバー・パラメータ・ファイルの読込みまたは書込みでエラーが発生した場合は、アラート・ログにエラーが記録されて、サーバー・パラメータ・ファイルに対する後続のパラメータ更新がすべて無視されます。この時点では、次の処理のいずれかを実行できます。
インスタンスを停止し、この項の前述の説明に従ってサーバー・パラメータ・ファイルをリカバリした後、インスタンスを再起動します。
後続のパラメータ更新を持続的にするための処置を講じない場合は、データベースの実行を継続します。
パラメータの設定は、次の表に示すように、いくつかの方法で表示できます。
| 方法 | 説明 |
|---|---|
SHOW PARAMETERS |
このSQL*Plusコマンドを使用すると、現行セッションで有効な初期化パラメータの値が表示されます。 |
SHOW SPPARAMETERS |
このSQL*Plusコマンドを使用すると、サーバー・パラメータ・ファイル(SPFILE)の初期化パラメータの値が表示されます。 |
CREATE PFILE |
このSQL文は、SPFILEまたは現在のインメモリー設定からテキスト形式の初期化パラメータ・ファイル(PFILE)を作成します。PFILEはテキスト・エディタで表示できます。 |
V$PARAMETER |
このビューを使用すると、現行セッションで有効な初期化パラメータの値が表示されます。 |
V$PARAMETER2 |
このビューを使用すると、現行セッションで有効な初期化パラメータの値が表示されます。各リスト・パラメータ値が別々の行に出力されるため、このビューの方がリスト・パラメータ値を容易に識別できます。 |
V$SYSTEM_PARAMETER |
このビューを使用すると、インスタンスで有効な初期化パラメータの値が表示されます。新しいセッションは、インスタンス全体の値からパラメータ値を継承します。 |
V$SYSTEM_PARAMETER2 |
このビューを使用すると、インスタンスで有効な初期化パラメータの値が表示されます。新しいセッションは、インスタンス全体の値からパラメータ値を継承します。各リスト・パラメータ値が別々の行に出力されるため、このビューの方がリスト・パラメータ値を容易に識別できます。 |
V$SPPARAMETER |
このビューを使用すると、SPFILEの現在の内容が表示されます。インスタンスでSPFILEが使用されていない場合は、ISSPECIFIED列にFALSEが返されます。 |
|
関連項目: ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
この項の内容は次のとおりです。
データベース・サービス(サービス)は、Oracle Databaseでワークロードを管理するための論理的な抽象概念です。サービスは、ワークロードを互いに共通の要素を持たないグループに分割します。各サービスは、一般的な属性、サービス・レベルしきい値および優先度でワークロードを表します。グループ化は作業の属性に基づいて行われますが、これらの属性には、使用するアプリケーション機能、アプリケーション機能を実行する場合の優先度、管理の対象となるジョブ・クラス、アプリケーション機能またはジョブ・クラスで使用するデータの範囲などが含まれていることがあります。たとえば、Oracle E-Business Suiteでは、総勘定元帳、売掛金勘定、受注など、職務ごとにサービスを定義します。データベース・サービスを構成するとき、一意のグローバル名、関連するパフォーマンス目標および関連する重要性を各サービスに指定します。これらのサービスは、Oracle Databaseと緊密に統合され、データ・ディクショナリに保持されます。
接続要求には、データベース・サービス名を指定できます。このように、中間層アプリケーションおよびクライアントとサーバーのアプリケーションでは、サービスをTNS接続データ内の接続の一部として指定することで、サービスを利用します。サービス名が指定されておらず、Net Servicesファイルlistener.oraにデフォルト・サービスが指定されている場合は、デフォルト・サービスを使用して接続されます。
サービスを使用すると、ワークロードの構成、管理、有効化と無効化を実行でき、さらに単一エンティティとして測定できます。これらの作業は、Database Configuration Assistant(DBCA)、Net Configuration Assistant(NetCA)およびOracle Enterprise Managerなどの標準的なツールを使用して実行できます。Enterprise Managerは、表示と操作に関するサービスを全体としてサポートし、必要な場合はインスタンス・レベルへのドリルダウンをサポートしています。
Oracle Real Application Clusters(Oracle RAC)環境では、サービスは1つ以上のインスタンスにまたがり、トランザクション・パフォーマンスに基づいたワークロードの均衡化に役立ちます。これによって、エンドツーエンドの無人リカバリ、ワークロードによるロール変更、位置の完全な透過性が可能となります。また、Oracle RACを使用すると、Enterprise Manager、DBCAおよびServer Control Utility(SRVCTL)で複数のサービス機能を管理できます。
サービスは、パフォーマンス・チューニングに追加のディメンションも提供します。すべてのセッションを匿名で共有している大部分のシステムでは、「サービスとSQL」によるチューニングで「セッションとSQL」によるチューニングを置換できます。サービスを使用することで、ワークロードが表示可能および測定可能となります。リソースの使用と待機は、アプリケーションがその起因となっています。また、サービスに割り当てたリソースは、ロードの増減にあわせて調整できます。この動的なリソース割当てによって、要求の発生に対応した費用効率の高いソリューションが可能となります。たとえば、サービスを自動的に測定し、そのパフォーマンスをサービス・レベルのしきい値と比較できます。パフォーマンス違反はEnterprise Managerにレポートされるため、自動ソリューションまたはスケジュールされたソリューションを実行できます。
Oracle Database機能のいくつかは、サービスをサポートしています。自動ワークロード・リポジトリ(AWR)は、サービスのパフォーマンスを管理します。AWRには、実行時間、待機クラスおよびサービスで使用されたリソースも含めて、サービスのパフォーマンスが記録されます。AWRは、サービス応答時間がしきい値を超えた場合、警告をアラートします。動的なビューには、現在のサービス・パフォーマンスのメトリックが時間の履歴単位でレポートされます。各サービスには、応答時間とCPU使用に関するサービス品質のしきい値があります。
さらに、データベース・リソース・マネージャでは、サービスをコンシューマ・グループにマッピングできます。これによって、サービスの優先度を他のサービスと関連させて自動的に管理できます。コンシューマ・グループを使用すると、比率またはリソース使用量の観点から相対的な優先順序を定義できます。詳細は、第27章「Oracle Database Resource Managerを使用したリソースの管理」および具体的には「コンシューマ・グループへのセッションのマッピング・ルールの指定」を参照してください。
また、サービスのエディション属性を指定することもできます。エディションを使用すると、データベース内に同じオブジェクトの複数のバージョンを保持できます。あるサービスにエディション属性を指定すると、そのサービスを指定する後続のすべての接続が、このエディションを初期セッション・エディションとして使用します。詳細は、「データベース・サービスのエディション属性の設定」を参照してください。
エディションをサービス属性として指定すると、リソース使用の管理が容易になります。たとえば、1つのエディションに関連付けられた複数のサービスを1つのOracle RAC環境における個別のインスタンスに配置でき、データベース・リソース・マネージャは、リソース・プランを対応するサービスに関連付けることによって、異なるエディションで使用されているリソースを管理できます。
サービスには、アプリケーション、アプリケーション機能およびデータの範囲が、機能サービスまたはデータ依存サービスとして記述されています。機能サービスは最も一般的なワークロードのマッピングです。特定の機能を使用する複数のセッションはまとめてグループ化されます。これに対して、データ依存ルーティングは、データ・キーに基づいてセッションをサービスにルーティングします。作業要求のサービスへのマッピングは、アプリケーション・サーバーとTPモニターのオブジェクト関連マッピング・レイヤーで発生します。たとえば、Oracle RACでは、データベースが共有されているため、これらの範囲は要求に基づいて完全に動的にできます。
また、Oracle RACデータベースには、事前接続のアプリケーション・サービスを定義できます。事前接続のサービスは、複数のインスタンスにまたがって、障害時にサービスをサポートします。この事前接続のサービスは、TAF事前接続モードをサポートし、Oracle RAC使用時には透過的に管理されます。
アプリケーションにより使用されるサービスに加えて、Oracle Databaseでは、2つの内部サービスもサポートされています。SYS$BACKGROUNDはバックグラウンド・プロセスのみで使用され、SYS$USERSはサービスに関連していないユーザー・セッションに対するデフォルトのサービスです。
サービスを使用するために、アプリケーション・コードを変更する必要はありません。クライアント側の作業は、指定したサービスへ接続できます。Oracle Scheduler、パラレル実行、Oracle Streamsアドバンスト・キューイングなどのサーバー側での作業では、ワークロード定義の一部としてサービス名を設定します。サービス下で実行される作業要求は、そのサービスのパフォーマンスしきい値を継承し、サービスの一部として測定されます。
Oracle Schedulerでは、ジョブ・クラスの作成時にオプションでサービスを割り当てることができます。実行中に複数のジョブがジョブ・クラスに割り当てられ、サービス内で複数のジョブ・クラスを実行できます。ジョブ・クラスとともにサービスを使用することで、ジョブ・スケジューラによって実行される作業が、ワークロード管理とパフォーマンス・チューニングに対して示されます。
パラレル問合せとパラレルDMLの場合、問合せコーディネータは他のクライアントと同じようにサービスに接続します。パラレル問合せプロセスは、実行中そのサービスを継承します。問合せが終了した時点で、パラレル実行プロセスはデフォルトのサービスに戻ります。
|
関連項目:
|
データベース・サービスの作成方法はデータベースの構成によっていくつかあります。
データベース・サービスの作成方法は、次のとおりです。
単一インスタンスのデータベースをOracle Restartで管理している場合は、SRVCTLユーティリティを使用してデータベース・サービスを作成します。
srvctl add service -d db_unique_name -s service_name
Oracle Restartで管理していない単一インスタンスのデータベースでは、次のいずれかを実行します。
SERVICE_NAMESパラメータに希望するサービス名を追加します。
DBMS_SERVICE.CREATE_SERVICEパッケージ・プロシージャをコールします。
(オプション)サービス属性をOracle Enterprise ManagerまたはDBMS_SERVICE.MODIFY_SERVICEで定義します。
|
関連項目:
|
サービス情報は、次のサービス固有のビューで参照できます。
DBA_SERVICES
ALL_SERVICESまたはV$SERVICES
V$ACTIVE_SERVICES
V$SERVICE_STATS
V$SERVICE_EVENT
V$SERVICE_WAIT_CLASSES
V$SERV_MOD_ACT_STATS
V$SERVICE_METRICS
V$SERVICE_METRICS_HISTORY
次の追加ビューにも、サービスに関する情報が表示されます。
V$SESSION
V$ACTIVE_SESSION_HISTORY
DBA_RSRC_GROUP_MAPPINGS
DBA_SCHEDULER_JOB_CLASSES
DBA_THRESHOLDS
|
関連項目: これらのビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
「DBCAを使用したデータベースの作成」または「CREATE DATABASE文を使用したデータベースの作成」で説明されているように、データベースの作成後は、インスタンスが稼働しておりデータベースがオープンしているので、通常どおりにデータベースを使用できます。他の処理も実行できますが、この項ではその処理の一部について説明します。
このリリースのOracle Databaseでは、データベースのセキュリティを確保するためにいくつかの機能が拡張されました。このリリースのセキュリティ・ガイドラインは、『Oracle Databaseセキュリティ・ガイド』にあります。これらのガイドラインを参照し、その内容に従ってデータベースを構成してください。
データベースを作成した後は、Oracle Identity Managementが活用できるように構成できます。構成方法の詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。
新しく作成したデータベースには、データベースの管理にとって重要なユーザー・アカウントが少なくとも3つ(SYS、SYSTEMおよびSYSMAN)あります。認可されたユーザーのみが使用する追加の管理アカウントが提供されています。これらのアカウントを、オラクル社が提供するパスワードを認識している未認可ユーザーによる使用から保護するには、それぞれのパスワードを期限切れにすることで最初にアカウントをロックします。データベース管理者には、これらのアカウントのロック解除とリセットを行う責任があります。
新規の各Oracle Databaseインストールで作成される事前定義のユーザー・アカウントの全リストは、『Oracle Database 2日でセキュリティ・ガイド』を参照してください。
|
注意: データベースへの不当なアクセスを防ぎ、データベースの整合性を保護するには、データベースの作成時に、ユーザー・アカウントSYSとSYSTEMに対して新しいパスワードを指定することが重要です。パスワードを指定するには、手動でデータベースを作成するときに次のCREATE DATABASE句を指定するか、またはDBCAを使用してデータベースを作成します。
|
|
関連項目:
|
透過的データ暗号化は、個々のデータベース列をデータファイルに格納する前に暗号化するか、表領域全体を暗号化する機能です。ユーザーが、オペレーティング・システムのツールを使用してデータファイルの内容を直接参照することによって、データベース・アクセス制御メカニズムを迂回しようとした場合でも、透過的データ暗号化によって、このようなユーザーが機密情報を参照できないようにします。
CREATE TABLE権限のあるユーザーは、暗号化対象の表の列を1つ以上選択できます。データは、データファイルおよび監査ログ(監査がオンの場合)内で暗号化されます。適切な権限のあるデータベース・ユーザーは、データを暗号化されていない形式で表示できます。透過的データ暗号化の有効化および無効化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
アプリケーションでデータベースに接続するためにパスワード資格証明が使用される大規模なデプロイメントでは、この資格証明をクライアント側のOracleウォレットに格納できます。Oracle Walletは、資格証明の認証および署名の格納に使用されるセキュアなソフトウェア・コンテナです。
クライアント側のOracleウォレットにデータベース・パスワード資格証明を格納することで、ユーザー名とパスワードをアプリケーション・コード、バッチ・ジョブまたはスクリプトに埋め込む必要がなくなります。この結果、スクリプトやアプリケーション・コードに記述したパスワードが外部にさらされる危険性が低くなり、ユーザー名とパスワードを変更するたびにコードを変更する必要がないため、メンテナンスが簡素化されます。また、アプリケーション・コードを変更する必要がないため、これらのユーザー・アカウントのパスワード管理ポリシーをさらに簡単に規定できるようになります。
外部パスワード・ストアを使用するようにクライアントを構成すると、アプリケーションでは、次の構文を使用してパスワード認証を使用しているデータベースに接続できます。
CONNECT /@database_alias
このCONNECT文では、データベース・ログイン資格証明を指定する必要はありません。かわりに、データベース・ログイン資格証明はクライアントのウォレットで検索されます。
|
関連項目:
|
Oracle Databaseの配布媒体には、各種のSQLファイルが格納されています。このSQLファイルでは、システムの試用、SQLの学習、追加の表、ビュー、シノニムの作成などが可能です。
Oracle Databaseには、Oracle Database機能の理解に役立つサンプル・スキーマが含まれています。Oracle Databaseに関するすべてのマニュアルと研修資料は、更新時にサンプル・スキーマ環境に変換されます。
サンプル・スキーマはDatabase Configuration Assistantによって自動的にインストールするか、手動でインストールできます。スキーマとインストール手順の詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
この項の内容は次のとおりです。
多くの場合、テスト目的またはその他の目的で本番データベースをクローニングすることが必要となります。本番データベースをクローニングする一般的な理由は、次のとおりです。
データベースを使用する新規アプリケーションのデプロイ、または既存のアプリケーションの更新
データベースを実行するシステムでの、オペレーティング・システムのアップグレード計画
データベース・インストール用の新しい記憶域
レポート
古いデータの分析
新しいアプリケーションをデプロイする前、オペレーティング・システムのアップグレードを実行する前、または新しい記憶域を使用する前に、新しい状況でデータベースが適切に動作することを確認するために徹底的にテストすることが必要です。クローニングは、本番データファイルのコピーを1つ以上のテスト環境に作成することで実行できますが、通常、これらのコピーを割り当てて管理するために、大量の記憶域が必要となります。
CloneDBを使用すると、データファイルを複数の異なる場所にコピーしなくても、データベースを複数回クローニングできます。Oracle Databaseでは、かわりにcopy-on-writeテクノロジを使用してCloneDBデータベースにファイルを作成するため、ディスク上に追加の記憶域が必要となるのは、CloneDBデータベースで変更されたブロックのみとなります。
この方法でデータベースをクローニングすると、次の利点があります。
テスト目的で必要となる記憶域の量が削減されます。
様々な目的のために複数のデータベース・クローンを迅速に作成できます。
CloneDBデータベースは、データベース・バックアップのデータファイルを使用します。バックアップ・データファイルを使用すると、CloneDBインスタンスによる本番データファイルへのアクセスが行われず、CPUやI/Oリソースなどの本番データベースのリソースに対するCloneDBインスタンスによる競合が発生しません。
|
注意:
|
データベースをクローニングするには、次の前提条件を満たしている必要があります。
各CloneDBデータベースはDirect NFSクライアントを使用する必要があり、本番データベースのバックアップはNFSボリューム上に存在する必要があります。
Direct NFSクライアントにより、Oracle Databaseは、オペレーティング・システム・カーネルのNFSクライアントを使用するかわりに、ネットワーク接続記憶域(NAS)デバイスに直接アクセスできます。このCloneDBデータベース機能は、Direct NFSクライアントをサポートするプラットフォームで使用可能です。
Direct NFSクライアントの詳細は、使用しているオペレーティング・システムの『Oracle Grid Infrastructureインストレーション・ガイド』を参照してください。
CloneDBデータベースの変更されたブロックを追跡するには、少なくとも2MBの追加システム・グローバル領域(SGA)メモリーが必要です。
第6章「メモリーの管理」を参照してください。
データベース・バックアップ用および各CloneDBデータベースの変更されたブロック用の記憶域が必要となります。
データベース・バックアップに必要な記憶域は、バックアップの実行に使用する方法によって異なります。単一の全体RMANバックアップでは、最も多くの記憶域が必要となります。ストレージ・アプライアンスの機能を使用して実行される記憶域スナップショットは、そのストレージ・アプライアンスの要件に従います。単一のバックアップで複数のCloneDBデータベースをサポートできます。
各CloneDBデータベースで必要となる記憶域の量は、そのデータベースの書込みアクティビティによって異なります。変更される各ブロックには、記憶域の使用可能な1つのブロックが必要となります。したがって、必要となる合計記憶域は、一定期間にCloneDBデータベースで変更されるブロックの数によって異なります。
この項では、1つのCloneDBデータベースを作成するための手順について説明し、これらのサンプル・データベースおよびディレクトリを使用します。
本番データベースPROD1のOracleホームは/u01/prod1/oracleです。
データベース・バックアップのファイルは/u02/oracle/backup/prod1にあります。
CloneDBデータベースCLONE1のOracleホームは/u03/clone1/oracleです。
CloneDBを使用してデータベースをクローニングする手順は、次のとおりです。
本番データベースのバックアップを作成します。次のバックアップ・オプションがあります。
オンライン・バックアップ
オンライン・バックアップを実行する場合は、本番データベースがARCHIVELOGモードになっており、必要なすべてのアーカイブREDOログ・ファイルが保存され、CloneDBデータベース環境にアクセスできることを確認します。
全体オフライン・バックアップ
全体オフライン・バックアップを実行する場合は、バックアップ・ファイルがCloneDBデータベース環境にアクセスできることを確認します。
データベース・ファイルをコピーするバックアップ
BACKUP AS COPYをRMANで指定すると、RMANは各ファイルを、ディスクに作成されたデータベース・ファイルのビットごとのコピーであるイメージ・コピーとしてコピーします。イメージ・コピーは、LinuxのcpやWindowsのCOPYなどのオペレーティング・システム・コマンドで作成したコピーと同じですが、RMANのリポジトリに記録されるため、RMANで使用できます。RMANを使用すると、データベースがオープンしている間にイメージ・コピーを作成できます。コピーされたデータベース・ファイルがCloneDBデータベース環境にアクセスできることを確認します。
データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
テキスト形式の初期化パラメータ・ファイル(PFILE)がない場合は、作成します。
サーバー・パラメータ・ファイル(SPFILE)を使用する場合は、本番データベース上で次の文を実行して、PFILEを作成します。
CREATE PFILE FROM SPFILE;
本番データベースをクローニングするためのSQLスクリプトを作成します。
後の手順で、CloneDBデータベースを作成するために、1つ以上のSQLスクリプトを使用します。SQLスクリプトを作成するには、オラクル社が提供するclonedb.plと呼ばれるPerlスクリプトを使用するか、またはSQLスクリプトを手動で作成できます。
clonedb.pl Perlスクリプトを使用するには、次の手順を実行します。
オペレーティング・システムのプロンプトで、次の環境変数を設定します。
MASTER_COPY_DIR - 手順1で作成したバックアップが含まれるディレクトリを指定します。このディレクトリには、本番データベースのデータファイルのバックアップのみが含まれていることを確認します。
CLONE_FILE_CREATE_DEST - データファイル、ログ・ファイル、制御ファイルなど、CloneDBデータベース・ファイルが作成されるディレクトリを指定します。
CLONEDB_NAME - CloneDBデータベースの名前を指定します。
S7000_TARGET - バックアップ用のファイル・システムを提供するNFSホストおよびCloneDBデータベースがSun Storage 7000である場合は、ホストの名前を指定します。それ以外の場合は、この環境変数を設定しないでください。この環境変数は、記憶域スナップショットを使用してクローニングを実行する必要がある場合にのみ設定します。この変数を設定せずに、Direct NFSクライアントにS7000ストレージ・アレイを使用できます。
clonedb.pl Perlスクリプトを実行します。
Oracle Database 11g リリース2(11.2.0.4)以上のデータベースの場合、スクリプトは$ORACLE_HOME/rdbms/installディレクトリにあります。
Oracle Database 11g リリース2(11.2.0.3)のデータベースの場合は、https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1210656.1のMy Oracle Support Note 1210656.1 (「Clone your dNFS Production Database for Testing」)からスクリプトをダウンロードします。
Perlスクリプトclonedb.plの構文は次のとおりです。
perl clonedb.pl prod_db_pfile [sql_script1] [sql_script2]
次のオプションを指定します。
prod_db_pfile - 本番データベースのPFILEのフルパスを指定します。
sql_script1 - clonedb.plによって生成された最初のSQLスクリプトの名前を指定します。デフォルトはcrtdb.sqlです。
sql_script2 - clonedb.plによって生成された2番目のSQLスクリプトの名前を指定します。デフォルトはdbren.sqlです。
clonedb.plスクリプトは、本番データベースのPFILEをCloneDBデータベースのディレクトリにコピーします。また、CloneDBデータベースの作成に使用する2つのSQLスクリプトも作成します。
clonedb.pl Perlスクリプトにより生成された2つのSQLスクリプトを確認し、必要に応じて変更します。
CloneDBデータベース環境の初期化パラメータを変更し、ファイルを保存します。
CloneDBデータベース環境固有の初期化パラメータ(SGAサイズ、PGAターゲット、CPUの数などを制御するパラメータなど)を変更します。CLONEDBパラメータをTRUEに設定する必要があり、初期化パラメータ・ファイルにこのパラメータが含まれています。初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
SQL*Plusで、CloneDBデータベースにSYSDBA管理権限で接続します。
clonedb.pl Perlスクリプトで生成されたSQLスクリプトを実行します。
たとえば、スクリプトでデフォルト名を使用する場合は、SQLプロンプトで次のスクリプトを実行します。
crtdb.sql dbren.sql
SQLスクリプトを手動で作成するには、次の手順を実行します。
SYSDBAまたはSYSBACKUP管理権限でデータベースに接続します。
「SQL*Plusを使用したデータベースへの接続」を参照してください。
次の手順を実行して、本番データベースからバックアップ制御ファイル・スクリプトを生成します。
次のSQL文を実行します。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
この文により、制御ファイルを作成するSQL文を含むトレース・ファイルが生成されます。CREATE CONTROLFILE文を含むトレース・ファイルは、DIAGNOSTIC_DEST初期化パラメータで指定されたディレクトリに格納されます。データベース・アラート・ログでこのトレース・ファイルの名前と場所を確認します。
手順bで生成したトレース・ファイルを開き、トレース・ファイル内のSTARTUP NOMOUNT文とCREATE CONTROLFILE文を新しいSQLスクリプトにコピーします。
手順cで作成した新しいSQLスクリプトを次の方法で編集します。
データベースの名前を、作成するCloneDBデータベースの名前に変更します。たとえば、PROD1をCLONE1に変更します。
ログ・ファイルの場所を、CloneDBデータベース環境のディレクトリに変更します。たとえば、/u01/prod1/oracle/dbs/t_log1.fを/u03/clone1/oracle/dbs/t_log1.fに変更します。
データファイルの場所を、バックアップの場所に変更します。たとえば、/u01/prod1/oracle/dbs/t_db1.fを/u02/oracle/backup/prod1/t_db1.fに変更します。
次に、ALTER DATABASE BACKUP CONTROLFILE TO TRACE文で生成された元の文の例を示します。
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PROD1" NORESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/prod1/oracle/dbs/t_log1.f' SIZE 25M BLOCKSIZE 512,
GROUP 2 '/u01/prod1/oracle/dbs/t_log2.f' SIZE 25M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u01/prod1/oracle/dbs/t_db1.f',
'/u01/prod1/oracle/dbs/t_ax1.f',
'/u01/prod1/oracle/dbs/t_undo1.f',
'/u01/prod1/oracle/dbs/t_xdb1.f',
'/u01/prod1/oracle/dbs/undots.dbf'
CHARACTER SET WE8ISO8859P1
;
次に、新しいSQLスクリプトの変更された文の例を示します。
STARTUP NOMOUNT PFILE=/u03/clone1/oracle/dbs/clone1.ora
CREATE CONTROLFILE REUSE DATABASE "CLONE1" RESETLOGS ARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 32
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u03/clone1/oracle/dbs/t_log1.f' SIZE 25M BLOCKSIZE 512,
GROUP 2 '/u03/clone1/oracle/dbs/t_log2.f' SIZE 25M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/u02/oracle/backup/prod1/t_db1.f',
'/u02/oracle/backup/prod1/t_ax1.f',
'/u02/oracle/backup/prod1/t_undo1.f',
'/u02/oracle/backup/prod1/t_xdb1.f',
'/u02/oracle/backup/prod1/undots.dbf'
CHARACTER SET WE8ISO8859P1
;
データファイルで取得した記憶域レベルのスナップショットがある場合は、RMANバックアップ・ファイル名を記憶域スナップショット名に置き換えることができます。
SQLスクリプトを編集した後、そのスクリプトをCloneDBデータベース環境にアクセスできる場所に保存します。
新しいSQLスクリプトの名前および保存場所をメモします。このスクリプトは、後続の手順で実行します。この例では、スクリプトの名前はcreate_clonedb1.sqlであると想定しています。
テキスト形式の初期化パラメータ・ファイル(PFILE)を、本番データベース環境からCloneDBデータベース環境にコピーします。
たとえば、テキスト形式の初期化パラメータ・ファイルを/u01/prod1/oracle/dbsから/u03/clone1/oracle/dbsにコピーします。ファイルの名前および場所は、変更したSQLスクリプトのSTARTUP NOMOUNTコマンドで指定した名前と場所に一致する必要があります。手順dの例では、ファイルは/u03/clone1/oracle/dbs/clone1.oraです。
CloneDBデータベース環境の初期化パラメータを変更し、ファイルを保存します。
CLONEDBパラメータを追加し、このパラメータがTRUEに設定されていることを確認します。CloneDBデータベース環境に固有の他のすべての初期化パラメータ(SGAサイズ、PGAターゲット、CPUの数などを制御するパラメータなど)を変更します。初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
SQL*Plusで、CloneDBデータベースにSYSDBA管理権限で接続します。
手順eで保存したSQLスクリプトを実行します。
たとえば、SQL*Plusで次のように入力します。
@create_clonedb1.sql
バックアップの場所の各データファイルで、DBMS_DNFSパッケージのCLONEDB_RENAMEFILEプロシージャを実行し、CloneDBデータベース環境の適切な場所を指定します。
たとえば、バックアップ・データファイルが/u02/oracle/backup/prod1/t_db1.fで、CloneDBデータベース・データファイルが/u03/clone1/oracle/dbs/t_db1.fである場合は、次のプロシージャを実行します。
BEGIN
DBMS_DNFS.CLONEDB_RENAMEFILE(
srcfile => '/u02/oracle/backup/prod1/t_db1.f',
destfile => '/u03/clone1/oracle/dbs/t_db1.f');
END;
/
DBMS_DNFSパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
CloneDBデータベースをオンライン・バックアップから作成した場合は、CloneDBデータベースをリカバリします。全体オフライン・バックアップまたはBACKUP AS COPYバックアップを実行した場合、この手順は必要ありません。
たとえば、次のSQL文をCloneDBデータベースで実行します。
RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
この文により、バックアップが実行されたときのアーカイブREDOログ・ファイルを求められます。
次のSQL文を実行して、データベースをオープンします。
ALTER DATABASE OPEN RESETLOGS;
CloneDBデータベースを使用する準備ができました。
本番データベースの追加のCloneDBデータベースを作成するには、手順3から5を各CloneDBデータベースに対して繰り返します。
CloneDBデータベースを作成した後、本番データベースを使用するほとんどすべての方法でそのデータベースを使用できます。最初は、CloneDBデータベースは各データファイルに対して最小限の記憶域を使用します。CloneDBデータベースの行に対して変更を加えると、記憶域がオンデマンドで割り当てられます。
同じバックアップ・ファイルを使用して、複数のCloneDBデータベースを作成できます。このバックアップは、RMANまたは記憶域レベルのスナップショットによって取得できます。データファイルで取得した記憶域レベルのスナップショットがある場合は、RMANバックアップ・ファイル名を記憶域スナップショット名に置き換えることができます。
V$CLONEDFILEビューを使用して、CloneDBデータベースの各データファイルに関する情報を表示できます。この情報には、バックアップのデータファイル名、CloneDBデータベースでの対応するデータファイル名、バックアップ・ファイルから読み取られたブロック数、バックアップ・ファイルに対して発行された要求の数が含まれます。
CloneDBデータベースはバックアップ・ファイルをバックエンド記憶域として使用するため、これらのバックアップ・ファイルは、実行するために各CloneDBデータベースで使用可能である必要があります。バックアップ・ファイルが使用不可能になると、CloneDBデータベースはエラーを返します。
CloneDBデータベースの使用が完了した後、CloneDBデータベース環境を破棄できます。CloneDBデータベース環境のすべてのファイルは、本番データベース環境またはバックアップ環境に影響を与えずに削除できます。
|
関連項目: V$CLONEDFILEビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
データベースの削除には、データファイル、REDOログ・ファイル、制御ファイルおよび初期化パラメータ・ファイルの削除も含まれます。
|
警告: データベースを削除すると、そのデータベースに含まれるすべてのデータが削除されます。 |
データベースを削除するには、次の手順を実行します。
次の文を発行します。
DROP DATABASE;
DROP DATABASE文では、まず、すべての制御ファイルと制御ファイルに記述されている他のすべてのデータベース・ファイルが削除されます。その後、データベース・インスタンスが停止されます。
DROP DATABASE文の使用に成功するには、排他的に、制限モードでデータベースをマウントしておく必要があります。
DROP DATABASE文は、アーカイブ・ログ・ファイル、およびデータベースのコピーまたはバックアップには影響を与えません。これらのファイルを削除する場合は、RMANを使用することをお薦めします。データベースがRAWディスク上にある場合、そのRAWディスクにある実際の特殊ファイルは削除されません。
Database Configuration Assistantを使用してデータベースを作成した場合は、データベースおよびファイルの削除にこのツールを使用できます。
「パラメータ設定の表示」にリストしたビューの他に、次のビューを使用してデータベースの内容や構造に関する情報を参照できます。
| ビュー | 説明 |
|---|---|
DATABASE_PROPERTIES |
永続的なデータベース・プロパティが表示されます。 |
GLOBAL_NAME |
グローバル・データベース名が表示されます。 |
V$DATABASE |
制御ファイル内のデータベース情報が表示されます。 |