プライマリ・コンテンツに移動
Oracle® Database管理者リファレンス
18c for Microsoft Windows
E99714-01
目次へ移動
目次
索引へ移動
索引

前
次

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

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

Oracle Database Configuration Assistantを使用して、データベース作成スクリプトを作成できます。

データベース作成タスクのタイプを次に示します。

手動でのデータベース作成作業

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

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

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

注1

該当なし

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

不要

該当なし

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

Oracle Databaseインスタンスの起動

Oracle Databaseサービスの作成および開始について

不要

CREATE DATABASE文のスクリプトへの追加

CREATE DATABASEスクリプトの実行

データベースのインポートについて

注2

該当なし

レジストリのORACLE_SIDの更新

不要

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

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

注意:

既存のデータベースから新しいデータベースにデータをコピーする場合は「はい」を選択し、それ以外の場合は「いいえ」を選択します。また、既存のデータベースから表およびその他のオブジェクトをインポートする場合、「はい」を選択します。それ以外の場合は、「いいえ」を選択します。

次の項の例でデータベースの作成方法を示します。この例では、既存のデータベースはSIDorclの初期データベースで、ディレクトリC:\app\username\oradata\orclにあります。orclを、ディレクトリC:\app\username\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\oradata\orclから次のファイルを削除します。
    control01.ctl
    control02.ctl
    control03.ctl
    index01.dbf
    drsys01.dbf
    cwmlite01.dbf
    example01.dbf
    system01.dbf
    temp01.dbf
    tools01.dbf
    undotbs01.dbf
    user01.dbf
    xdb01.dbf
    redo01.log
    redo02.log
    redo03.log

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

初期化パラメータ・ファイルを変更する方法について説明します。

初期データベースorclを新しいデータベースの基本として使用するには、次のようにします。

  1. ORACLE_BASE\admin\orcl\pfile\init.oraをコピーします。

  2. そのコピーを ORACLE_BASE\admin\prod\pfile\init.oraに置きます。

  3. 次のタスクを実行してファイルを変更します。

    注意:

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

    初期化パラメータ値のそのような参照および引用符のネストの他の方法を排除するために、パラメータ・ファイルを変更することを強くお薦めします。

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

      ORACLE_HOME\admin\sample\pfile
      

      これはデータベースprodの初期化パラメータ・ファイルの基礎です。

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

      DB_NAME=prod.domain

      パラメータDB_NAMEはデータベース名を示し、CREATE DATABASE文で使用される名前と一致する必要があります。データベースごとに一意の名前を付けます。データベース名に使用できる文字数は8文字までです。名前はデータベース・サービスのSIDと同じにする必要はありません。

      INSTANCE_NAME=prod.domain

      SERVICE_NAMES=prod.domain

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

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

      DB_FILES=100

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

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

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

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

      関連項目:

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

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

Oracle Databaseサービスの作成および開始について

Oracle Databaseサービスを作成して開始する方法について説明します。

次のいずれかの手順を実行します。

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

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

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

サービスは、ORADIMを使用して作成します。

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

Oracle Databaseサービスを作成して開始する方法について説明します。

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

  1. コマンド・プロンプトからORADIMを実行します。
    C:\> oradim -NEW -SID prod -STARTMODE manual
    -PFILE "C:\app\username\admin\prod\pfile\init.ora"
    

    すでに作成した初期化パラメータ・ファイルが、ドライブ名を含めて、フルパスで指定されていることに注意してください。サービスが開始されたかどうかは、「コントロール パネル」の「サービス」ウィンドウで確認できます。ORADIMは、Oracleホーム・ユーザー・アカウントに対してOracle Databaseサービスを自動的に作成します。このOracleホーム・ユーザーがWindowsローカル・ユーザー・アカウントまたはWindowsドメイン・ユーザー・アカウントである場合、ORADIMはそのパスワードを要求します。

  2. ORACLE_SIDの値にprodを設定します。等号文字(=)の両側にはスペースを入れないでください。
    C:\> set ORACLE_SID=prod
    

Oracle Databaseサービスのファイル・システムにあるOracleウォレットへのアクセス

Oracleウォレットへのアクセスについて説明します。

Oracleウォレットがファイル・システムに作成される場合、ウォレットを作成しているユーザーにはウォレット作成ツールによりそのウォレットへのアクセス権が付与されます。したがって、Oracle Databaseサービス(Windowsユーザー・アカウントとして実行中)は、Windowsツールを使用してウォレットへのアクセス権を明示的に付与しないかぎり、ウォレットにアクセスできない可能性があります。

Oracle Databaseインスタンスの起動

データベースをマウントせずにインスタンスを起動する方法について説明します。

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

SQL> STARTUP NOMOUNT

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

CREATE DATABASE文のスクリプトへの追加

CREATE DATABASE文は、データベースを作成するSQL文です。

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

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

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

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

CHARACTER SETパラメータによって、新しいデータベースのデータベース・キャラクタ・セットが決まります。デフォルト値はUS7ASCIIですが、推奨される値はAL32UTF8です。AL32UTF8は、UTF-8エンコード形式のUnicode標準文字のOracleでの実装です。Unicodeは、事実上世界のすべての文字言語のテキストの格納に適しています。

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

注意:

Oracle Managed Filesは、CREATE DATABASE文とともに使用して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\username\oradata\prod\system01.dbf' SIZE 325M REUSE
AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
UNDO TABLESPACE "UNDOTBS" DATAFILE 'app\username\oradata\prod\undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
logfile 'C:\app\username\oradata\prod\redo01.log' size 100M reuse,
        'C:\app\username\oradata\prod\redo02.log' size 100M reuse,
        'C:\app\username\oradata\prod\redo03.log' size 100M reuse
Oracle Database Installation Guide for Microsoft WindowsEXTENT MANAGEMENT LOCAL;

関連項目:

  • Oracle Managed Filesの使用方法の詳細は、Oracle Database管理者ガイドを参照してください

  • 推奨されるデータベース・キャラクタ・セットの詳細は、Oracle Databaseインストレーション・ガイドfor Microsoft Windowsを参照してください。

CREATE DATABASEスクリプトの実行

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\username\product\12.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ホームを識別するための一意の番号です。
  3. 「レジストリ エディタ」ウィンドウの右側でパラメータORACLE_SIDを探します。
  4. パラメータ名をダブルクリックし、データを新しいSID(この例ではprod)に変更します。

ORACLE_SIDパラメータの作成

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

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

  1. 「編集」メニューから「新規」を選択します。
  2. メニュー・リストから「展開可能な文字列値」を選択します。
  3. 「レジストリ・エディタ」ウィンドウの右側のペインに、「新しい値 #1」という展開可能な文字列値名がデータの種類REG_EXPAND_SZで作成されます。
  4. パラメータを右クリックして、「名前の変更」を選択し、名前をORACLE_SIDに変更して、[Enter]を押します。
  5. ORACLE_SIDエントリをダブルクリックして、値のデータを新しいSIDに変更します。

    「文字列の編集」ダイアログ・ボックスが表示されます。

  6. 「値のデータ」フィールドにPRODを入力します。
  7. 「OK」をクリックします。

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

  8. 「ファイル」メニューから「終了」を選択します。

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

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

データ損失を防ぐには、この手順を使用します。

注意:

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

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

  1. データベース・インスタンスを停止してサービスを停止します。
    C:\> oradim -SHUTDOWN -SID prod -SHUTTYPE srvc,inst -SHUTMODE immediate

    注意:

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

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

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

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

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

    関連項目:

    • 『Oracle Database概要』

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

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

注意:

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