[转帖]调整数据库日志空间为数据空间
<div class="t_msgfont" id="message7551116">1 准备工作<br/> 1、备份master和用户数据库。<br/> 2、在做以下操作时,确认没有其它业务在操作。<br/> 3、将用户数据库设置为单用户状态。<br/> sp_dboption ‘dbname’,’single’,’true’<br/> go<br/> use dbname<br/> go<br/> checkpoint<br/> go<br/><br/>2 查询出日志设备文件<br/>Sp_helpdb dbname<br/>go<br/><br/>输出类似如下:<br/>device_fragments size usage<br/> created free kbytes<br/>------------------------------ ------------- --------------------<br/> ------------------------- ----------------<br/>xtpt 200.0 MB data only<br/> Aug 10 2007 1:53PM 186856<br/>xtpt 100.0 MB data only<br/> Aug 10 2007 1:53PM 101936<br/>xtpt 300.0 MB data only<br/> Aug 10 2007 1:53PM 306000<br/>xtpt 100.0 MB data only<br/> Aug 10 2007 1:53PM 102000<br/>xtpt 324.0 MB data only<br/> Aug 10 2007 1:53PM 330480<br/>xtpt_log 54.0 MB log only<br/> Sep 10 2007 4:39PM not applicable<br/>xtpt_log1 100.0 MB log only<br/> Sep 11 2007 10:54AM not applicable<br/>如果只有一个数据库设备用于日志,这时候需要添加一个数据库日志设备。如果有多个日志设备,直接进行下一步操作。<br/><br/>3 查询日志段使用的设备名<br/>select sysdevices.name,sysusages.* from sysusages,sysdevices where sysusages.dbid = 6 and sysusages.vstart=sysdevices.low and sysusages.segmap = 4 order by sysusages.lstart<br/><br/>这里查询出来有多条记录,在下一步删除日志段的时候,要从后向前删除,直道达到你的要求。<br/>name dbid segmap lstart size<br/> vstart pad unreservedpgs crdate<br/>------------------------------ ------ ----------- ----------- -----------<br/> ----------- ------ ------------- --------------------------<br/>xtpt_log 6 4 131072 6912<br/> 67108864 NULL 6885 Sep 10 2007 4:39PM<br/>xtpt_log1 6 4 137984 12800<br/> 83886080 NULL 12750 Sep 11 2007 10:54AM<br/><br/>4 在数据库设备上删除日志段<br/>use dbname<br/>go<br/>sp_dropsegment logsegment,dbname,devicename<br/>go<br/><br/>例如:<br/>use xtpt<br/>go<br/>sp_dropsegment logsegment,xtpt,xtpt_log1<br/>go<br/><br/>5 将日志段设备扩展为数据段设备<br/>sp_extendsegment segname,dbname,devname<br/><br/>例如:<br/>sp_extendsegment default, xtpt,xtpt_log1<br/>go<br/><br/>6 进行数据库检查<br/>dbcc traceon(3604)<br/>go<br/>dbcc checkdb(dbname)<br/>go<br/>dbcc checkalloc(dbname)<br/>go<br/>dbcc checkdb(master)<br/>go<br/>dbcc checkalloc(master)<br/>go<br/><br/>7 完成后的处理<br/>重起数据库Server,将应用数据库的单用户取消。<br/>sp_dboption ‘dbname’,’single’,’false’<br/>go<br/>use dbname<br/>go<br/>checkpoint<br/>go<br/><br/><br/>注意:<br/> 以上操作是比较危险的操作,所以请在操作前一定注意做好数据备份。</div><div class="t_msgfont"><div class="msgheader">QUOTE:</div><div class="msgborder"><div class="t_msgfont">FROM:http://bbs.chinaunix.net/thread-1011484-1-1.html</div><div class="t_msgfont">作者:<a class="bold" href="http://bbs.chinaunix.net/profile-uid-181706.html" target="_blank">jarjar</a></div></div></div>
页:
[1]