sybase缩小tempdb

查看文章
   
缩小tempdb数据库大小
2008/12/08 21:51

1. 如果有条件,强烈建议先做好所有用户数据库,包括master数据库的备份
至少要做一个master数据库的备份

2. 将下列master数据库中系统表进行bcp备份
master..sysusages
master..sysdevices
master..sysdatabases
master..syslogins
master..sysconfigures
master..syscharsets

3. isql -Usa -Ppasswd -Sservername
1>; use master
2>; go
1>; sp_configure “allow updates”, 1
2>; go

1>; begin transaction
2>; go
1>; select * from sysusages
2>; where dbid = db_id(’tempdb’)
3>; go
1>; select * from sysusages where dbid=2
2>; go
例:
dbid segmap lstart size vstart pad unreservedpgs
—— ———– ———– ———– ———– —— ————-
2 7 0 1024 4100 NULL 380
2 3 1024 76800 33554432 NULL 76500
2 4 77824 25600 33631232 NULL 25500

如果其中两兆(即lstart为0 size为1024)的行中segmap不为7,需要先将其更改为7
1>; update sysusages
2>; set segmap = 7 where dbid = db_id(’tempdb’)
3>; and lstart = 0
4>; go
如果已经为7,上述步骤可以略过

删除其中lstart不为0的所有行
1>; delete sysusages where dbid = db_id(’tempdb’)
2>; and lstart != 0
3>; go

检查删除后的结果是否正确
1>; select * from sysusages where dbid = db_id(’tempdb’)
2>;go
例:
dbid segmap lstart size vstart pad unreservedpgs
—— ———– ———– ———– ———– —— ————-
2 7 0 1024 4100 NULL 380
剩且仅剩一行信息。

如果发现删除后信息不正确,马上回滚所有已作动作
1>; rollback transaction
2>; go
如果正确,提交已作动作,这样将无法恢复
1>; commit transaction
2>; go

重新启动数据库服务器
1>; checkpoint
2>; go
1>; shutdown
2>; go

之后如果服务器正常,在没有用户进程连接进行操作的情况下,新建数据库tempdb设备,并进行数据库tempdb的扩容,之后如果一切正常,进行master数据库的备份。
1>; dump database master to ” dump_device”
2>; go


你可能感兴趣的:(数据库,null,Sybase,database,Go,数据库服务器)