web-dev-qa-db-ja.com

Oracleデータベースを起動できません

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'

アーカイブログはありません。

2
user1

あなたが試すことができるのは、あなたのデータベースがマウントされた土地にある間、次のとおりです

alter tablespace USERS offline;

失われたアプリケーションテーブルスペースについても同様です。

recover datafile 1;
alter database open;

バックアップがなく、失われたデータファイルを復元する方法がない場合は、他の重要なデータファイル/テーブルスペースをバックアップして、データベースを再作成します。私はそれが完全に機能するデータベースを取得するためのそれほど苦痛のない方法になると思います。

2
Silvarion

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
1
Lalit Kumar B