ORACLEデータベース によくあるエラ の解決策
プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:[email protected]
1)データベースが閉めたときにデータベースをバックアップする
後のオペレーションを実行する前に、バックアップがなければ、ほかのオペレーションによって、データベースをなくすかもしれない。
2)データファイルの時点が異なるであれば、bootstrapの誤りを減らすかもしれないから、もっとも古いデータファイルの時点と一番近いシステムテーブルスペースデータファイルを使ったほうがいい。これで、データベースを起動するときに。
3)*init<sid>.oraファイルを編集してundo_managementを変更し、二つのバラメタを追加する:
- undo_management=autoをundo_management=manualに変える
- undo_tablespace とundo_retentionを移動/削除する。
- allow_resetlogs_corrution=true,_corrupted_rollback_segments=を増やす(コンマで組み合った自動undoリスト)
例えば:
_corrupted_rollback_segments=(SYSSMU1$,SYSMU2$, SYSMU3$, SYSMU4$, SYSMU5$, SYSMU6$, SYSMU7$ SYSMU8$, SYSMU9$, SYSMU10$)
注意:alert.logを見れば、どんな自動undo、セグメントが使われたかすぐ分かれる。SYSSで検索して、alter.logになければ、11gの前に、undoセグメント名と前の例と違っている、フォーマットは_SYSMU_$、例えば:
_SYSSMU1_3423929671$
_SYSSMU2_3471197032$
_SYSSMU3_1940572779$
_SYSSMU4_703930491$
_SYSSMU5_2293911943$
_SYSSMU6_2782670761$
_SYSSMU7_3176421677$
_SYSSMU8_1585569843$
_SYSSMU9_1242704454$
_SYSSMU10_777531512$
UNIXに以下のようなコマンドでundoセグメントの名を獲得できる:
strings system01.dbf|grep _SYSSMU | cut -d $ -f1 |sort -u
インポートを獲得したあと、文字列に$を追加してください
- 使用可能なバラメタファイルがあれば、pfileを作成してください:
create pfile from spfile;
Spfileを変更しないでください
4)SQL*PLUSで、startup mountが正確なバラメタファイルを使っていることをテストする。すべてのデータファイルもonlineあるいはsystem状態である
show parameter corrupt
show parameter undo
select name,file#,status from v$datafile where status not in(‘ONLINE’,’SYSTEM’,);
どんな行が返されても、以下のようなコマンドでオンラインさせる:
alter database datafile file# online;
オンラインするときに、状態をリカバリに変更したいファイルが現れたら、ステップ5を持続してください.
5)
仮に不完全リカバリを実行して、resetlogsでデータベースを起動する。
recover database until cancel;
あるいは
recover database usibg backup controlfile until cancel
実行アーカイブタイプcancelが現れたら、Enterキーを押してください
alter database open resetlogs;
6)データベースが起動して、テーブルを検索しようとすれば:
select sysdata from dual;
行が返されたら、ほかのテーブルを検索することで、エクスポートが成功出来たかを確認できる。
データベースが起動出来たら、すぐにエクスポートを実行してください。データベースをエクスポートしたら、生き残したところから再構造できる。これは、すべてのデータファイルを削除し、新たなデータベースを作成することと意味している。
この方法で起動すれば、再構造しなければ、Oracleに支持されない。どんな遅れエクスポートファイルあるいはシステムを使おうとしているファイルがあっても、取り返しできない損害をもたらす。
注意:init.oraステップ3で増やしたバラメタを確認する。否则你使用这个init
.oraが新たなデータベースを作成するときに予想外の損害があるかもしれない。
7)ステップ5、起動するときに、インスタンスがシャットダウンしたら、トレースファイルを検索してください。もしトレースファイルがあれば、その中にはORA-00600[2662]或ORA-00600[4000]があることを検索してください。これらのエラもalert.logに含んでいるかもしれない。
Leave a Reply