ヘッダーをスキップ
Oracle® Databaseプラットフォーム・ガイド
11gリリース2(11.2) for Microsoft Windows
B58885-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 Windowsでのインストール後のデータベース作成

この章では、Oracle Databaseをインストールした後、Database Configuration Assistantまたはコマンドライン・ツールを使用してデータベースを作成する方法を説明します。

この章の項目は次のとおりです。

Oracle Databaseのネーミング規則

ネットワークにマウントされたOracle Databaseサーバーすべてに一意のデータベース名が付けられている必要があります。データベースの作成時にデータベースと名前が対応付けられ、その制御ファイルに名前が格納されます。データベース・キーワードがCREATE DATABASE文で指定されている場合、またはDatabase Configuration Assistantで要求されたときに指定された場合は、その値がそのデータベースの名前になります。

同じデータベース名のOracle Databaseサーバーを2つマウントしようとすると、2番目のサーバーのマウント時に次のエラーが表示されます。

ORA-01102: cannot mount database in EXCLUSIVE mode

同じコンピュータの異なるOracleホームに、複数のOracle Databaseサーバーがある場合は、次の規則が適用されます。

  • データベース名がそれぞれ一意であること

  • SIDがそれぞれ一意であること

既存のデータベース名を変更するにはCREATE CONTROLFILE文を使用し、制御ファイルを再作成して新しいデータベース名を指定する必要があります。

Database Configuration Assistantを使用したWindowsでのデータベースの作成

データベースの作成にはDatabase Configuration Assistantを使用することをお薦めします。データベースの作成が簡単になります。インタフェースが同じであり、サポートされているすべてのプラットフォームで同じように動作するため、ここでは段階的な処理手順の説明もスクリーン・ショットも割愛しています。


関連項目:

Database Configuration Assistantの使用方法は、『Oracle Database 2日でデータベース管理者』を参照してください。

Database Configuration Assistantを使用すると、次のことができます。

  • データベースの作成

  • データベースのデータベース・オプションの構成

  • データベースの削除

  • テンプレートの管理

初期化パラメータ・ファイルは、パラメータを含むASCIIテキスト・ファイルです。コマンドライン・ツールを使用してデータベースを作成および変更する場合に使用します。Database Configuration Assistantを使用してデータベースを作成すると、サーバー・パラメータ・ファイル(SPFILE)が初期化パラメータ・ファイルから作成され、初期化パラメータ・ファイルの名前が変更されます。Oracleは、名前変更されたファイルを初期化パラメータ・ファイルとして認識せず、インスタンスの開始後には使用しません。

Database Configuration Assistantで作成されたインスタンスを起動後に変更するには、ALTER SYSTEM文を使用する必要があります。サーバー・パラメータ・ファイルは、テキスト・エディタを使用して参照または表示できないバイナリ・ファイルであるため、このファイル自体は変更できません。新規に作成されたサーバー・パラメータ・ファイルの場所は、ORACLE_HOME\databaseです。サーバー・パラメータ・ファイル名は、spfileSID.oraです。


関連項目:

『Oracle Database管理者ガイド』のサーバー・パラメータ・ファイルを使用した初期化パラメータの管理に関する項

コマンドライン・ツールを使用したWindowsでのデータベースの作成

この項では、新しいデータベースを手動で作成する方法について説明します。データベース・ソフトウェア・ファイルの一部として、Oracle Databaseではサンプル初期化パラメータ・ファイルが用意されており、必要に応じて編集できます。DBCAを使用して、データベース作成スクリプトを作成することもできます。

データベースの作成方法は、次の3種類です。

  • 既存のデータベースをコピーし、古いデータベースは削除。

  • 既存のデータベースをコピーし、古いデータベースは保持。

  • データベースがシステムに存在しない場合、新しいデータベースを作成。

表3-1は、前述の各データベース作成カテゴリにおける、新しいデータベースを作成する作業を示しています。各手順は、この後の各項で詳しく説明しています。

表3-1 手動でのデータベース作成作業

作業 既存のデータベースをコピーし、古いデータベースを削除 既存のデータベースをコピーし、古いデータベースを保持 データベースがシステムに存在しない場合、新しいデータベースを作成

既存のデータベースのエクスポート


はい

注意1


該当なし

データベース・ファイルの削除


はい

いいえ

該当なし

初期化パラメータ・ファイルの変更


はい

はい

はい

Oracle Databaseインスタンスの起動


はい

はい

はい

Oracle Databaseサービスの作成および開始


いいえ

はい

はい

CREATE DATABASE文のスクリプトへの書込み


はい

はい

はい

CREATE DATABASEスクリプト


はい

はい

はい

データベースのインポート


はい

注意2


該当なし

レジストリのORACLE_SIDの更新


いいえ

デフォルトのSIDを変更する場合にのみ必要

はい

新しいデータベースのバックアップ


はい

はい

はい


注意1

データを既存のデータベースから新しいデータベースにコピーする場合にのみ必要で、それ以外の場合は不要です。

注意2

既存のデータベースからエクスポートされた表および他のオブジェクトをインポートする場合にのみ必要で、それ以外の場合は不要です。

後述の各項では、1つの例を使用して、データベースを作成する方法について説明します。この例では、既存のデータベースはSIDorcl初期データベースで、ディレクトリC:\app\username\product\11.2.0\oradata\orclにあります。orclを、ディレクトリC:\app\username\product\11.2.0\oradata\prodにある、データベース名とSIDprodの新しいデータベースにコピーします。次に初期データベースorclを削除します。

既存のデータベースのエクスポート

新しいデータベースに既存のデータベースの内容をコピーする場合は、既存のデータベースをエクスポートする必要があります。以前のOracleリリースのデータを扱う場合は、その処理にエクスポートを使用できます。Oracle Database 10gリリース1(10.1)以上のデータを使用する場合は、浮動小数点などのOracle Database 10gリリース1(10.1)以上の新機能がサポートされるため、データ・ポンプ・エクスポートを使用することをお薦めします。

データ・ポンプ・エクスポートまたはエクスポートは、パラメータ・モードまたは対話形式モードのいずれかを使用して起動できますが、パラメータ・モードを使用することをお薦めします。対話形式モードはパラメータ・モードよりも機能が少なく、下位互換性を保つためにのみ用意されています。

データ・ポンプ・エクスポートのパラメータ・モードの構文は次のとおりです。

C:\> expdp SYSTEM DUMPFILE=myexp.dmp FULL=y LOGFILE=myexp.log
Password: password

データ・ポンプ・エクスポートの対話形式モードの構文は次のとおりです。

C:\> expdp SYSTEM 
Password: password

expdp SYSTEMコマンドのみを入力すると、対話形式セッションが開始され、データ・ポンプ・エクスポートにより必要な情報の入力を求められます。


注意:

パラメータ・モードを使用する場合、ファイル名やディレクトリ名にスペースが存在するとデータ・ポンプ・エクスポートによって不正な名前とみなされます。対処方法として、DUMPFILE=パラメータのフルパス指定は、3つの二重引用符で囲みます。次に例を示します。

DUMPFILE="""C:\program files\export.dmp"""

データ・ポンプ・エクスポートを対話形式モードで使用する場合は、引用符を使用しなくてもファイル名やディレクトリ名にスペースを使用できます。


エクスポートのパラメータ・モードの構文は次のとおりです。

C:\> exp SYSTEM FILE=myexp.dmp FULL=y LOG=myexp.log
Password: password

エクスポートの対話形式モードの構文は次のとおりです。

C:\> exp SYSTEM
Password: password

exp SYSTEMコマンドのみを入力すると、対話形式セッションが開始され、エクスポートにより必要な情報の入力を求められます。


注意:

パラメータ・モードを使用する場合、ファイル名やディレクトリ名にスペースが存在するとエクスポートによって不正な名前とみなされます。対処方法として、FILE=パラメータのフルパス指定は、3つの二重引用符で囲みます。次に例を示します。

FILE="""C:\program files\export.dmp"""

エクスポートを対話形式モードで使用する場合は、引用符を使用しなくてもファイル名やディレクトリ名にスペースを使用できます。



関連項目:

データ・ポンプ・エクスポートまたはエクスポートの詳細は、『Oracle Databaseユーティリティ』を参照

既存のデータベースからすべてのデータを新しいデータベースにエクスポートするには、次のようにします。

  1. ORACLE_SIDを、エクスポートするデータベースのデータベース・サービスに設定します。たとえば、エクスポートするデータベースが初期データベースorclの場合は、コマンド・プロンプトで次のように入力します。等号文字(=)の両側にはスペースを入れないでください。

    C:\> set ORACLE_SID=orcl
    
  2. 既存のデータベースがOracle Database 10gリリース1(10.1)以上の場合は、コマンド・プロンプトからデータ・ポンプ・エクスポートを起動します。

    C:\> expdp SYSTEM DUMPFILE=myexp.dmp FULL=y LOG=myexp.log
    Password: password
    

    これで、初期データベースorclの全データベースのエクスポートがmyexp.dmpファイルに作成されました。データ・ポンプ・エクスポートからのすべてのメッセージは、myexp.logファイルに記録されます。

  3. 既存のデータベースがOracle Database 10gリリース1(10.1)より前の場合は、コマンド・プロンプトからエクスポートを起動します。

    C:\> exp SYSTEM FILE=myexp.dmp FULL=y LOG=myexp.log
    Password: password
    

    これで、初期データベースorclの全データベースのエクスポートがmyexp.dmpファイルに作成されました。エクスポートからのすべてのメッセージは、myexp.logファイルに記録されます。

データベース・ファイルの削除

データベース・ファイルの削除は、既存のデータベースを新しいデータベースにコピーし、古いデータベースと置き換える場合にのみ必要です。初期データベースorclのデータベース・ファイルを削除する例を次に示します。

データベース・ファイルを削除するには、次のようにします。

  1. コマンド・プロンプトで初期データベースorclを停止します。

    C:\> oradim -SHUTDOWN -SID orcl -SHUTTYPE inst -SHUTMODE immediate
    
  2. ディレクトリC:\app\username\product\11.2.0\oradata\orclから次のファイルを削除します。

    ファイル名 ファイル名 ファイル名 ファイル名
    control01.ctl drsys01.dbf temp01.dbf xdb01.dbf
    control02.ctl cwmlite01.dbf tools01.dbf redo01.log
    control03.ctl example01.dbf undotbs01.dbf redo02.log
    index01.dbf system01.dbf user01.dbf redo03.log

初期化パラメータ・ファイルの変更

新しいデータベースの基礎として初期データベースorclを使用するには、最初にORACLE_BASE\admin\orcl\pfile\init.oraをコピーします。次に、コピーをORACLE_BASE\admin\prod\pfile\init.oraに置きます。さらに、この項で説明されているようにファイルを変更します。


注意:

Oracle9i リリース2(9.2)からは、円記号(\)エスケープ文字を使用した引用符のネストがサポートされなくなりました。これは、Oracle Databaseが初期化パラメータ・ファイルのパラメータ値を解釈する方法に影響する場合があります。たとえば、リリース2(9.2)より前のリリースでCONTROL_FILES = "ctlfile\'1.ora"を指定した場合、ファイル名はctlfile'1.oraとして解釈されました。リリース2(9.2)からは、ファイル名はctlfile\'1.oraとして解釈されます。

パラメータ・ファイルを変更して、このような参照を削除することを強くお薦めします。初期化パラメータ値の引用符のネストに関するその他の方法は、『Oracle Databaseリファレンス』を参照してください。


システムに既存のデータベースがない場合は、既存の初期化パラメータ・ファイルをコピーして、新しい初期化パラメータ・ファイルの基礎として使用することはできません。しかし、次の場所に用意されているサンプル初期化パラメータ・ファイルinitsmpl.oraを使用することができます。

ORACLE_HOME\admin\sample\pfile

このファイルをデータベースprodの初期化パラメータ・ファイルの基礎とすることができます。

initsmpl.oraを初期化パラメータ・ファイルの基礎として使用する場合、次のパラメータを示されている値に設定する必要があります。設定しなかった場合は、データベースprodを起動できません。

  • DB_NAME=prod.domain

    パラメータDB_NAMEはデータベースの名前を示し、「CREATE DATABASE文のスクリプトへの書込み」に記載されているCREATE DATABASE文で使用されている名前と一致していなければなりません。データベースごとに一意の名前を付けます。データベース名に使用できる文字数は8文字までです。名前はデータベース・サービスのSIDと同じにする必要はありません。

  • INSTANCE_NAME=prod.domain

  • SERVICE_NAMES=prod.domain

  • CONTROL_FILES = ( "C:\app\username\product\11.2.0\oradata\prod\control01.ctl", "C:\app\username\product\11.2.0\oradata\prod\control02.ctl", "C:\app\username\product\11.2.0\oradata\prod\control03.ctl")

    パラメータCONTROL_FILESにはデータベースの制御ファイルを列記します。この時点ではファイル・システム上に制御ファイルがなくてもかまいません。制御ファイルは、CREATE DATABASE文を実行する際に作成されます。ドライブ名を含めて、フルパス名とファイル名を指定する必要があります。

  • DB_FILES=100

    初期化パラメータDB_FILESの変更は必須ではありませんが、パフォーマンスを最適化するために変更することをお薦めします。このパラメータにはCREATE DATABASE文のMAXDATAFILESオプションの値と同じ数値を設定します。この例では100を使用します。


    関連項目:

    追加または変更できる他の初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

DIAGNOSTIC_DEST初期化パラメータには自動診断リポジトリ(ADR)を設定します。このリポジトリは、データベースの外部に格納されているディレクトリ構造です。ADRはプログラムの診断で使用します。

ORACLE_BASE環境変数が設定されていない場合、DIAGNOSTIC_DEST = ORACLE_HOME\logとします。

ORACLE_BASE環境変数が設定されている場合、DIAGNOSTIC_DEST = ORACLE_BASE変数とします。


関連項目:

ADRについては、Oracle Databaseのインストレーション・ガイドを参照してください。

Oracle Databaseサービスの作成および開始

Oracle Databaseサービスの作成および開始は、次のいずれかを行う場合にのみ必要です。

  • 既存のデータベースを新しいデータベースにコピーし、古いデータベースは保持

  • コピーするデータベースが存在しない場合、新しいデータベースを作成

データベースを作成する前に、そのデータベースを実行するWindowsサービスを作成します。このサービスはOracle Databaseプロセス(oracle.exe)で、Windowsサービスの形式でインストールされます。

サービスは、ORADIMを使用して作成します。作成が終了すると、サービスは自動的に開始されます。ORADIMの使用方法は、「ORADIMによるOracle Databaseインスタンスの管理」を参照してください。

Oracle Databaseサービスを作成して開始するには、次のようにします。

  1. コマンド・プロンプトからORADIMを実行します。

    C:\> oradim -NEW -SID prod -STARTMODE manual
    -PFILE "C:\app\oracle\product\11.2.0\admin\prod\pfile\init.ora"
    

    すでに作成した初期化パラメータ・ファイルが、ドライブ名を含めて、フルパスで指定されていることに注意してください。サービスが開始されたかどうかは、「コントロール パネル」の「サービス」ウィンドウで確認できます。

  2. ORACLE_SIDprodと等しくなるように設定します。等号文字(=)の両側にはスペースを入れないでください。

    C:\> set ORACLE_SID=prod
    

Oracle Databaseインスタンスの起動

データベースをマウントせずにインスタンスを起動します。

SQL> STARTUP NOMOUNT

この例では、初期化パラメータ・ファイルがデフォルトの場所に格納されているため、PFILE句の指定は不要です。この時点で、データベースはありません。新規データベースを作成する準備として、SGAのみ作成され、バックグラウンド・プロセスが起動します。

CREATE DATABASE文のスクリプトへの書込み

CREATE DATABASE文は、データベースを作成するSQL文です。この文が含まれるスクリプトは、データベースを作成するときにいつでも使用できます。

CREATE DATABASE文には、次のパラメータがあります。

  • MAXDATAFILES : デフォルト値: 32、最大値: 65534

  • MAXLOGFILES : デフォルト値: 32、最大値: 255

CREATE DATABASE文を実行すると、Oracle Databaseは、CREATE DATABASE文で指定されている句または設定した初期化パラメータに基づいて複数の処理を実行します。


注意:

Oracle Managed Filesは、CREATE DATABASE文とともに使用してOracle Databaseの管理を簡略化する機能です。Oracle Managed Filesでは、ファイル名ではなくデータベース・オブジェクトに関する処理を指定するため、Oracle Databaseサーバーを構成するオペレーティング・システム・ファイルを直接管理する必要がありません。Oracle Managed Filesの使用の詳細は、『Oracle Database管理者ガイド』を参照してください。

データベースprodを作成するには、script_name.sqlというファイルに次の文をコピーして保存します。

CREATE DATABASE prod
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
MAXLOGFILES 5
MAXDATAFILES 100
DATAFILE 'C:\app\oracle\product\11.2.0\oradata\prod\system01.dbf' SIZE 325M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS" DATAFILE 'app\oracle\product\11.2.0\oradata\prod\undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET WE8MSWIN1252
logfile 'C:\app\username\product\11.2.0\oradata\prod\redo01.log' size 100M reuse,
        'C:\app\username\product\11.2.0\oradata\prod\redo02.log' size 100M reuse,
        'C:\app\username\product\11.2.0\oradata\prod\redo03.log' size 100M reuse
EXTENT MANAGEMENT LOCAL;

CREATE DATABASEスクリプト

SQLスクリプトを使用してデータベースを作成するには、次のようにします。

  1. サービスが開始されているかどうかを、「コントロール パネル」で確認します。この例では、サービス名はOracleServicePRODで、その「状態」列には「開始」と表示されます。「開始」になっていない場合は、サービス名を選択して「開始」をクリックします。

    また、コマンド・プロンプトで次のように入力して、サービスの状態を確認することもできます。

    C:\> net START
    

    現在システム上に存在するすべてのWindowsサービスのリストが表示されます。リストにOracleServicePRODがない場合は、次のように入力します。

    C:\> net START OracleServicePROD
    
  2. PRODを現在のSIDにします。

    C:\> set ORACLE_SID=PROD
    
  3. ORACLE_HOME\binPATH環境変数に追加します。

    set PATH=ORACLE_BASE\ORACLE_HOME\bin;%PATH%
    
  4. コマンド・プロンプトからSQL*Plusを起動し、データベースにSYSDBAで接続します。

    C:\> sqlplus /NOLOG
    SQL> CONNECT / AS SYSDBA 
    

    connected」というメッセージが表示されます。

  5. スプーリングをオンにしてメッセージを保存します。

    SQL> SPOOL script_name.log
    
  6. 「CREATE DATABASE文のスクリプトへの書込み」で作成したスクリプトscript_name.sqlを実行します。

    SQL> C:\app\oracle\product\11.2.0\dbhome_1\rdbms\admin\script_name.sql;
    

    データベースの作成が正常に終了した場合は、インスタンスが開始され、「Statement processed」というメッセージが数回表示されます。

データベースのインポート

データ・ポンプ・インポート(Oracle Database 10gリリース1(10.1)以上のデータの場合)またはインポート(旧データの場合)を使用して、「既存のデータベースのエクスポート」で作成した全エクスポートを新しいデータベースにインポートできます。データ・ポンプ・インポートまたはインポートは、パラメータ・モードまたは対話形式モードのいずれかを使用して起動できますが、パラメータ・モードの方が多くの機能があるため、パラメータ・モードを使用することをお薦めします。対話形式モードは、下位互換性のためにのみ用意されています。

データ・ポンプ・インポートのパラメータ・モードの構文は次のとおりです。

C:\> impdp SYSTEM DUMPFILE=myexp.dmp FULL=y LOG=myexp.log
Password: password

データ・ポンプ・インポートの対話形式モードの構文は次のとおりです。

C:\> impdp SYSTEM 
Password: password

impdp SYSTEMのみを入力すると、対話形式のセッションが開始され、データ・ポンプ・インポートにより必要な情報の入力を求められます。


注意:

  • パラメータ・モードを使用する場合、ファイル名やディレクトリ名にスペースが存在するとデータ・ポンプ・インポートによって不正な名前とみなされます。対処方法として、DUMPFILE=パラメータのフルパス指定は、3つの二重引用符で囲みます。次に例を示します。

    DUMPFILE="""C:\program files\export.dmp"""

    データ・ポンプ・インポートを対話形式モードで使用する場合、二重引用符を使用しなくてもファイル名やディレクトリ名にスペースを使用できます。

  • エクスポート・ファイルの生成元のデータベースに、新しいデータベースにはない表領域が含まれている場合、インポートはその表領域とそれに関連付けられたデータファイルを作成しようとします。

    簡単な解決方法は、両方のデータベースに同じ表領域が含まれるようにすることです。データファイルは、同一である必要はありません。重要なのは表領域の名前のみです。



関連項目:

データ・ポンプ・インポートまたはインポートの詳細は、『Oracle Databaseユーティリティ』を参照してください。

レジストリのORACLE_SIDの更新

これがシステムの最初のデータベースである場合、または新しいデータベースをデフォルトのデータベースにする場合は、レジストリを変更する必要があります。

  1. コマンド・プロンプトでレジストリ エディタを起動します。

    C:\> regedit
    

    「レジストリ エディタ」ウィンドウが表示されます。

  2. コンピュータの最初のOracleホームに相当するサブキー\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0を選択します。同じコンピュータの異なるOracleホームに続けてインストールするときのパスは、\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEIDです。IDはOracleホームを識別するための一意の番号です。


    関連項目:

    複数のOracleホームのサブキーの場所の詳細は、第15章「パラメータおよびレジストリの構成」を参照してください。

  3. 「レジストリ エディタ」ウィンドウの右側でパラメータORACLE_SIDを探します。

  4. パラメータ名をダブルクリックし、データを新しいSID(この例ではprod)に変更します。

これがシステムでの最初のデータベースで、まだパラメータORACLE_SIDがない場合は、このパラメータを作成する必要があります。

パラメータORACLE_SIDを作成するには、次のようにします。

  1. 「編集」メニューから「値の追加」を選択します。

    「値の追加」ダイアログが表示されます。

    addvalue.gifの説明が続きます
    図addvalue.gifの説明

  2. 「値の名前」フィールドにORACLE_SIDと入力します。

  3. 「データ型」リストで、REG_EXPAND_SZ(拡張可能文字列用)を選択します。

  4. 「OK」をクリックします。

    データ型に対応する「文字列エディタ」ダイアログが表示されます。

    stringre.gifの説明が続きます
    図stringre.gifの説明

  5. 「文字列」フィールドにprodと入力します。

  6. 「OK」をクリックします。

    レジストリ エディタにより、パラメータORACLE_SIDが追加されます。

  7. 「レジストリ」メニューから「レジストリ エディタの終了」を選択します。

    レジストリ エディタが終了します。

新しいデータベースのバックアップ


注意:

バックアップを行わずに新しいデータベースを操作していて、問題が生じた場合は、データベース作成手順を繰り返す必要があります。データを失ってしまうことがないように、データベースはここでバックアップしてください。

新しいデータベースをバックアップするには、次のようにします。

  1. データベース・インスタンスを停止してサービスを停止します。

    C:\> oradim -SHUTDOWN -SID prod -SHUTTYPE srvc,inst -SHUTMODE immediate
    

    注意:

    すぐにORADIMによりプロンプトが表示されますが、手順2に進む前に、データベースおよびサービスが完全に停止するまで待つ必要があります。サービスOracleServicePRODが停止したことがコントロール パネルに表示されるまで待ってください。表示されるまで待たないと、データがデータファイルに書き込まれている最中にバックアップが作成されて、バックアップが無効になる可能性があります。

  2. 任意のツールを使用して、データベース・ファイルをバックアップします。

    データベース・ファイルは、初期化パラメータ・ファイル、制御ファイル、オンラインREDOログ・ファイルおよびデータファイルから構成されます。

    バックアップが完了したら再びデータベースを起動し、必要に応じてユーザーとオブジェクトを作成し、必要な変更を行って、データベースを使用することができます。

    データベースに重要な変更(アーカイブ・モードを切り替える、表領域またはデータファイルを追加する、など)を行った後は、データベースをバックアップしてください。


    関連項目:

    アーカイブ、バックアップおよびリカバリの詳細は、次の資料を参照してください。
    • 『Oracle Database概要』

    • 『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』

    • 『Oracle Database 2日でデータベース管理者』



注意:

圧縮ドライブにデータベース・ファイルを格納しないでください。書込みエラーが発生し、パフォーマンスを低下させる可能性があります。

ORADIMによるOracle Databaseインスタンスの管理

ORADIMは、Oracle Databaseで使用できるコマンドライン・ツールです。ORADIMが必要になるのは、手動でデータベースを作成、削除または変更する場合のみです。この目的で使用するツールとしてはDatabase Configuration Assistantの方が簡単です。

後述の項では、ORADIMのコマンドおよびパラメータについて説明します。各コマンドの前には必ずダッシュ(-)が付きます。ORADIMパラメータのリストを表示するには、次のように入力します。

oradim -? | -h | -help

注意:

オプションを何も指定せずにoradimを指定することでも、ORADIMのパラメータおよび説明のリストが返されます。

ORADIMを使用すると、oradim.logと呼ばれるログ・ファイルがORACLE_HOME\databaseまたはORA_CWDレジストリ・パラメータで指定したディレクトリにオープンされます。すべての処理(正常の場合も異常の場合もすべて)がこのファイルに記録されます。このファイルをチェックして、処理が成功したかどうかを検証する必要があります。

Oracle DatabaseサービスをWindowsにインストールした場合は、開始モードを「自動」に設定してSYSTEMユーザー(LocalSystem)としてログオンした際に、Oracle Databaseサービスは開始されますが、データベースが自動的には起動しない可能性があります。次のエラー・メッセージがディレクトリORACLE_HOME\databaseORADIM.LOGファイルに書き込まれます。

ORA-12640: Authentication adapter initialization failed 

Oracle Enterprise Management Agent、Oracle Enterprise Manager Management ServerおよびOracle Internet Directoryも、同じ理由でデータベースに接続できないため失敗することがあります。対処方法は次のとおりです。

  • SQLNET.ORAを変更します。

    SQLNET.ORAは、次の行を削除することにより変更できます。

    sqlnet.authentication_services=(NTS) 
    

    または、この行を次のように変更します。

    sqlnet.authentication_services=(NONE)
    
  • サービス開始後のデータベースの起動

    Oracle Databaseサービスを開始した後で、SQL*Plusを使用し、SYSDBAとして接続することにより、データベースを手動で起動できます。

  • 特定のユーザーとしてのサービスの開始


    関連項目:

    サービスの開始方法は、オペレーティング・システムのドキュメントを参照

インスタンスの作成

ORADIMを使用してインスタンスを作成するには、次のように入力します。

oradim [-NEW -SID SID] | -SRVC service_name | -ASMSID SID | -ASMSRVC service_name 
[-SYSPWD password] [-STARTMODE auto | manual] [-SRVCSTART system | demand] 
[-PFILE filename | -SPFILE] [-SHUTMODE normal | immediate | abort] [-TIMEOUT 
secs] [-RUNAS osusr/ospass]

それぞれの意味は次のとおりです。

  • -NEWは、新しいインスタンスを作成することを示します。これは必須パラメータです。

  • -SID SIDは、作成するインスタンスの名前です。

  • -SRVC service_nameは、作成するサービスの名前(OracleServiceSID)です。

  • -ASMSID SIDは、作成する自動ストレージ管理インスタンスの名前です。

  • -ASMSRVC service_nameは、作成する自動ストレージ管理サービスの名前です。

  • -SYSPWD passwordは、システム・パスワードです。

  • -STARTMODE auto | manualは、Oracle Databaseサービスの開始時に、インスタンスを起動するかどうかを示します。デフォルトはmanualです。

  • -SRVCSTART system | demandは、コンピュータの再起動時にOracle Databaseサービスを開始するかどうかを示します。デフォルトはdemandです。systemは、システムの起動または再起動時に自動的に開始するようサービスを構成することを示します。demandは、ユーザーが明示的にサービスを開始する必要があることを示します。

  • -PFILE filenameは、このインスタンスで使用する初期化パラメータ・ファイルです。このファイルは、ドライブ名を含めて、フルパス名を指定する必要があります。

  • -SPFILEは、起動時にPFILEのかわりにサーバー・パラメータ・ファイル(SPFILE)を使用することを指定します。

  • -SHUTMODEは、インスタンスの停止方法を指定します。引数が必要で、デフォルトはimmediate.です。SHUTMODEを指定しない場合は、サービスが停止するときにインスタンスは停止しなくなります。

  • -TIMEOUT secsには特定のSIDのサービスが停止するまで待機する最長時間(秒)を設定します。デフォルトは、90秒間です。SHUTDOWN引数を指定せずに使用することはできません。

  • -RUNAS osusr/ospass(run as)は、Oracleサービスがシステムにログオンする際に使用するオペレーティング・システム・ユーザーを設定します。オペレーティング・システム・ユーザーの名前とパスワードを指定することで、サービスのログオンと実行にそのユーザーの権限が使用されます。このパラメータを省略すると、サービスは、特権ユーザーであるLocalSystemアカウントを使用してシステムにログオンします。


注意:

この機能を簡単に説明するため、この例では、デプロイ済のシステムで通常使用されるパスワード管理テクニックを実行していません。本番環境では、Oracle Databaseのパスワード管理ガイドラインに従って、すべてのサンプル・アカウントを無効にしてください。パスワード管理ガイドラインと他のセキュリティ上の推奨事項の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

たとえば、PRODというインスタンスを作成するには、次のように入力します。

C:\> oradim -NEW -SID prod -STARTMODE auto -PFILE C:\app\oracle\product\11.2.0\admin\prod\pfile\init.ora

インスタンスの起動とサービスの開始

ORADIMを使用してインスタンスを起動し、サービスを開始するには、次のように入力します。

oradim -STARTUP -SID SID | -ASMSID SID [-SYSPWD password] [-STARTTYPE srvc | 
inst | srvc,inst] [-PFILE filename | -SPFILE]

それぞれの意味は次のとおりです。

  • -STARTUPは、既存のインスタンスを起動することを示します。これは必須パラメータです。

  • -SID SIDは、起動するインスタンスの名前です。

  • -ASMSID SIDは、起動する自動ストレージ管理インスタンスの名前です。

  • -STARTTYPE srvcinstは、サービスまたはインスタンスのどちらを起動するかを示します。片方または両方を指定できます。指定しない場合は、現在の設定がレジストリで確認されます。

    -STARTTYPE srvcは、コマンドラインからのnet start oracleservice<sid>と同じです。

    -STARTTYPE instは、SQL*Plus内でのstartupと同じです。

  • -PFILE filenameは、このインスタンスで使用する初期化パラメータ・ファイルです。このファイルは、ドライブ名を含めて、フルパス名を指定する必要があります。

  • -SPFILEは、起動時にPFILEのかわりにサーバー・パラメータ・ファイル(SPFILE)を使用することを指定します。

たとえば、pumaというインスタンスを起動するには、次のように入力します。

C:\> oradim -STARTUP -SID puma -STARTTYPE inst -PFILE C:\app\oracle\product\11.2.0\admin\prod\pfile\init.ora

インスタンスおよびサービスの停止

Enterprise Database Controlサービス(OracleDBConsoleSID)は、Oracle Databaseサービス(OracleServiceSID)に依存します。Enterprise Database Control依存サービスは、(インストールされている場合)ORADIMがデータベース・インスタンス・サービスを停止する前に、停止する必要があります。

ORADIMを使用してインスタンスを停止するには、次のように入力します。

oradim -SHUTDOWN -SID SID | -ASMSID SID [-SYSPWD password] 
[-SHUTTYPE srvc | inst | srvc,inst] [-SHUTMODE normal | immediate | abort]

それぞれの意味は次のとおりです。

  • -SHUTDOWNは、インスタンスの停止を示します。これは必須パラメータです。

  • -SID SIDは、停止するインスタンスの名前を指定します。

  • -ASMSID SIDは、停止する自動ストレージ管理インスタンスの名前です。

  • -SHUTTYPE srvcinstは、サービスまたはインスタンスのどちらを停止するかを示します。片方または両方を指定できます。指定しない場合は、現在の設定がレジストリで確認されます。

  • -SHUTMODEは、インスタンスの停止方法を指定します。これはオプション・パラメータです。インスタンスの停止方法を指定しない場合、デフォルト・モードはimmediateです。

たとえば、pumaというインスタンスを停止するには、次のように入力します。

C:\> oradim -SHUTDOWN -SID puma -SHUTTYPE srvc,inst

インスタンスの編集

既存のインスタンスを編集すると、インスタンス名、起動モード、停止モード、停止タイプなどの値を変更できます。ORADIMを使用してインスタンスを変更するには、次のように入力します。

oradim -EDIT -SID SID | -ASMSID SID [-SYSPWD password] [-STARTMODE auto | 
manual] [-SRVCSTART system | demand] [-PFILE filename | -SPFILE][SHUTMODE normal 
| immediate | abort] [SHUTTYPE srvc | inst | srvc,inst]

それぞれの意味は次のとおりです。

  • -EDITは、インスタンスの変更を示します。これは必須パラメータです。

  • -SID SIDは、変更するインスタンスの名前を指定します。これは必須パラメータです。

  • -ASMSID SIDは、変更する自動ストレージ管理インスタンスの名前です。

  • -STARTMODEは、Oracle Databaseサービスの開始時にインスタンスを起動するかどうかを示します。デフォルトはmanualです。

  • -SRVCSTART system | demandは、コンピュータの再起動時にOracle Databaseサービスを開始するかどうかを示します。デフォルトはdemandです。

  • -PFILE filenameは、このインスタンスで使用する初期化パラメータ・ファイルを指定します。このファイルは、ドライブ名を含めて、フルパス名を指定する必要があります。

  • -SPFILEは、起動時にPFILEのかわりにサーバー・パラメータ・ファイル(SPFILE)を使用することを指定します。

  • -SHUTMODEは、インスタンスの停止方法を指定します。これはオプション・パラメータです。インスタンスの停止方法を指定しない場合は、immediateがデフォルト・モードです。

  • -SHUTTYPEは、サービスまたはインスタンスのどちらを停止するかを示します。片方または両方を指定できます。指定しない場合は、現在の設定がレジストリで確認されます。

たとえば、インスタンスprodに対して新しい初期化パラメータ・ファイルを指定するには、次のように入力します。

C:\> oradim -EDIT -SID prod -PFILE C:\app\oracle\product\11.2.0\admin\lynx\pfile\init.ora

インスタンスの削除

Enterprise Database Controlサービス(OracleDBConsoleSID)は、Oracle Databaseサービス(OracleServiceSID)に依存します。Enterprise Database Control依存サービスは、(インストールされている場合)ORADIMがデータベース・インスタンス・サービスを削除する前に、停止する必要があります。

ORADIMを使用してインスタンスを削除するには、次のように入力します。

oradim -DELETE -SID SID | -ASMSID SID | -SRVC service_name | -ASMSRVC service_name

それぞれの意味は次のとおりです。

  • -DELETEは、インスタンスまたはサービスの削除を示します。これは必須パラメータです。

  • -SID SIDは、削除するSIDの名前を指定します。

  • -SRVC service_nameは、削除するサービスの名前(OracleServiceSID)を指定します。ユーザーは、SIDまたはSRVCを指定する必要があります。

  • -ASMSID SIDは、削除する自動ストレージ管理インスタンスの名前です。

  • -ASMSRVC service_nameは、削除する自動ストレージ管理サービスの名前です。

たとえば、prodというインスタンスを削除するには、次のように入力します。

C:\> oradim -DELETE -SID prod

Windows(32-bit)コンピュータからのデータベースの移行

次の項目について説明します。


関連項目:

旧リリースのOracle DatabaseをOracle Database 11g リリース2(11.2)にアップグレードする方法の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

32ビットOracle Databaseのバックアップ

32ビットOracleホームのデータベースをバックアップするには、次のようにします。

  1. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  2. SYSDBAでデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  3. 64ビット・コンピュータで制御ファイルを再作成するためのテンプレートとして使用する.trcファイルを作成します。

    SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
    
  4. データベースを停止します。

    SQL> SHUTDOWN IMMEDIATE;
    
  5. データベースの全体オフライン・バックアップを実行します。


関連項目:

バックアップおよびリカバリ・ソリューションの概要は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

Oracle Database 11g リリース2(11.2)の移行

Oracle Database 11g リリース2(11.2)for Windows(32-bit)をOracle Database 11g リリース2(11.2)for Windows(64-bit)に移行するには、次のようにします。

  1. Oracle Database 11g リリース2(11.2)for Windows(64-bit)をインストールします。


    関連項目:

    『Oracle Databaseインストレーション・ガイドfor Microsoft Windows』

  2. コマンド・プロンプトでOracle Database 11g リリース2(11.2)の新規サービスを作成します。

    C:\> ORADIM -NEW -SID SID [-INTPWD PASSWORD ]-MAXUSERS USERS 
    -STARTMODE AUTO -PFILE ORACLE_HOME\DATABASE\INITSID.ORA
    

    次の表に、指定する必要のある値の詳細情報を示します。

    パラメータ 説明
    SID 移行するデータベースのSIDです。
    PASSWORD Oracle Database 11g リリース2(11.2)for Windows(64-bit)の新規データベース用のパスワードです。これは、SYSDBA権限で接続するユーザーのパスワードです。-INTPWDオプションは必須ではありません。このオプションを指定しない場合、オペレーティング・システム認証が使用されます(パスワードは必要ありません)。
    USERS SYSDBA権限とSYSOPER権限を付与できるユーザーの最大数です。
    ORACLE_HOME Oracleホーム・ディレクトリです。-PFILEオプションでは、Oracleホーム・ディレクトリのドライブ文字を含め、フルパス名を指定する必要があります。

  3. 32ビット・データファイルを新規64ビットOracleホームにコピーします。

  4. 32ビット構成ファイルを64ビットOracleホームにコピーします。

    1. 32ビット初期化パラメータ・ファイルにIFILE(挿入ファイル)エントリが含まれる場合、IFILEエントリで指定されているファイルを64ビットOracleホームにコピーし、その新しい場所を示すように初期化パラメータ・ファイルのIFILEエントリを編集します。

    2. 32ビットOracleホームにパスワード・ファイルが存在する場合、そのパスワード・ファイルを64ビットOracleホームにコピーします。デフォルトの32ビット・パスワード・ファイルは、ORACLE_HOME\database\pwdSID.oraに存在します(SIDはOracleインスタンスのIDです)。

  5. 64ビットOracleホームで、ワード・サイズを変更する前にORACLE_HOME\database\ORACLE_SID \init.oraファイルに_SYSTEM_TRIG_ENABLED = falseというパラメータを追加します。

  6. このパラメータは、ワード・サイズの変更の完了後に初期化ファイルから削除します。


    関連項目:

    ワード・サイズの変更の詳細は、『Oracle Databaseアップグレード・ガイド』を参照してください。

  7. コマンド・プロンプトで64ビットのORACLE_HOME\rdbms\adminディレクトリに移動します。

  8. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG 
    
  9. SYSDBAでデータベース・インスタンスに接続します。

    SQL> CONNECT / AS SYSDBA;
    
  10. CREATE CONTROLFILEコマンドを使用して64ビット制御ファイルを再作成します。「32ビットOracle Databaseのバックアップ」で作成したトレース・ファイルを編集し、64ビット・コンピュータのOracleホームを示すようにデータファイル、ログ・ファイルおよび制御ファイルのパスを変更します。これにより、ORACLE_HOME\databaseに新規制御ファイルを作成します。

    次に、32ビット・コンピュータのorcl32データベースを64ビット・コンピュータのorcl64データベースに移行する場合の例を示します。

    CREATE CONTROLFILE REUSE DATABASE "T1" NORESETLOGS NOARCHIVELOG
        MAXLOGFILES 32
        MAXLOGMEMBERS 2
        MAXDATAFILES 32
        MAXINSTANCES 16
        MAXLOGHISTORY 1815
    LOGFILE
        GROUP 1 'C:\app\oracle\product\11.2.0\oradata\orcl64\REDO03.LOG'  SIZE 1M, 
        # was   'C:\app\oracle\product\11.2.0\oradata\orcl32\...LOG' 
        # on the 32-bit computer
        GROUP 2 'C:\app\oracle\product\11.2.0\oradata\orcl64\REDO02.LOG'  SIZE 1M,
        GROUP 3 'C:\app\oracle\product\11.2.0\oradata\orcl64\REDO01.LOG'  SIZE 1M
    DATAFILE
       'C:\app\oracle\product\11.2.0\oradata\orcl64\SYSTEM01.DBF',
        # was 'C:\app\oracle\product\11.2.0\oradata\orcl32\...DBF' 
        # on the 32-bit computer
       'C:\app\oracle\product\11.2.0\oradata\orcl64\RBS01.DBF',
       'C:\app\oracle\product\11.2.0\oradata\orcl64\USERS01.DBF',
       'C:\app\oracle\product\11.2.0\oradata\orcl64\TEMP01.DBF',
       'C:\app\oracle\product\11.2.0\oradata\orcl64\TOOLS01.DBF',
       'C:\app\oracle\product\11.2.0\oradata\orcl64\INDX01.DBF',
       'C:\app\oracle\product\11.2.0\oradata\orcl64\DR01.DBF'
    CHARACTER SET WE8ISO8859P1;
    
  11. 前の手順で作成した新規制御ファイルを含めるように32ビット・コンピュータでinitファイルを変更します。

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

    SQL> SHUTDOWN IMMEDIATE;
    
  13. UPGRADEモードでデータベースを起動してutlirp.sqlを実行します。

    SQL> STARTUP UPGRADE;
    

    PFILEオプションを使用して、初期化パラメータ・ファイルの場所を指定する必要があります。

  14. 後で操作が成功したかどうかを検証するために、ログ・ファイルに結果をスプールするようシステムを設定します。次に例を示します。

    SQL> SPOOL mig32-64.log;
    
  15. 次のコマンドを入力して画面にスクリプトの出力を表示します。

    SQL> SET ECHO ON;
    
  16. 64ビットOracle Databaseに必要な形式で既存のPL/SQLモジュールを再コンパイルします。

    SQL> @utlirp.sql;
    
  17. ログ・ファイルに対するスクリプトの結果のスプールをオフにします。

    SQL> SPOOL OFF;
    
  18. スプール・ファイルをチェックし、パッケージとプロシージャのコンパイルが成功したかどうかを確認します。このファイルで検出された問題は、すべて修正します。

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

    SQL> SHUTDOWN IMMEDIATE;
    
  20. データベースを起動します。

    SQL> STARTUP;
    
  21. JServer JAVA仮想マシン・コンポーネントがインストールされている場合、SYSとして接続した後に次の手順を実行します。

    begin
      update obj$ set status=5 where obj#=(select obj# from obj$,javasnm$
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
      declare
        cursor C1 is select
           'DROP JAVA DATA "' || u.name || '"."' || o.name || '"'
           from obj$ o,user$ u where o.type#=56 and u.user#=o.owner#;
    
        ddl_statement varchar2(200);
        iterations number;
        previous_iterations number;
        loop_count number;
        my_err     number;
      begin
        previous_iterations := 10000000;
        loop
          -- To make sure we eventually stop, pick a max number of iterations
          select count(*) into iterations from obj$ where type#=56;
          exit when iterations=0 or iterations >= previous_iterations;
          previous_iterations := iterations;
          loop_count := 0;
          open C1;
         loop
           begin
             fetch C1 into ddl_statement;
             exit when C1%NOTFOUND or loop_count > iterations;
          exception when others then
             my_err := sqlcode;
             if my_err = -1555 then -- snapshot too old, re-execute fetch query
               exit;
             else
               raise;
            end if;
          end;
          initjvmaux.exec(ddl_statement);
          loop_count := loop_count + 1;
         end loop;
         close C1;
        end loop;
      end;
      commit;
      initjvmaux.drp('delete from java$policy$shared$table');
      update obj$ set status=1 where obj#=(select obj# from obj$,javasnm$ 
        where owner#=0 and type#=29 and short(+)=name and
        nvl(longdbcs,name)='oracle/aurora/rdbms/Compiler');
      commit;
    end;
    /
    create or replace java system;
    /
    
  22. 64ビットOracle Databaseに必要な形式で既存のPL/SQLモジュールを再コンパイルします。

    SQL> @utlrp.sql;
    

Oracle Database 10gリリース2(10.2)以下のデータベースの移行

Oracle Database 10g リリース2(10.2)をOracle Database 11g リリース2(11.2)for Windows(64-bit)に移行するには、次のようにします。

  1. 「Oracle Database 11g リリース2(11.2)の移行」の手順1から11を実行します。

  2. 64ビット・コンピュータのデータベースを停止します。

    SQL> SHUTDOWN IMMEDIATE;
    
  3. データベースの移行を開始します。

    SQL> STARTUP MIGRATE;
    
  4. 『Oracle Databaseアップグレード・ガイド』の第3章「新しいリリースへのアップグレード」に記載された手順に従ってデータベースを移行します。

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

    SQL> SHUTDOWN IMMEDIATE;
    
  6. データベースを再起動します。

    SQL> STARTUP OPEN;