电脑技术学习

精益求精Sybase数据库问题大搜罗

dn001

  下面是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

  Q.如何在Windows NT上手动卸载Sybase Server ?

  A.关闭 Adaptive Server.