马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?站点注册 
 
 
 
×
 
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  |