• 締切済み

Oracle DataPumpでの移行

Linux(RedHat)データベース(oracle10g)から同じバージョンの新規データベースにDataPumpを使用して移行する方法について教えてください。 移行元のデータベース上にてDatapumpを使用する場合、ディレクトリを作成する必要がありますが、 (1)このディレクトリは移行元のデータベース上に作成するものでしょうか。 (2)それとも、新規データベース先にディレクトリを作成し、dmpファイルの吐き出し先を新規データベース指定するものでしょうか。(ファイルのパラメーターで、別データベースを指定できる??) (1)の場合、新規データベース上で別途ディレクトリを作成し、移行元のディレクトリに吐き出したdmpファイルをコピーやftp等で、新規データベースに移動させるのでしょうか? (2)の場合、exportのパラメータでどのように別データベースを指定すればよいでしょうか? dumpfile=directory_object:【新規DB IPアドレス??】test.dmp

  • Oracle
  • 回答数2
  • ありがとう数12

みんなの回答

  • uresiiwa
  • ベストアンサー率45% (49/107)
回答No.2

ORA-39087: ディレクトリ名LOGDIRは無効です というエラーが出ていますので、処理実行ユーザにLOGDIRへの権限が与えられていないのではないでしょうか? 以下を実行してからもういちど試してみてください。 sqlplus system@*** grant read, write on LOGDIR to 処理実行ユーザ; なお、ディレクトリオブジェクトで定義された実ディレクトリがパーミッション777なだけでなく、 OSのoracleユーザが実際にそのディレクトリに読み書きできる必要もあります。 (上位レベルのディレクトリ権限がないと、その階層に到達できずNG)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

exdpの使用例のページです http://oracle-pub.wikidot.com/expdp-help こちらはimpdpの使用例。 http://oracle-pub.wikidot.com/impdp-help やり方としては (1)移行元サーバーでexpdpを起動して、ダンプファイルを移行元に出力し、それを移行先サーバーにftpなどの方法で移して、移行先サーバーでimpdpを使ってインポート (2)移行先のサーバーからネットワーク経由でexpdpを起動して、ダンプファイルを出力し、移行先にインポート。 が考えられます。

kanjidaisuki
質問者

補足

移行先サーバよりネットワーク経由でexpdpを起動し実行したところ、エラーがかえってきてできません。 CREATE DIRECTORY DumpDir as '/**/**/DataPumpdump'; CREATE DIRECTORY LogDir as '/**/**/DataPumplog'; また、 expdp ***/**@移行元DB名 dumpfile=DumpDir:test.dmp logfile=LogDir:test.log schemas=ユーザ名 をしたところ、 接続先: Oracle Database 10g - Production ORA-39002: 操作が無効です ORA-39070: ログ・ファイルをオープンできません。 ORA-39087: ディレクトリ名LOGDIRは無効です がでました。対象のディレクトリは'/**/**/DataPumpdump'は権限777にしてます。 また、パラメーターをdumpfile=test.dmp logfile=test.logにしたところ 実行できましたが、ダンプファイルが移行元にエキスポートされてしまいます。 何か設定が間違っているのでしょうか…

関連するQ&A

  • Oracle9iでのサーバー移行時のpublicユーザーの移行方法について

    移行元はOracle8iかOracle9i 移行先はOracle9iで、 EXP と IMP でデータの移行を行いたいのですが、 ●EXPの例 EXP TBL/TBL@SERVER FILE=E:\EXP_USER.DMP,FULL= Y,LOG=E:\EXP_USER.log ●IMPの例(AAAユーザーをインポートする) IMP TBL/TBL FILE=E:\EXP_USER.DMP LOG=E:\EXP_USER_COM.LOG FROMUSER=AAA TOUSER=AAA ROWS=YES しかしDATABASE LINKとSYNONYMはpublicユーザーで、 IMP文のAAAをPUBLICにしてもインポートされません。 ・PUBLIC DATABASE LINK データベースリンク ・PUBLIC SYNONYM publicユーザーの移行にはどのしたらいいのでしょうか?

  • Oracle9iデータベースのサーバ間移行について

    以前に「Oracle9iデータベースのサーバ間移行について」とのことを質問させていただきましたが、 その続きになるかと思います。 Oracle9i(9.2.0.1.0)のデータベースからコールドバックアップにて取得したファイルを他のサーバへ移動するときに移動元のOSが「Windows2003Server 32bit」、移動先OSが「Windows 2003 Server 64bit」となるのですが、なにか問題があるのでしょうか? マスターの方々、ご教授お願いします。

  • データベース移行

    Oracleデータベースを端末Aから端末Bへ移行しようと考えています。(両方ともUnixです。) 端末AはOracle7.3.3です。 端末BにはOracle9.0.1をインストールする予定です。 移行方法はExpとImpを使い、データベースごと移行する予定です。 このときふと疑問に思ったのですが、Oracle9.0.1をインストールするときに、データベースを作成すると思うのですが、端末Aのデータベースを移行してくる際に、データベースが2つできてしまうと思うのですが問題ないのでしょうか。(そもそもデータベースは複数持てる物なのですか。)それとも、インストール時にデータベースを作らないのでしょうか。 移行はしたことがないので常識が分かりません。 詳しく教えて下さい。お願いします。 もう一つおまけで聞きますが、データベースごと移行した場合、TRIGGER、INDEX、シーケンスも移行されるのですか。

  • oracleのExportシェル作成

    oracle10gを使用しています。 テーブル単位のExportを行うシェルを作成しようと思っております。 テーブルをfilesizeを指定し分割したいのですが、 "エクスポート・ファイル: EXPDAT.DMP >"を検知、新たにファイル名を指定、Enter の書き方がわかりません。お力添え宜しくお願いします。 ファイル名は最初にexp_dump01.dmpを指定し、以降はexp_dump02.dmpと 番号をインクリメントさせたいと思っております。 現在、以下のようなシェルを作成しました。 #!/bin/sh #変数指定 CON='エクスポート・ファイル: expdat.dmp >' RET='エクスポートは警告なしで正常終了しました。' ICOUNT=1 #コマンド実行 expコマンド #結果取得 VAR=`command` #取得結果が次のファイル名を要求している場合 while [VAR=CON] do ファイル名をインクリメントしたものを指定 done #取得結果が正常終了を示した場合 if [VAR = RET] echo 'Exportが終了しました。' fi #次のコマンド実行

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • oracleでexpdpを使いデータをexport

    こんにちは 現在oracleでexpdpを使い、目的のテーブルをexportしたいと思っていますが、エラーが出て出来ません。 oracleのバージョンは10.2です 行った作業は下記です 1sqlplusにログイン >sqlplus ユーザ名/パスワード@データベース別名 2.ディレクトリオブジェクトの作成 >create directory ディレクトリオブジェクト名 as 'ディレクトリのフルパス'; 3.使用ユーザにディレクトリに対する読み込み書き込み権限を付ける >grant read,write on directory ディレクトリオブジェクト名 to ユーザ名; 4.sqlplusからログオフし、ディレクトリを作成。rootで入り、chmodで777にディレクトリの権限を変更 expdpを実行 この時のユーザーはgrant権限で読み込み書き込みを与えたユーザー >expdp ユーザ名/パスワード@データベース別名 DIRECTORY=ディレクトリオブジェクト名 DUMPFILE=ダンプファイル名 LOGFILE=ログファイル名 ==ここからエラーが出ます== ORA-39001: 引数値が無効です ORA-39000: ダンプ・ファイル指定が無効です ORA-31641: ダンプ・ファイル"/xxxx/xxxx.dmp"を作成できません ORA-27040: ファイルの作成エラー、ファイルを作成できません SVR4 Error: 13: Permission denied ご存知の方いらっしゃいましたらエラー退避方法教えていただけないでしょうか? どうぞよろしくお願いいたします

  • データベースのエクスポートとインポート

    OSもOracleのバージョンも同じ環境で、データベースを移行したいと思っています。    OS:WindowsXP Pro SP2    Oracle:9i (9.2.0) 新しいマシンは、Oracleをインストールしただけの状態です。 インストール時に自動で作成されたデータベースだけがあります。 (ユーザはまだ作成していません) この状態で、現状のマシンにあるデータを全て丸ごとエクスポート・インポートは可能なのでしょうか?移行したいデータベースには、3つのユーザが存在しますが、この3つのユーザを一度にインポートできないかと思っています。 EXPに、FULL というパラメータがありますが、ここで [ Y ] を指定した場合、3つのユーザのデータを丸ごとエクスポートできるのでしょうか?その場合、USERIDのパラメータには、どのユーザ名を設定すれば良いのでしょうか? エクスポートできれば、そのDMPファイルをインポートすれば良いだけだと思っているのですが・・・ (ちなみにデータベースを、あと2つ作成して、同じようにインポート・エクスポートしたいと思っています) Oracle初心者です。質問内容もまとまっていないかもしれません。 不足などがあれば補足要求下さい。 よろしくお願い致します。

  • Outlook Expressの移行

    Outlook Expressの内容をliveメールに移行したいのですが、何点かどうしても出来ません。詳しい方教えてください。 1.アドレス帳は、メイン ユーザー の連絡先があり、その下にディレクトリー作成して個別にメールアドレス入れています。移行で*.webで移行してもディレクトリーが移行できません。 liveメールの中にあるアドレス帳にディレクトリーは作成できますが、膨大な数なので、ファイル移行で簡単に出来ませんか。 2.Outlook Expressのツール→オプション→署名があります。この署名の中に署名の編集でファイル指定があります。ファイルは*.txtで作成すると、新規メールの下に名前(全部で縦に5行作成してある)が記載されます。 これをliveメールで引っ張ると文字が横一文字になり、どう調べてもなおりません。Outlook Expressと同じように表示したいのですが、方法教えてください。

  • Oracle の imp コマンドについて

    oracle(8.1.6) のフルダンプから、指定したテーブルのみDBにインポートする為、imp コマンドを使います。 ---------------------------------------------------------------- $imp (Enterキーを押す) 1. ユーザー名: userid 2. パスワード: ****** 接続: Oracle8i Enterprise Edition Release 8.1.6.1.0 - Production With the Partitioning option JServer Release 8.1.6.0.0 - Production 3. インポート・ファイル: expdat.dmp > ---------------------------------------------------------------- 3.行目のインポート・ファイルのところで、複数のファイルを指定したい場合はどうすればいいでしょうか。 expdat01,expdat02 (expdat01,expdat02) \(expdat01,expdat02\) expdat01.dmp,expdat02.dmp と色々試してみましたが、どれもうまく行きませんでした。 なお、impのコマンドに入ったあと、普通のコマンドプロンプトに戻る方法も教えて頂けないでしょうか。exit、bye、Ctrl+C のどれも試したが、出来ませんでした。 どうぞよろしくお願いいたします。

  • oracle10g(オラクル)でインポートしたdmpデータの場所

    社内のあるdmpデータをオラクル10gにインポートするようにと指示があり、ネット検索で得た情報を元にコマンドからdmpデータを何とかインポートできましたが、オラクル上でそのデータを確認する方法がわかりません。 ●Oracle10gは3日前に下記サイトの「第1章 データベース構築の基礎編 」を参考にしてインストールしたものです。 http://otn.oracle.co.jp/easy/oracle10gr2/Windows.html ●今回インストールした際のユーザーは「sysman」です。 初歩的な質問で申し訳ございませんがどなたかどうぞ回答をお願いしますm(__)m。 因みに社内にOracle10gのマニュアル本はありません。