DROPOracleでリカバリを実行するためにはまずバックアップデータの適切な準備が必要です。バックアップデータが不十分だとリカバリができませんので。フラッシュバック機能でリカバリする手順リカバリ実行のためにバックアップの準備をするバックアップファイルの情報はRMANリポジトリに登録されています。リカバリを実行する時はRMANリポジトリの情報を見に行きます。そのため、まずはRMANリポジトリ登録情報がバックアップ可能なステータスになっているかを確認する必要があります。インスタンス名;ORACLE_SIDを指定します。sysbackup’”;SYSBACKUPで接続します。backupを実行します。バックアップステータスが表示されるので確認します。ここでステータス項目にAVAILABLEと表示されれば、リカバリの準備は整いますが、EXPIREDとUNAVAILABLEと表示されれば、リカバリ実行はできないため、対策が必要です。バックアップのステータスはAVALABLE、EXPIRED、UNAVAILABLEの3つがあります。バックアップが使用可能な状態。RMANリポジトリに登録されているバックアップがディスクもしくはテープに存在し、利用できることを意味している。RMANリポジトリにはバックアップ情報が登録されているが、ディスクやテープにはバックアップが存在していない。外部に保管されているテープやマウントされていないディスクにバックアップが存在している。バックアップは実行できないステータスがEXPIREDやUNAVAILABLEの場合はリカバリが実行できないため、正しいディレクトリにバックアップファイルを置いてください。置いただけではRMANリポジトリのステータスはそのままです。その後にクロスチェックコマンドを実行して、はじめてステータスがAVAILABLEに変わります。クロスチェックで物理的なバックアップの状態とRMANリポジトリに格納されているバックアップ情報が一致しているかをチェックします。BACKUPコマンドでそのチェックができます。BACKUP;物理的なバックアップの状態とRMANリポジトリに格納されているバックアップ情報が一致すれば、AVAILABLEに変わります。RMANにはCROSSCHECK意外にもバックアップファイルをメンテナンスするコマンドがいくつか用意されています。細かくは触れませんが、代表的なコマンドは以下です。BACKUP:EXPIRED(期限切れ)のバックアップをすべて削除します。OBSOLETE:不要なバックアップを削除します。高速リカバリ領域を指定しているなら、不要なバックアップは自動削除されるので、手動削除は必要ありません。(OSコマンドで取得したバックアップのカタログ化)CATAROG:RMANリポジトリに未登録なバックアップやOSコマンドによって取得されたバックアップはそのままだとRMANを用いたリカバリが実行できないため、CATALOGコマンドを実行し、RMANリポジトリに登録(カタログ化)する必要があります。リカバリの実行リカバリにはデータリカバリアドバイザを使うリカバリとフラッシュバック機能を使うリカバリがあります。データリカバリアドバイザを使うリカバリはOracle社が推奨しているリカバリ方法です。RMANのコマンド操作により簡単にリカバリができます。データリカバリアドバイザでリカバリする手順データリカバリアドバイザのリカバリ方法を順番に紹介します。インスタンス名;ORACLE_SIDを指定します。sysbackup’”;SYSDBAで接続します。FAILURE;発生しているすべての障害の説明が表示されるので、確認します。FAILURE;自動と手動の修復オプションを表示します。データリカバリアドバイザが最適なリカバリ方法を提案してくれます。(例えば、○○バックアップファイルをリストアして、リカバリします。FAILUREで表示された修復オプションの内容を実行します。バックアップは自動的にリストアされ、リカバリが実行されます。これでリカバリは完了です。FAILUREの実行、の4ステップです。フラッシュバック機能でリカバリする手順フラッシュバック機能でリカバリする方法もあります。フラッシュバック機能の中でフラッシュバック表とフラッシュバックドロップを紹介します。<1.フラッシュバック表のリカバリ>フラッシュバック表はバックアップをリストアせず、過去のある時点にさかのぼってデータをリカバリする機能です。バックアップデータを使用する代わりにUNDO表領域のデータを使用します。ユーザーは以下のシステム権限とオブジェクト権限が必要です。SELECT、INSERT、DELETE、ALTER1権限の確認まずはユーザー権限を確認してください。※オブジェクト権限2事前データ取得emp表が今回のフラッシュバック表の対象表だったとしましょう。事前データを取得します。(事前、事後でデータを比べるため)エクセルファイルに貼っとくといいですね。emp;3行移動の有効化これは個人的に理解できていないので深い説明ができませんが、対象の表に対して行移動を有効にするSQLのようです。emp表が今回のフラッシュバック表の対象表だったとしましょう。時刻を実行する戻したい時刻を指定して、リカバリを行います。HH24:MI:SS’);2018年2月18日の16時ちょうど時点のデータに戻しました。emp;2で実行したselect文を再実行し、表示データを比較します。比較することでフラッシュバックアップ表が成功したかどうかが分かります。<2.フラッシュバックドロップのリカバリ>フラッシュバックドロップは表の削除を無効にして、元に戻す機能です。TABLEはDDLなので、実行するだけでcommitせずとも処理が確定してしまいますが、フラッシュバックドロップを実行すればうっかり削除してしまった表も復活させることができます。TABLEを実行していたら復活させられません)削除してしまった表がemp表と仮定して手順を紹介します。RECYCLEBIN;削除した表がゴミ箱にあるかを確認します。ここになければ、元に戻せません。DROP;フラッシュバックドロップを実行します。emp;これでデータが取得できれば、OKです。SQL技術SQLバックアップフラッシュバックリカバリツイートシェアはてブLINEPocketfeedlyOUI、DBCA、EMexpress、SQLPlus、SQLDeveloperでOracleデータベースをコントロールするCREATEやら、UPDATEやら、SELECTやらの権限を付与するRECOMMENDこちらの記事も人気です。