1. 4 種類の障害
トランザクション障害、システム障害、メディア障害、コンピューターウイルス
1. トランザクション障害: トランザクション内部障害は予期されるものと予期しないものに分けられますが、そのほとんどは予期しないものです。予期される内部トランザクション エラーとは、トランザクション プログラム自体を通じて検出できる内部トランザクション エラーを指します。予期しない内部トランザクション エラーは、操作のオーバーフロー エラー、同時トランザクション デッドロック エラー、および結果として生じる特定の整合性制限の違反など、トランザクション プログラムでは処理できません。故障などで
2. システム障害: ソフト障害とも呼ばれるシステム障害は、ハードウェア障害、データベース ソフトウェアとオペレーティング システムの脆弱性、および実行中のすべてのトランザクションの一種の停電によるシステムの停止を指します。異常終了し、システムの再起動が必要となる障害。このタイプのトランザクションはデータベースを破壊しませんが、実行中のすべてのトランザクションに影響します。
3. メディア障害: メディア障害はハード障害とも呼ばれ、主にヘッドの衝突、ディスクの損傷、強い磁気干渉、自然災害などによりデータベース内のデータの一部またはすべてが失われる状況を指します。データベース運用中の人為的災害。クラスフォールト。
4. コンピュータ ウイルス障害: コンピュータ ウイルス障害は、ウイルスのように複製および拡散する可能性がある悪意のあるコンピュータ プログラムであり、コンピュータ システムに損害を与えるだけでなく、データベース システムにも損害を与える可能性があります (被害の原因はデータベース ファイルです)。 。 ホスト)。
2. 解決策
1. 予想されるトランザクション内部エラー: トランザクションをロールバックし、データベースへの変更を元に戻します。
2. 予期しない内部トランザクションのエラー: トランザクションを強制的にロールバックし、ログ ファイルを使用してデータベースへの変更を元に戻し、トランザクションが他のトランザクションに影響を与えないようにします。
3. システム障害: コンピュータの再起動後、未完了のトランザクションによってデータベースに書き込まれた内容がロールバックされる可能性があります。完了したトランザクションの結果が部分的または完全に残される可能性があります。バッファは、コミットされたすべてのトランザクションをやり直す必要があります (つまり、コミットされていないトランザクションをすべて取り消し、コミットされたトランザクションをすべてやり直す)。
4. メディア障害に対するソフトウェア フォールト トレランス: データベース バックアップとトランザクション ログ ファイルを使用し、リカバリ テクノロジを使用してデータベースをバックアップ終了時の状態に復元します。
5. メディア障害に対するハードウェア耐障害性: 2 台のハードディスクに同じコンテンツが保存されるように、デュアル物理ストレージ デバイスを使用します。一方のハードディスクに障害が発生した場合、もう一方のバックアップ ハードディスクが適切なタイミングで使用されます。
6. コンピュータ ウイルスの障害: ウイルスの侵入を防ぐために、ウイルス対策ソフトウェアを使用してウイルスを駆除できない場合は、データベースのみを使用できます。この時点でファイルをバックアップし、ソフトウェア フォールト トレラントな方法でデータベース ファイルを復元します。
3. データリカバリ実装テクノロジー
データベースリカバリの基本原則は冗長性、つまり、システム内の別の場所に保存されている冗長データを使用して、破損したデータベースまたはデータベース内のデータの誤った部分を再構築することです。
冗長データの作成には、主にデータダンプ(Backup)と登録ログ(Logging)の2つの方法があります。
1. データ ダンプ
DBA は、データベース全体またはデータベース内のデータの一部をストレージ用に他のディスクにコピーします。これらのバックアップされたデータ ファイルは、バックアップ コピーまたはバックアップ コピーと呼ばれます。
静的ダンプ: システム内でトランザクションが実行されていないときに実行されるダンプ操作。ダンプ期間中はデータベースへのアクセスや変更アクティビティは許可されません。
動的ダンプ: ダンプ中にデータベースへのアクセスまたは変更が許可されます。つまり、ダンプ操作はユーザー トランザクションと同時に実行されます。
マスダンプ: 毎回データベース全体をダンプします。
増分ダンプ: 毎回、最後のダンプ後に更新されたデータのみがダンプされます。
2. 登録ログ
登録ログは、データベース上のトランザクション更新操作を自動的に記録するシステムであり、通常、ログは安定したストレージに記録されます。
レコード単位のログファイル:
トランザクション識別 (どのトランザクションであるかを示す)、操作タイプ (挿入、削除、または変更)、操作オブジェクト (レコードの内部識別)、更新前のデータの古い値、新しい値更新後のデータ値
データブロック内のログファイル:
トランザクションID、更新されたデータブロック
技術的な内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。