笔记339 SQL Server 2008如何压缩日志(log)文件? 2013-8-10

笔记339 SQL Server 2008如何压缩日志(log)文件?  2013-8-10

 1 --SQL Server 2008如何压缩日志(log)文件?  2013-8-10
 2 
 3 --方法一:
 4 DUMP TRAN gposdb WITH no_log
 5 BACKUP LOG [GPOSDB] WITH no_log
 6 DBCC SHRINKDATABASE([GPOSDB])
 7 
 8 EXEC [sys].[sp_helpdb] @dbname = gposdb -- sysname
 9 
10 --BigData为数据库名
11 DUMP TRANSACTION BigData WITH NO_LOG
12 BACKUP LOG BigData WITH NO_LOG
13 DBCC SHRINKDATABASE(BigData )
14 
15 --执行以上语句可以快速压缩日志文件到1M。
16 
17 --但是以上语句中前两行在SQL Server 2008下无法执行 ,
18 --
19 --第一行提示“Incorrect syntax near the keyword 'TRANSACTION'.”
20 --
21 --第二行提示“One or more of the options (no_log) are not supported for this statement. Review the documentation for supported options. ”
22 --
23 --第三行可以执行。但日志log文件没有任何变化。
24 
25 --原来SQL Server 2008 已经不再支持 DUMP TRANSACTION和BACKUP LOG WITH NO_LOG,详情请看
26 --  http://msdn.microsoft.com/zh-cn/library/ms187315%28SQL.90%29.aspx
27 --  http://msdn.microsoft.com/zh-cn/library/ms186865.aspx
28 --
29 --sql Server 2005说明中明确:包含 DUMP 语句是为了向后兼容。而 后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 BACKUP。
30 --
31 --尝试方法三: 
32 --
33 --代码
34 use DB_NAME
35 sp_dboption DB_NAME, "trunc. log on chkpt.", true
36 checkpoint
37 sp_dboption DB_NAME, "autoshrink", true
38 
39 --尝试方法四:(请提前备份文件!!)
40 --
41 --1. Detach数据库。
42 --2.删除log文件。
43 --3. 附加数据库,选移除log文件,此时SQL Server 会自动重新建立一个512K 的Log 文件。
44 
45 
46 
47 --方法五(没有试过,请提前备份文件!!):
48 --
49 -- 1. 停止 SQL Server 的服务
50 -- 2. 使用删除 Log文件
51 -- 3. 重新启动SQL Server 服务,此时SQL Server 会自动重新建立一个1MB 的Log 文件。
52 
53 
54 --方法六: (尘尘提供)
55 --先设置恢复模式为“简单恢复”模式,再收缩:
56 
57 ALTER DATABASE BigData
58 SET RECOVERY SIMPLE;--设置简单恢复模式
59 GO
60 DBCC SHRINKFILE (BigData_Log, 1);
61 GO
62 ALTER DATABASE BigData
63 SET RECOVERY FULL;--恢复为原模式
64 GO
65 
66 
67 --方法七: (尘尘提供)
68 
69 
70 
71 USE BigData;
72 GO
73 BACKUP LOG DATABASENAME TO DISK='d:\test.bak'
74 -- Shrink the truncated log file to 1 MB.
75 DBCC SHRINKFILE (Bigdata_Log, 1);
76 GO

 

posted @ 2013-08-13 19:59 桦仔 阅读(...) 评论(...)  编辑 收藏