YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

DataPumpを用いたExport/Importを異なるバージョン間で行ってはまった

はじめに

自分はずっとアプリケーションサイドにいたので、最近DBを使う中で結構忘れてたり知らないことが出ています。今回は異なるバージョンのDB間で気をつけることメモ。

メモ

想定しているのは下記のような状況。

項目 Source Target
DB 11g R1 10g R2
スキーマ FOO BAR
表領域 HOGE PIYO

特定のテーブルの定義だけを移したい。

Export
  • DBでの設定
    • directoryの作成&実行ユーザへの書込・読取権限追加
  • expdpのパラメータ
    • tables

ワイルドカードも使えます。tables=('PRE_%')でPRE_XXXXというテーブルをexportできる。

    • version

Targetのバージョンを指定しておく。version=10.2.0

    • content

定義だけ(METADATA_ONLY)、データだけ(DATA_ONLY)、全部(ALL)から。今回はcontent=METADATA_ONLY

Import
  • DBでの設定
    • directoryの作成&実行ユーザへの書込・読取権限追加
    • ユーザへIMP_FULL_DATABASEロールの付与
  • impdpのパラメータ
    • remap_schema

FOOユーザのスキーマをBARユーザに変更する場合は、remap_schema=(FOO:BAR)

    • remap_tablespace

表領域HOGEにあったものを表領域PIYOに変更する場合は、remap_tablespace=(HOGE:PIYO)