UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

dbcc 〜データベースの一貫性の検査〜

dbcc

〜データベースの一貫性の検査〜


0.更新履歴

  • 2001.06.12 新規作成

1.はじめに

 このドキュメントでは,Sybaseでデータベースの通常保守に必要な「一貫性の検査」について説明する.

2.一貫性の検査とは

 一貫性の検査とは,データベースの論理・物理構造の一貫性,つまり整合性が取れているかをチェックする事で,dbccコマンドでチェックすることができる.

 このdbccによる一貫性の検査は,つぎのタイミングで使用する.

  • 通常の保守として使用し,Adaptive Serverの使用にエラーが出る前にエラーを検出し修正する.
  • システムエラーが発生した後に障害のレベルを調べる.
  • データベースバックアップの内容をより厳密なものにするためにバックアップ前に実行する.
  • データベースが壊れている可能性のある場合.(破壊されたというエラーが出た場合)

 チェックする対象によって,次のような使い分けを行う.

チェック内容 使うコマンド
ページレベルとローレベルのページリンクとデータポインタのチェック checkstorage,checktable,checkkdb
ページ割付チェック checkstorage,checkalloc,tablealloc,indexalloc

3.ページとオブジェクト割り当てについて

 dbccで一貫性チェックを行うのは,簡単に言えばページの割り当て情報であるが,次のような関係となっている.

  • ページについて
    • disk initコマンドでデバイスを作成するとき,「アロケーションユニット」という単位に分割する.
    • 1つのアロケーションユニットは,2KB×256個ページで構成される.
    • 1ページは2KBである.
    • アロケーションユニットの先頭ページは,「アロケーションページ」とし,アロケーションユニット全体の管理情報(利用状況)が格納される.
  • オブジェクトの割り当て
    • テーブルでINSERTを行うなどで,空き領域が必要なときにAdaptive Serverはオブジェクト(たとえば表)に対してエクステントを割り当てる.
    • 1つのエクステントは,2KB × 8個のページを割り当てる.
    • テーブルの消去を行うと,エクステント割り当てを解除する.
    • 行データの消去を行うと,ページ割り当てを解除する.
  • オブジェクトアロケーションマップ(OAM)
    • OAMは,テーブルと,テーブルのインデックス毎が割り付けられたページに保管される.
    • OAMページは,オブジェクト(テーブルとか)が使用しているアロケーションユニット毎にアロケーションテーブルを示し,エクステントやページの状況をチェックする.
  • ページリンク
    • 各ページには,その前後にあたるページに対する番号が書かれているヘッダを持っている.
    • 新しいページが割り当てられると,前後にあるページは新規ページへのポインタを設定しなおす.

 エクステントに領域を割り当てたり解除が何度も行われると,整合性が合わなくなることもあるのでチェックを行う.

4.dbccで実行できるチェック

チェック check
storage
check
table
check
db
check
alloc
index
alloc
table
alloc
check
catalog
テキスト値カラムの割付            
インデックスの一貫性          
インデックスソート順のチェック          
OAMページのチェック    
ページ割付のチェック      
ページ一貫性のチェック        
ポインタの一貫性チェック        
システムテーブルのチェック            
テキストカラムチェーンのチェック      
テキスト値カラムのチェック        
  • dbcc checkstorageは,dbccdbデータベースにチェック結果を格納する.
  • checktableを実行できるのはテーブ所有者
  • checkstorage,checkdb,checkcatalog.,checkalloc,indexalloc,tableallocを使用できるのはデータベース所有者
  • dbrepairはシステム管理者が実行できる.


広告スペース
Google