免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2914 | 回复: 7

减少tempdb数据库尺寸 [复制链接]

论坛徽章:
0
发表于 2003-04-23 14:35 |显示全部楼层
首先,强调一下,这是一个非常危险的操作,没有必要的话不要尝试。

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

论坛徽章:
0
发表于 2003-04-23 15:18 |显示全部楼层

减少tempdb数据库尺寸

对于log数据库尺寸的改变是否同样适合?

论坛徽章:
0
发表于 2003-04-23 16:29 |显示全部楼层

减少tempdb数据库尺寸

不一样 非 tempdb 数据库千万不要这样干!!!!

论坛徽章:
0
发表于 2003-04-23 17:08 |显示全部楼层

减少tempdb数据库尺寸

那么如何把一个扩展设备从日志库中删除?

论坛徽章:
0
发表于 2003-04-24 09:28 |显示全部楼层

减少tempdb数据库尺寸

有一些 非官方 或者 官方非正式文档中 可能有提及这些方法,但因为太危险,不建议你使用。

论坛徽章:
0
发表于 2003-04-24 10:13 |显示全部楼层

减少tempdb数据库尺寸

怎么才能把分配给数据库pubs2的设备回收呢?

论坛徽章:
0
发表于 2003-04-24 11:27 |显示全部楼层

减少tempdb数据库尺寸

对于pubs2这种测试库 把 库 删了 就可以了
需要的时候在重新创建就行了

论坛徽章:
0
发表于 2003-04-24 11:36 |显示全部楼层

减少tempdb数据库尺寸

这个当然可以,pubs2只是举个例子。
我是想知道如果碰到重要的用户数据,又想回收空间,那该怎么办?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP