タスク6: 表領域セットのインポート

トランスポータブル表領域に対する操作を完了するために、表領域セットをインポートします。

表領域セットのインポート手順は、次のとおりです。

  1. DATAPUMP_IMP_FULL_DATABASEロールを持つユーザーとしてデータ・ポンプ・インポート・ユーティリティを実行し、表領域メタデータをインポートします。
    impdp user_name dumpfile=expdat.dmp directory=data_pump_dir
       transport_datafiles=
       'c:\app\orauser\oradata\orawin\sales_101.dbf',
       'c:\app\orauser\oradata\orawin\sales_201.dbf'
       remap_schema=sales1:crm1  remap_schema=sales2:crm2
       logfile=tts_import.log
    
    Password: password
    

    この例では、次のデータ・ポンプ・パラメータを指定します。

    • DUMPFILEパラメータでは、インポートされる表領域のメタデータが含まれるエクスポート・ファイルを指定します。

    • DIRECTORYパラメータでは、エクスポート・ダンプ・ファイルの場所を識別するディレクトリ・オブジェクトを指定します。DIRECTORYオブジェクトはデータ・ポンプを実行する前に作成し、ディレクトリに対するREADおよびWRITEオブジェクト権限をインポート・ユーティリティを実行するユーザーに付与する必要があります。CREATE DIRECTORYコマンドの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

      非CDBで、ディレクトリ・オブジェクトDATA_PUMP_DIRがデータベースにより自動的に作成されます。このディレクトリへの読取りおよび書込みアクセス権がDBAロールに(したがって、ユーザーSYSおよびSYSTEMに)自動的に付与されます。

      ただし、ディレクトリ・オブジェクトDATA_PUMP_DIRは、PDBではデータベースにより自動的には作成されません。このため、PDBにインポートする場合は、PDBにディレクトリ・オブジェクトを作成し、データ・ポンプを実行するときにそのディレクトリ・オブジェクトを指定します。

      関連項目:

    • TRANSPORT_DATAFILESパラメータによって、インポートする表領域が含まれるすべてのデータファイルを識別します。

      多くのデータファイルがある場合は、PARFILEパラメータで指定されたパラメータ・ファイルでTRANSPORT_DATAFILESパラメータを複数回指定できます。

    • REMAP_SCHEMAパラメータによって、データベース・オブジェクトの所有権を変更します。REMAP_SCHEMAを指定しない場合、すべてのデータベース・オブジェクト(表や索引など)はソース・データベースと同じユーザー・スキーマ内で作成され、そのユーザーはターゲット・データベース内にすでに存在している必要があります。ユーザーが存在しない場合は、インポート・ユーティリティによってエラーが返されます。この例では、ソース・データベース内でsales1が所有している表領域セット内のオブジェクトは、表領域セットをインポートした後のターゲット・データベース内ではcrm1の所有となります。同様に、ソース・データベース内でsales2が所有しているオブジェクトは、ターゲット・データベース内ではcrm2の所有となります。この例では、ターゲット・データベース内にユーザーsales1およびsales2は存在する必要はありませんが、ユーザーcrm1およびcrm2が存在する必要があります。

      Oracle Database 12cリリース2 (12.2)以降では、Recovery Manager (RMAN)のRECOVERコマンドで、表を再マッピングしながら表を異なるスキーマに移動できます。詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。

    • LOGFILEパラメータでは、インポート・ユーティリティによって書き込まれるログ・ファイルのファイル名を指定します。この例では、ログ・ファイルの書込み先はダンプ・ファイルの読取り元と同じディレクトリですが、ログ・ファイルは別の場所に書き込むことができます。

    この文が正常に実行されると、コピーするセット内のすべての表領域は読取り専用モードのままになります。インポート・ログ・ファイルを確認して、エラーが発生しなかったことを確認します。

    多数のデータファイルを処理する場合は、データファイル・リストが文の行の制限を超えることがあるため、データファイル名のリストを文の行で指定することは煩雑です。このような場合には、インポート・パラメータ・ファイルを使用できます。たとえば、次のようにしてデータ・ポンプ・インポート・ユーティリティを実行できます。

    impdp user_name parfile='par.f'
    

    par.fパラメータ・ファイルには、次の情報が含まれています。

    DUMPFILE=expdat.dmp 
    DIRECTORY=data_pump_dir
    TRANSPORT_DATAFILES=
    'C:\app\orauser\oradata\orawin\sales_101.dbf',
    'C:\app\orauser\oradata\orawin\sales_201.dbf'
    REMAP_SCHEMA=sales1:crm1  REMAP_SCHEMA=sales2:crm2
    LOGFILE=tts_import.log

    関連項目:

    インポート・ユーティリティの使用方法は、『Oracle Databaseユーティリティ』を参照してください。

  2. 必要に応じて、ターゲット・データベースで表領域を読取り/書込みモードにします。