- - PR -
Oracle ユーザーコピーについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-06 13:44
お世話になります。
環境はOracleです。 既存ユーザーと全く同じ情報(テーブル情報や、表領域、権限等々・・)を、 ユーザー名を変えてもう一つ作りたいと考えています。 これら処理を一つのバッチファイルにしたのですが…。 良い方法があれば教えて頂けないでしょうか? @表領域作成 Aユーザー作成 Bユーザー情報コピー ↑ ここでつまってます。 エクスポートとしてインポートすると表領域が上書されなかったり、 スクリプトをはこうとしたんですが、それをバッチにできなかったりと・・。 お願いします | ||||
|
投稿日時: 2006-03-06 16:13
表領域は毎回作り直す必要はないと思いますので、以下の手順で行うのが宜しいかと思います。
1.ユーザーの再作成 SQLPLUS SYSTEMにて接続 Drop User ユーザーB Create User ユーザーB Exit でSQLPLUS終了 3.EXPツール ユーザーAだけをExportする 4.IMPツール FROMUSERをユーザーA、 TOUSERをユーザーBでImportする 以上でいけると思います | ||||
|
投稿日時: 2006-03-06 16:49
レスありがとうございます。
教えて頂いた手順はユーザーA,Bが同じ表領域を使う場合かと思います。 やはり表領域をユーザーで分けるのは難しいのでしょうか? よろしかったら教えてください。 | ||||
|
投稿日時: 2006-03-06 17:13
同様の経験があります。
記憶が定かであれば、ですが・・・ user-A にて exp の時 tbs01 user-B にて imp の時 tbs02 へimport したい という場合、 user-B において、tbs01 の quota を 0に設定、 また tbs02 をデフォルト表領域とし、quota を unlimited か何かに設定します。 あとは、既出の通り、fromuser, touser を指定します。 _________________ takepon てんてこダンス | ||||
|
投稿日時: 2006-03-06 17:23
imp 実行時に内部的に実行する create table 文って TABLESPACE 句が 付いてますよ。 予め空の表を作って(TABLESPACE 句に表領域名を指定するか、デフォルト表領域を 変更して)、imp 実行時に ignore=y を指定すれば可能かと。 _________________ もしもし@RMAN 友の会 | ||||
|
投稿日時: 2006-03-06 18:19
さすがのご指摘です!確かに tablespace 指定が入っています。 ただ、空の表は作る必要が無かったように記憶しているのですが。。。 ちょっと古い情報で申し訳ないですが、 当時参考にしたURLを古いメイルより探し当てましたので、ご参考まで。 http://www.geocities.jp/principal_focuses/tech/ora/ora_tech/ora_tech_031.html ところでいま気づいたのですが、これって「Insider.NET 会議室」とは違いますよね。 いまさらですが、「Database Expert」の方が適切かと。。 _________________ takepon てんてこダンス | ||||
|
投稿日時: 2006-03-06 18:39
みなさんレスありがとうございます!!
かなり参考になりました。 なんとかなりそうです。 会議室違ったんですか・・ すいませんでした ありがとうございました |
1