sqlserver_logfile.sql

来自「SQL server由于应用程序不够优问题,导致日志文件太大.这是解决这个问题的」· SQL 代码 · 共 41 行

SQL
41
字号
--数据库日志满处理步骤(业务库)

--原因:通常是由于通信执行错误导致日志增长。

--步骤:1. 关闭通信和系统。

--2. 将recive文件夹里的文件备份起来然后删除原文件。

--3. 收缩日志文件,按如下步骤逐步执行。

--3.1.终止数据库用户进程
  use master  
  declare   @dbname   varchar(200)
  declare   @sql   nvarchar(500)     
  declare   @spid   nvarchar(20)   
  set	    @dbname='dbname'   --要断开连接的库名
  declare   #tb   cursor   for   
  select   spid=cast(spid   as   varchar(20))   from   master..sysprocesses   where   dbid=db_id(@dbname)   
  open   #tb   
  fetch   next   from   #tb   into   @spid   
  while   @@fetch_status=0   
  begin     
  exec('kill   '+@spid)   
  fetch   next   from   #tb   into   @spid   
  end     
  close   #tb   
  deallocate   #tb

--3.2.分离数据库
  sp_detach_db N'dbname', N'true'

--3.3.附加数据库
  sp_attach_db N'dbname' , N'D:\data\dbname.mdf', N'D:\data\dbname.ldf'
  dbname..sp_changedbowner 'sa', false --所有者改为sa,false表示除去旧数据库所有者的现有别名。

--3.4.收缩日志文件
 use dbname
 DBCC SHRINKFILE (N'dbname_log',TRUNCATEONLY) --TRUNCATEONLY将文件收缩到上一次分配的大小
----select * from sysfiles --查看文件名 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?