收缩数据库

SQL 2008

右击要清除日志的数据库 选择"属性 "

在数据库属性中 选择"选项", 在右边"恢复模式"下拉列表框中 选择"简单" 单击确定 返回

右击要清除日志的数据库 选择"任务"-"收缩"-"数据库" 单击确定

完成收缩

 

--脚本

    USE [master]
    GO
    ALTER DATABASE DNName SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTER DATABASE DNName SET RECOVERY SIMPLE   --简单模式
    GO


    USE DNName
    GO
    DBCC SHRINKFILE (N'DNName_Log' , 11, TRUNCATEONLY)
    GO


    USE [master]
    GO
    ALTER DATABASE DNName SET RECOVERY FULL WITH NO_WAIT
    GO
    ALTER DATABASE DNName SET RECOVERY FULL  --还原为完全模式
    GO

--完成

 

sp_spaceused

显示行数、保留的磁盘空间以及当前数据库中的表、索引视图或 Service Broker 队列所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间。

sp_spaceused [[ @objname = ] 'objname' ] [,[ @updateusage = ] 'updateusage' ]

[ @objname=] ' objname '

请求其空间使用信息的表、索引视图或队列的限定或非限定名称。仅当指定限定对象名称时,才需要使用引号。如果提供完全限定对象名称(包括数据库名称),则数据库名称必须是当前数据库的名称。

如果未指定 objname,则返回整个数据库的结果。

objname 的数据类型为 nvarchar(776),默认值为 NULL。

[ @updateusage=] ' updateusage '

指示应运行 DBCC UPDATEUSAGE 以更新空间使用信息。当未指定 objname 时,将对整个数据库运行该语句;否则,将对objname 运行该语句。值可以是 truefalseupdateusage 的数据类型为varchar(5),默认值为 false

如果省略 objname ,将返回以下结果集,以提供当前数据库大小信息。

列名

数据类型

说明

database_name

nvarchar(128)

当前数据库的名称。

database_size

varchar(18)

当前数据库的大小 (MB)。database_size 包括数据和日志文件。

unallocated space

varchar(18)

未保留供数据库对象使用的数据库空间。

列名

数据类型

说明

reserved

varchar(18)

由数据库中对象分配的空间总量。

数据

varchar(18)

数据使用的空间总量。

index_size

varchar(18)

索引使用的空间总量。

unused

varchar(18)

为数据库中的对象保留但尚未使用的空间总量。

如果指定 objname,则将为指定对象返回以下结果集。 

 

DBCC SHRINKDATABASE (Transact-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 是可选参数。

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

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

TRUNCATEONLY

将文件末尾的所有可用空间释放给操作系统,但不在文件内部执行任何页移动。数据文件只收缩到最近分配的区。如果与 TRUNCATEONLY 一起指定,将忽略 target_percent

TRUNCATEONLY 只适用于数据文件。日志文件不受影响。

WITH NO_INFOMSGS

取消严重级别从 0 到 10 的所有信息性消息。

 

恢复模式旨在控制事务日志维护。有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式。通常,数据库使用完整恢复模式或简单恢复模式。

下表概述了这些恢复模式。

恢复模式

说明

工作丢失的风险

能否恢复到时点?

简单

无日志备份。

自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。

最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。

只能恢复到备份的结尾。

完整

需要日志备份。

数据文件丢失或损坏不会导致丢失工作。

可以恢复到任意时点(例如应用程序或用户错误之前)。

正常情况下没有。

如果日志尾部损坏,则必须重做自最新日志备份之后所做的更改。有关详细信息,请参阅结尾日志备份

如果备份在接近特定的时点完成,则可以恢复到该时点。有关详细信息,请参阅将数据库还原到备份中的某个时间点

大容量日志

需要日志备份。

是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。

通过使用最小方式记录大多数大容量操作,减少日志空间使用量。有关详细信息,请参阅可以尽量减少日志量的操作

如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。

否则不丢失任何工作。

可以恢复到任何备份的结尾。不支持时点恢复。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值