Oracleバックアップ/リカバリ講座(2) Page 1/3
アーキテクチャから理解するOracleリカバリ
株式会社アゲハ
亀田 明裕
2006/2/21
本記事では、Oracleデータベースのバックアップ/リストア/リカバリについて、そのアーキテクチャ、代表的なバックアップ手法、論理/物理バックアップ、RMANといった全般的な内容を解説していく。(編集部)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
|
前回は、バックアップ、リカバリの概要と重要性、そしてバックアップ計画の立て方について、皆さんの身近な例を挙げて説明しました。今回以降では、具体的にOracleデータベースを使用したバックアップ、リカバリについて説明していきます。第2回となる今回は、リカバリに焦点を絞り、どのような仕組みによってデータの整合性が保証され、リカバリが行われているかについて説明します。
一連の更新処理実行中に、データベースが格納されたディスクに障害が発生してしまった場合、更新中のデータはどうあるべきでしょうか。
このような場合に、一部のデータのみ変更され、残りのデータは変更されていない、といったように、中途半端に更新処理が反映されてしまっては大変なことになります。このような状況に陥らないように、障害が発生した場合にはリカバリ処理を行い、変更が確定されていたデータは正しく反映し、未確定であったデータは正しく取り消す必要があります。
Oracleのリカバリに関する一連の動作を説明する前に、まずOracleデータベースがどのようにして「データの整合性を保証する」のか、その仕組みを説明しておきます。
処理全体の整合性を保つために、データの追加、更新、削除などの操作をひとまとめに処理したいことがあります。この処理単位をトランザクションといい、INSERT(追加)やUPDATE(更新)、DELETE(削除)といったDML文が実行されたときにトランザクションが開始され、COMMIT(確定)、またはROLLBACK(取り消し)を実行するとトランザクションが終了します。複数のデータ変更操作を1つのトランザクションとして処理することにより、データの一貫性を保った変更を行うことができます。
具体的なトランザクションの例として、ある銀行の口座Aから口座Bへお金を振り込む処理を考えてみましょう。何らかの障害によって、どちらかの処理だけが行われてしまった場合、口座Aから出金されるだけで口座Bへ入金がされていないというような矛盾が生じてしまいます。そのため、このような口座Aでの引き出し処理と口座Bへの振り込み処理は、切り離すことのできない操作として1つのトランザクションにまとめなければなりません。
一連のDML操作(出金処理と入金処理)がすべて成功している場合は全操作を「COMMIT」させ、1つでも失敗している操作があった場合には、全操作を「ROLLBACK」することによって、データの整合性を保証することができます。データベースのリカバリも、このトランザクション単位で行われます(図1)。
![]() |
| 図1 銀行口座の振り込みでのトランザクション例 |
| 1/3 |
| Index | |
| Oracleバックアップ/リカバリ講座(2) アーキテクチャから理解するOracleリカバリ |
|
| Page
1 ・リカバリで重要なデータベースの仕組みを理解する ・データの整合性を保つ単位「トランザクション」 |
|
| Page 2 ・トランザクションを取り消す仕組み「UNDOセグメント」 ・データの変更履歴を保持する仕組み |
|
| Page
3 ・リカバリの仕組み |
|
| Oracleバックアップ/リカバリ講座 |
TechTargetジャパン
- やはりSELECT文は永遠のテーマです (2012/2/7)
Database Expertフォーラムの2012年1月のアクセスランキングをお届けします。定番の記事を一気に追い抜いてあの記事が…… - SELECT文で取り出したデータを加工して表示する (2012/1/25)
SELECT文で取り出したデータを対象に四則演算する方法など、データを見やすくする方法を解説します - 2012年は私たちが勉強会を盛り上げる! (2012/1/23)
2011年12月、データベース業界初の女子会が発足しました。そこで、女子会を盛り上げていってくれそうな2人にお話を伺いました - 複数の条件を指定してSELECT文を実行する (2012/1/13)
複数の条件を指定してSELECT文を実行する方法と、条件指定に必要な論理演算子、比較演算子の役割を解説します
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

