2016-07-12 18 views
2

私はコンピュータ上でOracle 10を手に入れました。そこにデータベースセンターがあります。 BコンピュータにはOracle 11.2.0がインストールされており、データベースはありません。 コンピュータ上のデータベースの名前はcenttです。stt、wnn、tnnなどのユーザーもいます。 すべてのユーザーを含むコンピュータからデータベース全体をファイルにエクスポートしたいとします(allDBdump.datなど) 。 次に、このデータベース(ファイルallDBdump.dat)をBコンピュータにインポートします。 私は、コンピュータ上で以下のようにexportコマンドを使用していますOracle 10からデータベース全体をエクスポートし、すべてのユーザーとOracle 11.2.0にインポートするにはどうすればよいですか?

exp userid=sys/sys file='c:\allDBdump.dat' log='c:\allDBdump.log' FULL=Y 

今、私はすべてのユーザーとコンピュータにデータベース全体をインポートしたいと思います。 私は、インポートの前に "データベース設定アシスタント"によってコンピュータ上にデータベースを作成する必要があることを知っています。 は、それから私は、コマンドによって、SQLツール内のすべてのユーザーを作成する必要があります。

CREATE USER st IDENTIFIED BY st; 
GRANT ALL PRIVILEGES TO st WITH ADMIN OPTION; 
GRANT IMP_FULL_DATABASE TO st WITH ADMIN OPTION; 

は、その後、私は、インポート・データベースへのコマンドを使用します。

imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat fromuser=st touser=st 

このソリューションは良いですが、私は、インポートする前に、すべてのユーザーを知っている必要があります。 質問は、コンピュータ上のすべてのユーザーを作成せずにallDBdump.datをインポートする方法です。 次のようなもの:

imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat IMPORT_ENTIRE_DATABASE_WITH_ALL_USERS_ON_A_COMPUTER 

ありがとうございました。

+0

自分に好意を行い、代わりにEXP/IMPのあるexpdp/impdpは使用しています。 exp/impが新しいバージョンのOracle(コンテキストなど)で正しく処理できないことがいくつかあります。 –

答えて

0

Datapumpを試しましたか?はるかに良いです。のみ、それはあなたがサーバー(またはDB_LINKでそれらをリンクする)の両方にディレクトリを必要とするだろうということだ欠点

expdp system/[email protected] full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log 

impdp system/[email protected] full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB11G.log 
+0

私はこのようなものを試しました: expdp 'sys/sys @ dbaをsysdba' full = Y 'ディレクトリ= D:\ tmpFolder' dumpfile = dump.dmp logfile = dump.log そしてエラーが発生しました: LRM -00105: 'directory = D:\ tmpFolder'は論理値が完全ではありません – user2856064

+0

@ user2856064データベースディレクトリを指定する必要があります。 'select * from SYS.ALL_DIRECTORIES; 'を探してください。少なくとも、expdp/impdpのデフォルトディレクトリはDATA_PUMP_DIRであるべきです。 – vercelli

+0

@ user2856064どうしたのですか? – vercelli

関連する問題