web-dev-qa-db-ja.com

以前のインストールからコピーされたデータベースファイルからデータベースをマウントする

最近、Oracle 11g Expressデータベースがクラッシュしました。

.dbfファイルをC:\oraclexe\app\Oracle\oradata\XEから別のフォルダにコピーし、Oracle 11g Expressを再インストールしました。

ファイルは次のとおりです。

  1. Control.dbf
  2. sysaux.dbf
  3. system.dbf
  4. TEMP.DBF
  5. UNDOTBS1.DBF
  6. USERS.DBF

データベースを回復できるように、古いデータベースファイルを再マウントしたいと思います。

どうすればこれを行うことができますか?

2
Prathamesh

データベースデータファイルとオンライン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ログファイル名が指定されていない場合、およびデータベースが正常にシャットダウンされなかった場合、データファイルと制御ファイルは一貫性のない状態にあり、データベースを開く唯一の方法は以前のバックアップから復元して回復します。

4