• ベストアンサー
  • すぐに回答を!

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

ご覧頂きありがとうございます。 サーバーの移行がうまくいかず困っているのでご質問させていただきます。 やりたいことは、本サーバーにある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検索などで調べているのですが、原因解明できず途方にくれています。 どなたかご助言頂けないでしょうか? 宜しくお願いします。

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

  • 回答数2
  • 閲覧数6687
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.2
  • 3rd_001
  • ベストアンサー率66% (115/174)

Partitioningオプションはエンタープライズエディションに、更に オプションとして購入しないと使用できないものです。 OracleXEでは使用できませんし、有効にできる方法はないです。 方法としては以下が考えられます。 (1) 開発環境を本番と同一バージョンにする。 (2) 該当するパーティションテーブルを手動で通常のテーブルに作り直す。 パーティションを操作するSQLはすべてエラーになりますし実行計画も異なるため厳密な検証はできません。あまりお勧めできません。 開発と本番は環境を同一にするのがベストなのですが……。

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

質問者からのお礼

ご返事遅くなりました。 親切にお答え頂きありがとうございます。 やはりOracleXEではパーティションは使えないですか。 自分としても、開発環境と本番環境は完全に同一にしたいのですが(むしろそうしなければ開発環境とはいえないですよね) 自分の力ではどうすることもできず・・ とりあえず今回は手作業で一つづつテーブルを作成していくことにしました。 今回は親切にお答え頂きありがとうございました。

関連するQ&A

  • SYSTEM表領域にインポートされてしまう

    TASC_DATA表領域にインポートしたいのだが、 CREATE USER で 間違ってますか? CREATE USER TASC_USER IDENTIFIED BY TASC_USER DEFAULT TABLESPACE TASC_DATA TEMPORARY TABLESPACE TASC_TEMP PROFILE DEFAULT / GRANT CONNECT TO TASC_USER / GRANT RESOURCE TO TASC_USER / GRANT CREATE ROLE TO TASC_USER / GRANT EXECUTE ANY PROCEDURE TO TASC_USER / GRANT UNLIMITED TABLESPACE TO TASC_USER /

  • Oracleのエクスポート、インポートについて困っています・・・

    Oracleのエクスポート、インポートについて詳しい方にお伺いしたいのですが。 質問の内容と、スペックですが、 エクスポートの対象にしているOSがlinuxで、DBがOracleです。このサーバーは私のローカル内にありません。 インポートしたいデモ環境(OSがlinuxで、DBがOracle)が、私のローカル内にあります。二つとも別場所です。 お分かりのとおり、この対象OSのOracle内のデータとデモ環境(OSがlinuxで、DBがOracle)のOracle内のデータを 同じようにしようとしております。 私のOSはwindowsXPで、Oracleはインストールしておりません。 これが痛くてフリーソフトをあれこれ使おうとすると、SQL*Net(有料?あまりよくわからない)が必要なことを知ってより困っています。 この私の環境(OSはwindowsXPで、Oracleはインストールしていない)で 別場所のOracleからエクスポートし、自分のローカル内にあるデモ環境(OSがlinuxで、DBがOracle)のOracleに インポートできるフリーソフトってあるのでしょうか。 別場所であろうが、自分のローカル内だけであろうが、 エクスポートだけしかできないフリーソフトでもほしいです。 ないとは思いますが(結構、調べたので)、もし、ご存知のかたがいれば教えていただけないですか。 あと、実際、上記のような質問をしていますが、やはり、この件に関しては、 コマンドプロンプトを開いてimp/expをするのがよいのでしょうか。 できるだけ、シンプルな方法をつかみたい次第です。 もし、コマンドからの操作しかないのでしたら、 imp/expにおいて気をつけなければいけないこと等はあるのでしょうか。 expはDBに危険がないような気がするのですが、impはなにかと気をつけないといけなさそうな気がしますが・・・。 初心者すぎる質問で見苦しく恐縮です。 OracleのSQL文もよく知らないもので。 できれば詳しい方、よろしくお願いします。

  • 表領域の作成について

    表領域を作成してインポートしたら下記のエラーが出力されて困っています。 表領域の作成の仕方が駄目でエラーが出力されてしまったのでしょうか。 下記のCREATE TABLESPACE文で表領域を作成しています。 ---------------------------------------------------------------------- CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192 DATAFILE 'D:\oracle\oradata\ora92\DAT_01.DBF' SIZE 32767M, 'D:\oracle\oradata\ora92\DAT_02.DBF' SIZE 32767M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO; ---------------------------------------------------------------------- コマンドプロンプトでimpコマンドを実行したら、下記のエラーなどが出力されました。 ---------------------------------------------------------------------- IMP-00003: Oracleエラー1659が発生しました。 ORA-01659: nを超えるMINEXTENTSを表領域T_DATに割当てできません。 IMP-00003: Oracleエラー1658が発生しました。 ORA-01658: 表領域T_DATにセグメント用のINITIALエクステントを作成できません。 ---------------------------------------------------------------------- 何がいけないのかが正直わかりません。 申し訳ありませんがアドバイスいただけませんでしょうか。 宜しくお願いします。

その他の回答 (1)

  • 回答No.1
  • 3rd_001
  • ベストアンサー率66% (115/174)

>IMP-00003: Oracleエラー439が発生しました。 >ORA-00439: 機能は有効ではありません: Partitioning 単にエラーコードだけ見ると「Partitioning」オプションが 有効ではないというエラーです。 パーティション絡みのところでエラーが出ているようです。 移行元DBと移行先DBのバージョン、オプションを確認しましょう。 systemユーザーからv$versionとv$optionを確認。 多分、移行先のDBが「Standard Edition」だと思います。 本当にテーブルが全てインポートできているのでしょうか? パーティションテーブルはインポートできていないような気がします。 user_tablesやuser_objectsなどで差がないか確認してください。 テーブルが存在しないため、関連するトリガー等がエラーになっている可能性はあります。

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

質問者からのお礼

ご回答ありがとうございます。 v$optionを確認してみたところ、移行先のpartitioning項目がfalseになっていました。 テーブルも確認してみたところパーティションテーブルのインポートはできていないようです。 DBのバージョンですが、以下のようになっております。 移行元DB Enterprise Edition 10.1.0.2.0 移行先DB Express Edition 10.2.0.1.0 移行先DBのパーティションを有効にしたいのですが、マニュアルには「パーティション機能はサポートされていません」となっています。 ですが、文字コードについてもJA16SJISはサポートされていませんがDBを再構築することによって可能にできました。 再質問になってしまうのですが、OracleXEにおいてパーティション機能を有効にすることはできるのでしょうか? ご面倒かとは思いますが、ご回答頂ければと思います。 宜しくお願いします。

関連するQ&A

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。

  • インポート時のエラーについて

    新サーバーのOracleにTABLESPACEを作成したのですが、旧サーバーで保管したデータをインポートしようとすると一部件数の多いテーブルでエラーが発生します。内容は IMP-00003:Oracleエラー:1562が発生しました。 ORA-01562:ロールバックセグメント番号:2を拡張できません。 ORA-01628:最大エクステント:121に達しました(ロールバックセグメント:RB1)。 IMP-00028:前の表の部分インポートがロールバックされました(XXXXX行)。 データ用TABLESPACEはサイズ5GBで DEFAULT STORAGE(INITIAL 1024K NEXT 1024K MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50) TEMP用とROLLBACK用TABLESPACEはそれぞれサイズ500MBで DEFAULT STORAGE(INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS 512 PCTINCREASE 50) ロールバックセグメントは3つ作成し、それぞれ initial 3M next 3M optimal 50 M  で作成しました。 Oracleは7.3です。設定の間違いや、対策はないでしょうか?

  • Oracleインポート

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

  • dmpファイルのインポート時にでるOracleエラー

    dmpファイルのインポート時に下記のようなOracleエラーがでて困っています。 IMP-00003: Oracleエラー2304が発生しました。 ORA-02304: オブジェクト識別子リテラルが無効です。 IMP-00017: 次の文は、Oracleエラー2304で失敗しました: エラー内容を調べましたが、具体的に何が原因で何をすれば対処できるのかわかりません。 Oracleのインストールで設定を間違えてしまったのか…とも思っているのですが、ご存知のかたがおられましたら教えてください。

  • 8iで保存したDMPデータの10gでのインポートについて

    8iで保存したDMPデータの10gでのインポートについて 8iで保存したDMPデータの10gでのインポートについて 仕様上はOKのはずなのですが うまく動作できません。 (下記のメッセージとなります) 保存の時かインポートの時に何かオプションがいりますでしょうか。 ===================== 接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options インポート・ファイル: EXPDAT.DMP > C:\EXPDAT.DMP 挿入バッファ・サイズを入力してください(最小値8192)。30720> エクスポート・ファイルはEXPORT:V08.01.07によって従来型パス経由で作成されました IMP-00013: DBAのみ別のDBAがエクスポートしたファイルをインポートできます。 IMP-00000: エラーが発生したためインポートを終了します。

  • 11gデータから10gへのインポートについて

    あるシステムのDB管理を行うにあたり、 Oracleを使用しているのですが、 Oracleのバージョンの違いにより、 DMPファイルのインポートが行えない事はございますでしょうか? 詳細は以下です。 ローカル環境のシステム Oracle 10g / 10.2.0.1.0 社内環境のシステム Oracle 11g / 11.2.0.1.0 社内環境システムよりバックアップを行い出力されたDMPファイルを ローカル環境へインポートを試みたところ、 以下のエラーが発生し、インポートができません。 *************************************************************************** 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 *************************************************************************** 解決方法をご存知の方がおられましたら ご教示いただけると有難いです。 以上、宜しくお願い致します。

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

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

  • インポートについて

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

  • oracle DMPファイルのインポートについて

    あるシステムのDB管理を行うにあたり、 Oracleを使用しているのですが、 Oracleのバージョンの違いにより、 DMPファイルのインポートが行えない事はございますでしょうか? 詳細は以下です。 ローカル環境のシステム Oracle 10g / 10.2.0.1.0 社内環境のシステム Oracle 11g / 11.2.0.1.0 社内環境システムよりバックアップを行い出力されたDMPファイルを ローカル環境へインポートを試みたところ、 以下のエラーが発生し、インポートができません。 ********************************************************** IMP-00058: Oracleエラー12154が発生しました。 ORA-12154: TNS: 指定された接続識別子を解決できませんでした IMP-00000: エラーが発生したためインポートを終了します。 ********************************************************** システムの構成はローカル環境、システム環境ともに同様です。 差異があるのはOracleのバージョンとなります。 基本的なご質問かもしれませんが ご教示頂けると大変助かります。 宜しくお願い申し上げます。

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

    はじめまして。 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を元に戻したいのです。 ご存知の方ご教示頂けないでしょうか。宜しくお願いします。