新卒から文系エンジニア→人材業界に転職した人のブログ

新卒から文系エンジニア→人材業界に転職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界へ。異業種×異職種の転職経験有り。

このエントリーをはてなブックマークに追加

【DBMS入門】トランザクションとデータの復旧について

【今回の紹介】

今回は、トランザクションとデータの復旧について学習を行ったので

そのメモを。

 具体的には以下のトランザクション処理を実行するときに
 DBMSが行っていることについて

 ・データの復旧

 ・同時実行制御

参考にしたのは以下の記事。そこらへんの参考書よりわかりやすい。

トランザクションを知ればデータベースがわかる―「データ復旧」「同時実行制御」を行う“不完全な”しくみ(1)


 

【内容】

トランザクションについて


 ・ユーザが定義するDBに対して処理を行う単位

 ・トランザクションという単位を元にデータの保障を行う

■データの復旧


 ・トランザクションが復旧の単位

 ・更新前に終了していたトランザクションを保障する(ロールバック

  →障害発生時に実行途中のトランザクションは復旧対象でない

 ・COMMITする(データファイルへの書き込みを行う)前にログファイルに更新情報を書きこむ

 ・ログファイルには書き込んだが、データファイルまでは反映していない処理を実行する(ロールフォワード)



基本的なデータ復旧の処理の流れを整理すると
 

 ①障害発生

 ②チェックポイント(HDDのデータファイルに対し最後に反映が行われた地点)の状態まで戻す(ロールバック

 ③チェックポイントから障害発生時までにトランザクションが終了している処理を
  ログファイルの情報を元に行う(ロールフォワード)

参考:チェックポイント






【メモ】

①アクセス速度や処理速度がかかるものに対して、バッファ(緩衝材)
 おくという思想がいろんなとこにある
 
 今回のトランザクション処理に関する部分の学習でいえば
 ログファイル(WALファイル)
 他にも、CPUとメモリの間で使用されるキャッシュメモリ
     メモリとHDDの間で使用されるディスクキャッシュなど
 
 

.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }