马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册
×
1 准备工作 1、备份master和用户数据库。 2、在做以下操作时,确认没有其它业务在操作。 3、将用户数据库设置为单用户状态。 sp_dboption ‘dbname’,’single’,’true’ go use dbname go checkpoint go
2 查询出日志设备文件 Sp_helpdb dbname go
输出类似如下: device_fragments size usage created free kbytes ------------------------------ ------------- -------------------- ------------------------- ---------------- xtpt 200.0 MB data only Aug 10 2007 1:53PM 186856 xtpt 100.0 MB data only Aug 10 2007 1:53PM 101936 xtpt 300.0 MB data only Aug 10 2007 1:53PM 306000 xtpt 100.0 MB data only Aug 10 2007 1:53PM 102000 xtpt 324.0 MB data only Aug 10 2007 1:53PM 330480 xtpt_log 54.0 MB log only Sep 10 2007 4:39PM not applicable xtpt_log1 100.0 MB log only Sep 11 2007 10:54AM not applicable 如果只有一个数据库设备用于日志,这时候需要添加一个数据库日志设备。如果有多个日志设备,直接进行下一步操作。
3 查询日志段使用的设备名 select sysdevices.name,sysusages.* from sysusages,sysdevices where sysusages.dbid = 6 and sysusages.vstart=sysdevices.low and sysusages.segmap = 4 order by sysusages.lstart
这里查询出来有多条记录,在下一步删除日志段的时候,要从后向前删除,直道达到你的要求。 name dbid segmap lstart size vstart pad unreservedpgs crdate ------------------------------ ------ ----------- ----------- ----------- ----------- ------ ------------- -------------------------- xtpt_log 6 4 131072 6912 67108864 NULL 6885 Sep 10 2007 4:39PM xtpt_log1 6 4 137984 12800 83886080 NULL 12750 Sep 11 2007 10:54AM
4 在数据库设备上删除日志段 use dbname go sp_dropsegment logsegment,dbname,devicename go
例如: use xtpt go sp_dropsegment logsegment,xtpt,xtpt_log1 go
5 将日志段设备扩展为数据段设备 sp_extendsegment segname,dbname,devname
例如: sp_extendsegment default, xtpt,xtpt_log1 go
6 进行数据库检查 dbcc traceon(3604) go dbcc checkdb(dbname) go dbcc checkalloc(dbname) go dbcc checkdb(master) go dbcc checkalloc(master) go
7 完成后的处理 重起数据库Server,将应用数据库的单用户取消。 sp_dboption ‘dbname’,’single’,’false’ go use dbname go checkpoint go
注意: 以上操作是比较危险的操作,所以请在操作前一定注意做好数据备份。 FROM:http://bbs.chinaunix.net/thread-1011484-1-1.html |