收缩日志文件与数据文件

收缩数据库概述:

收缩 数据库 是非常耗费server性能的操作,如果没有必要不要收缩
go 
  收缩 无非就是把已经分配给数据库文件空间收回来,但是,收缩的时候 要移动数据页,而且可能造成大量的碎片,影响性能。
go 
  日志收缩和数据文件收缩不一样,日志中的虚拟文件状态 只有 在可复用 时候  才能收缩。
  而且 凡是有活动的日志的日志虚拟文件都是活动的不能收缩。
go

收缩日志概述:

日志文件收缩, 回收磁盘空间。
  数据文件 根据设计  设计的大小,一般情况不用收缩,收缩可能带来性能的问题。

日志
  如果 选择的日志恢复模型是完全,如果没有日志截断,日志增长的很大,
建议
  备份日志。
    backup log db to disk='备份设备'
  截断日志
    backup log db with no_log
  然后收缩。
    dbcc shrinkfile(2,10)


--===================================DB_Tank
USE [master]
GO

ALTER DATABASE [DB_Tank] SET RECOVERY SIMPLE WITH NO_WAIT
GO

EXEC('
USE [Db_Tank]
DBCC SHRINKFILE (''Db_Tank_Log'' , 2048)  --sql server默认文件单位为M,所以这里是2G
')

print '【'+CONVERT(varchar(20),GETDATE(),120)+'】恢复游戏库模式'
GO

USE [master]
GO

扫描二维码关注公众号,回复: 104211 查看本文章

ALTER DATABASE [Db_Tank] SET RECOVERY BULK_LOGGED WITH NO_WAIT
GO


--====================================DB_logs
USE [master]
GO

ALTER DATABASE [DB_logs] SET RECOVERY SIMPLE WITH NO_WAIT
GO

EXEC('
USE [Db_logs]
DBCC SHRINKFILE (''Db_Logs_Log'' , 2048)
')

print '【'+CONVERT(varchar(20),GETDATE(),120)+'】恢复游戏库模式'
GO

USE [master]
GO

ALTER DATABASE [Db_Logs] SET RECOVERY BULK_LOGGED WITH NO_WAIT
GO


--=======================================系统日志
/*
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG
里面的 ERRORLOG.1 错误日志很大,轮转掉它

sp_cycle_errorlog -手动启动轮转系统日志的sp

*/
/*
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data
tempdb 磁盘收缩

*/

--======================================tempdb
USE [tempdb]
GO
DBCC SHRINKFILE (N'templog' , 1024)
GO

USE [master]
GO

print '【'+CONVERT(varchar(20),GETDATE(),120)+'】收缩日志成功'
GO

print '【'+CONVERT(varchar(20),GETDATE(),120)+'】正在收缩数据库'
GO
DBCC SHRINKDATABASE(tempdb)
GO
print '【'+CONVERT(varchar(20),GETDATE(),120)+'】收缩数据库成功'

猜你喜欢

转载自www.cnblogs.com/gered/p/8984054.html