- ベストアンサー
オラクルの環境をコピーして全く別の所に構築する方法
- オラクルの環境を別の場所に構築する方法について説明します。ビューやファンクション、シノニムなどの実体のない物をそのままコピーする方法や、特定の件数までテーブルをコピーする方法、機密情報があるカラムのマスキング方法についても説明します。
- オラクルの環境を別の場所に構築する方法について説明します。実体のない物(ビューやファンクション、シノニムなど)をそのままコピーする方法や、特定の件数までテーブルをコピーする方法、機密情報があるカラムのマスキング方法についても説明します。
- オラクルの環境を別の場所に構築する方法について説明します。実体のない物(ビューやファンクション、シノニムなど)をそのままコピーする方法や、特定の件数までテーブルをコピーする方法、機密情報があるカラムのマスキング方法についても詳しく説明します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 Create DDL については、dbms_metadata を使うと簡単に取得できます。 以下のようにすると、HOGEHOGE が所有者になっているView のCreate DDL を纏めて取得する事ができます。 後は、出力されたSQL をCopy&Paste すればOk です。 詳細は、PL/SQL Package Reference を参照して下さい。 sqlplus system/manager SQL> set pages 10000 SQL> set lines 200 SQL> set long 999999 SQL> set longchunk 999999 SQL> col sql_txt format a200 SQL> exec DBMS_METADATA.SET_FILTER(DBMS_METADATA.SESSION_TRANSFORM, SQLTERMINATOR, true); SQL> select DBMS_METADATA.GET_DDL('VIEW', view_name, owner) as sql_txt from dba_views where owner = 'HOGEHOGE'; 2 については、DB Link を作って、 Create table <Tab名> as select * from <Tab名>@dblink where rownum <= 1000 又は、Insert into <Tab名> select * from <Tab名>@dblink where rownum <= 1000 で最大1000件移行できます。 但し、LONG データ型を含んでいるテーブルについては、使用できません。 マスキングについては、Oracle Masking Pack なる製品がありますが、 有償だし、事前にマスキングパターンを登録しておくものなので お探しの者ではないと思います。 https://blogs.oracle.com/oracle4engineer/entry/post_57 データのカーディナリティ等を無視して、単純にランダムな数値/文字列 が欲しいだけであれば、dbms_random Package が使えます。 ダミーデータを大量に登録する場合は、私も良く使います。
その他の回答 (1)
- kokorone
- ベストアンサー率38% (417/1093)
私の勤務する会社で、協力会社に業務依頼する場合、DB環境も、相手先に贈るのですが、以下の方法で行っています。 1)本番用ユーザー全体をExportします。 2)テストユーザーAを作成し、Exportしたデータを、ユーザーAにインポートします。 3)データ件数を絞りたいテーブルは、不要なレコードを削除します。 4)ダミーデータに置換したい場合は、Update文にて個別にダミーデータに置き換えます。 5)加工が終わったユーザーAをExportします。 5)でExportしたデータを協力外医者に送付します。 ダミーデータに置き換えるべきフィールドが何か、テーブル定義書などで事前に入手できませんか? お客様での作業時間を減らすことができます。 テストユーザーAを作成することで、本番ユーザーに影響する時間の短縮になります。
補足
ご解答ありがとうございました。 シンプルな方法ですね。 置き換えるフィールドの事前入手は可能か分かっていません。
補足
ご解答ありがとうございました。 マスキングは難しそうですね。 イメージとしては、マスキングしながらエクスポートみたいな事が出来ればなと思います。