1

Oracle データベースの REDO ログを再作成したいのですが、行き詰まったようです。

私が電話するとき

SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;

私は次のことを得る

 GROUP# ARC STATUS
---------- --- ----------------
     1 NO  CURRENT
     4 YES UNUSED
     3 YES UNUSED
     2 YES UNUSED

問題は、REDO ログ番号 1 を削除する必要があるのですが、#1 が現在の REDO ログであるため削除できません。ログを切り替えるにはどうすればよいですか?

も試しALTER SYSTEM SWITCH LOGFILE;ましたが、データベースが開いていないというエラーが表示されます。ORA-01109. データベースはマウントされているだけで (読み取り/書き込みモードではありません)、REDO ログが破損しているため開くことができません。また、データベース redolog1 を別の DB からマウントするためにも使用されました。#2、#3、および #4 は最新のものではないため、正常に再作成されました。

誰にもアイデアはありますか?どんな助けでも大歓迎です。

前もって感謝します!

4

1 に答える 1

3

このエラー (ORA-01109) は、クローズされたデータベースで操作を実行しようとしていることを示しています。したがって、おそらく、データベース インスタンスがオプションのみで起動されmount、データベースが閉じられたままになっている可能性があります。alter systemデータベースを開いてコマンドを再試行するだけです。

SQL> alter system switch logfile;
alter system switch logfile
*
ERROR at line 1:
ORA-01109: database not open 


SQL> alter database open;

Database altered.

SQL> alter system switch logfile;

System altered.

編集

このエラーが発生した場合

SQL>データベースオープンを変更します。alter database open * 1 行目のエラー:
ORA-00305: スレッド 1 のログ 1 が矛盾しています。
ORA-00312: オンライン ログ 1 スレッド 1: '/oradata/DB/PRBT/redo1B.log' ORA
-00305: スレッド 1 のログ 1 が矛盾しています。別のデータベースに属しています
ORA-00312: オンライン ログ 1 スレッド 1: '/oradata/DB/PRBT/redo1A.log'

データベースを開こうとすると、ログ ファイルのデータベース ID と制御ファイルのデータベース ID が一致しない可能性が非常に高くなります。簡単に言うと、別のデータベースからのログ ファイルです。データベースを稼働させるには、次のことを試すことができます。

  1. データベースをマウントする
  2. キャンセルするまでデータベースを回復する
  3. 次に、resetlogs オプションを使用してデータベースを開きます

例:

SQL> startup mount;
ORACLE instance started.
Database mounted.

SQL> recover database until cancel;
Media recovery complete.

SQL> alter database open resetlogs;

Database altered.
于 2013-09-17T12:41:27.510 に答える