Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

高速データベース復旧(ADR:Accelerated Database Recovery)中編

edited by DB Online   2020/02/10 08:00

高速データベース復旧のための新たなコンポーネント

 高速データベース復旧は、トランザクションログだけに依存した復旧処理を脱却することによって高速化を図っています。その実現のために、新たに導入されたコンポーネントや概念を紹介します。

永続バージョンストア(PVS)

 スナップショット分離レベル用行バージョンと同じ形式で、各データの以前のバージョンが保持されます。両者の違いは次の二点です。

  • 格納先がtempdbではなくユーザデータベース
  • SQL Serverの再起動後もデータは消失しない

 この情報をもとに、トランザクションログの変更を一つひとつ元に戻すことなく、コミットされていないトランザクションによって変更されたデータの、コミットされたバージョンにアクセスが可能になります。

SLog

 SLogは行バージョンをもとにした復旧ができない操作を、トランザクションログの情報をもとにして、より効率的にREDO/UNDOを実行するために実装された二次的なログストリームです。行バージョンでは復旧操作が実現できない操作に対応するトランザクションログが、本来のトランザクションログファイルから抽出されてSLogに格納されます。

 SLogを使用することによってトランザクションログ全体をスキャンすることなく、関連するログレコードを効率的に適用できます。SLogの対象となる操作(スキーマ変更やデータベースオプション変更など)は、一般的には実施される頻度は高くありません。そのためSLogに書き込まれるトランザクションログのサイズは、トランザクションログ全体のサイズよりも数桁少ないため、最小限の時間で復旧処理を完了することが可能です。

 たとえばトランザクションログの適用による従来の方法で、大量データを保持するテーブルの列のデータ型を変更する場合、数百万行分のログレコードを適用する必要があります。しかしSLogを使用した処理では、排他ロックの取得とメタデータキャッシュの無効化に必要となる、わずかなサイズのログレコードの適用で事足ります。

 今回の記事では、高速データベース復旧の理解に必要となる概念とコンポーネントを紹介しました。次回の後編では、いよいよ高速データベース復旧の動作について詳しく見ていきます。どうぞお楽しみに!



著者プロフィール

  • 平山理(ヒラヤマオサム)

    日本マイクロソフト株式会社 プレミアフィールドエンジニアリング プレミアフィールドエンジニア 日本マイクロソフトの Premier Field Engineering 部で、お客様に SQL Server をスムーズにお使いいただくための様々なお手伝いをしています。Sybase (現 SAP) 勤務時代の 5 年間とマイクロソフトでの 12 年間、データベース道を極めるために精進する毎日です。 二人の娘の父親であり、ハードロックを好む「バッタもん」ギタリストであり、毎月 300 km くらい走る (わりと) シリアス ランナーでもあります。著書に「絵で見てわかる SQL Server の内部構造」(翔泳社)

バックナンバー

連載:現場からお届けするSQL Server 2019最新情報コラム
All contents copyright © 2007-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5