免费注册 查看新帖 |

Chinaunix

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

手把手教你扩master库(不传秘笈^_^原创) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-11-19 13:26 |只看该作者 |倒序浏览
当你想扩master库的时候,却发现master库已经没有空间可以扩了。这个时候你就需要我了。^_^
(不好意思见笑了。当然还有别的方法,但俺觉得这种方法应是最简单的了。)

1、首先当然是备份你的数据库的所有系统表了。
        1>;select name from sysobjects where type='U'.
        2>;go
        将结果保存。
        bcp master..table_name out table_name -Sserver_name -Usa -P -c -t@

2、从系统信息中取出tempdb数据库的信息。
        1>; select * from sysusages where dbid=2
        2>; go
         dbid   segmap      lstart      size        vstart      pad    unreservedpgs
         ------ ----------- ----------- ----------- ----------- ------ -------------
              2           7           0        1024        2564   NULL           600
              2           7        1024       46336        4612   NULL         46336
       
        (2 rows affected)
        将第二行的信息取出来。因为这就是你需要修改的部分。
        1>; select * from sysusages where dbid=2 and vstart=4612
        2>; go
         dbid   segmap      lstart      size        vstart      pad    unreservedpgs
         ------ ----------- ----------- ----------- ----------- ------ -------------
              2           7        1024       46336        4612   NULL         46336
       
        (1 row affected)


3、以系统管理员进入数据库。修改配置信息。
        1>; sp_configure "allow updates to system tables",1
        2>; go
         Parameter Name                 Default     Memory Used Config Value Run Value
         ------------------------------ ----------- ----------- ------------ -----------
         allow updates to system tables           0           0           1            1
        Configuration option changed. The SQL Server need not be rebooted since the
        option is dynamic.
       
        (return status = 0)

4、将第二步中选出的信息做如下命令。其中size的大小是2k页为单位的。所以如果你要减小tempdb数据库的大小,
当然要修改这个选项了。同时还要修改最后一项的信息。
1>; update sysusages set size=45312 , unreservedpgs=45312 where dbid=2 and vstart=4612
2>; go
        (将tempdb数据库的大小减小2M。)
        43512 = 46336 - 1024
        2M = 1024 × 2k
5、这时你用sp_helpdb可以看到tempdb数据库的大小减少了2m。
6、将刚才从tempdb中取来的2m的大小分配给master库。
        1>;alter database master on master = 2
        2>;go
好了master数据库升级成功了。

当然这样的操作只适合在开始建库的时候没有将tempdb从master中移出,在以后的长期使用中tempdb使用了master分配给model和master之外的所有空间。

论坛徽章:
7
数据库技术版块每日发帖之星
日期:2015-08-09 06:20:00数据库技术版块每日发帖之星
日期:2015-11-03 06:20:00数据库技术版块每日发帖之星
日期:2016-02-20 06:20:00数据库技术版块每日发帖之星
日期:2016-07-13 06:20:00数据库技术版块每日发帖之星
日期:2016-07-31 06:20:00数据库技术版块每日发帖之星
日期:2016-08-01 06:20:00数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
2 [报告]
发表于 2004-11-19 18:44 |只看该作者

手把手教你扩master库(不传秘笈^_^原创)

这样做非常危险。
原因是master设备上除了master和tempdb外还常常含有其他系统库诸如sybsystemdb,sybsyntax等……
这种情况下,靠经验预计并修改sysusages值是很危险的。而且一旦失败,恐怕也不会有机会恢复的。
而且自ASE12.5.0.1以后,sybase支持disk resize这一命令,也就间接地解决了这个问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP