咨询微信: dbservice1234 7 x 24 在线支持!

    你在这里

Oracle DBの移行(コピー)により作成したDBのオープン時にORA-1194が発生

Oracle DBの移行(コピー)により作成したDBのオープン時にORA-1194が発生

[質問]
データベースの移行(コピー)を行うため、既存のデータベースのデータファイルをコピー
し、制御ファイルを再作成するスクリプトを実行したところ、データベースのオープン
時に以下のようなエラーが発生しました。

  ALTER DATABASE OPEN RESETLOGS
  *
  ORA-01194: file 1 needs more recovery to be consistent
  ORA-01110: data file 1: '/oracle/clonedata/system01.dbf'
  ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/clonedata/temp01.dbf' 
  REUSE
  *
  ORA-01109: database not open

[回答]
コピー元のデータファイルが、以前オープンされてから正しくクローズされていないも
のであるために、エラーが発生しています。
データファイルのコピーを行う前に、コピー元のデータベースはshutdown normalで終了
してください。
コピー元のデータファイルが、正しくクローズされたものであったかを確認するには、
コピーにより作成されたデータベースをmount状態まで起動し、以下のSQL文を実行して
ください。

  select file#,status,format,recover,fuzzy,checkpoint_change# 
    from v$datafile_header;

データベースは、V$DATAFILE_HEADERのFUZZY列がすべてNOとなり、かつCHECKPOINT_CHANGE#
列の値が全て一致している場合にオープンが可能となります。
以下のような場合、データベースはオープンできません。

SQL> select file#,status,format,recover,fuzzy,checkpoint_change#
    from v$datafile_header;

FILE#      STATUS  FORMAT     REC FUZ CHECKPOINT
---------- ------- ---------- --- --- ----------
         1 ONLINE           8          122422786
         2 ONLINE           8          122422786
         3 ONLINE           8          122422786
         4 ONLINE           8          122422786
         5 ONLINE           8          122422786
         6 ONLINE           8          122422786
         7 ONLINE           8          122422786
         8 ONLINE           8          122422786
         9 ONLINE           8          122422786
         :

以下のような場合はオープンが可能です。

SQL> select file#,status,format,recover,fuzzy,checkpoint_change#
 from v$datafile_header;

     FILE# STATUS      FORMAT REC FUZ CHECKPOINT_CHANGE#
---------- ------- ---------- --- --- ------------------
         1 ONLINE           8 NO  NO          6.4446E+12
         2 ONLINE           8 NO  NO          6.4446E+12
         3 ONLINE           8 NO  NO          6.4446E+12
         4 ONLINE           8 NO  NO          6.4446E+12
         5 ONLINE           8 NO  NO          6.4446E+12
         6 ONLINE           8 NO  NO          6.4446E+12
         7 ONLINE           8 NO  NO          6.4446E+12
         :