SqlServer壓縮數據庫日志


declare @dbName varchar(20)--數據庫名稱
declare @dbNamelog varchar(20)--數據庫日志文件名稱

--替換成自己的文件名稱
select @dbName='dbname'
select @dbNamelog='dbname_log'


declare @sql nvarchar(2000)

set @sql='

USE '+@dbName+'

ALTER DATABASE '+@dbName+' SET RECOVERY SIMPLE WITH NO_WAIT

ALTER DATABASE '+@dbName+' SET RECOVERY SIMPLE

USE '+@dbName+'

DBCC SHRINKFILE (N'''+@dbNamelog+''' , 11, TRUNCATEONLY)

USE '+@dbName+'

ALTER DATABASE '+@dbName+' SET RECOVERY FULL WITH NO_WAIT

ALTER DATABASE '+@dbName+' SET RECOVERY FULL



SELECT file_id, name FROM sys.database_files'

exec(@sql)

主要語法如下:

DBCC SHRINKFILE
    file_name | file_id }
        { [ ,target_size ]
            | [ , { EMPTYFILE | NOTRUNCATE | TRUNCATEONLY } ] 
        }
    )

參數

file_name

是已收縮文件的邏輯名稱。文件名必須符合標識符的規則。

file_id

是要收縮的文件的標識 (ID) 號。若要獲得文件 ID,請使用 FILE_ID 函數或在當前數據庫中搜索 sysfiles

target_size

是用兆字節表示的所要的文件大小(用整數表示)。如果沒有指定,DBCC SHRINKFILE 將文件大小減少到默認文件大小。

EMPTYFILE

將所有數據從指定文件中遷移到同一文件組中的其它文件

NOTRUNCATE

導致將釋放的文件空間保留在文件中。

TRUNCATEONLY

導致文件中的任何未使用的空間釋放給操作系統,並將文件收縮到上一次分配的大小,從而減少文件大小,而不移動任何數據。不嘗試將行重新定位到未分配頁。如果使用 TRUNCATEONLY,將忽略 target_size

 

轉至:https://www.cnblogs.com/wangqiang3311/p/7687073.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM