咨询微信: dbservice1234 7 x 24 在线支持!

OracleのORA-1110 エラの診断方法と解決策

OracleのORA-1110 エラの診断方法と解決策

 

ORACLEデータベース によくあるエラ の解決策

プロのOracle Databaseの復旧サービスを提供
携帯番号: +86 13764045638 メール:service@parnassusdata.com

 

 

 

適用範囲

Oracleデータベース –エンタプライズバーション – 9.0.1.0 11.2.0.3版本 [Release 9.0.1 to 11.2]
このファイルがどのプラットフォームにも適用できる

目标

これはデータベース管理員がORA-01110に会った場合に、正確な報告を指摘する文である。

もしDBAが該当する説明を読み取れないから、トラブルを解決出来ない。次はあるスクリプトを提供して、診断情報を収集する。

解決策

定義:

Error: ORA-01110
Text: datafile <name>: <str>
——————————————————————————-
Cause : This message reports the filename involved with other messages.
Action: See the associated messages for a description of the problem.

ORA-01110はどこの物理ファイルにトラブルがあるか示してくれる。

そのORA-01110はいくつの情報が付き添いている。これらの情報はオペレーションシステムに関連する。

一つ目の目標は一連のトラブルを解決する前に会ったすべてのエラ情報を解決する。

次はORA-01110のエラリスト。

ORA-01157    “cannot identify datafile <name> – file not found”
ORA-01578    “ORACLE data block corrupted (file # %s, block # %s)”
ORA-00376    “file <name> cannot be read at this time”
ORA-01194    “file <name> needs more recovery to be consistent”
ORA-01547    “warning: RECOVER succeeded but OPEN RESETLOGS would get error”
ORA-01135    “file %s accessed for DML/query is offline”

§  Addressing an ORA-01157 (cannot identify datafile <name> – file not found)

-トラブルがあったファイルはオペレーションシステムレベルにあるか?

有効だと確認できれば、ファイルの権限と状態をテストして。そのファイルのRMAN DBVあるいはRMAN検証を確認してください。

ファイルが見つけ出せなかったら、バックアップからリカバリしてください。

§  Addressing an ORA-01578 (ORACLE data block corrupted (file # %s, block # %s))

-壊れたオブジェクトにマックしてください:

SELECT tablespace_name, segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = &AFN
and &BL between block_id AND block_id + blocks – 1;

      -大範囲の損害か確認してください:

       データベースをスキャンする ( DBVあるいはRMAN)

       % dbv userid=<username/password> file=<full ptah to corrupted file> blocksize=<tablespace block size>

       RMAN> backup validate check logical database;  ( this will scan the entire Database)

       RMAN> backup validate check logical tablespace <TS_NAME> ;  ( this will scan the entire tablespace listed)

       RMAN> backup validate check logical datafile X;  (Where X is the datafile in question)

       When either RMAN command is complete review:

       SQL> select * from v$database_block_corruption ( これでデータベースに壊れたベッドブロックを示す)

      -次の説明で、損害の解決策を説明した:

      Handling Oracle Block Corruptions in Oracle7/8/8i/9i/10g/11g (Doc ID 28814.1)

§  Addressing an ORA-00376 (file <name> cannot be read at this time)

      -もしそのファイルが物理的に存在していれば、権限とファイルサイズが予想した同じようにしてください。

      -そのファイルがオンラインかテストしてください。

– v$recover_fileでテストして、オフラインの場合に、リカバリとファイルをオンラインに設定してください。仮にアーカイブモードで実行している。

      -以下のようなスクリプトをアップロードしてください。

§  Addressing an ORA-01194 (file <name> needs more recovery to be consistent) & ORA-01547 (warning: RECOVER succeeded but OPEN RESETLOGS would get error)

      -そのエラはリカバリが一致していないと示している。その原因はデータファイルがリカバリした時点が違っているあるいはバックアップにあるアーカイブログが足りない。

      せめて、オンラインバックアッププロセスで作成されたすべての格納ログがリカバリプロセスで利用されたことを保障する必要がある。

§  Addressing an ORA-01135 (file %s accessed for DML/query is offline)

 – そのファイルがオフラインで、オンラインに設定して、アクセスできるように設定する必要がある。

 Example:
SQL> recover datafile ‘%s’;
SQL> alter database datafile ‘%s’ online;

       Oracle技術サポートに協力するために、以下のような情報を提供してください:

      サビースリクエストを出せるインポートを提供してください(recovery_info.txtにアップロードしてください)

set pagesize 20000

set linesize 180

set pause off

set serveroutput on

set feedback on

set echo on

set numformat 999999999999999

Spool recovery_info.txt

select substr(name, 1, 50), status from v$datafile;

select substr(name,1,40), recover, fuzzy, checkpoint_change# from v$datafile_header;

select GROUP#,substr(member,1,60) from v$logfile;

select * from v$recover_file;

select distinct status from v$backup;

select hxfil FILENUMBER,fhsta STATUS,fhscn SCN,fhrba_Seq SEQUENCE from x$kcvfh;

select distinct (fuzzy) from v$datafile_header;

spool off

exit