dbcc配置过程

目标数据库:andkylee,大小:3300M,其中数据段2700M,日志段600M。为其配置dbcc检查使用 dbcc checkstorage 的准备工作

1.根据用户数据库andkylee的情况获取dbccdb的空间大小、工作空间大小、高速缓存大小、工作进程数的建议值

 

sp_plan_dbccdb "andkylee"
go

显示结果如下:

Recommended size for dbccdb database is 94MB (data = 92MB, log = 2MB).
No suitable devices for dbccdb in master..sysdevices.
Recommended values for workspace size, cache size and process count are:
dbname                         scan ws  text ws  cache  comp mem  process count
andkylee                       40576K   10176K   10151K 0K        3
(return status = 0)
由上,建议dbccdb的空间大小至少94M(其中数据段至少92M,日志段至少2M),scan工作空间至少40576K,text工作空间至少10176K,命名高速缓存至少10151K,工作进程数至少3个。

2.如果必要,调整ASE的工作进程数
在ASE中配置4个工作进程,配置dbccdb最大可用工作进程数为:3

sp_configure "number of worker processes",4
go

3.为dbccdb创建命令高速缓存dbccdb_cache
配置一个dbcc checkstorage专用的命名高速缓存,不仅可以提高性能并且还可以使数据库的一致性检查对其他用户的影响降到最小。dbcc checkstorage要求在命名高速缓存中创建8页的I/O缓存池。

配置大小为30M的命令高速缓存dbccdb_cache,其中8页的I/O缓存池为10M

sp_cacheconfig dbccdb_cache,"30M"
go

命令高速缓存dbccdb_cache需要重启ASE后才能生效。

配置10M的8页I/O缓冲池:

sp_poolconfig dbccdb_cache,"10M","32k"
go

使用命令sp_cacheconfig dbccdb_cache查看命令高速缓存,结果如下:
 Cache Name   Status   Type     Config Value   Run Value
 ------------ -------- -------- -------------- ------------
 dbccdb_cache Active   Mixed        30.00 Mb       30.00 Mb
                           ------------ ------------
                      Total      30.00 Mb     30.00 Mb
==========================================================================
Cache: dbccdb_cache,   Status: Active,   Type: Mixed
      Config Size: 30.00 Mb,   Run Size: 30.00 Mb
      Config Replacement: strict LRU,   Run Replacement: strict LRU
      Config Partition:            1,   Run Partition:            4
 IO Size  Wash Size     Config Size  Run Size     APF Percent
 -------- ------------- ------------ ------------ -----------
     4 Kb       4096 Kb      0.00 Mb     20.00 Mb     20
    32 Kb       2048 Kb     10.00 Mb     10.00 Mb     20
(return status = 0)

4.如果dbccdb存在,则在创建新的dbccdb数据库之前,删除它及其相关的所有设备

use master
go
if exists (select * from master.dbo.sysdatabases where name = "dbccdb" )
begin
print "Dropping the dbccdb database................"
drop database dbccdb
end
go

5.初始化用于dbccdb数据和日志的磁盘设备dbccdb_dat和dbccdb_log
为用户数据库andkylee建议的dbccdb的数据段至少92M,日志段至少2M。在此创建大小为200M的设备dbccdb_dat,20M的设备dbccdb_log。

use master
go
disk init  name  = 'dbccdb_dat',
physname  = 'd:\syb_data\dbccdb_dat.dat',
size  = '200M'
go
disk init  name  = 'dbccdb_log',
physname  = 'd:\syb_data\dbccdb_log.dat',
size  = '20M'
go

6.在数据库设备上创建dbccdb数据库

use master
go
create database dbccdb
on dbccdb_dat= '200M'
log on dbccdb_log='20M'
go

7.将用于 scan 和 text 工作空间的段添加到 dbccdb 的数据设备上

use dbccdb
go
sp_addsegment scanseg,dbccdb,dbccdb_dat
go
sp_addsegment textseg,dbccdb,dbccdb_dat
go

8.填充dbcc数据库并安装dbcc存储过程
installdbccdb 脚本在试图创建表之前检查数据库是否存在。它只创建dbccdb 中尚未存在的那些表。如果任何一个 dbccdb 表被损坏,请使用 drop table 将其删除,然后使用 installdbccdb 重新创建。
isql -Usa  -P<password>  -S<servername> -i%SYBASE%\%SYBASE_ASE%\scripts\installdbccdb -odbccdb.log

9.创建并初始化 scan 和 text 工作空间
scan工作空间至少40576K,text工作空间至少10176K。在此创建120M的scan工作空间:scan_andkylee,50M的text工作空间:text_andkylee

use dbccdb
go
sp_dbcc_createws dbccdb, scanseg, scan_andkylee, scan, "120M"
go
sp_dbcc_createws dbccdb, textseg, text_andkylee, text, "50M"
go

删除工作空间使用 drop table scan_andkylee

10、 更新dbcc_config配置值
max worker processes 为每个目标数据库指定 dbcc checkstorage 使用的工作进程最大数,而 number of worker processes 指定 Adaptive Server 支持的工作进程总数。工作进程不是专用来运行 dbcc checkstorage 操作的。
将 number of worker processes 的值设置得足够高,使之支持 max worker processes 指定的进程数。工作进程数低会降低 dbcc checkstorage 的性能,减少其资源消耗。 dbcc checkstorage 使用的进程数不会多于数据库使用的数据库设备数。
maximum parallel degree 和 maximum scan parallel degree 对于 dbcc checkstorage 的并行功能没有影响。将 maximum parallel degree 设置为 1时,不会禁用 dbcc checkstorage 中的并行度。
dbcc checkstorage 需要多个工作进程,所以 number of worker processes 必须至少设置为 1 以支持父进程和工作进程。

use dbccdb
go
--为数据库andkylee配置最大工作进程数:3
exec sp_dbcc_updateconfig andkylee,"max worker processes","3"
--为数据库andkylee绑定30M的dbccdb_cache
exec sp_dbcc_updateconfig andkylee,"dbcc named cache",dbccdb_cache,"30M"
--为数据库andkylee指定scan和text工作空间
exec sp_dbcc_updateconfig andkylee,"scan workspace",scan_andkylee
exec sp_dbcc_updateconfig andkylee,"text workspace",text_andkylee
exec sp_dbcc_updateconfig andkylee,"OAM count threshold","5"
exec sp_dbcc_updateconfig andkylee,"IO error abort","3"
exec sp_dbcc_updateconfig andkylee,"linkage error abort","8"
go


11.显示目标数据库的配置信息

sp_dbcc_configreport
go


12.检查数据库andkylee

dbcc checkstorage(andkylee)
go

检查结果如下:
Checking andkylee: Logical pagesize is 4096 bytes
(return status = 0)
DBCC CHECKSTORAGE for database 'andkylee' sequence 1 completed at Sep 26 2012  4
:42PM. 3 faults and 75248 suspect conditions were located. 0 checks were aborted
. You should investigate the recorded faults, and plan a course of action that w
ill correct them.
Suspect conditions are to be treated as faults if the same suspect condition per
sists in subsequent CHECKSTORAGE operations, or if they are also detected by oth
er DBCC functions.

13.生成dbcc报告
sp_dbcc_summaryreport在指定的日期或该日期之前为指定的数据库完成的所有dbcc checkstorage操作。

sp_dbcc_summaryreport
go

BCC Operation : checkstorage
================================================================================
 Database Name                  Start time           End Time   Operation ID Hard Faults Soft Faults Text Columns Abort Count User Name                                                                                                                                                                                                                                                      
 ------------------------------ -------------------- ---------- ------------ ----------- ----------- ------------ ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 andkylee                       09/26/2012 16:40:27  16:42:32              1           3       75248         6355           0 sa                                                                                                                                                                                                                                                             

(1 row affected)
 
================================================================================
(return status = 0)

14.报告数据库对象中发现的故障

sp_dbcc_faultreport 报告指定数据库对象中在指定日期或该日期之前发生的故障。可生成短报告,也可生成长报告。下面显示短报告:

sp_dbcc_faultreport  'short'
go

Database Name : andkylee
 
 Table Name     Index   PartitionId       Fault Type                               Page Number      
 -------------- ------- ----------------- ---------------------------------------- -----------------
 ALLOCATION           0                99 100007 (extent id error)                              1008
 sysencryptkeys       0                98 100033 (non-contiguous free space error)               633
 sysencryptkeys       0                98 100036 (deleted row count error)                       633

(1 row affected)
(return status = 0)

由上面得检查结果,可以看到用户数据库andkylee的页面633和1008存在分配错误。
执行: dbcc page('andkylee',1008,1)报下面的错误:
DATA:Error: Non-first OAM page 1008 has non-zero OAMSTRUCT entries: total_used: 2 total_unused: 6 rowsperpage: 0
Error: Non-first OAM page 1008 has attribute entries: Attribute status:1, Attribute count: 10

OAM pg #  0:       1008 has the following 1 entry (allocpg:used/unused):

[   0]        768:  2/  6

执行: dbcc page('andkylee',633,1)的结果如下:
PAGE HEADER:
Page header for page 0x2C413000
pageno=633 nextpg=0 prevpg=0 ptnid=98 sysencryptkeys timestamp=0000 0010b6ff
nextrno=2 level=0 indid=0 freeoff=471 minlen=22
page status bits: 0x811 (0x0800 (PG_XHEADER), 0x0010 (PG_RNOFREE), 0x0001 (PG_DATA))
second set of page status bits (dol_stat2): 0x02 (0x02 (PG2_DOL_DATAPG))
dol_pprivstat status bits: 0x00 (0x00)
pagesize=4096, page version=1, ncfs=169, ndeleted=65535, insert free space=3672
pagetailts=0xb6ff
ndeleted的值明显大于DOL页面允许的最大行数:337。
            Item dependent on page size                             : 2048    4096    8192    16384
-----------------------------------------------------------------------------------------------------------
  Max number of rows per APL data page                              : 256     256     256     256
  Max number of rows per DOL data page                              : 166     337     678     1361
 


15.生成指定对象的分配统计报告

sp_dbcc_statisticsreport andkylee,"sysobjects"
go

  • 本文链接地址:http://www.dbainfo.net/config_dbccdb.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《dbcc配置过程》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)