
请问你是不是之前 *** 作这个数据库的时候,有很多delete表的 *** 作?
如果是的话,delete *** 作腾出来的空间是没有办法再利用起来的,所以删除表最好用truncate
原因是delete会锁住表中被删除的那部分空间,自然别人也就不能往里面写;
如果是这样,在尝试过楼上各种方法都不行之后,并且你的SQL Server 是2008 或者2008R2 或者2012
可以试试rebuild表 这可以消除表空间中 因为delete导致的锁的问题
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我们公司SQL数据库,同事把mdf分配空间从3G改成10G了,造成空间浪费很多,所以我想再还原到应该使用的大小,应该怎么做?
解析:
你可以限定它的最大空间。
最好不要限太小了,久不久压缩一下就行了,把日志清清就行了,日志可以限小点。
网页链接我是用这个方法收缩的,可以将日志收缩到1MB
守得云开见月明,花了一个上午结合前辈的博客,终于弄好了sqlserver2008的数据库日志收缩到1MB,分享给大家
# 方法步骤
1、执行SQL语句改成“简单模式”
2、收缩数据库
3、执行SQL语句改回“完全模式”
## 第一步:执行SQL语句改成“简单模式”
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名) SET RECOVERY SIMPLE --改成简单模式
GO
## 第二步:进行数据库 *** 作
相关界面截图和 *** 作
假定:
数据库名:SlowXWebDB
日志文件名:SlowXWebDB_Log
数据库日志文件过大需要清理
1选择数据库右键点击任务-收缩-文件 注意:文件类型选为日志
2如下图选择需要收缩的大小,最小为0MB,本人实测最小只能到1MB,不过已经很满足了哈哈
3点击确认,几十G的日志文件,嗖的一下就瘦身完成了看下数据库日志文件清理后的效果
## 第三步:执行SQL语句改成“完全模式”
USE [master]
GO
ALTER DATABASE SlowXWebDB (改成你需要进行收缩的数据库名)SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE datebaseName(改成你需要进行收缩的数据库名)SET RECOVERY FULL --还原为完全模式
GO
==最后不要忘记实测下数据库是否能够正常使用==
网页链接
直接给SQLServer数据库降级是不支持的。但您可以使用一个灵活的变通方法来解决这个问题。您可以使用SQLServerManagementStudio中首先为一个较低的版本生成数据库脚本,然后使用数据导入/导出向导将原来数据库数据传输到高版本数据库中。例如,如果你想降低一个SQLServer2008数据库到SQLServer2005,您可以按照以下步骤:
1在SQLServerManagementStudio2008中打开SQLServer2008数据库。
2在对象资源管理器中右键单击数据库名称并选择“任务生成脚本”
3在“脚本向导”对话框中,选择数据库的名称,并检查“脚本所有在选择数据库对象”。然后点击“下一步”。
4设置为SQLServer2005的服务器版本的脚本“选项”。
5SQLServer2005中运行脚本。
6使用SQLServer导入和导出向导从SQLServer2008到SQLServer2005导入数据
同样,如果你想降低一个SQLServer2005数据库到SQLServer2000,你也可以在SQLServer2005ManagementStudio中执行上述步骤。
这个问题我前几天正好碰上,所以,相关的关键点告诉你
特别提示:《在 *** 作之前请备份》:
1、SQL SERVER 2008 的日志会越来越大,如果是用于生产的,可能会大到可怕,反正我的数据库,前几天一看,不到1个月就十多个G的日志文件。
2、要收缩、清除其实很简单,关键点就一个:先把数据库的恢复模式从默认的“完整”改为“简单”。具体做法:对数据库点 右键 -》属性-》左边 选择页 中 点 “选项”-》找到 “恢复模式”,改成“简单”。
3、然后对数据库点 右键 -》任务-》收缩 -》文件 -》出来的界面中,文件类型 选 “日志”,点“确定”钮-》OK了。
4、再次提示,在 *** 作之前请备份,虽然我在 *** 作中没有碰上任务问题,但不保证你不出问题。
5、至于日志文件缩完了,你是否要把它改回“完整”模式,你自个看着办,我是让它一直简单,因为,以我的技术,要真的数据库崩溃了,有日志问题也是“然并卵”,反正我是一天自动两次异盘备份,加每二小时增量备份,最后再加双机热备(用软件实现的,那个软件据说要卖几万一套,具体叫什么就不说了,省得别人说我打广告,呵呵)。
6、看了一下微软的数据库镜像实现方案相关的东西,感觉太难了,不靠谱,有兴趣你可以去试试。
7、最后,顺便说,数据库的恢复模式的选择,对当前数据库的运行应该是没有什么影响的,也许对于会用日志文件进行数据查看和调整的人有用。
解决方法:
方法一
右键选择数据库-》任务-》收缩-》文件-》文件类型-》日志-》在释放未使用的空间前重新组织页
方法二(不推荐)
1 必须先改成简单模式
2 然后用
----Logical Files :
--CMS15_Data
--CMS15_Log
DBCC SHRINKFILE (N'CMS15_Log' , 1)
GO
注:Data是数据文件,Log是日志文件
以上就是关于sql 2008r2,数据库的data.mdf文件占得磁盘空间太大全部的内容,包括:sql 2008r2,数据库的data.mdf文件占得磁盘空间太大、如何缩小数据库mdf文件、数据库日志文件过大如何收缩等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)