sql 2008r2,数据库的data.mdf文件占得磁盘空间太大

sql 2008r2,数据库的data.mdf文件占得磁盘空间太大,第1张

请问你是不是之前 *** 作这个数据库的时候,有很多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文件、数据库日志文件过大如何收缩等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10192585.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存