免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8506 | 回复: 17
打印 上一主题 下一主题

SYBASE dbcc [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-06-26 10:44 |只看该作者 |倒序浏览
  dbcc checkstorage 检查数据库的一致性。在新版本的数据库中用处比任何一个DBCC命令都大,尤其在数据库备份前。这篇文章的用意是帮助你:

&Oslash&#59; 掌握dbcc checkstorage命令
&Oslash&#59; 维护dbccdb数据库
&Oslash&#59; 根据dbccdb生成报告

  本文使用的案例中,你将首先由sp_plan_dbccdb的输出得到运行dbcc checkstorage命令所需资源环境,并在此基础上规划资源,建立dbccdb数据库,最终根据dbccdb数据库生成报告。

本节练习将基于如下环境:

&Oslash&#59; 系统中存在用户数据库aca_db,容量为20MB(数据10MB、日志10MB)
&Oslash&#59; aca_db数据库占用disk1和disk2两个设备
&Oslash&#59; aca_db数据库中有若干个用户表(auths,article等)

步骤如下:

1、为目标数据库获取有关数据库大小、设备工作空间的大小,高速缓存大小和工作进程数的建议。

sp_plan_dbccdb aca_db

执行结果为:

Recommended size for dbccdb database is 15MB (data = 13MB, 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 process count
aca_db 272K 80K 1280K 2
(return status = 0)

2、如果必要,调整Adaptive Server的工作进程数

3、 为dbcc创建命名高速缓存

  配置一个dbcc checkstorage专用的命名高速缓存,不仅可以提高性能并且还可以使数据库的一致性检查对其他用户的影响降到最小。

  Dbcc checkstorage要求在命名高速缓存的16k内存池中为每个工作进程准备至少640k的存储空间,16k内存池的最小容量为推荐的高速缓存容量。

  Sp_cacheconfig aca_cache,”3072k”

(注意:重新启动Adaptive Server才起作用)

4、配置16k的I/O缓存池

sp_poolconfig aca_cache,”2048”,”16k”
使用sp_poolconfig aca_cache命令查看命名高速缓存,结果如下
Cache Name Status Type Config Value Run Value
---------- ------ ---- ------------ ---------
aca_cache Active Mixed 3.00 Mb 3.00 Mb
IO Size Wash Size Config Size Run Size APF Percent
------- --------- ----------- -------- -----------
2 Kb 204 Kb 0.00 Mb 1.00 Mb 10
16 Kb 400 Kb 2.00 Mb 2.00 Mb 10


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

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

5、 初始化用于dbccdb数据和日志的磁盘设备

disk init
name="dbccdb_dat",
physname="d:\sybase\example\dbccdata.dat",
vdevno=6,
size=7680
disk init
name="dbccdb_log",
physname="d:\sybase\example\dbcclog.dat",
vdevno=7,
size=1024

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

create database dbccdb
on dbcc_dat=13
log on dbccdb_log=2

7、 添加磁盘段

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

8、 填充dbcc数据库并安装dbcc存储过程

执行installdbccdb脚本为dbccdb创建表并初始化dbcc-type表

isql -Usa –P -S -Iiinstalldbccdb

9、 建立和初始化scan和text空间

sp_dbcc_createws dbccdb,scanseg,scan_aca,scan,"272k"
sp_dbcc_createws dbccdb,textseg,text_aca,text,"80k"
10、 更新dbcc_config配置值
use dbccdb
sp_dbcc_updateconfig aca_db,"max worker processes","2"
sp_dbcc_updateconfig aca_db,"dbcc named cache",aca_cache,"3072"
sp_dbcc_updateconfig aca_db,"scan workspace",scan_aca
sp_dbcc_updateconfig aca_db,"text workspace",text_aca
sp_dbcc_updateconfig aca_db,"OAM count threshold","5"
sp_dbcc_updateconfig aca_db,"IO error abort","3"
sp_dbcc_updateconfig aca_db,"linkage error abort","8"

11、检查aca_db数据库

dbcc checkstorage(aca_db)

执行结果为:

Checking aca_db Server Message: Number 9954, Severity 10
Line 1:
Storage checks for 'aca_db' are complete. DBCC is now recording the results in the dbccdb database.
Server Message: Number 9974, Severity 10
Line 1:
DBCC CHECKSTORAGE for database 'aca_db' sequence 1 completed at May 30 2000 10:01AM. 0 faults and 0 suspect conditions were located. 0 checks were aborted. You should investigate the recorded faults, and plan a course of action that will correct them.

11、 dbccdb生成报告

&Oslash&#59; sp_dbcc_summaryreport在指定的日期或该日期之前为指定的数据库完成的所有dbcc checkstorage操作

示例:

sp_dbcc_summaryreport

DBCC Operation : checkstorage
(1 row affected)
(return status = 0)
Database Name Start time End Time Operation ID Hard Faults Soft Faults Text Columns Abort Count User Name
------------- ---------- -------- ------------ ----------- ----------- ------------ ----------- ---------aca_db 05/30/2000 10:01:36 10:1:50:503 1 0 0 0 0 sa
&Oslash&#59; sp_dbcc_configreport为目标数据库生成配置信息的报告。

示例:

sp_dbcc_configreport

Reporting configuration information of database aca_db.
Parameter Name Value Size
database name aca_db 20480K
dbcc named cache aca_cache 3072K
text workspace text_aca (id = 544004969) 80K
scan workspace scan_aca (id = 512004855) 272K
OAM count threshold 5%
IO error abort 3
linkage error abort 8
max worker processes 2
operation sequence number 1
(1 row affected)
(return status = 0)
&Oslash&#59; sp_dbcc_statisticsreport产生从dbcc_counter表中得到的统计信息

示例:

sp_dbcc_statisticsreport "aca_db","auths"

结果:

Parameter Name Index Id Value
-------------- -------- -----
count 0 20.0
max size 0 88.0
max count 0 20.0
bytes data 0 1321.0
bytes used 0 1599.0
count 1 1.0
max count 1 1.0
max level 1 0.0
max size 1 11.0
bytes data 1 6.0
bytes used 1 43.0
count 255 0.0
max size 255 0.0
max count 255 0.0
bytes data 255 0.0
bytes used 255 0.0
Parameter Name Index Id Partition Value Dev_name
-------------- -------- --------- ----- --------
page gaps 0 1 1.0 disk1
pages used 0 1 2.0 disk1
extents used 0 1 1.0 disk1
overflow pages 0 1 0.0 disk1
pages overhead 0 1 1.0 disk1
pages reserved 0 1 6.0 disk1
page extent gaps 0 1 0.0 disk1
ws buffer crosses 0 1 0.0 disk1
page extent crosses 0 1 0.0 disk1
page gaps 1 1 1.0 disk1
pages used 1 1 2.0 disk1
extents used 1 1 1.0 disk1
overflow pages 1 1 0.0 disk1
pages overhead 1 1 1.0 disk1
pages reserved 1 1 6.0 disk1
page extent gaps 1 1 0.0 disk1
ws buffer crosses 1 1 0.0 disk1
page extent crosses 1 1 0.0 disk1
page gaps 255 1 1.0 disk1
pages used 255 1 2.0 disk1
extents used 255 1 1.0 disk1
overflow pages 255 1 0.0 disk1
pages overhead 255 1 1.0 disk1
pages reserved 255 1 6.0 disk1
page extent gaps 255 1 0.0 disk1
ws buffer crosses 255 1 0.0 disk1
page extent crosses 255 1 0.0 disk1
&Oslash&#59; sp_dbcc_faultreport报告指定的数据库对象中发现的在指定日期或该日期之前发生的故障。可以生成短报告,也可以生成长报告。

示例:

sp_dbcc_faultreport 'short'
sp_dbcc_faultreport 'long'

  

论坛徽章:
0
2 [报告]
发表于 2002-09-16 16:33 |只看该作者

SYBASE dbcc

大家觉得是不是很有必要建立一个dbccdb数据库?讨论一下这样做可以带来哪些好处?

论坛徽章:
0
3 [报告]
发表于 2002-09-16 16:37 |只看该作者

SYBASE dbcc

如果我执行sp_plan_dbccdb 之后结果为:

Recommended size for dbccdb database is 370MB (data = 368MB, 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    process count



master                            2464K      624K       640K     1
tempdb                            25200K     6304K      6301K    2
model                             64K        48K        640K     1
testdb                            214M       53M        53M      7
sybsystemdb                       64K        48K        640K     1
sybsystemprocs                    2464K      624K       640K     1


那么我是不是需要创建一个大小为370MB 的dbcc database?

论坛徽章:
0
4 [报告]
发表于 2002-09-16 17:26 |只看该作者

SYBASE dbcc

dbccdb数据库我觉得很有必要,如果你的数据不容有任何差错,还是建立为好。
但运行dbcc checkstorage 很费时的,而且在single user下用;

论坛徽章:
0
5 [报告]
发表于 2002-09-16 17:33 |只看该作者

SYBASE dbcc

我们的业务数据库是24小时的,所以,很难有机会进行这样的耗时的操作,顺便问一下,我定时执行dbcc操作就可以了,为什么一定要建库呢?

论坛徽章:
0
6 [报告]
发表于 2002-09-16 18:03 |只看该作者

SYBASE dbcc

dbcc checkstorage
产生的结果存放在dbccdb数据库的表里,如果你不delete history,它会一直保存的
dbcc checkdb,dbcc checkalloc,...
你只有定向输出到文件里
如果你在dbcc checkstorage 时,还有对数据库操作,结果会有歧义的
我现在backup前,只对关键的表作dbcc checktable,dbcc tablealloc等

我建议有条件的话,建立一个和生产机一样的数据库,将dump的数据库load到哪里,做
dbcc checkstorage,如果发现错误,修正后,再load回生产机
我现在就这么干

论坛徽章:
0
7 [报告]
发表于 2002-09-16 18:22 |只看该作者

SYBASE dbcc

是个好主意,dump的速度很快,这样就不会长时间影响业务的的运行了!

不过有机会再试吧!

论坛徽章:
0
8 [报告]
发表于 2002-09-16 18:27 |只看该作者

SYBASE dbcc

我们的数据库一直用的DUMP。很安全,可靠。

论坛徽章:
1
2017金鸡报晓
日期:2017-01-10 15:19:56
9 [报告]
发表于 2002-11-11 16:27 |只看该作者

SYBASE dbcc

dbcc checkstorage 命令的执行速度最快,检查最全面,而且只产生共享锁,应该是最好的选择

论坛徽章:
0
10 [报告]
发表于 2002-11-11 16:35 |只看该作者

SYBASE dbcc

执行dbc checkdb(database)时,业务将完全受影响!至于执行dbcc checkstorage 能否足够全面以及是否会影响 业务我还没做过测试,待会测一下看看!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP