sqlserver 日志文件收缩

sqlserver 日志文件收缩工作用使用 sqlserver 数据库常遇到数据库和日志 wenj 文件过大 简单记录下手动收缩文件大小 执行代码 use master go alterdatabas

大家好,欢迎来到IT知识分享网。

工作用使用sqlserver数据库常遇到数据库和日志wenj文件过大,简单记录下手动收缩文件大小:

执行代码:

use [master]
go
–alter database dw set recovery simple with no_wait
–go
alter database dw set recovery simple   –简单模式
go
 
use dw 
–当前数据库日记的逻辑名列表
select name,* from sys.database_files — where type=1 代表是日记文件
go
–把DW_log日记文件收缩到5M
dbcc ShrinkFile(DW_log,5)
–减小 DW 用户数据库中数据文件和日志文件的大小,以便在数据库中留出 10% 的可用空间。
dbcc SHRINKDATABASE(DW,10)
go
 
use [master]
–go
–alter database dw set recovery full with no_wait
–go
–alter database dw set recovery full    –还原为完全模式
GO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SHRINKDATABASE 参数解析

语法

SQL复制

DBCC SHRINKDATABASE ( database_name | database_id | 0 [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ) [ WITH NO_INFOMSGS ] 

参数

database_name | database_id | 0
要收缩的数据库名称或 ID。 0 指定使用当前数据库。

target_percent
数据库收缩后的数据库文件中所需的剩余可用空间百分比。

NOTRUNCATE
将分配的页面从文件的末尾移动到文件前面的未分配页面。 此操作会压缩文件中的数据。 target_percent 是可选的。 Azure SQL 数据仓库不支持此选项。

文件末尾的可用空间不会返回给操作系统,并且文件的物理大小也不会更改。 因此,指定 NOTRUNCATE 时,数据库似乎不会收缩。

NOTRUNCATE 只适用于数据文件。 NONTRUNCATE 不会影响日志文件。

TRUNCATEONLY
将文件末尾的所有可用空间释放给操作系统。 不移动文件内的任何页面。 数据文件仅收缩到最后指定的盘区。 如果使用 TRUNCATEONLY 指定,则会忽略 target_percent。 Azure SQL 数据仓库不支持此选项。

TRUNCATEONLY 将影响日志文件。 若要仅截断数据文件,请使用 DBCC SHRINKFILE。

 

示例:

sqlserver 日志文件收缩

 

 

 

 

 

 

 

 

 

 

 

SHRINKFILE 参数解析:

语法

SQL复制

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

参数

 备注

可以使用 DBCC SHRINKFILE target_size 缩小空文件的默认大小。 例如,如果创建一个 5 MB 的文件,然后在文件仍然为空的时候将文件收缩为 3 MB,默认文件大小将设置为 3 MB。 这只适用于永远不会包含数据的空文件。

对于 FILESTREAM 文件组容器,无法使用 ALTER DATABASE 删除文件,除非 FILESTREAM 垃圾回收器已运行,并删除了 EMPTYFILE 已复制到另一个容器的所有不必要文件组容器文件。 有关详细信息,请参阅 sp_filestream_force_garbage_collection (Transact-SQL)

 备注

有关删除 FILESTREAM 容器的信息,请参阅 ALTER DATABASE 文件和文件组选项 (Transact-SQL) 中的相应章节

TRUNCATEONLY
将文件末尾的所有可用空间释放给操作系统,但不在文件内部移动任何页。 数据文件只收缩到最后分配的区。 如果使用 TRUNCATEONLY 指定,则会忽略 target_size。
TRUNCATEONLY 选项不会移动日志中的信息,但会删除日志文件末尾的失效 VLF。 FILESTREAM 文件组容器不支持此选项。

示例:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

示例:

sqlserver 日志文件收缩

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/155493.html

(0)
上一篇 2025-02-18 21:00
下一篇 2025-02-18 21:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信