最近、Oracle 11g Expressデータベースがクラッシュしました。
.dbf
ファイルをC:\oraclexe\app\Oracle\oradata\XE
から別のフォルダにコピーし、Oracle 11g Expressを再インストールしました。
ファイルは次のとおりです。
Control.dbf
sysaux.dbf
system.dbf
TEMP.DBF
UNDOTBS1.DBF
USERS.DBF
データベースを回復できるように、古いデータベースファイルを再マウントしたいと思います。
どうすればこれを行うことができますか?
データベースデータファイルとオンラインREDOログファイルに関する情報とそれらのパスは、制御ファイルに格納されます。制御ファイルのパスに関する情報は、初期化パラメーターファイル(pfile)またはサーバーパラメーターファイル(spfile)に格納されます。
したがって、データファイル、オンラインREDOログファイル、制御ファイルを移動した場合は、データベースをマウントして開く前に、適切なファイルのパスを更新して変更を反映する必要があります。
最初に、インスタンスを正常に起動した後、パラメータファイルを新しい情報で変更します。
SQL> startup nomount;
SQL> alter system set control_files = '/Oracle/data/control.dbf';
次に、データベースをマウントして、制御ファイルを読み書きできるようにします。
SQL> alter database mount;
データベースがマウントされたら、RENAME FILE
コマンドを使用して、新しいファイルをデータファイルとオンラインREDOログファイルに設定できます。
SQL> alter database rename file '/u01/data/sysaux.dbf'
to '/Oracle/data/sysaux.dbf';
SQL> alter database rename file '/u01/data/redo_1a.dbf'
to '/Oracle/data/redo_1a.dbf';
オンラインREDOが破損していて、リストにREDOログファイル名が指定されていない場合、およびデータベースが正常にシャットダウンされなかった場合、データファイルと制御ファイルは一貫性のない状態にあり、データベースを開く唯一の方法は以前のバックアップから復元して回復します。