存档

文章标签 ‘DBCC’,文章数:5

目标数据库: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个。

ASE 15.7 新增了命令可以将数据库对象的所有权从一个所有者移交给另一个所有者。

比如将表customer的所有权从dbo移交给bill,使用命令: alter table dbo.customer modify owner bill

不仅仅限于表,还有其它数据库对象包括:视图、存储过程、用户定义函数、默认值、规则、自定义数据类型、加密密钥等;

一次性可以授予多个数据库对象:

1、将 bill 拥有的所有表的所有权都移交给 eric:
    alter table bill.* modify owner eric preserve permissions

2、将 bill 拥有的所有对象的所有权都移交给 eric:
    alter all bill.* modify owner eric preserve permissions

preserve permissions:针对这些对象的所有显式授予或撤消的权限都将被保留,并且权限的 grantor 将更改为新的所有者。-------------------------------------------------------------------------------------------------------------------------------------------------------

以下提供的方法适用于低于ASE 15.7的版本!

SQL Server很相似,Sybase ASE数据库有一些未认证的DBCC命令。日常的维护过程中,需要一些Sybase认证的、公开的DBCC命令来完成,比如:检查数据库或者表的一致性、物理存储分配一致性、重建索引等等。对于这些公开的DBCC命令,Sybase公司是提供技术支持保障的。那些未公开的也就是未认证的DBCC命令,仅限Sybase内部工程师使用;Sybase公司不提供技术支持也不会对于此产生的问题负责。

所以,不要在生产环境上使用未认证的DBCC命令。在测试环境上研究学习使用倒是可以的。

需要记住的是没人对这些未认证的DBCC产后的后果负责。

本篇介绍一个用来关闭或者重启某个用户数据库的未认证DBCC命令:dbcc dbreboot。顺便介绍一个修改对象所有者的方法。因为在ASE中对象的所有权是不能移交的,其它用户只有使用权。这点和中国土地权方面很类似吗?美国人信奉私有制,怎么设计出来这个数据库实现思路?呵呵,有点扯远了~~~

这边的测试环境是ASE15.0.3,我不确定从哪个ASE版本开始支持这个dbcc dbreboot命令的。

首先用isql连接到ASE15.0.3数据库,先打开在屏幕显示输出信息的选项,

dbcc traceon(3604)

go

先来查看一下dbcc dbreboot的用法:

dbcc writepage是sqlserver 2000 和 2005中未公开的命令,也就是说使用这些未官方支持的命令出现的任何后果与MS无关。 同样,本文仅仅演示dbcc writepage的使用,您在操作时出现的任何后果与本人无关。 dbcc writepage的语法为:    dbcc writepage ({ dbid, ‘dbname’ }, fileid, pageid, offset, length, data) 下面演示dbcc writepage的使用方法: —————————————————————————- 第一步:创建一个测试表 1> create table test (id int not null,name varchar(30) null) 2> go 1> insert into test 2> select 1,'china' 3> go (1 行受影响) 1> insert into test 2> select 2,'beijing' 3> [...]

今天下午在本机测试环境下成功恢复了drop table操作后的表内的数据。 配合使用dbcc page, dbcc pglinkage,dbcc allocdump,并利用“欺骗”dataserver的办法将数据恢复出来。用了不到半个小时的时间恢复了一张有几十万行记录的表。操作的详细步骤用屏幕录像软件进行了记录保存。 ———————————————————————————————————— ——— 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载; ——— 转载务必注明原始出处 : http://www.dbainfo.net ——— 关键字: 恢复 误操作  drop truncate  dbcc page pglinkage allocdump ————————————————————————————————————

SQL SERVER DBCC命令解释 —————————————— –1 dbcc trraceon DBCC TRACEOFF –对于数据库死锁,通常可以通过TRACE FLAG 1204、1205、1206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由。 –TRACEON函数的第三个参数设置为-1,表示不单单针对当前connection, –而是针对所有包括未来建立的connection。这样,才够完全,否则只是监视当前已经建立的数据库连接了。 –执行下面的话可以把死锁记录到Errorlog中: dbcc traceon (1204, 3605, -1) go dbcc tracestatus(-1) go –说明: –260:打印关于扩展存储过程动态链接库的版本信息 –444:停止auto-parameterization –1200:输出锁信息 –1204:传回参与死锁的SQL SERVER相关程序之运行数据 –1211:停止lock escalation(锁升级) –1252:显示动态选择锁的相关信息 –2528:通过 DBCC CHECKDB、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 禁用对象的并行检查。 –默认情况下,并行度由查询处理器自动确定。最大并行度的配置方式与并行查询相同。 –有关更多信息,请参见 max degree of parallelism 选项。 — 通常情况下,应将并行 DBCC 保留为启用状态。执行 DBCC CHECKDB 时, [...]