国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > SQL Server > 正文

也談如何縮小SQL SERVER日志文件

2024-08-31 00:49:06
字體:
供稿:網(wǎng)友

前幾天也碰到日志文件過大的問題,數(shù)據(jù)庫(kù)實(shí)際大小為600m, 日志文件實(shí)際大小為33m, 但日志文件占用空間為2.8g!!!
試了多種方式,shirnk database, truncate log file, 都沒辦法將文件縮小。無論如何,這應(yīng)該算sql server的一個(gè)bug吧。

后來找到下面的代碼,就可以將日志文件縮小到自己想要的大小了。把代碼copy到查詢分析器里,,然后修改其中的3個(gè)參數(shù)(數(shù)據(jù)庫(kù)名,日志文件名,和目標(biāo)日志文件的大小),運(yùn)行即可(我已經(jīng)用過多次了)
-----
set nocount on
declare @logicalfilename sysname,
        @maxminutes int,
        @newsize int


use     marias             -- 要操作的數(shù)據(jù)庫(kù)名
select  @logicalfilename = 'marias_log',  -- 日志文件名
@maxminutes = 10,               -- limit on time allowed to wrap log.
        @newsize = 100                  -- 你想設(shè)定的日志文件的大小(m)

-- setup / initialize
declare @originalsize int
select @originalsize = size
  from sysfiles
  where name = @logicalfilename
select 'original size of ' + db_name() + ' log is ' +
        convert(varchar(30),@originalsize) + ' 8k pages or ' +
        convert(varchar(30),(@originalsize*8/1024)) + 'mb'
  from sysfiles
  where name = @logicalfilename
create table dummytrans
  (dummycolumn char (8000) not null)


declare @counter   int,
        @starttime datetime,
        @trunclog  varchar(255)
select  @starttime = getdate(),
        @trunclog = 'backup log ' + db_name() + ' with truncate_only'

dbcc shrinkfile (@logicalfilename, @newsize)
exec (@trunclog)
-- wrap the log if necessary.
while     @maxminutes > datediff (mi, @starttime, getdate()) -- time has not expired
      and @originalsize = (select size from sysfiles where name = @logicalfilename) 
      and (@originalsize * 8 /1024) > @newsize 
  begin -- outer loop.
    select @counter = 0
    while  ((@counter < @originalsize / 16) and (@counter < 50000))
      begin -- update
        insert dummytrans values ('fill log') 
        delete dummytrans
        select @counter = @counter + 1
      end  
    exec (@trunclog) 
  end  
select 'final size of ' + db_name() + ' log is ' +
        convert(varchar(30),size) + ' 8k pages or ' +
        convert(varchar(30),(size*8/1024)) + 'mb'
  from sysfiles
  where name = @logicalfilename
drop table dummytrans
set nocount off


 


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 襄汾县| 丹阳市| 开封市| 惠东县| 明溪县| 桃园市| 沙田区| 合山市| 克拉玛依市| 楚雄市| 凉城县| 石渠县| 邻水| 正蓝旗| 曲沃县| 江都市| 当涂县| 田阳县| 昌黎县| 遵义市| 吐鲁番市| 邯郸市| 桂林市| 万载县| 南安市| 江孜县| 响水县| 秀山| 青田县| 大港区| 祁门县| 若尔盖县| 兖州市| 雷山县| 娱乐| 通化县| 塔城市| 南川市| 连云港市| 友谊县| 迁西县|