惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Y
Y Combinator Blog
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
I
InfoQ
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
MongoDB | Blog
MongoDB | Blog
T
Tor Project blog
The Register - Security
The Register - Security
H
Help Net Security
Cisco Talos Blog
Cisco Talos Blog
P
Privacy & Cybersecurity Law Blog
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
B
Blog RSS Feed
Latest news
Latest news
T
Threat Research - Cisco Blogs
The Hacker News
The Hacker News
C
Cisco Blogs
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
V
Vulnerabilities – Threatpost
S
Schneier on Security
P
Proofpoint News Feed
Schneier on Security
Schneier on Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
AI
AI
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
N
News and Events Feed by Topic
W
WeLiveSecurity

博客园 - 憋大招的cat

Java实现基于SOAP的XML文档网络传输及远程过程调用(RPC)-----(转) Windows mobile应用程序开发环境搭建(C++) AJAX初探-XMLHTTP与服务端交互的小示例修正 SQL Server维护中Insert语句的生成工具 整理C# 二进制,十进制,十六进制 互转附加(BCC异或校验法) 转一个数据导入导出功能的帖子(转链) 通过控制按键来控制编辑框控件的小BUG - 憋大招的cat - 博客园 近期项目知识点总结之AJAX实用联动实例-(文1) AutoCompleteExtender控件使用示例以及BUG vs2005中利用自动生成数据集、ObjectDataSource、Gridview进行组合查询 SQL Server 2005 中附加只有mdf文件的数据库(修复置疑的数据库) 防止利用Xp_cmdshell进行漏洞攻击 SQL复制数据的强大命令集-BCP知识点之二 SQL复制数据的强大命令集-BCP知识点之一 Windows XP Home Edition安裝 IIS 的方法 理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍 WebForm中弹出页面关闭的同时返回值 c#.NET和VB.NET语法的比较 本地计算机上的MSSQLSERVER服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的
收缩数据库出现的问题与解决方案
憋大招的cat · 2007-08-20 · via 博客园 - 憋大招的cat

数据库statmemberdata现在的日志文件都达到40G了,用DBCC SHRINKDATABASE来收缩这个日志,过程如下:
1、重新启动数据服务器(通过远程控制软件进行的)
2、在远程通过SQL SERVER的查询分析器中连接到数据服务器
3、远程控制数据服务器服务暂停
4、过十分钟,在远程查询分析器中执行:
   DBCC SHRINKDATABASE (statmemberdata)
   过了几分钟出现以下错误:
   “无法收缩日志文件 2(statmemberdata_log),因为所有的逻辑日志文件都在使用。

(所影响的行数为 2 行)

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。”

重新启动了数据服务器,启动完后马上有暂停了sql server的服务,然后又过了一段时间才运行DBCC SHRINKDATABASE的,提示说“所有的逻辑日志文件都在使用”呢,都试过好多次了,都是这样。

解决方案:1:分离数据库   企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库  企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
   再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs',
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
2:清空日志
DUMP  TRANSACTION  库名  WITH  NO_LOG   

再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

3: 如果想以后不让它增长
企业管理器->服务器->数据库->属性->事务日志->将文件增长限制为2M

--压缩日志

1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG

2:清空日志
DUMP  TRANSACTION  库名  WITH  NO_LOG    

再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了


3: 删除LOG
	1:分离数据库   企业管理器->服务器->数据库->右键->分离数据库
	2:删除LOG文件
	3:附加数据库  企业管理器->服务器->数据库->右键->附加数据库
	此法生成新的LOG,大小只有500多K
   再将此数据库设置自动收缩
 或用代码: 
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。

EXEC sp_detach_db @dbname = 'pubs'
EXEC sp_attach_single_file_db @dbname = 'pubs', 
   @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf'
对于有两个库文件的数据库请用下面的语句:

exec sp_attach_db @dbname = 'pubs',
 @filename1 = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
 @filename2 = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs1_Data.NDF'

如果数据库有两个日志文件,则以上方法就不行了。
需要删掉其中一个日志文件,方法如下:
截断事务日志: BACKUP LOG otsp WITH NO_LOG 清空日志 DUMP TRANSACTION otsp WITH NO_LOG   
删除LOG文件 企业管理器->服务器->数据库->右键->属性->日志文件->选择第二个日志文件删除->确定

再按上面说的删除日志的方法去附加数据库,就成功了

4: 如果想以后不让它增长企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式:alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)5.设置为自动收缩企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--还不行,就关闭用户打开的进程处理,在查询分析器中执行下面的语句

use master
go

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_killspid]
GO

create proc p_killspid
@dbname varchar(200)	--要关闭进程的数据库名
as  
	declare @sql  nvarchar(500)  
	declare @spid nvarchar(20)

	declare #tb cursor for
		select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)
	open #tb
	fetch next from #tb into @spid
	while @@fetch_status=0
	begin  
		exec('kill '+@spid)
		fetch next from #tb into @spid
	end  
	close #tb
	deallocate #tb
go

--用法  
exec p_killspid  'statmemberdata'
go
DBCC SHRINKDATABASE (statmemberdata)
go

drop proc p_killspid