- 締切済み
異なるサーバーにファイルをエクスポートしたい
こんにちわ 現在Aというサーバーにおいて、とあるテーブル(他のテーブルとのリンク等無し)がサーバーの容量を圧迫するぐらいに肥大してしまったので、このテーブルのデータを一度別のサーバBにエクスポートしてバックアップをとり、このテーブルにTruncateをかけてインデックスを再構築し、データを戻すということを考えています。 しかし、別のサーバーにデータをエクスポートする方法がわかりません。実の事を言えばexpコマンド自体、あまり分かっていません exp ユーザー/パスワード file=エクスポートファイル名、パス table=DB名.テーブル名 という所までは分かっているのですが、この後、どのようなオプションや記述をすれば良いのかが分かりません。 すみませんが、どのようにすれば別のサーバーにファイルをエクスポートできるのでしょうか? 尚、一度サーバーAにおいてFTPでBに移すという方法は、既にサーバーの残り容量が少ない為、不可能な状態です。 OSはSolaris、Oracleのバージョンは9iです。 お手数をおかけしますが、宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
・サーバBにオラクルクライアントをインストールして、サーバB上でEXPを動かしサーバAのデータを抜き出す。 ・サーバBをNFSなどでアクセスできるようにした上で、サーバA上でEXPを動かし、 出力先(FILE=)をネットワーク上のファイルとする。 のいずれかになると思います。
- ishi7474
- ベストアンサー率32% (71/216)
サーバーBに何がインストールされているかで、話が違ってきます。 (1) Oracle9iサーバーが稼動している場合 データベースリンクを使用すれば、expでなく「INSERT INTO (データベースリンクを利用したB上のテーブル) SELECT xxx FROM (A上のテーブル)」でデータを移せます(もっと効率のよい方法も あるとは思いますが、すぐには思いつきません) (2) Oracle9iクライアントがインストールされている場合 サーバーAでなくサーバーBでexpを起動してサーバーA上のDBに 接続する形にすれば、ダンプファイルはサーバーB上にできます (3) (1)/(2)どちらでもない、ただのSolarisマシンの場合 サーバーBの空きがあるファイルシステムを、サーバーAからNFS マウントした後にexpを起動する
補足
う~ん、今一番現実的な方法は(3)ですね。 ただ、システム管理者を説得して(2)の方法も試みたいと思うのですが、その場合どのようにexpコマンドを使えば良いか、もう少し細かく書いていただけると助かります。 宜しくお願いします。
補足
なるほど、サーバBの方にもクライアントが必要になるのですね。 今のところ、後者の方法が現実的なのですが、引き続き前者の方法についても管理者を説得して試みようとしているところです。 宜しくお願いします。