7 x 24 在线支持!
【Oracleデータリカバリ】ORA-00283エラ
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com
ストレージがアクセス出来ないから、データベースがシャットダウンした。データベースを再起動したが、まともに起動出来ない。
データベースがmountできるが、起動出来ない。ファイル3(sysaux01.dbf)がこわれたと気づき、メディアリカバリが必要になって、noarhivelogモードを設定して、データベースバックアップがなければリカバリ出来ない。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01172: recovery of thread 1 stuck at block 131977 of file 3
ORA-01151: use media recovery to recover block, restore backup if needed
SQL> recover datafile 3 ;
ORA-00283: recovery session canceled due to errors
ORA-12801: error signaled in parallel query server P003
ORA-10562: Error occurred while applying redo to data block (file# 3, block#
37292)
ORA-10564: tablespace SYSAUX
ORA-01110: data file 3: ‘/opt/ora
[oracle@mlab2 ~]$ oerr ora 283
00283, 00000, “recovery session canceled due to errors”
// *Cause: An error during recovery was determined to be fatal enough to end
// the current recovery session.
// *Action: More specific messages will accompany this message. Refer to
// the other messages for the appropriate action.
allow 1 corruptionでこわれたブロックを無視してみたが、一部のブロックがスキップ出来ない。
SQL> recover database allow 1 corruption;
ORA-00283: recovery session canceled due to errors
ORA-10562: Error occurred while applying redo to data block (file# 3, block#
37292)
ORA-10564: tablespace SYSAUX
ORA-01110: data file 3: ‘/opt/oracle/oradata/monitor/sysaux01.dbf’
ORA-10560: block type ‘0’
ORA-00600: internal error code, arguments: [4553], [2], [0], [], [], [], [], []
DBVツールでテストして、sysauxテーブルスペースに損害があれば、systemとほかのテーブルが正常に運用している。
sysaux01.dbfデータファイルでofflineする。まずはデータベースを起動して、データをロジックバックアップして、データベースを再構造して、ロジックバックアップでデータをリカバリする。
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01172: recovery of thread 1 stuck at block 131977 of file 3
ORA-01151: use media recovery to recover block, restore backup if needed
SQL> alter database datafile 3 offline drop;
Database altered.
SQL> alter database open;
Database altered.
データベースが起動した。
SYSAUXテーブルスペースがないので、EXPでエクスポートエクスポートしてもリポジトリごとにエクスポート出来ない。ユーザーによって、エクスポートも出来ない。故に、SYSAUXテーブルスペースに対して再構造して、EXPでデータをエクスポートできる。
Monitor1データベースを構造して、バックアップデータをインポートする。そして、Service_namesバラメタをmonitorに修正して、元のデータベースmonitorを閉める。
1:インスタンス名前ORACLE_SID=monitor1
2:該当するディレクトリを作成する /data2/monitor,adump,bdump,cdump,udump
3:コードファイルを作成する:
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapwmonitor1 password=monitor1
4: バラメタファイルを修正する
5.今の任務インスタンスをセットする:
export ORACLE_SID=monitor1
6.Oracleに登録する:
sqlplus ‘/ as sysdba’
7.インスタンスを起動する:
SQL>startup nomount
8.スクリプトでデータベース、テーブルスペース、ユーザーなどを作成する。
9.IMPでデータをインポートする。