我有一个数据库,MDF数据文件有6个G,然后我把里面的数据和表格瘦身后,mdf文件变成了100MB,

作者&投稿:欧肢 (若有异议请与网页底部的电邮联系)
LDF文件17GB,对应的MDF文件只有3GB多,怎样瘦身~

SQL code
--最好备份日志,以后可通过日志恢复数据。。。
以下为日志处理方法
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--*/
--下面的所有库名都指你要处理的数据库的库名
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = '库名'
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = '库名',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf'
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
--SQL语句设置方式:
EXEC sp_dboption '库名', 'autoshrink', 'TRUE'
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)

------其他回答(5分)---------

SQL code
、用BACKUP LOG database WITH NO_LOG清除日志
把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
如果把还原模型调到简单,这样就不支持时间点还原了,但是日志文件会很小,如果数据比较重要推荐还是把数据库的还原模型调为完全
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,是否能删除主数据库事务日志文件
步骤如下:(1)、分离数据库企业管理器--数据库--右击你要删除日志的数据库--所有
任务--分离数据库
(2)、然后删除日志文件
(3)、然后再附加数据库
企业管理器--数据库--右击数据库--所有任务--附加数据库这时候只附加。mdf就可以了。
3、压缩SQL数据库及日志的详细方法
SQL Server 2000基础教程——压缩数据库数据库在使用一段时间后,时常会出现因数据删除而造成数据库中空闲空间太多的情况,这时就需要减少分配给数据库文件和事务 日志文件的磁盘空间,以免浪费磁盘空间。当数据库中没有数据时,可以修改数据库文件属性直接改变其占用空间,但当数据库中有数据时,这样做会破坏数据库中 的数据,因此需要使用压缩的方式来缩减数据库空间。可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。人工压缩数据库有以下两种方式:
1、用Enterprise Manager 压缩数据库
在Enterprise Manager 中在所要压缩的数据库上单击右键,从快捷菜单中的“所有任务(All Tasks)”中选择“Shrink Database(压缩数据库)”选项,就会出现如图6-10 所示的对话框。可以在图6-10 所示的对话框中选择数据库的压缩方式,也可以选择使用压缩计划或压缩单个文件单击图6-10 中的“Files”按钮,会出现如图6-11 所示的压缩数据库文件对话框,可以针对每个数据库文件进行不同的压缩设置。

单击图6-10 中的“Change” 按钮,会出现如图6-12 所示的压缩计划编辑对话框,可以指定压缩计划的执行方式。单击图6-12 中的“Change” 按钮,会出现如图6-13 所示的循环工作计划编辑对话框,可以编辑计划执行的周期或时间点。设置完成后单击“OK” 按钮就开始压缩数据库,在压缩结束后会显示一个压缩情况信息框。


2、用Transact-SQL 命令压缩数据库
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令来压缩数据库。其中DBCC SHRINKDATABASE 命令对数据库进行压缩,DBCC SHRINKFILE 命令对数据库中指定的文件进行压缩。
(1) DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令语法如下:
DBCC SHRINKDATABASE (database_name [, target_percent]
[, {NOTRUNCATE | TRUNCATEONLY}] )
各参数说明如下:
?target_percent 指定将数据库压缩后,未使用的空间占数据库大小的百分之几。如果指定的百分比过大,超过了压缩前未使用空间所占的比例,则数据库不会被压缩。并且压缩后的数据库不能比数据库初始设定的容量小。
?NOTRUECATE
将数据库缩减后剩余的空间保留在数据库,中不返还给操作系统
。如果不选择此选项,则剩余的空间返还给操作系统。
?TRUNCATEONLY
将数据库缩减后剩余的空间返还给操作系统。使用此命令时SQL Server 将文件缩减到最后一个文件分配,区域但不移动任何数据文件。选择此项后,target_percent 选项就无效了。例6-14: 压缩数据库mytest 的未使用空间为数据库大小的20%

dbcc shrinkdatabase (mytest, 20)
运行结果如下:
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
(2) DBCC SHRINKFILE
DBCC SHRINKFILE 命令压缩当前数据库中的文件。其语法如下:
DBCC SHRINKFILE ( {file_name | file_id }
{ [, target_size] |
[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各参数说明如下:
?file_id
指定要压缩的文件的鉴别号(Identification number, 即ID)
。文件的ID 号可以通过 FILE_ID()函数或如本章前面所讲述
的Sp_helpdb 系统存储过程来得到。
?target_size
指定文件压缩后的大小。以MB 为单位。如果不指定此选项,SQL Server 就会尽最大可能地缩减文件。
?EMPTYFILE
指明此文件不再使用,将移动所有在此文件中的数据到同一文件组中的其它文件中去。执行带此参数的命令后,此文件就可以用ALTER DATABASE 命令来删除了。 其余参数NOTRUNCATE 和TRUNCATEONLY 与DBCC SHRINKDATABASE
命令中的含义相同。 例6-15: 压缩数据库mydb 中的数据库文件mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)

企业管理器里面的方法:
1、打开企业管理器
2、打开要处理的数据库
3、点击最上面菜单>工具>SQL查询分析器,打开SQL查询分析器
4、在输入窗口里面输入:
Code:
DUMP TRANSACTION [数据库名] WITH NO_LOG
BACKUP LOG [数据库名] WITH NO_LOG
DBCC SHRINKDATABASE([数据库名])
点击绿色的小三角(或按F5)执行查询,等状态栏提示处理完成
即可!
程序里面的方法:
压缩数据库日志
--1.清空日志
exec(’DUMP TRANSACTION [’+@dbname+’] WITH NO_LOG’)
--2.截断事务日志:
exec(’BACKUP LOG [’+@dbname+’] WITH NO_LOG’)
--3.收缩数据库文件(如果不压缩,数据库的文件不会减小
exec(’DBCC SHRINKDATABASE([’+@dbname+’])’)
  4、减小日志的方法:
一、用如下步做了:
1、DUMP TRANSACTION 库名 WITH no_log
2、dbcc shrinkfile(logfilename)
3、收缩数据库
4、设定自动收缩。
  二、分离数据库,删除日志文件,再附加,OK!右击数据库--所有任务--分离or 附加
  三、1、backup log 库名 WITH no_log,2、dbcc shrinkfile(logfilename),3、收缩数据库
4、设定自动收缩。

这样的增长肯定有问题, 1G文件,增长一次就变成129G了。
你可以试一下使用语句:
alter database your_database_name modify file ( name = 'your_file_name',filegrowth = 20% )

那你把里面的数据删除了吧,再或者先把里面的数据转存到excel里面,然后再把数据库里面的数据删除!不过再弄好之前做好备份!还有一个办法,你可以将这个数据库的备份拷贝出来,据库可以删除了,在用数据库的时候重新建一个同名数据库,然后强制还原此数据库也可。

估计你要吧文件发过来了,因为不好说,看数据结构,表设计,存储过程,字段类型等等
还原后有6个G就证明确实是那么大,说说你证明瘦身的


DOS 命令符都有哪些?
1.功能:拷贝一个或多个文件到指定盘上。2.类型:内部命令3.格式:COPY [源盘][路径]〈源文件名〉[目标盘][路径][目标文件名]4.使用说明:(1)COPY是文件对文件的方式复制数据,复制前目标盘必须已经格式化;(2)复制过程中,目标盘上相同文件名称的旧文件会被源文件取代;(3)复制文件时,必须先确定目标般有足够...

程序里面的SDTY,MDTY是什么意思?
这样可降低数据行连接与行迁移的可能性。2、SQL SERVER 存储结构 以页为最小分配单位,每个页为8K(不可控制,缺乏对页的存储情况的分析机制), 可将8个连续的页的组成一个‘扩展’,以进一步减少分配时所耗用的资源。(分配缺乏灵活性),在SQL SERVER里数据以表的方式存放,而表是存放在数据库里。

MD的歌曲刻录怎样设置才能得到最好的音质
我也用MD,不推荐用光纤录,感觉特别麻烦,而且浪费时间 你在电脑上下一个Sonicstage软件,最好是新版本的,大概学一下软件的使用。在向MD录歌前你应该先建立一个数据库,就是说把CD里的歌曲录进电脑里,这个过程你可以做到音频无损,然后将MD连在电脑上,软件会识别出MD,之后在传输窗口将歌曲以想要...

markdown文本,在数据库里如何存储,是存成html,还是存储原始内容_百度...
markdown文本,在数据库里如何存储,是存成html,还是存储原始内容 如果你确定只用md且以后一定不会换富文本的话,可以直接放md。 如果要考虑混入html的话,可以参考typecho的处理,加一个标记。 反正不要让他们之间互相影响。

数据库中如何计算以前年度至今有多少个月
从左到右依次公式为 =DATEDIF($A2,$B2,"y")&"年"=DATEDIF($A2,$B2,"m")&"个月"=DATEDIF($A2,$B2,"d")&"天"=DATEDIF($A2,$B2,"ym")&"个月"=DATEDIF($A2,$B2,"md")&"天"=DATEDIF($A2,$B2,"yd")&"天数"

戴尔PowerVault MD3200概述
其6 Gb\/秒的SAS速度是前代Dell SAS的两倍,每个控制器配备4个SAS端口和2 GB高速缓存,确保大型数据库应用的高效运行。选择性使用高性能层级固件可以进一步提升性能,而SSD支持则满足苛刻的I\/O需求。基本容量相比前代阵列翻了四倍,采用PFK硬盘时,容量可增至六倍。在灵活性和可扩展性方面,MD3200\/MD...

科学界成就大小排名
1500万本书占所有已出版英文图书的12%,米切尔等人又把这1500万本书做成的数据库精选1\/3放到网上,供所有人使用,这个数据库的名字叫“Google文集”(Books corpus)。伯汉农正是使用了这个数据库做了“科学家名人堂”。单位 “毫达尔文”那么,谁是最有影响力的科学家呢?一般人第一个想起的是牛顿。

IMDS\/CMDS输入材料成份的问题
1. IMDS简介:IMDS,即国际材料数据系统,是一个第三方认可材料成分的机构,网址为http:\/\/mdsystem.com。该系统是汽车产业中用于零件和材料成分的数据库,由多家汽车制造商共同开发,包括奥迪、宝马、戴姆勒-克莱斯勒、福特、欧宝、保时捷、大众和沃尔沃汽车集团等。IMDS的目的是保存和维护所有在汽车制造过程...

plc连接的数据库 有哪些
(6)DIN:T数据类型双整数,32位二进制数存储器,取值范围-214783648~214783647,与DWORD的区别在于DWORD存储的是无符号数,而DINT存储的是有符号的数,存储器的最高位表示符号位,0表示整数,1表示负数,后面的31位二进制数表示数据的大小,寻址方式也是以字的方式进行寻址,如:MD0.支持的指令有ADD_...

md01中的scope of planning和Processing key??
planning in the planning horizon online regenerative planning Processing key:NETCH sap系统在有需求变化发生时会在一个数据库里纪录,netch 就是根据纪录将需要平衡的物料进 行 mrp平衡,以提高效率。 NEUPL 是忽略纪录将所有物料进行mrp平衡,如果物料多的话,时间会很长。一般在后台运行。 ok?

富民县15865603651: 我有一个数据库,MDF数据文件有6个G,然后我把里面的数据和表格瘦身后,mdf文件变成了100MB, -
函羽气血: 估计你要吧文件发过来了,因为不好说,看数据结构,表设计,存储过程,字段类型等等 还原后有6个G就证明确实是那么大,说说你证明瘦身的

富民县15865603651: 如何缩小 mdf 文件大小 sql2008 -
函羽气血: alter database test1 modify file (name = test1dat3, //mdf在数据库中的名字 size = 20mb) //新空间大小 如kq库,数据文件kq_data,日志文件kq_log,增加kq_data的大小: alter database kq modify file(name=kq_data,size=800mb);

富民县15865603651: 如何打开mdf文件(打开mdf文件的方法)
函羽气血: 1、打开SQLserver2008.2、软件安装完成后,点击电脑左下角的开始,会弹出开始... 8、点击“添加”弹出附加数据库页面,可以看到“添加”.9、点击“添加”打开文...

富民县15865603651: 只有mdf文件如何恢复数据,SQL 2000 -
函羽气血: sp_attach_db sp_attach_single_file_db 以上是加载数据库.就是说mdf文件是完整的.如果已经数据丢失的话,仅靠mdf文件是没办法的.如果有ldf文件,可能可以用LumigentLogExplorer4SQLServer来恢复出来.

富民县15865603651: sql中的mdf文件还原 -
函羽气血: 那个动作是“附加”,不是“还原”.“附加”-“脱离”,“还原”-“备份”.如果已经有MDF文件,那样不需要建好数据库,直接找到该文件就可以“附加”上去了.

富民县15865603651: .mdf是什么文件,怎样打开 -
函羽气血: SQL Server Database Primary Data File (.MDF) 微软数据库数据文件,用MS SQLServer 2005/2008打开

富民县15865603651: 我的SQL sever 2000 数据库文件超过6G 怎么清理? -
函羽气血: 首先在操作前事做好备份工作~~至于如何备份~我想在你的那...

富民县15865603651: 如何将一个已存在的.mdf数据库源文件导入到SQL数据库中?我采
函羽气血: 1.一般情况下,如果你的数据库文件是用SQL建立的话,用附加数据库的方式是可以的.之所以会出现这样的提示,一般会有几种情况: A、你用以建立你要附加的这个数...

富民县15865603651: sql server 中后缀为.mdf的文件是干什么用的?? -
函羽气血: 数据文件(扩展名.mdf是 primary data file 的缩写).包含数据库的启动信息,并指向数据库中的其他文件.用户数据和对象可存储在此文件中,也可以存储在次要数据文件中.操作方法如下: 1、首先点击“开始”,“程序”,打开SQL sever management studio. 2、点击“连接”连接到服务器. 3、在对象资源管理器中找到“数据库”,右键单击,选择“附加”. 4、找到mdf文件所在的地方,选中,点击“确定”. 5、附加数据库中出现选中的mdf文件数据库,点击“确定”,就可以了.

富民县15865603651: .mdf导入SQL数据库的问题 -
函羽气血: 这个MDF是数据文件还是备份文件.1.如果是直接COPY数据文件的.你应该还要COPY和这个数据文件一起的LOG文件.新建一个数据库(并不一定要同名),然后将这个新建的数据库停止运行(SQLserver服务停止).覆盖新建的数据库文件,(原来的数据文件名字要与新建数据库文件一样).然后启动SQLserver应该就可以了.2.如果是备份文件在你附加的时候出错,需要把错误发上来看看.这样方便解决问题.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网