データベースのリカバリは、Oracleデータベース管理の重要な部分です。この投稿では、RMANを使用してデータベースを回復する方法に関するシナリオを取り上げます
ケース1:データファイルの損失
ハードディスクのクラッシュが原因でデータファイルが失われ、データファイルを復元して問題を修正するというシナリオがよく発生します。
この投稿では、それを実行する方法を説明します
例を挙げて説明しましょう
データベースにテーブルemp_masterがあります
- 行を数える
SQL> SELECT COUNT(*) FROM emp_master; -- 100 rows
2)ファイルシステムからデータファイルを削除します
3)もう一度カウントしてみてください
SELECT COUNT(*) FROM emp_master; SELECT COUNT(*) FROM emp_master; SELECT COUNT(*) FROM emp_master * ERROR at line 1: ORA-01116: error in opening database file 50 ORA-01110: data file 50: '/oradata/TEST/test_tools1.dbf' ORA-27041: unable to open file
4)リカバリを行うには、データファイルをオフラインにしてから復元してリカバリし、再度オンラインにします
$ run { allocate channel t1 type 'SBT_TAPE' sql 'alter database datafile 50 offline'; restore datafile 50; recover datafile 50; sql 'alter database datafile 50 online'; } SQL> SELECT COUNT(*) FROM emp_master;
ケース2:表領域の喪失
ここでも、TOOLSテーブルスペース全体が失われた場合、RMANステートメントは異なります
run { allocate channel t1 type 'SBT_TAPE' sql 'alter tablespace TOOLS offline'; restore tablespace TOOLS; recover tablespace TOOLS; sql 'alter tablespace TOOLS online'; }
ケース3:制御ファイルとREDOログを除くすべてのデータファイルが失われる
run { startup mount allocate channel t1 type 'SBT_TAPE' restore database; recover database; sql 'alter database open'; }
関連記事
RMANリカバリカタログを作成し、データベースをカタログに登録する方法
RMANバックアップコマンド
RMANリストバックアップコマンド
Oracle Recovery Manager:RMANチートシート