タスク2: トランスポータブル表領域セットの生成

トランスポートする表領域セットが自己完結型であることを確認した後で、トランスポータブル表領域セットを生成します。

トランスポータブル表領域セットを生成する手順は、次のとおりです。

  1. SQL*Plusを起動し、管理者として、あるいはALTER TABLESPACEまたはMANAGE TABLESPACEシステム権限を持つユーザーとしてデータベースに接続します。
  2. セット内のすべての表領域を読取り専用にします。
    ALTER TABLESPACE sales_1 READ ONLY;
    
    ALTER TABLESPACE sales_2 READ ONLY;
    
  3. DATAPUMP_EXP_FULL_DATABASEロールを持つユーザーとしてデータ・ポンプ・エクスポート・ユーティリティを実行し、トランスポータブル・セット内の表領域を指定します。
    SQL> HOST
    
    $ expdp user_name dumpfile=expdat.dmp directory=data_pump_dir 
            transport_tablespaces=sales_1,sales_2 logfile=tts_export.log
    
    Password: password
    

    トランスポータブル・オプションを使用することを指定するTRANSPORT_TABLESPACESを常に指定する必要があります。この例では、次の追加のデータ・ポンプ・パラメータを指定します。

    • DUMPFILEパラメータでは、作成する構造情報エクスポート・ダンプ・ファイルの名前をexpdat.dmpと指定します。

    • DIRECTORYパラメータでは、オペレーティング・システムまたはOracle Automatic Storage Managementのダンプ・ファイルの場所を示すディレクトリ・オブジェクトを指定します。DIRECTORYオブジェクトはデータ・ポンプを起動する前に作成し、ディレクトリに対するREADおよびWRITEオブジェクト権限をエクスポート・ユーティリティを実行するユーザーに付与する必要があります。

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

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

    • LOGFILEパラメータでは、エクスポート・ユーティリティ用に作成するログ・ファイルを指定します。この例では、ログ・ファイルはダンプ・ファイルと同じディレクトリに作成されますが、ログ・ファイルの格納には他のディレクトリを指定できます。

    • トリガーと索引は、デフォルトでエクスポート操作に含まれています。

    表領域のトランスポート操作を厳密完結チェック付きで実行するには、次の例に示すように、TRANSPORT_FULL_CHECKパラメータを使用します。

    expdp use_name dumpfile=expdat.dmp directory=data_pump_dir
          transport_tablespaces=sales_1,sales_2 transport_full_check=y
          logfile=tts_export.log
    

    この場合は、データ・ポンプ・エクスポート・ユーティリティによって、トランスポータブル・セット内のオブジェクトとトランスポータブル・セット外のオブジェクトとの間に依存性がないことを検証します。トランスポートする表領域セットが自己完結していない場合、エクスポートは失敗し、トランスポータブル・セットが自己完結していないことがわかります。これらの違反を解決してから、このタスクを再度実行する必要があります。

    注意:

    この例では、データ・ポンプ・ユーティリティを使用してエクスポートするのは、表領域のデータ・ディクショナリの構造情報(メタデータ)のみです。実際のデータはアンロードされないため、この操作は大規模な表領域セットの場合でも比較的早く完了します。

  4. expdpユーティリティは、次の例に示すように、ダンプ・ファイルおよびデータファイルの名前およびパスをコマンドラインに表示します。これらは、ターゲット・データベースへのトランスポートに必要なファイルです。また、エラーがないかログ・ファイルを確認します。
    *****************************************************************************
    Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
      /u01/app/oracle/admin/salesdb/dpdump/expdat.dmp
    *****************************************************************************
    Datafiles required for transportable tablespace SALES_1:
      /u01/app/oracle/oradata/salesdb/sales_101.dbf
    Datafiles required for transportable tablespace SALES_2:
      /u01/app/oracle/oradata/salesdb/sales_201.dbf
    
  5. データ・ポンプ・エクスポート操作が完了したら、expdpユーティリティを終了してSQL*Plusに戻ります。
    $ EXIT

    関連項目: