LDF文件是17GB,对应的MDF文件只有3GB多。怎么瘦下来?
-最好备份日志,以后可以通过日志恢复数据。。。
以下是日志处理方法
通常不推荐第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.设置自动收缩。