Email: service@parnassusdata.com 7 x 24 online support!

Oracle トランスポータブル表領域移行手順

Oracle トランスポータブル表領域移行手順

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 
 
[概要]
トランスポータブル表領域の移行手順


[対象リリース]
Oracle8i  Database R 8.1
Oracle9i  Database R 9.0.1
Oracle9i  Database R 9.2
Oracle10g Database R10.1
Oracle10g Database R10.2


[対象プラットフォーム]
すべてのプラットフォーム


[詳細]

【制限事項】
下記の表は、マニュアルの制限事項の内容をまとめたものです。
詳細は各バージョンの管理者ガイドにてご確認ください。
+---------------------+-------------+-------------+-------------------+
| 項目/バージョン     |     8i      | 9.0.1/9.2.0 |    10.1/10.2      |
+=====================+=============+=============+===================+
| 自己完結した表領域  |    必要     |    必要     |       必要        |
| セットであること    |             |             |                   |
| (*1)                |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| COMPATIBLE          | 8.1以上、かつ「ソースDB <= ターゲットDB」であ |
|                     | ること。また、本表で上位バージョンにて許容さ  |
|                     | れるようになった制限に該当する場合には、ソー  |
|                     | スDB・ターゲットDBともに許容されるバージョン  |
|                     | 以上の値が設定されていること (*2)             |
+---------------------+-------------+-------------+-------------------+
| 異なるOS間の移行    |    不可     |    不可     |        可         |
|                     |    (*3)     |    (*3)     |       (*4)        |
+---------------------+-------------+-------------+-------------------+
| ブロックサイズの    |    必要     |    不要     |       不要        |
| 一致                |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| キャラクタセット    |    必要     |    必要     |       必要        |
| の一致              |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| ターゲットDB に同名 |    不可     |    不可     |       不可        |
| 表領域が存在する    |             |             |       (*5)        |
+---------------------+-------------+-------------+-------------------+
| ターゲットに移行対象|             |             |                   |
| Userが存在する必要  |    必要     |    必要     |       必要        |
|(TOUSER,REMAP_SCHEMA |             |             |                   |
| で指定しない場合  ) |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| EXP/IMP実行ユーザの | SYSDBA 権限 | SYSDBA 権限 |    SYSDBA 権限    |
| 制限/必要権限       |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| EXPDP/IMPDP ユーザ  |     -       |     -       | EXP_FULL_DATABASE |
| の制限/必要権限     |             |             | IMP_FULL_DATABASE |
+---------------------+-------------+-------------+-------------------+
| レプリケーション/   |    不可     |    不可     |       不可        |
| DBLINK経由のスナッ  |             |             |                   |
| プショット          |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| マテリアライズド・  |    不可     |    不可     |        可         |
| ビュー              |             |             |  (DataPump使用)   |
+---------------------+-------------+-------------+-------------------+
| ファンクション索引  |    不可     |    不可     |        可         |
+---------------------+-------------+-------------+-------------------+
| 有効範囲付きREF     |    不可     |    不可     |        可         |
+---------------------+-------------+-------------+-------------------+
| ドメイン索引        |    不可     |     可      |        可         |
+---------------------+-------------+-------------+-------------------+
| 8.0互換の複数受信者 |             |             |                   |
| を持つアドバンスト・|    不可     |    不可     |       不可        |
| キュー              |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| SYSTEM 表領域       |    不可     |    不可     |       不可        |
| オブジェクト        |             |             |                   |
+---------------------+-------------+-------------+-------------------+
| OPAQUE 型           |     -       |    不可     | 可 (異なるOS間で  |
|                     |             |             | 制限あり)         |
+---------------------+-------------+-------------+-------------------+
| XMLType             |     -       |    不可     | 可 (EXP/IMP使用)  |
+---------------------+-------------+-------------+-------------------+
| 浮動小数点数        |     -       |     -       | 可 (DataPump使用) |
+---------------------+-------------+-------------+-------------------+
*6 8iまでのデータベースを9i以降に移行する場合、NATIONAL CHARACTER SETが異なるため
   移行することはできません。


*1.
表領域セットとは、移行をおこなう複数の表領域のことです。たとえば表領域 TS1,TS2 
の表領域セットにおいて、その中にあるオブジェクトから外部への参照が無い場合、これ
を「自己完結した表領域セット」といいます。


*2.
高いCOMPATIBLEのDBから低いCOMPATIBLEのDBにトランスポータブル表領域の移行を実行
すると ORA-19727 が出力されます。
ソースDB・ターゲットDBのバージョンが異なる場合に使用するエクスポート/インポート
ユーティリティのバージョンについては、下記をご参照ください。

Document 1715793.1(KROWN:45271) 異なるバージョンのデータベース間でExport/Importを実行する方法


*3.
9i までのバージョンでは、ソースDBとターゲットDBはそれぞれ同一プラットフォームで
稼働している必要がありますが、OSのバージョンまでは同じである必要はありません。


*4.
10gでは異なるプラットフォーム間(クロス・プラットフォーム)の移行が可能となりまし
た。ソースDB・ターゲットDBの両方で compatible は 10.0 以上である必要があります。
ソースおよびターゲットのプラットフォームで endian が異なる場合は、インポートの
前にRMAN を使用して変換する必要があります。

Document 1730782.1(KROWN:98600) 10g : 複数のプラットフォームにまたがるトランスポータブル表領域


*5.
同じ名前を持つ表領域がすでに存在しているターゲットDBには、表領域をトランスポー
トできません。 ただし、トランスポート操作を実行する前に、移行元の表領域名または
ターゲットDBに既に存在する表領域のいずれかの名前を変更することによってこの問題
は対処できます。


*6.
トランスポータブル表領域はエクスポート元、エクスポート先ともデータベースの
キャラクタ・セット、各国語キャラクタ・セットが同一である必要があります。
特に Oracle 8i では、デフォルトの各国語キャラクタ・セットは、データベースの
キャラクタ・セットと同じですが、Oracle 9i以降は有効な値は、AL16UTF16 およびUTF8
です。デフォルトはAL16UTF16 です。この為、Oracle 8i でエクスポートした
トランスポータブル表領域をOracle 9i 以降にインポートする際は以下のエラーが
発生致します。
    
  IMP-00003: Oracleエラー19736が発生しました。
  ORA-19736: 異なる各国語キャラクタ・セットを使用して
             データベースに表領域を作成できません


【手順】

(1)  自己完結した表領域セットの選択   
     <表領域名> には複数指定が可能です。例: 'TS1,TS2'

   SQL> connect sys/change_on_install
   SQL> exec dbms_tts.transport_set_check('表領域名,表領域名', TRUE)

   PL/SQLプロシージャが正常に完了しました。

   SQL> select * from transport_set_violations;

   レコードが選択されませんでした。

     ※ここでデータが表示された場合、外部に対して参照を持っている事が分かります。

(2)  コピー元の表領域を読取専用に変更します

   SQL> alter tablespace <表領域名> read only;

(3)  メタ・データのエクスポートを行います

   % exp \'sys/change_on_install as sysdba\' transport_tablespace=y \
         tablespaces=(表領域名,表領域名)  file=expmeta.dmp log=expmeta.log

    (参考)
        Document 1720570.1(KROWN:59888) エクスポート・インポート時、AS SYSDBA で接続する方法 

(4)  データファイルのコピーをします

   % cp xxxx.dbf /tmp/xxxx.dbf

   ftpなどでのファイル転送には時間がかかる事を考慮し、該当表領域がREAD ONLYであ
   る時間を短縮するため、ここではまずローカルにコピーを取得しています。このコピー
   をftp等の転送用に使用するならば、コピーの取得が終わった段階で該当表領域をREAD 
   WRITEに戻すことができます。
   READ ONLYが長時間続く状態でも構わないのであれば、ここでコピーを作成する必要は
   ありません。

(5)  コピー元の表領域を書込みモードに戻します

   SQL> ALTER TABLESPACE XXXX READ WRITE;

(6)  ftp等でエクスポートファイルとデータファイルを移動先に転送します

(7)  コピー先のデータベースにメタ・データをインポートします

   % imp \'sys/change_on_install as sysdba\' transport_tablespace=y  \
        datafiles='<copyしたデータファイルのフルパス>' file=expmeta.dmp log=impmeta.log