0

私が働いている会社は、データベースを Oracle 10g から 11g に移行しています。月曜日に、開発データベースをクリーンアップし、本番データベースをそのストレージに複製します。

ああ、またか。私の 2 番目のタスクはもう少し複雑だと思います。開発データベースでは約 200 人のユーザーがおり、本番データベースでは 1500 人ほどのユーザーがいます。ここで、開発データベースからすべてのユーザーを返し、それらをエクスポートするスクリプトを作成します。その後、別のスクリプトで実稼働データベースのすべてのユーザーをオブジェクトなしで検索して削除しますが、システム スキーマまたはユーザー スキーマのユーザーは削除せず、開発データベースの古いユーザーをインポートします。これらすべてをスクリプトまたはクエリで行う方法はありますか?

よろしくお願いします、

Chris (IT 学生ですが、データベースの初心者)

4

1 に答える 1

0

ユーザーを開発から本番に移行するには、data pump import/exportを使用する必要があります。これを使用して、エクスポート/インポートするユーザーを指定できます。これにより、オブジェクト、権限なども取得されるため、すべてを確実に取得できます。

オブジェクトを持たないユーザーを削除するには、次を実行してスクリプトを生成します。

SELECT 'drop user ' || username || ';' 
FROM   dba_users u
where  not exists (select null 
                   from   dba_objects o 
                   where  o.owner = u.username);

次に、この出力を確認して、予想されるユーザーのみが削除されていることを確認し、そのスクリプトを実行します。

于 2013-02-01T08:58:27.643 に答える