7 x 24 在线支持!
Oracle DB 起動時に ORA-16068, ORA-312 が発生
ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
[起こりうる現象]
データベースのオープン時に ORA-16068、ORA-312 が発生してデータベースを
起動できません。
現象発生前に次の作業を実施しました。
データファイルをオフラインにしてオンラインに戻すためにリカバリを実行しま
したが、アーカイブ・REDOログ・ファイルを誤って削除していたため、リカバリ
処理をを途中でキャンセルしました。
[対象リリース]
問題が発生するリリース :Oracle9i Database Release2 (9.2.0)
問題を修正したリリース :Oracle Database 10g (10.1.0)
問題を修正予定のリリース:なし
問題を修正したPSR :9.2.0.5
問題を修正予定のPSR :なし
[対象プラットフォーム]
すべてのプラットフォーム
[起こりうる条件]
オフラインのデータファイルに対して、リカバリをキャンセルした場合です。
以下、再現ケースの例です。
1. 索引用表領域を作成し、データファイルをオフラインにします。
create tablespace INDX
datafile '/home2/ora920s/app/oracle/oradata/ty920s/indx01.dbf' size 1m;
alter database
datafile '/home2/ora920s/app/oracle/oradata/ty920s/indx01.dbf' offline;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;
2. リカバリの途中でキャンセルします。
SQL> recover datafile '/home2/ora920s/app/oracle/oradata/ty920s/indx01.dbf';
ORA-00279: change 51544 generated at 04/16/2003 18:54:47 needed for thread 1
ORA-00289: suggestion : /home2/ora920s/app/oracle/admin/ty920s/arch/1_53.arc
ORA-00280: change 51544 for thread 1 is in sequence #53
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel <-- リカバリをキャンセル
Media recovery cancelled.
3. データベースをシャットダウンしてスタートアップを実行します。
SQL> startup
ORACLE instance started.
Total System Global Area 202861800 bytes
Fixed Size 736488 bytes
Variable Size 167772160 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
Database mounted.
ORA-16068: redo log file activation identifier mismatch
ORA-00312: online log 1 thread 1:
'/home2/ora920s/app/oracle/oradata/ty920s/redo01.log'
[原因]
製品の不具合です。
Oracle内部で使用しているフラグの設定に問題があり、制御ファイルと
REDOログ・ファイルの情報に不整合が生じてORA-16068が発生します。
[回避策]
現象発生時にデータファイルを offline drop しても回避できません。
以下のいずれかの回避策を検討してください。
- アーカイブ・REDOログ・ファイルが存在する場合は、リカバリを完了
させてデータベースを起動します
- アーカイブ・REDOログ・ファイルが存在しない場合は、以下の手順で
制御ファイルを再作成して回避します
1. バックアップ制御ファイルを作成します
SQL> alter database backup controlfile to trace;
user_dump_dest 配下にトレースファイルが作成されます
2. バックアップ制御ファイルを編集します
% cp ty920s_ora_13645.trc ctl.sql <-- トレースファイル名は環境により異なります
ctl.sql
--------------------------------------------
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TY920S" NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
... < 省略 >
DATAFILE
'/home2/ora920s/app/oracle/oradata/ty920s/system01.dbf',
'/home2/ora920s/app/oracle/oradata/ty920s/undotbs01.dbf',
-- '/home2/ora920s/app/oracle/oradata/ty920s/indx01.dbf', <-- 問題となっているデータファイル
'/home2/ora920s/app/oracle/oradata/ty920s/tools01.dbf', をコメントアウト
'/home2/ora920s/app/oracle/oradata/ty920s/users01.dbf'
CHARACTER SET WE8ISO8859P1
;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP
ADD TEMPFILE '/home2/ora920s/app/oracle/oradata/ty920s/temp01.dbf' REUSE;
--------------------------------------------
3. データベースをシャットダウンし、ctl.sql を実行します
sqlplus /nolog
SQL> connect / as sysdba
SQL> @ctl.sql

沪公网安备 31010802001377号