2017-04-25 14 views
0

私はOracle Databaseを使用しているアプリケーションの自動テストを行っており、いくつかの手順の間にデータベースをリセット/再作成したいと考えています。テストのためにoracleデータベースをリセットする最速の方法

Oracleデータベースをリセットする最も簡単な方法はどれですか?

+1

が属しているとして、これを投票者に反対:あなたのテストを実行した後経由

、あなたはフラッシュバックすることができます。 DBA、SE上で自動化されたテスト・フィクスチャは、間違いなく開発者の協力ですn。 – APC

+0

テストの対象は何ですか?私たちはどのくらいのデータを話していますか?どのくらいの頻度で初期化しますか(「いくつかのステップの間」のタイムスケールは何ですか?) – APC

+0

大量のデータがあります。私は現在ERPシステムをテストしていますが、既に約150のテーブルがあります。私はすでにインメモリ(失敗)、データポンプ(expdpとimpdp)、ユーザーを落とし(カスケード)、すべてのスクリプトを再適用してデータを作成/生成し直しました。 –

答えて

3

データベース全体をにリセットしたかったので、おそらくフラッシュバックデータベースがあなたのためのツールです。フラッシュバック・データベースは、アーカイブ・ログ(アーカイブ・ログ・モードにする必要があります)とフラッシュバック・ログを使用して、データベースのすべてを元に戻し、特定の時点または名前付きリストア・ポイントにデータベースを戻します。

フラッシュバック・ログの設定では、ログ・ロケーションの保持時間(分)および最大サイズを構成することができます。

フラッシュバック・ログを格納するための設定高速リカバリ領域:フラッシュバック・データベース上の

alter system set db_recovery_file_dest='L:\Oracle\FRA' scope=both; 
alter system set db_recovery_file_dest_size=100G scope=both; 
alter system set db_flashback_retention_target = 1440 scope=both; --1 day 

入れます:

alter database flashback on; 

のSCNへのポインタ以外の何ものでもありません復元ポイントを作成します復元ポイントを取得したとき:

create restore point before_changes; 

復元者をいくつでも作成できますeはあなたが望むようにポイントし、ポインタであるため余分なスペースをとらない。つまり、db_flashback_retention_targetまたはdb_recovery_file_dest_sizeのいずれかのパラメータに達すると、リストア・ポイントはロールオフされます。

フラッシュバック保証リストアポイントを作成することにより、これらの復元ポイントのロールオフを防ぐことができます。ただし、いずれかのパラメータに達するとデータベースにアクセスできないため、フラッシュバック・データベースのリストア・ポイントを保証する必要があります(保証フラッシュバック・データベースのリストア・ポイントを削除するか、これらのパラメータの値を増やす必要があります)。あなたはフラッシュバック・データベースについて読むとOracle 11.2 docsからポイントを復元することができ

shutdown immediate; 
startup mount; 
flashback database to restore point before_changes; 
alter database open resetlogs; 

+0

ありがとう、これは私が必要と思うものです。私はこれを試し、もしうまくいくならあなたの答えを受け入れるでしょう。 –