直接压缩不太现实啊,文件太大需要的时间太长了。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、网页空间、营销软件、网站建设、海北州网站维护、网站推广。
如果里面的数据资料不重要,只是数据结构重要的话,可以再导出一个只含数据结构的数据库副本。
或者 如果日志文件不重要的话,可以只导出数据库本身,不导出日志。
最后,7G文件也不算大,我这里就是用一个160G的移动硬盘备份的,不过一定要把硬盘格式化成NTFS格式。
你用数据库管理器选中数据库,先分离,然后再附加,然后再点收缩,收缩的时候先收缩日志文件,一般能收缩很多,记得要填写数字啊,比如上面提示能收缩为0,你就填个5兆,这样预留一点空间,而且很快,收缩完日志文件之后再收缩数据库 同理比最小能收缩量大几兆就可以了,但是收缩数据库比较慢 需要很多时间
具体方法有3种。
方法一:
第一步:
backup
log
database_name
with
no_log
或者
backup
log
database_name
with
truncate_only
--
no_log和truncate_only是在这里是同义的,随便执行哪一句都可以。
第二步:
1.收缩特定数据库的所有数据和日志文件,执行:
dbcc
shrinkdatabase
(database_name,[,target_percent])
--
database_name是要收缩的数据库名称;target_percent是数据库收缩后的数据库文件中所要的剩余可用空间百分比。
2.收缩一次一个特定数据库中的数据或日志文件,执行
dbcc
shrinkfile(file_id,[,target_size])
--
file_id是要收缩的文件的标识
(id)
号,若要获得文件
id,请使用
file_id
函数或在当前数据库中搜索
sysfiles;target_size是用兆字节表示的所要的文件大小(用整数表示)。如果没有指定,dbcc
shrinkfile
将文件大小减少到默认文件大小。两个dbcc都可以带上参数notruncate或truncateonly,具体意思查看联机帮助.
方法二:
第一步:
先备份整个数据库以备不测
。
第二步:
备份结束后,在query
analyzer中执行如下的语句:
exec
sp_detach_db
yourdbname,true
--卸除这个db在mssql中的注册信息
第三步:
到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录
第四步:
在query
analyzer中执行如下的语句:
exec
sp_attach_single_file_db
yourdbname,'
d:\mssql\data\yourdbname_data.mdf
'
--以单文件的方式注册该db,如果成功则mssql将自动为这个db生成一个500k的日志文件。
方法三:
1.
进入企业管理器,选中数据库,比如demo
2.
所有任务-分离数据库
3.
到数据库文件的存放目录,将muonline_log.ldf文件删除,以防万一,你可以拷出去
4.
企业管理器-附加数据库,选muonline,这个时候你会看见日志文件这项是一个叉,不要紧,继续,此时数据库就会提示你该数据库无日志是否创建一个新的,确定就是了。
5.
记得数据库重新附加后用户要重新设置一下。
如果以后,不想要它变大:
sql2000下使用:
在数据库上点右键-属性-选项-故障恢复-模型-选择-简单模型。
或用sql语句:
alter
database
数据库名
set
recovery
simple
1、确认大量占用空间的对象(表格或索引)。然后通过归档历史数据,先把空间释放出来再压缩数据文件
2、重建索引,把一些数据页面重排一次,原先的页面被释放,所占用的分区也被释放,再去DBCC SHRINKFILE
在程序组中,展开“Sqlserver”运行“查询分析器”。输入用户名、密码。
在工具栏的数据库列表中选择要操作的数据库。
输入:select * from sysfiles 执行,可以看到下面的内容,记住其中的fileid字段的内容,也就是1或2,标识数据库的数据文件或日志文件,下面的命令要用到这里的值。
输入:dbcc shrinkdatabase(' 库名' ),收缩数据库,结果如下:可以看到压缩后的数据库文件的尺寸。
输入:dbcc shrinkfile(2, 0)执行,然后输入dbcc shrinkfile(1, 0)执行。两句命令中的第一个参数就是前面看到的FileID的值,表示了一个是日志文件,一个是数据文件。第二个参数0,表示收缩到初始大小。
输入:dbcc updateusage (0),执行更新操作,完工!更新后可以跟之前的数据文件比对一下了,会有相对较大的尺寸上的优化了。
你需要将日志文件截断后收缩
在查询分析器里依次执行下面的语句就可以了,把“数据库”替换成你实际的数据库名
--首先截断事务日志
backup log 数据库 with no_log
--收缩数据库
dbcc shrinkdatabase('数据库',0)