1. ホーム
  2. データベース
  3. 神託

Oracle Databaseの失敗したオブジェクトの処理の詳細

2022-01-18 06:30:06

最近のデータベースのパトロールで、データベースのビジネスユーザー( SYS )に失敗したオブジェクトがありました。失敗したオブジェクトは、主に失敗したビュー、マテリアライズドビュー、関数、パッケージ、トリガーなどを含むように分析されました。

反省しています。

失敗したオブジェクトは、以下の理由で処理することが推奨されます。

1. 故障したオブジェクトを通じて、ビジネスソフトウェアの問題(ビジネスシステムの機能が多すぎ、テストが不十分な可能性がある)の発見をバックプロパゲートできる可能性がある。

2、あまりにも多くの失敗したオブジェクト、ビジネス、頻繁に呼び出す場合は、データベースのパフォーマンスの影響を心配(テストされていない、個人の考え、エラーがある場合は修正してください)。

処理します。

1. 失敗したオブジェクトを見つけるために最初に検索する(sysユーザーで実行されます)。

select owner, object_name, object_type, status from dba_objects t where status='INVALID' order by t.owner,t.object_type;



2、失敗したオブジェクトは、自動的に再コンパイルするステートメントを生成する

以下は、ビュー、関数、マテリアライズド・ビュー、パッケージ、およびトリガーについて生成されたステートメントです。

--automatically generate view recompile statement
select owner, object_name, object_type, status ,'alter view ' || t.owner||'.' || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='VIEW' order by t.owner,t.object_type;
--automatically generate function recompile statements
select owner, object_name, object_type, status ,'alter FUNCTION ' || t.owner||'. || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='FUNCTION' order by t.owner,t.object_type;
--automatically generate the visualization chart recompile statement
select owner, object_name, object_type, status ,'alter MATERIALIZED VIEW ' || t.owner||'. || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='MATERIALIZED VIEW' order by t.owner,t.object_type;
--automatically generate package recompile statement
select owner, object_name, object_type, status ,'alter PACKAGE ' || t.owner||'. || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='PACKAGE BODY' order by t.owner,t.object_type;
--automatically generate trigger recompile statement
select owner, object_name, object_type, status ,'alter TRIGGER ' || t.owner||'. || object_name || ' compile'||';'
from dba_objects t  
where status='INVALID' and t.object_type='TRIGGER' order by t.owner,t.object_type;



ステートメントを生成し、それをコピーして一括実行する

3は、リコンパイルは、オブジェクトの障害の一部を解決する必要がありますが、まだいくつかのオブジェクトは、リコンパイルで解決することはできませんされます。オブジェクトのこの部分については、1つずつ手動で分析を行う必要があります、サイトが処理を確認するために確認することができます(変更するのに役立つ、削除するのに役に立たない)、サイトが確認することができないとR&Dは、失敗したオブジェクト処理の最後の完成の目的を確認するために。

まだ誰も確認できないものがある場合は、とりあえずそのままにしておくことをお勧めします。

この時点では、この記事の Oracle データベース障害オブジェクトの処理の詳細に関する記事は以上ですが、より関連性の高い Oracle BinaryDevelopの過去の記事を検索していただくか、引き続き以下の関連記事を閲覧していただき、今後のBinaryDevelopを応援していただければと思います