- 论坛徽章:
- 0
|
当你想扩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之外的所有空间。 |
|