引用: 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志: BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(库名)
sql server 中收缩数据库有意义吗??http://topic.csdn.net/u/20100813/20/87f459c5-7fc0-4a45-8899-328f14827698.html?67044
这里我建议你做几件事将你的TEMPDB 移植到其他的盘符下不要在C盘下收缩数据库是很简单的事情分为 SQL SERVER 2008 和 SQLL 2005 SQL SERVER 2000 两种因为SQL SERVER 2008 已经废除了 backup log with no_log 等语句 sql server 2005 2000 的收缩方法请看在保证数据库正常备份的情况下,DUMP日志2005 数据库中可以使用use [目标数据库]gobackup log [目标数据库] with no_loggodbcc shrinkdatabase ('目标数据库', 20, truncateonly)2008 的方法分析: 在2005上可以使用的命令已经在sql server 2008上不能使用了sql server 2008 不在支持 backup log with no_log ,需要替换为USE [master] GO ALTER DATABASE [目标数据库] SET RECOVERY SIMPLE WITH NO_WAIT GODBCC shrinkdatabase ('目标数据库', truncateonly)USE [master] GO ALTER DATABASE [目标数据库] SET RECOVERY FULL WITH NO_WAIT GO
请问这些方法,如果有人正在用,有transaction的话,行吗? 不想restart sql server
我在本地按照liuhuayang的做了,出现 DBCC SHRINKDATABASE: File ID 1 of database ID 2 was skipped because the file does not have enough free space to reclaim. DBCC SHRINKDATABASE: File ID 2 of database ID 2 was skipped because the file does not have enough free space to reclaim. DBCC execution completed. If DBCC printed error messages, contact your system administrator.
另外如果是 sql server 2008 其实就更好办了1 tempdb 数据库置于 simple 的状态2 打开 auto shrink的选择它会自动开始收缩的,不会影响任何人的操作另外由于你C盘的空间估计是快满了, 建议你为 tempdb在 E盘上建立 ndf 和 LDF ,这样你的数据库至少还能正常工作,不至于在C盘饱满后数据库停机
我运行 ALTER DATABASE tempdb SET RECOVERY SIMPLE WITH NO_WAIT 出现错误 Option 'RECOVERY' cannot be set in database 'tempdb'.
tempdb 默认为 simple 模式 你不需要改变在改变模式直接USE [tempdb] GO DBCC SHRINKDATABASE(N'tempdb' ) GO
另外把auto shrink 模式打开USE [master] GO ALTER DATABASE [tempdb] SET AUTO_SHRINK ON WITH NO_WAIT
使用 dbcc shrinkfile() 收缩下你的数据库文件和日志文件..合理存放tempdb库是个关键的地方 因为这个库比较重要 要保持良好I/O吞吐 移动tempdb到d:\ use master; go alter database tempdb modify file (name = tempddate,filename='d:\tempdbmodified.mdf'); go alter database tempdb modify file (name = templog,filename='d:\templogmodified.ldf'); go
17楼的,出现如下错误 Option 'AUTO_SHRINK' cannot be set in database 'tempdb'.
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
这里我建议你做几件事将你的TEMPDB 移植到其他的盘符下不要在C盘下收缩数据库是很简单的事情分为 SQL SERVER 2008 和 SQLL 2005 SQL SERVER 2000 两种因为SQL SERVER 2008 已经废除了 backup log with no_log 等语句 sql server 2005 2000 的收缩方法请看在保证数据库正常备份的情况下,DUMP日志2005 数据库中可以使用use [目标数据库]gobackup log [目标数据库] with no_loggodbcc shrinkdatabase ('目标数据库', 20, truncateonly)2008 的方法分析: 在2005上可以使用的命令已经在sql server 2008上不能使用了sql server 2008 不在支持 backup log with no_log ,需要替换为USE [master]
GO
ALTER DATABASE [目标数据库] SET RECOVERY SIMPLE WITH NO_WAIT
GODBCC shrinkdatabase ('目标数据库', truncateonly)USE [master]
GO
ALTER DATABASE [目标数据库] SET RECOVERY FULL WITH NO_WAIT
GO
不想restart sql server
DBCC SHRINKDATABASE: File ID 1 of database ID 2 was skipped because the file does not have enough free space to reclaim.
DBCC SHRINKDATABASE: File ID 2 of database ID 2 was skipped because the file does not have enough free space to reclaim.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
你看上面说的已经很清楚了,你tempdb 的磁盘是不是 空间已经很少了,做 shrink也是需要一定空间的你现在的磁盘空间恐怕是不足了
ALTER DATABASE tempdb SET RECOVERY SIMPLE WITH NO_WAIT
出现错误
Option 'RECOVERY' cannot be set in database 'tempdb'.
tempdb 默认为 simple 模式 你不需要改变在改变模式直接USE [tempdb]
GO
DBCC SHRINKDATABASE(N'tempdb' )
GO
GO
ALTER DATABASE [tempdb] SET AUTO_SHRINK ON WITH NO_WAIT
移动tempdb到d:\
use master;
go
alter database tempdb
modify file (name = tempddate,filename='d:\tempdbmodified.mdf');
go
alter database tempdb
modify file (name = templog,filename='d:\templogmodified.ldf');
go
Option 'AUTO_SHRINK' cannot be set in database 'tempdb'.