• ベストアンサー
  • 困ってます

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ユーザーの移行にはどのしたらいいのでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1147
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

ユーザモードでインポートすれば、PUBLICな定義は当然インポートできません。 FULLモードでインポートするか、別途定義DDLを実行すればよいと思いますよ。 定義DDLがないのであれば、 IMP TBL/TBL FILE=E:\EXP_USER.DMP ROWS=N SHOW=Y で、エクスポートファイル中の定義内容が画面表示されるので、該当箇所を拾えば良いかと。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

はやいご回答ありがとうございます。 そもそもユーザー別にインポートしているのがいけないんですね。 フルインポートで、一度やってみます。

関連するQ&A

  • oracle ダンプファイルのサイズとインポート先の表領域の使用サイズ

    oracle ダンプファイルのサイズとインポート先の表領域の使用サイズの関係 あるダンプファイル(2.5GB)をオラクルDBへimportしたら、 そのDBの表領域が10GBほど使用されました。 2.5GBのものをimportしたのに、なぜここまで表領域を消費するのでしょうか? (これまでこのようなことはありませんでした。) 表領域の使用サイズをもっと少なくするにはどうすればよいのでしょうか? エクスポート時のコマンド exp aaaa/aaaa file=bbbb.dmp log=exp_cccc.log consistent=y インポート時のコマンド imp aaaa/aaaa file=bbbb.dmp log=imp_cccc.log エクスポート時に「compress=n」をつけたり、 インポート時に「ignore=y」をつけたりしたのですが、 とくに変化はありませんでした。

  • はじめまして

    はじめまして SQL初心者で先月始めたばかりなのですが "Oracle Enterprise manager" でユーザーを作り、同じDB内のユーザーのスキーマー内にある テーブルをエクスポート/インポートしたいのですがうまくいきません。 エラーとして ”このSQL文は無効です” ”この文字は無効です” ばかり出てきます。もしわかる方いらっしゃいましたらアドバイスよろしくお願いします。 私が打ったSQL文は以下のとおりです↓ 1,エクスポート ====================================== $exp mmmap/mmmap@mmmap file=c:\tableoutput.dmp lows=y tables=(T_FUKUSU_URIBA) ====================================== ユーザー:mmmap パスワード:mmmap ホスト文字列:mmmap ファイルを格納したい居場所:マイコンピューターのC¥ エクスポートしたいテーブル:T_FUKUSU_URIBA 2,インポート ====================================== $imp user01/user01234@mmmap file=c:\tableoutput.dmp log=imp.log fromuser=mmmap touser=user01 ====================================== インポートしたいユーザー:user01 パスワード:user0123 ホスト文字列:mmmap インポートしたいテーブル:T_FUKUSU_URIBA

  • 上位バージョンへのインポートに関して

    上位バージョンへのインポートに関して Oracle8 R8.0.5 から Oracle10g r 10.20.0.1.0 へ exp/imp したいと考えています。 そもそもOracle は、上バージョンへのインポートは可能かと思われますが、これだけバージョン が異なるものへのインポートは可能なのでしょうか??? コマンドは単純に、  Oracle 8 側は、   exp user/pass full=y file=c:\パス  Oracle 10g 側は、 imp user/pass@orcl full=y file=c:\パス としました。 実際にやってみたところ、うまくいかず。。。。 何か方法があれば教えて下さい。 よろしくお願いします。

  • Oracleインポート

    Oracle9iでエクスポートしたファイルをインポートしていますが、順序(Sequence)が元にもどりません。エクスポート前が10だとするとインポートしたときには、create sequenceを行った後の状態になっています。これをどうにか、インポート後は10にしたいのですがどうすればよろしいのでしょうか。エクスポート、インポートの権限としてDBAやEXP_FULL_DATABASE,IMP_FULL_DATABASEを与えています。

  • 順序のEXP/IMPについて

    Oracle9i 9.2.0 テーブルのデータも権限もなく、順序のみをEXPしてIMPしたいのですが、どのようにしたらよいでしょうか? //EXP C:\oracle\ora92\bin\EXP.EXE ユーザ/パス@サービス file='C:\DB移行作業 \SEQUENCE_EXP.DMP' ROWS=N INDEXES=N TRIGGERS=N //IMP C:\oracle\ora92\bin\imp.exe toshi/toshi@grjctc2 file='DB移行作業\SEQUENCE_EXP.DMP' FEEDBACK=100000 IGNORE=Y ROWS=N INDEXES=N CONSTRAINTS=N ANALYZE=N TABLES=(住所テーブル) 上記で一応うまく登録されたようですが、 よくわかりません。 どなたかアドバイスお願いします。

  • 新バージョンのDMPを旧バージョンのサーバにIMPしたい

    Windows2000サーバにOracle8iが入っています。そこでexpしたDMPファイルをwindowsNTサーバ、Oracle8にインポートしたいのです。 クライアントは、  ・windowsNT oracle8 client  ・windows2000 oracle8i client と両方あるので、どちらからか行いたいです。 windowsNT側で行うと、IMP-00069というエラーが・・。 2000側で行うとIMP-00003: Oracleエラー 2248が発生しました。と言われてしまいます。 新→旧にDMPを戻す方法を教えてください。 よろしくお願いします。

  • フルインポートで警告が発生します

    はじめまして。 OracleDBをfull=yでエクスポートして(壊れる前のものをエクスポートしています) 新しくDBを作成して full=yでインポートすると警告が多数発生します。 以下の通りにバッチファイルを作成して実行しています。 ※exp.bat d:\oracle\ora92\bin\exp.exe system/xxx@xxx FULL=Y STATISTICS=NONE file=e:\exp.dmp log=e:\exp.log ※imp.bat D:\oracle\ora92\bin\imp.exe system/xxx@xxx commit=y IGNORE=y full=y file=e:\exp.dmp log=e:\imp.log 上記を実行すると下記の警告が複数発生します。 IMP-00017: 次の文は、Oracleエラー1919で失敗しました: IMP-00003: Oracleエラー1919が発生しました。 ORA-01919: ロール'SYS'は存在しません ORA-06512: "SYS.DBMS_RMIN", 行56 IMP-00061: 警告: オブジェクト型"SYSTEM"."REPCAT$_OBJECT_NULL_VECTOR"は、別の識別子ですでに存在します IMP-00019: Oracleエラー1により、行のインポートは拒否されました IMP-00003: Oracleエラー1が発生しました。 ORA-00001: 一意制約(SYSTEM.HELP_TOPIC_SEQ)に反しています OracleDBが壊れてしまい、戻そうとしても警告が出るので 現在はシステムバックアップを戻して対処しています。 出来れば、フルインポートでOracleを元に戻したいのです。 ご存知の方ご教示頂けないでしょうか。宜しくお願いします。

  • Oracle8iのデータをOracle8へ移行する方法

    Oracle8iでエクスポートしたファイルをOracle8へインポートすると 「IMP-00010:有効なエクスポート・ファイルではありません。 ヘッダーは検証に失敗しました。」 と出て失敗してしまいます。 講習会のテキストを読んでみると、「この方法ではうまくできないこと のあります」とだけ書いてあり、どうすればうまく行くのかが わかりません。 元々下位バージョンへ移行するということで、「ムリなんじゃないかなぁ~」 と思ってやってみたらやっぱりダメでした。 何か良い方法はないのでしょうか・・?

  • サーバーの移行について(エクスポートとインポート)

    ご覧頂きありがとうございます。 サーバーの移行がうまくいかず困っているのでご質問させていただきます。 やりたいことは、本サーバーにあるOracleデータベースのデータをエクスポートして、開発環境にインポートさせようと思っています。 以下、行った作業です。 windowsのコマンドプロンプトから以下のコマンドを実行してエクスポート C:\>emp sadmin/password@sid file=C:\ora_data\empsid.dmp consistent=y owner=sadmin 開発環境にて、表領域の作成とユーザの作成、権限の付与を行う。 SQL>CREATE TABLESPACE HOGE datafile 'C:\temp\HOGE1.dbf' size 800M reuse logging online segment space management auto; SQL>CREATE TEMPORARY TABLESPACE HOGE_TEMP tempfile 'C:\temp\HOGE_TEMP1.dbf' size 800M extent management local uniform size 10M; SQL>CREATE USER sadmin IDENTIFIED BY hogehoge DEFAULT TABLESPACE HOGE TEMPORARY TABLESPACE HOGE_TEMP QUOTA UNLIMITED ON HOGE; SQL>GRANT DBA TO sadmin; GRANT IMP_FULL_DATABASE TO sadmin; 以下のコマンドを実行して、windowsのコマンドプロンプトからインポート。 C:\>imp sadmin/password@sid file=C:\ora_data\empsid.dmp log=C:\ora_data\impsid.log fromuser=sadmin touser=sadmin ignore=y 状況としましては、エクスポートは問題なく終了しています。(確信はありませんが(汗)) インポート実行時、トリガーの箇所だと思うのですが処理が止まってしまいインポートが完了しません。 画面上では、「制約を使用可能にします・・」と表示されて止まってしまいます。 ログには以下のようなエラーが出ています。 IMP-00003: Oracleエラー439が発生しました。 ORA-00439: 機能は有効ではありません: Partitioning IMP-00041: 警告: オブジェクト作成の際、コンパイル・エラーが発生しました。 DBを見てみると、データのインポートはできているようなのですが、トリガーのインポートができていないみたいです。 当方Oracleを触るのは初めてで、書籍やGoogle検索などで調べているのですが、原因解明できず途方にくれています。 どなたかご助言頂けないでしょうか? 宜しくお願いします。

  • インポートについて

    初歩的な質問ですみません・・・ ユーザモードでエクスポートした [ data.dmp ] があるのですが、このデータを、同じユーザが作成されている別のデータベースに、インポートしたいと思っています。その時、 [ data.dmp ] にある全テーブルのデータを(テーブルの作成と合わせて)インポートしたいのですが、 IMP USERID=****/**** FILE=user.dmp LOG=imp.log FULL=y IGNORE=y で大丈夫でしょうか? 「FULL」というパラメータが良く分かっていません。「全体をインポート」「全ファイルをインポート」という説明があったのですが、「全部」とは何を意味しているのか良く理解できていません。 よろしくお願いします。