LDF文件是17GB,对应的MDF文件只有3GB多。怎么瘦下来?

SQL代码

-最好备份日志,以后可以通过日志恢复数据。。。

以下是日志处理方法

通常不推荐第4步和第6步。

步骤4不安全,可能会损坏数据库或丢失数据。

第六步如果日志达到上限,以后数据库处理会失败,只有清理日志后才能恢复。

- */

-下面的所有库名都是指您要处理的数据库的库名。

1.清除日志

用NO_LOG转储事务库名

2.截断事务日志:

带NO_LOG的备份日志库名称

3.收缩数据库文件(如果不压缩,数据库文件不会缩小。

企业管理器-右键单击要压缩的数据库-所有任务-收缩数据库-收缩文件。

-选择日志文件-选择在收缩模式下收缩到XXM,这里将给出允许收缩的最小m数。直接输入该号码并确认。

-选择数据文件-在收缩模式下选择收缩到XXM,这里会给出允许收缩的最小m数。直接输入该号码并确认。

也可以用SQL语句来完成。

-缩小数据库

DBCC心理数据库(图书馆名称)

-收缩指定的数据文件,1是文件号,可以用这条语句查询:select * from sysfiles。

DBCC心理档案(1)

4.为了最小化日志文件(如果是sql 7.0,这一步只能在查询分析器中完成)。

A.分离数据库:

企业管理器-服务器-数据库-右键单击-分离数据库

删除我电脑里的日志文件。

C.其他数据库:

企业管理器-服务器-数据库-右键单击-附加数据库

这种方法将生成一个大小仅超过500 K的新日志。

或者使用代码:

以下示例分离pubs,然后将pubs中的文件附加到当前服务器。

A.分离

EXEC sp_detach_db @dbname = '库名'

B.删除日志文件

C.重附着

execsp _ attach _ single _ file _ db @ dbname = '库名',

@ phys name = ' c:\ program files \ Microsoft SQL server \ MSSQL \ data \ library name . MDF '

5.为了在将来自动收缩,进行以下设置:

企业管理器-服务器-右键单击数据库-属性-选项-选择“自动收缩”

- SQL语句设置方法:

EXEC sp_dboption '库名','自动收缩',' TRUE '

6.如果你想防止它将来长得太大。

企业管理器-服务器-右键单击数据库-属性-事务日志

-将文件增长限制为xM(x是您允许的最大数据文件大小)

-如何设置- SQL语句:

修改文件(name=逻辑文件名,maxsize=20)。

-其他答案(5分)-

SQL代码

用BACKUP LOG database WITH NO_LOG清除日志。

将数据库属性中的故障恢复模式更改为“简单”会大大降低日志的增长速度。

如果恢复模式设置为简单,它将不支持时间点恢复,但日志文件将非常小。如果数据更重要,建议将数据库的恢复模式设置为完整。

用NO_LOG命名备份日志数据库后,非活动日志会被截断,物理日志文件的大小不会减少,但逻辑日志会减少。收缩数据库后,不活动的虚拟日志将被删除,以便在不损坏数据的情况下释放空间。

如果日志被截断,数据库被收缩,则不能直接使用最新的完整数据库备份进行时间点还原。建议立即备份数据库,以防万一。

2.在sql server运行时,可以删除主数据库的事务日志文件吗?

步骤如下:(1)。分离数据库企业管理器-数据库-右键单击要删除日志的数据库-全部。

任务-分离数据库

(2),然后删除日志文件

(3),然后附上数据库

企业管理器-数据库-右键单击数据库-所有任务-附加数据库此时仅附加。Mdf就行。

3.压缩SQL数据库和日志的详细方法。

SQL Server 2000基础教程-压缩数据库经过一段时间的使用,往往会因为数据删除而导致数据库中空闲空间过多。此时,需要减少分配给数据库文件和事务日志文件的磁盘空间,以避免浪费磁盘空间。当数据库中没有数据时,可以通过修改数据库文件属性来直接改变其占用的空间,但是当数据库中有数据时,这样会破坏数据库中的数据,所以需要使用压缩来减少数据库空间。可以在数据库属性选项中选择“自动收缩”选项,这样系统可以自动压缩数据库,也可以手动压缩。有两种方法可以手动压缩数据库:

1.用企业管理器压缩数据库

在企业管理器中右键单击要压缩的数据库,在快捷菜单中选择“所有任务”中的“收缩数据库”选项,打开如图6-10所示的对话框。您可以在图6-10所示的对话框中选择数据库压缩方法,也可以选择使用压缩计划或压缩单个文件。点击图6-10中的“文件”按钮,打开图6-11所示的数据库文件压缩对话框,可以对每个数据库文件进行不同的压缩设置。

点击图6-10中的“更改”按钮,打开压缩计划编辑对话框,如图6-12所示,可以指定压缩计划的执行方式。点击图6-12中的“变更”按钮,将出现如图6-13所示的周期性工作计划编辑对话框,在此可以编辑计划执行的周期或时间点。设置完成后点击“确定”按钮,开始压缩数据库,压缩后会显示一个压缩信息框。

2.使用Transact-SQL命令压缩数据库。

您可以使用DBCC SHRINKDATABASE和DBCC SHRINKFILE命令来压缩数据库。DBCC SHRINKDATABASE命令压缩数据库,DBCC SHRINKFILE命令压缩数据库中指定的文件。

(1) DBCC心理数据库

DBCC SHRINKDATABASE命令的语法如下:

DBCC心理数据库(数据库名称[,目标百分比]

[,{NOTRUNCATE | TRUNCATEONLY}])

参数描述如下:

Target_percent指定数据库压缩后未使用的数据库大小的百分比。如果指定的百分比太大,超过了压缩前未使用空间的比例,则不会压缩数据库。并且压缩的数据库不能小于数据库最初设置的容量。

不后悔

数据库缩减后的剩余空间保留在数据库中,不会返回给操作系统。

。如果未选择此选项,剩余空间将返回给操作系统。

仅截断

将数据库缩减后的剩余空间返回给操作系统。使用此命令时,SQL Server会将文件缩小到上次文件分配的区域,但不会移动任何数据文件。选择此选项时,target_percent选项无效。示例6-14:压缩数据库mytest的未使用空间是数据库大小的20%。

dbcc shrinkdatabase (mytest,20)

运行结果如下:

DBCC死刑执行完毕。如果DBCC印刷错误

消息,请联系您的系统管理员。

(2) DBCC心理档案

DBCC SHRINKFILE命令压缩当前数据库中的文件。其语法如下:

DBCC心理档案({文件名|文件id }

{ [,target_size] |

[,{ empty file | NOTRUNCATE | truncate only }]})

参数描述如下:

文件标识

指定要压缩文件的标识号(ID)。

。文件的ID号可以通过FILE_ID()函数传递,或者如本章前面所述。

Sp_helpdb系统存储过程。

目标大小

指定文件的压缩大小。以MB为单位。如果不指定此选项,SQL Server将尽可能减少文件。

空文件

表示不再使用该文件,并且该文件中的所有数据将被移动到同一文件组中的其他文件。在执行带有该参数的命令后,可以使用ALTER DATABASE命令删除该文件。其他参数不运行和截断ONLY和DBCC收缩数据库。

命令中的意思是一样的。示例6-15:将数据库mydb中的数据库文件mydb_data2的大小压缩到1MB。使用mydb dbcc shrinkfile (mydb_data2,1)

企业管理器中的方法:

1,打开企业管理器

2.打开要处理的数据库。

3.点击顶部菜单>工具> SQL查询分析器,打开SQL查询分析器

4.在输入窗口中输入:

代码:

用NO_LOG转储事务[数据库名]

带NO_LOG的备份日志[数据库名]

DBCC心理数据库([数据库名称])

单击绿色小三角形(或按F5)执行查询,并等待状态栏提示处理完成。

就!

程序中的方法:

压缩数据库日志

-1.清除日志

exec(' DUMP TRANSACTION['+@ dbname+']WITH NO _ LOG ')

-2.截断事务日志:

exec(' BACKUP LOG['+@ dbname+']WITH NO _ LOG ')

-3.收缩数据库文件(如果不压缩,数据库文件不会缩小。

exec('DBCC心理数据库(['+@数据库名+'])')

4、减少日志的方法:

首先,我们按照以下步骤进行:

1,用no_log转储事务库名

2、dbcc shrinkfile(日志文件名)

3.收缩数据库

4.设置自动收缩。

第二,分离数据库,删除日志文件,然后附加,OK!右键单击数据库-所有任务-分离或附加

第三,1,备份日志的名称用no_log,2,dbcc shrinkfile(logfilename),3,收缩数据库。

4.设置自动收缩。