プロの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でデータをインポートする。