- 专业度
 - 25 
 - 元宝
 - 1460 
 - 金钱
 - 8 
 - 最后登录
 - 2014-9-5
 - 注册时间
 - 2011-12-9
 - 精华
 - 0
 - 积分
 - 1633
 - 阅读权限
 - 70
 - 帖子
 - 115
  
 
 
 
   
TA的每日心情  | 无聊 2014-9-5 11:46:27 | 
|---|
 
  签到天数: 30 天 [LV.5]常住居民I - 金钱
 - 8 
 - 元宝
 - 1460 
 - 专业度
 - 25 
  
 | 
 本帖最后由 军达成技术支持1 于 2015-10-9 00:36 编辑  
 
 数据库一致性检查(dbcc)提供了一些命令用于检查数据库的逻辑和物理一致性。Dbcc主要有两个功能:  
使用checkstorage 或 checktable 及 checkdb 在页一级和行一级检查页链及数据指针。  
使用checkstorage, checkalloc, 或 checkverify, tablealloc, 及indexalloc 检查页分配。  
  在下列情况中需要使用 dbcc 命令: 
作为数据库日常维护工作的一部分, 数据库内部结构的完整性决定于sa 或dbo 定期地运行 dbcc 检查。  
在系统报错以后, 确定数据库是否有损坏。  
在备份数据库之前, 确保备份的完整性。  
如果怀疑数据库有损坏时, 例如, 使用某个表时报出表损坏的信息, 可以使用 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数据库的一致性 
单用户模式启动Server: 
$SYBASE/install startserver -f RUN_server_name -m  
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  
isql -Usa -Pxxxxxx -SSYBASE dbcc_db.out  
grep Msg dbcc_db.out  
  举例2: Unix平台检查pubs2数据库中titles表的一致性  
vi dbcc_table.sql 
use pubs2 
go 
dbcc checktable(titles) 
go 
dbcc tablealloc(titles) 
go  
isql -Usa -Pxxxxxx -SSYBASE < dbcc_table.sql > dbcc_table.out  
grep Msg dbcc_table.out  
 
 
 |   
 
- 
总评分: 专业度 + 2 
金钱 + 2 
 查看全部评分
 
 
 
  
 |