Oracleデータベースがあり、インスタンスの1つのデータファイル(ユーザーテーブルスペース)が破損し、別のデータファイル(アプリケーションデータを含む)が何らかの問題により削除されました。
データベースはARCHIVELOG
モードですが、両方のデータファイルのバックアップも、関連するアーカイブログもありません。したがって、データファイルの回復を進めることはできないと思います。データファイルが利用できないため、データベースを開くことができません。
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
データベースをSTARTUP MOUNT
できる
データベースインスタンスをSTARTUP MOUNT
した後、両方のテーブルスペースをオフラインにすることで、どういうわけかデータベースを開くことができるかどうかを尋ねたかったのです。または、データベースを起動する方法が他にある場合。
電源の問題があり、サーバーが突然シャットダウンしました。データベースを再起動しようとしたところ、ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
に直面していることがわかりました。さらに分析したところ、前述のようにデータファイルのうち2つが破損し、もう1つが削除されたため、問題が生じていることがわかりました。今のところ、データベースを再起動しようとすると、ユーザーのテーブルスペースに属する1つのデータファイルがリカバリを必要としています。テーブルスペースをオフラインにしてインスタンスを開始できるかどうかを確認したいと思いました。
私は試した:
SQL> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/flowsystems/oradata02/flsta02/system01.dbf'
アーカイブログはありません。
あなたが試すことができるのは、あなたのデータベースがマウントされた土地にある間、次のとおりです
alter tablespace USERS offline;
失われたアプリケーションテーブルスペースについても同様です。
recover datafile 1;
alter database open;
バックアップがなく、失われたデータファイルを復元する方法がない場合は、他の重要なデータファイル/テーブルスペースをバックアップして、データベースを再作成します。私はそれが完全に機能するデータベースを取得するためのそれほど苦痛のない方法になると思います。
ORA-01589:データベースを開くには、RESETLOGSまたはNORESETLOGSオプションを使用する必要があります
まず、データベースのopen_modeを確認します。
select open_mode from v$database;
データベースがマウントされている場合は、リカバリが不良であるため、open resetlogsを開く必要があります。
alter database open resetlogs;
次に、データベースを開きます。
alter database open;
recover database;
の前にalter database open resetlogs;
を実行する必要がある場合があります
メモリが不足していたため、リカバリは不完全でした。さらにファイルを追加して、最初にデータベースを回復する必要があります。 ORA-01194:ファイル1には一貫性を保つためにより多くのリカバリが必要 Neeraj Gupta(以下に再現)による方法2を試してください:
SQL> shutdown immediate ORA-01109: database not open Database dismounted. Oracle instance shut down. SQL> startup mount Oracle instance started. Total System Global Area 530288640 bytes Fixed Size 2131120 bytes Variable Size 310381392 bytes Database Buffers 209715200 bytes Redo Buffers 8060928 bytes Database mounted. SQL> ALTER SYSTEM SET "_allow_resetlogs_corruption"= TRUE SCOPE = SPFILE; SQL> ALTER SYSTEM SET undo_management=MANUAL SCOPE = SPFILE; SQL> shutdown immediate ORA-01109: database not open Database dismounted. Oracle instance shut down. SQL> startup mount Oracle instance started. Total System Global Area 530288640 bytes Fixed Size 2131120 bytes Variable Size 310381392 bytes Database Buffers 209715200 bytes Redo Buffers 8060928 bytes Database mounted. SQL> alter database open resetlogs; Database altered. SQL> CREATE UNDO TABLESPACE undo1 datafile '<ora_data_path>undo1_1.dbf' size 200m autoextend on maxsize unlimited; Tablespace created. SQL> ALTER SYSTEM SET undo_tablespace = undo1 SCOPE=spfile; System altered. SQL> alter system set undo_management=auto scope=spfile; System altered. SQL> shutdown immediate SQL> startup