SYBASE常见问题收集整理

更新时间:2023-05-13 04:37:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SYBASE数据库系统常见问题收集整理,

SYBASE常见问题收集整理

一、如何解决数据库被标记为"suspect"的问题之一( 一般解决方案)?

A.现象:Error 926

Severity Level 14

Error Message Text

Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation

(1) 当你使用Transact_SQL命令操作这个数据库的数据时, 出现这个信息, 这是一个严重的错误, 如果 你要使用这个数据库的数据, 必须改正这个错误.

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"

2>go

(3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status = -32768

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4.1)如果条件允许,bcp out用户数据或dump用户数据库

(5.1)这时重新启动SQL Server, 再有sa帐号注册到SQL Server.

1>begin tran

2>go

1>update master..sysdatabases

2>set status=0

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

1>sp_configure "allow updates" ,0

2>go

(4) 如果你的数据库原来有dboption(例如"select into","trunc log on chkpt"等), 你需要重新设置 这些option..

SYBASE数据库系统常见问题收集整理,

(5) 运行dbcc命令检查数据库的一致性

isql -Usa -P -i dbcc.sql -o dbcc.out

dbcc.sql文件示例:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

grep Msg dbcc.out

6) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"

2>go

SYBASE数据库系统常见问题收集整理,

如何解决数据库被标记为"suspect"的问题之二( 数据库设备损坏时的解决方案 )?

A.现象: 926错误产生的原因有几种。本文讨论当数据库设备初始化失败( 设备文件丢失或文件读写权限不正确 )时,导致数据库恢复失败,出现926错误的情况。

(1) 请先恢复数据库设备及读写权限。

(2) 启动Backup Server, 后备master数据库

1>dump database master to "/usr/sybase/master_dump.19991201"

2>go

3) 用isql登录到SQL Server, 须用sa帐号 (本文以pubs2数据库为例)

1>sp_configure "allow updates", 1

2>go

1>begin tran

2>go

1>update master..sysdatabases

2>set status = status - 256

3>Where name="pubs2"

4>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4) 重新启动SQL Server, 运行dbcc命令检查数据库的一致性编辑生成dbcc.sql文件:

dbcc checkdb("pubs2")

go

dbcc checkalloc("pubs2")

go

dbcc checkcatalog("pubs2")

go

isql -Usa -P -i dbcc.sql -o dbcc.out

grep Msg dbcc.out

(5) 后备用户数据库

1>dump database pubs2 on "/usr/sybase/pubs2_dump.19991201"

2>go

SYBASE数据库系统常见问题收集整理,

Q.如何删除坏的用户数据库?(以pubs2为例)

A.当使用drop database无法删除数据库时,使用本文所示方法可以删除。

(1)使用isql以sa注册SQL server

(2)设置允许修改系统表

1>sp_configure "allow updates",1

2>go

(3)把 要删除的用户数据库置为"suspect"状态

1>use master

2>go

1>begin tran

2>go

1>update sysdatabases set status=256

2>where name="pubs2"

3>go

如果得到(1 row affected),则

1>commit

2>go

否则

1>rollback

2>go

(4)重启server,并用isql以sa注册。

(5)删除数据库

1>dbcc dbrepair(pubs2,dropdb)

2>go

(6)恢复允许修改系统表

1>sp_configure "allow updates",0

2>go

(7)结束

SYBASE数据库系统常见问题收集整理,

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

A.关闭 Adaptive Server.

将Adaptive Server在Windows NT Services中由自动改为手动

重新启动 Windows NT server

运行sybedt32修改注册表, 删除以下内容:

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_BS

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_HS

\\HKEY_LOCAL_MACHINE\SOFTWARE\SYBASE\Server\_MS

到注册表的如下结构下:

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Environment

删除DSLISTEN, DSQUERY, SYBASE, 并修改 LIB, INCLUDE, PATH删除SYBASE有关目录 删除如下注册键值:

\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

SYBSQL_

SYBXPS__XP

SYBBCK__BS

SYBMON__MS

SYBHIS__HS

重新启动 Windows NT server

使用 Start | Control Panel | Settings | Services 确认SYBASE已经卸载

删除SYBASE Server所用数据库设备文件及SYBASE系统文件

SYBASE数据库系统常见问题收集整理,

如何更改SQL Server名称(在UNIX、OPENVMS平台上)?

A.在SYBASE产品中没有特定的函数或者存储过程用来更改SQL Server/ASE Server的名称,因此,只能手工修改某些参数或者配置来完成此任务。

需要修改interfaces文件;更改RUN_server_name文件名,并修改其内容,例如:-s(UNIX)、/SERVER (OpenVMS)后面所跟的参数(server 名称);更改配置文件名;更改errorlog文件名(如果需要);如果server名称加在了表sysservers中,需要更改'srvname'、'srvnetname'列,可使用

sp_dropserver、sp_addserver存储过程来实现。

在OpenVMS系统中还要修改RUN_server_name文件中DSLISTEN的逻辑名称,以及在使用startserver过程中/SERVER后面所跟的参数。然后,重启SQL/ASE Server。确认DSQUERY、DSLISTEN环境变量已经更改为所需内容。

另外,如果SQL/ASE Server是被设置为远程服务器,还要修改与此server相关的系统表sysservers中的字段以及interfaces文件。

理论上例如配置文件、RUN脚本、errorlog文件不需要指定server 名称(但是通常习惯指定server名称)。在RUN startup脚本中要指定server名称。

您可以根据以下提纲完成此项任务:

如果server名称加在了表sysservers中,用sp_dropserver删除。

Shut down server

编辑 interfaces文件

更改RUN_server_name文件名,并修改其内容,-s(UNIX)、/SERVER(OpenVMS)后面所跟的参数(server名称)

更改errorlog文件名(如果需要)

修改DSQUERY、DSLISTEN环境变量(如果需要)

更改配置文件名(server_name.cfg、server_name.bak、server_name.nnn),在SYBASE安装路径下Startserver

使用sp_addserver重新添加server(如果需要)

如果server是作为远程server使用的,还需要删除并重新添加。

SYBASE数据库系统常见问题收集整理,

如何配置SQL Server来做远程备份?

A.在本地机器上:

(1).本地SQL Server和Backup Server能运行。

(2).在本地的Interfaces文件中,增加远程机器上的Backup Server名称,只需―Quary‖ 行,不允许使用别名(aliases)。

请注意:在网络上每个Backup Server必须有一个唯一的名字,这个名字必须在 Interfaces文件之中,用户可以通过查看服务器运行文件来检查它,它的选项是-S(unix) 或者/Server(VMS)。

(3).执行存储过程SP-helpServer SYB_BACKUP确认本地Backup Server具有正确的网络名称。远程Backup Server不一定非要在系统表Syservers中有一条记录不可,但是有它便于测试。

请注意:不要修改SYB_BACKUP,使它指向远程Backup Server名字。

在远程机器上:

(1).确认远程Backup Server正在运行。

(2).确认远程Backup Server有与本地Backup Server不同的网络名字。

请注意:在远程机器上的Interfaces文件中,必须包含远程Backup Server的定义记录,但是它不需其他Backup Server的定义。

SYBASE数据库系统常见问题收集整理,

如何配置SQL Server 11,使得快速BCP具有更好的性能?

A.有几种方法可以改善BCP的性能:

(1)增加扩展分配(extent allocation)。缺省情况下,预分配2到31个扩展。在一个BCP批次中,未使用的

预分配扩展被释放。为了获得最佳BCP性能,设置BCP批次大小和 ―number of preallocated extents‖ 预分配扩展个数,以消除空间重新释放。使用Sp_config number of pre-allocated exetents,nn 对于系

统10:buildmaster -ycpreallocext=nn

(2)对表进行分区

(3)配置OAM页面的缓冲策略,以减少对OAM(Object Allocation Map)页面的物理读。

(4)配置大I/O的缓冲池,例如16K:

Sp-poolconfig default, "16K" (5)使用-A标记,加大网络包大小:

bcp -A 16384

SYBASE数据库系统常见问题收集整理,

如何将SQL/ASE SERVER移植到同种平台(相同操作系统)的系统上?

A.N1 这里所列出的所有步骤,并不需要按顺序执行,只是表明了在实验中成功完成这项任务的顺序。 N2 SYBASE 提示您保留直至今日的ISQL脚本,包括建立login、create database、disk init等等。使用

这些脚本会使您完成这项任务更加容易。这些脚本也可以通过master中系统表的内容来重新生成,可能 会繁琐一些。

N3 成功的关键在于目标系统中系统表的字段与源系统中相应系统表的字段相同。特别是:syslogins与 sysdatabases中的'suid 以及 'dbid';sysusages中所有行的segmap、lstart以及size。

请在数据源系统上执行以下操作:

对所有的数据库进行数据一致性检查(DBCC),并后备所有的用户数据库。

保留master 数据库中数据表的内容,使用select * from table_name命令:

sysdevices,sysusages,sysdatabses

syslogins,sysservers,syssvrroles,sysloginroles,sysremotelogins

对于sysusages 表,请使用以下命令:

select * from sysusages order by dbid,lstart

对于sysdatabases 表,请使用以下命令:

select * from sysdatabases order by dbid

使用bcp命令拷贝(2)中所列出的系统表内容。

Unix:bcp master..table_name out file_name -Usa -Psa_password -c

Vms:bcp master..table_name out file_name /username="sa"/sa_password/char

保留sp_configure命令的执行结果

请在目标系统上执行以下操作:

安装并配置新的SQL Server和Backup Server。

确认所指定的master、tempdb、sybsystemprocs大小至少等于数据源系统上相应数据库的大小,同时确认与数据源系统相同的语言模块以及字符集。

启动SQL Server,使之处于正常工作状态。参照数据源系统的配置(4中保留的执行结果)修改目标系统配置与之相同,并确认'device'参数值至少等于源系统此参数值。

在model、sybsystemprocs数据库中任意执行几个动作以判断数据库工作正常。请不要添加用户、角色、修改系统表。

重启SQL Server以测试新配置有效。

执行以下操作:

1> use master

2> go

1> sp_configure "allow updates",1

2> go

重启SQL Server。

使用bcp命令拷贝(2)中所列出的系统表内容。

Unix:bcp master..table_name in file_name -Usa -Psa_password -b 1 -c

Vms:bcp master..table_name in file_name /user="sa"/sa_password/char/batch=1 建数据库设备,大小至少等于源系统中相应数据库的大小。

SYBASE数据库系统常见问题收集整理,

运行create database和alter database的脚本(或者使用命令行)。注意create、alter顺序要与源系统create、alter顺序一致,并使用与之相同的参数。完成后请对比源系统与目标系统中的

sysdatabases、sysusages,使之完全相同,否则要重新做12这步工作。(请参照N3提示)注意: 在10.0以及更高版本中segmap字段在做了数据库load之后会被修改。

在确定需要相同的dbid时,则要采用与在源系统中create、alter相同的顺序,在目标系统中做create、 alter,并且使用相同的参数值。而这种需求仅仅是当数据库中某些objects要参考不同的数据库中的objects才会采用的。另外,这种需求只有在每一个数据库中都被采用,完成的结果才会使得sysusages表中的segment、lastart、size字段,或者是fragment与源系统中数值相同。运行以下命令,与原系统的输出进行比较:

select * from sysusages order by lstart

load用户数据库并执行dbcc检测。

执行以下操作:

1> sp_configure "allow updates",0

2> go

重启SQL Server。

后备master库以及用户数据库。

SYBASE数据库系统常见问题收集整理,

如何做Rebuild Master(没有后备master库,而使用命令disk reinit,disk refit)?

A.提示1:

如果有可能,在执行这个任务之前,请先做操作系统级SYBASE DEVICES的后备。UNIX操作系统可使用命令"dd"。因为如果disk reinit使用了错误的信息,那么,在执行了disk refit之后就会产生无法弥补的错误。倘若,存在一个SYBASE DEVICES的后备文件,将会给我们一个弥补的机会。例如:当disk reinit 使用了过小的size值,我们还可以重新恢复SYBASE DEVICES文件,重新做disk reint、disk refit。 提示2:

在使用disk reinit命令时,将覆盖SYBASE DEVICE(请参照以下语法),安全的做法是size值使用裸分区或系统文件的大小的最大值。如果使用的是UNIX裸分区,即使你不能确认SYBASE DEVICE最初大小是不是最大值,都要使用裸分区大小的最大值。

步骤:

.获得将要被恢复的SYBASE DEVICE的信息。

这些信息被用来重建sysdevices,sysusages以及sysdatabases。

.从error log的server启动信息中获得SYBASE DEVICE的设备名、指定路径。

.使用裸分区或系统文件的大小的最大值作为SYBASE DEVICE的大小。

.以上信息也可以通过最近的sysdevices系统表的内容来获得。如果对此信息怀有疑问,还是使用以上的方法比较稳妥。

.做操作系统级的SYBASE DEVICE后备。UNIX操作系统,使用"dd"命令实现。

.配置一个新的ASE Server。在以后的步骤中会用到这个新的master。

.如果需要,请再配置一个Backup Server。

.用单用户模式启动Server。

.运行disk reinit,用来重建sysdevices系统表,而没有重新初始化SYBASE DEVICE。

语法如下:

disk reinit

name="device_name",physname="physical_name",vdevno=virtual_device_number, size=number_of_blocks

SYBASE数据库系统常见问题收集整理,

完成后,请查看error log。

.确认重建的sysdevices系统表中信息正确:

——select * from sysdevices

比较表中的信息是否与error log或者保留的sysdevices中的信息相同。

.运行disk refit,用来重建sysdevices以及sysdatabases。

用法如下:

use master

go

disk refit

go

查看error log中是否有错误提示。

.当disk refit完成后,会自动shut down ASE Server。

.确认重建的系统表的信息是否正确:

——单用户模式启动ASE Server

——select * from sysusages、select * from sysdatabases

——sysusages系统表看起来是否正确?可以和以前保留的的信息进行比较。如果没有这种可能,那么应该保证不出现显而易见的错误。例如:是否缺少dbid;是否缺行;是否对于一个数据库来说只有segmap=4(表示为日志行)的行等等。

——sysdatabases系统表看起来是否正确?是不是没有显而易见的错误?

11、 启动ASE Server,查看是否所有的数据库都已经正常恢复。

.对所有的库做dbcc检查。

.对所有库做后备。

SYBASE数据库系统常见问题收集整理,

如何移植master设备?

A.以下步骤说明了如何将master设备移植到不同的磁盘上。请注意,在执行buildmaster之前,要停止SQL Server的应用。

成功的关键在于,新建的sysusages系统表中每一行内容与旧的sysusages系统表内容相符。 .对master库做dbcc检查,并后备master库。

.执行select * from table_name命令,并保留其输出内容。其中,table_name包括:sysdevices、sysusages、sysdatabases。同样,可以使用bcp命令来实现。

.执行sp_configure命令,并保留其输出内容。

.拷贝$SYBASE/server_name.cfg文件,以做保留。

.Shut down SQL/ASE Server。

.执行以下命令,创建一个新的master设备:

UNIX:buildmaster -d -ssize

VMS:buildmaster /disk= /size=size (size以页为单位,1页=2K)

.编辑RUN_server_name文件,-d(UNIX)或/device(VMS)参数指向新建的设备名。

.单用户模式启动SQL/ASE Server:

UNIX:startserver -f RUN_sever_name -m

VMS:startserver /server=server_name /masterrecover

.执行select * from sysdevices命令,并保留其输出内容。

.确认新建的sysusages系统表中每一行内容与旧的sysusages系统表内容相符,而且在配置好Server之后,没有做过alter database,那么系统表sysusages的内容是正确的。如果做过alter database,则要按原来的顺序执行这些脚本,如果没有脚本,就要到保存的sysusages系统表的信息中找到alter database的参数。

.Shutdown SQL/ASE Server,并用单用户模式启动Server,查看sysusages系统表内容是否正确。 .如果所配置的Backup Server名称不是SYB_BACKUP,则要执行:

1> sp_configure "allow updates",1

2> go

SYBASE数据库系统常见问题收集整理,

1> update sysservers set srvnetname="name in interfaces file"

where srvname="SYB_BACKUP"

2> go

.装载master库。如果新master设备的大小与旧设备大小不同,则Server会Shut down。请注意新的系统表将会被重写,而且你需要调整Sysdevices系统表中master设备的大小。请执行以下两步: .用单用户模式启动Server.

.如果新设备大小与旧设备大小不同,请执行:

1> sp_configure "allow updates",1

2> go

1> update sysdevices set high=nnnn where name="master"

2> go

其中nnnn是以页(2K)为单位的master设备的大小,此值可以从保留的sysdevices系统表的信息中找到。

如果 所建的设备比旧设备大,请执行:

1)创建一个与master设备差不多大的数据库,这样做的目的是重新初始化分 配页,使得整个master设备可用。

2)删除这个数据库。

.重启Server。

.后备master数据库。

注意:

.在装载master库之前要确定SQL Server此时的字符集和语言模块与后备master库时的字符集和语言模块相同。

.在执行此任务之前和完成以后使用sp_helpsort查看字符集与语言模块是否相同。

SYBASE数据库系统常见问题收集整理,

如何重建sybsystemprocs系统数据库?

A.依照以下步骤可以实现移动sybsystemprocs系统数据库以及设备的任务。同时这个过程也可以用来扩建sybsystemprocs系统数据库。

以下过程中所提到的语法结构,可以参看SYBASE相关资料。

SYBASE提醒您,在修改系统表时,SQL Server要以单用户模式运行,同时要以"sa"用户登录。 . 保留驻留在sybsystemprocs系统数据库中自定义的存储过程脚本。

.单用户模式启动SQL Server,执行:

1> sp_configure "allow updates",1

2> go

1> reconfigure with override(10.0版本以上,省略此步)

2> go

.删除sybsystemprocs系统数据库:

1> use master

2> go

1> drop database sybsystemprocs

2> go

在重建sybsystemprocs系统数据库之前,不要创建任何其他数据库。

.删除sysdevices系统表中有关sybsystemprocs系统数据库的信息:

1> begin tran

2> delete from sysdevices where name="sysprocsdev"

我们假定sysprocsdev是默认的sybsystemprocs系统数据库设备名。

3> select * from sysdevices

确定删除是否正确有效,如果正确,执行:

4> commit tran

SYBASE数据库系统常见问题收集整理,

否则,执行:

4>rollback

.重启SQL Server.

.创建sybsystemprocs系统数据库设备:

1> disk init name="sysprocsdev",physname="physical_path",vdevno=4,size=25600 2> go

其中size是以页为单位(512页=1M)。

sybsystemprocs系统数据库设备的vdevno应该是4,SQL Server在单用户模式下4不能被重新利用,所以如果以上语句执行时出现问题,请重启SQL Server。

.sybsystemprocs系统数据库:

1> create database sybsystemprocs on sysorocsdev=50

2> go

在sysdatabases系统表中,sybsystemprocs系统数据库的dbid=4,如果在重建sybsystemprocs系统数据库之前,没有创建任何其他数据库。

.以多用户模式启动SQL Server,并执行:

1> sp_configure "allow updates",0

2> go

3> reconfigure with override(10.0版本以上,省略此步)

4> go

.运行installmaster脚本:

%isql -Usa -Psa_password -Sserver_name -n -iinstallmaster -o< output_file

installmaster脚本在$SYBASE/scripts路径下。

.重建sybsystemprocs系统数据库中的用户自定义存储过程 。

SYBASE数据库系统常见问题收集整理,

如何恢复master数据库?

A.ASE can't setup and has no valid dump of master

1、编辑RUN_servername

在命令行最后加入:-T3607

2、单用户模式启动ASE

$cd install

$startserver -f RUN_servername -m

3、bcp out系统表

$bcp master..sysdevices out /directory.spec/devs -Usa -P -c

$bcp master..sysdatabases out /directory.spec/dbs -Usa -P -c

$bcp master..sysusages out /directory.spec/usages -Usa -P -c

$bcp master..syslogins out /directory.spec/logins -Usa -P -c

$bcp master..sysconfigures out /directory.spec/configures -Usa -P -c

$bcp master..syscharsets out /directory.spec/charsets -Usa -P -c

4、shutdownASE

5、创建新master设备

$buildmaster -d -s

(new_master_device_size以2K为单位)

6、编辑RUN_servername

将指定master设备指定为新创建的master设备,并删除在第1步中增加的参数。

7、删除/directory.spec/dbs、/directory.spec/usages文件中有关master、tempdb、model的内容。

SYBASE数据库系统常见问题收集整理,

Q.如何做 rebuild log?

A.注意:这个过程可能会引起数据的不一致性。

(1)赋予sa用户sybase_ts_role的角色

isql -Usa -P

1>sp_role "grant","sybase_ts_role",sa

2>go

1>quit

(2)将数据库置为"bypass recovery"状态

isql -Usa -P

1>sp_configure "allow updates",1

2>go

1>use master

2>go

1>update sysdatabases set status=-32768

2>where name="database_name"

3>go

1>shutdown with nowait

2>go

(3)rebuild数据库日志

isql -Usa -P

1>use master

2>go

1>dbcc rebuild_log(database_name,1,1)

2>go

1>shutdown with nowait

2>go

(4)重启SQL server

1>use master

2>go

1>update sysdatabases set status=0 where name="database_name"

2>go

1>sp_configure "allow updates",0

2>go

1>shutdown with nowait

2>go

(5)在重启SQL server之后,如果数据库恢复正常,rebuild log工作将会成功完成,否则要恢复数据库备 份,使用dump database或bcp命令。

8、单用户模式启动ASE

$cd install

$startserver -f RUN_servername -m

9、 bcp in系统表

$ bcp master..sysdevices in /directory.spec/devs -Usa -P -b 1 -c

$bcp master..sysdatabases in /directory.spec/dbs -Usa -P -b 1 -c

$bcp master..sysusages in /directory.spec/usages -Usa -P -b 1 -c

SYBASE数据库系统常见问题收集整理,

$bcp master..syslogins in /directory.spec/logins -Usa -P -b 1 -c

$bcp master..sysconfigures in /directory.spec/configures -Usa -P -b 1 -c

$bcp master..syscharsets in /directory.spec/charsets -Usa -P -b 1 -c

10、shudown ASE

11、执行installmaster脚本

$isql -Usa -P < $SYBASE/scripts/installmaster

12、启动ASE

SYBASE数据库系统常见问题收集整理,

SYBASE dbccdb的安装配置攻略(陈苏文)

作者:jazy 发表于:2003-01-16 21:42:24

dbcc checkstorage 检查数据库的一致性。在新版本的数据库中用处比任何一个DBCC命令都大,尤其在数据库备份前。这篇文章的用意是帮助你:

Ø 掌握dbcc checkstorage命令

Ø 维护dbccdb数据库

Ø 根据dbccdb生成报告

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

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

Ø 系统中存在用户数据库aca_db,容量为20MB(数据10MB、日志10MB)

Ø aca_db数据库占用disk1和disk2两个设备

Ø 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内存池的最小容量为推荐的高速缓存容量。

SYBASE数据库系统常见问题收集整理,

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")

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数据库

本文来源:https://www.bwwdw.com/article/jhpe.html

Top