永发信息网

sql server怎么收缩日志

答案:2  悬赏:30  手机版
解决时间 2021-03-19 18:34
sql server怎么收缩日志
最佳答案
1.先分离数据库,然后删除日志文件,再附件数据库。
2.收缩文件,选择日志文件,设置将文件收缩到0M,试了一下,只能从65G收缩到55G,也就是只释放了未使用的空间。方法 二、
1.选中数据库,右键属性/选项,把恢复模式从“完整”改为“简单”。
2.选中数据库,右键任务/收缩文件,选择日志文件,设置将文件收缩为0M,确定。
3.再将恢复模式从“简单”-“完整”即可。
--------------------------------------------------
方案1: 所以可以执行以下sql语句:
DUMP TRANSACTION 你的数据库名 WITH NO_LOG
BACKUP LOG 你的数据库名 WITH NO_LOG
DBCC SHRINKDATABASE(你的数据库名)
EXEC sp_dboption '你的数据库名', 'autoshrink', 'TRUE'方案2:
在数据库的属性里-选择选项-恢复模式改为“简单”-勾选“自动收缩”。这样就可以自动进行数据库的收缩,推荐采用这种自动方式进行
--------------------------------------------------
SQLSERVER收缩事务日志
一、由于系统中录入及删除数据频繁,故事务日志很大。
SQLSERVER中讲:
BACKUP LOG 数据库名 WITH NO_LOG|TRUNCATE_ONLY可以截断事务日志。
但我在数据库中进行上述操作后,事务日志还是没有改变。
二、只有进行“数据库收缩”操作。
在此复选框中打勾
选中上图所示选项,即可点“确定“,执行收缩事务日志的操作,硬盘经过一段时间的工作后,SQLSERVER终于提示收缩成功。事务日志文件被恢复到原始尺寸。
综上所述,第一步只是将非活动的事务日志截断,并没有收缩数据库,只有进行第二项操作后,数据库才进行事务日志的清理工作,将截断的非活动事务删除,并将事务日志文件收缩到适当尺寸。
在使用 SQL Server 时,数据库里的日志文件会越来越大,需要把它删除。 我先把这个数据库分离,在数据库上点右键 - 所有任务 - 分离数据库,分离之后,就可以把 Log 文件删除,同时也可以把数据进行备份。之后,就可以在所有任务里的附加数据库再把那个数据库添进来,SQL Server 会提示 LOG 文件不存在,问你是不是要新建一个,选是就行了,这样,LOG 文件就清空了。 这个方法只需几分钟的时间,但在这几分钟里,就不能访问这个数据库了,我觉得只适用于小型的应用,对于大型的系统就要找其它方法了
全部回答
方法1: 第一步: 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,具体意思看帮助。 方法2 (这个方法在sqlserver2000的环境下做一般能成功,在sqlserver7及以下版本就不一定了): 第一步: 先备份整个数据库以备不测 第二步: 备份结束后,在query analyzer中执行如下的语句: exec sp_detach_db yourdbname,true --卸除这个db在mssql中的注册信息 第三步: 到日志的物理文件所在的目录中去删除该日志文件或者将该日志文件移出该目录 第四步: 在query analyzer中执行如下的语句: exec sp_attach_single_file_db yourdbname,'d:\mssql7\data\yourdbname_data.mdf' --以单文件的方式注册该db,如果成功则mssql将自动为这个db生成一个500k的日志文件。 以上方法在清除log日志中均有效。 但,能否让sql server 不产生log日志呢?以上方法好像均无效。 我这儿正好有个case: 我客户的sql server每天都会产生4,500m的log日志,每天都清除一下,非常不便。有没有办法实现不产生log日志呢? 我分析了一下客户产生log日志的原因,并且做了相应测试。 客户是每天将数据库清空,从总系统中将数据导入到sql server里。我感决sqlserver在插入时产生log不大,在delete整个库时产生log极大。 比如: select * into test_2 from b_bgxx 共45000条记录,产生十几m log,如果 delete from test_2 产生80多m log ,这明显存在问题。 虽然可以换成: truncate table test_2 但我还是希望能找到不产生log的方法。就如oracle不产生归档一样。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
山东省德州市临邑县德州学院住校吗?
天生子在哪里啊,我有事要去这个地方
室内地坪如何套定额?
移动怎么发短信查询服务密码
十亩水面的鱼塘用多少敌敌畏可以把鱼全部药死
十全大补酒补吗
孩子一周的时候改过一次名字,出生证明没改,
称呼别人“亲、”字,是什么意思?
螳螂爬在毛巾上是什么意思
天津市宝坻区中医医院-呼吸病(肺病科)病区怎
怎样看电驴下载进度(请详细说明)
梦什么不忘
河南新野县身份证前4位是多少
餐饮业开业时未建账,现在建账实收资本怎么处
我是一名大三的学生,学的是java软件开发,想
推荐资讯
有的PCB线路扳上有一块黑色塑体,应该是塑封
请问,内眼角下方眼袋处常会红,为什么?,
朵诺饰品的官方网站有吗?
问道怎么查个人资料
平价自选超市在什么地方啊,我要过去处理事情
二年前网银转账还款对方不认账,银行流水不显
宏碁蜂鸟s3超级本 这款笔记本能玩剑网3么??
没有电脑和sd卡怎么给MP3传歌
朝鲜的传统节日
一夜混沌终无果是诗词吗?
天天酷跑锦标赛无限天空bug
42.5水泥,矿粉,粉煤灰,河砂,机制砂,1-2
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?