程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 如何檢查數據庫中數據的一致性

如何檢查數據庫中數據的一致性

編輯:SyBase綜合文章
數據庫一致性檢查(dbcc)提供了一些命令用於檢查數據庫的邏輯和物理一致性。Dbcc主要有兩個功能:
    1. 使用checkstorage 或 checktable 及 checkdb 在頁一級和行一級檢查頁鏈及數據指針。
    2. 使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc 檢查頁分配。

  在下列情況中需要使用 dbcc 命令:

    1. 作為數據庫日常維護工作的一部分, 數據庫內部結構的完整性決定於sa 或dbo 定期地運行 dbcc 檢查。
    2. 在系統報錯以後, 確定數據庫是否有損壞。
    3. 在備份數據庫之前, 確保備份的完整性。
    4. 如果懷疑數據庫有損壞時, 例如, 使用某個表時報出表損壞的信息, 可以使用 dbcc 確定數據庫中其他表是否也有損壞。

  下面是dbcc的簡單用法:

  • dbcc checktable (table_name)
    檢查指定的表, 檢查索引和數據頁是否正確鏈接, 索引是否正確排序, 所有指針是否一致, 每頁的數據信息是否合理, 頁偏移是否合理。
  • dbcc checkdb (database_name)
    對指定數據庫的所有表做和checktable 一樣的檢查。
  • dbcc checkalloc (database_name,fix|nofix)
    檢查指定數據庫, 是否所有頁面被正確分配, 是否被分配的頁面沒被使用。當使用"fix"選項時,在檢查數據庫的同時會自動修復有問題的頁面。(若數據庫數據量很大,則該過程會持續很長時間。)
  • dbcc tablealloc (table_name,fix|nofix)
    檢查指定的表, 是否所有頁面被正確分配, 是否被分配的頁面沒被使用。是 checkalloc 的縮小版本, 對指定的表做完整性檢查。當使用"fix"選項時,在檢查數據表的同時會自動修復數據表中有問題的頁面。

  關於上述命令的其它選項及詳細使用方法和checkstorage, checkverify, indexalloc 的詳細使用方法, 請參閱有關命令手冊。

  舉例1: Unix平台檢查pubs2數據庫的一致性

    1. 單用戶模式啟動Server:
      $Sybase/install startserver -f RUN_server_name -m
    2. vi dbcc_db.sql
      use master
      go
      sp_dboption pubs2,"single user",true
      go
      use pubs2
      go
      checkpoint
      go
      dbcc checkdb(pubs2)
      go
      dbcc checkalloc(pubs2,fix)
      go
      dbcc checkcatalog(pubs2)
      go
      use master
      go
      sp_dboption pubs2,"single user",false
      go
      use pubs2
      go
      checkpoint
      go
      quit
      go
    3. isql

    4. -Usa -Pxxxxxx -SSybase dbcc_db.out

    5. grep Msg dbcc_db.out

  舉例2: Unix平台檢查pubs2數據庫中titles表的一致性

    1. vi dbcc_table.sql
      use pubs2
      go
      dbcc checktable(titles)
      go
      dbcc tablealloc(titles)
      go
    2. isql -Usa -Pxxxxxx -SSybase < dbcc_table.sql > dbcc_table.out
    3. grep Msg dbcc_table.out
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved