sql server运行中,是否能删除主数据库事务日志文件

 我来答
旁文玉建媪
2019-06-19 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:643万
展开全部
在SQL
Server运行中,只能“清空”和“收缩”事务日志文件,不能删除它。
相关知识点延伸:
1、在当前的SQL
Server中,事务日志文件在数据库运行中必需存在。如果是事务文件过大,想减少磁盘中用的话,可以清空事务日志,并收缩事务日志文件。
2、想删除数据库事务日志文件,只能先“分离”数据库,不过,在附加时如果数据库文件的事务日志文件缺失,将会在附加时重建。
3、相关操作:
a.清空日志
DUMP
TRANSACTION
库名
WITH
NO_LOG
b.截断事务日志:
BACKUP
LOG
数据库名
WITH
NO_LOG
c.收缩数据库文件(如果不收缩,数据库的文件不会减小
企业管理器->右键你要压缩的数据库->所有任务->收缩数据库->收缩文件
填入收缩数值,后确定。
鄢耕顺英倩
2019-11-30 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1152万
展开全部
具体方法有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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
豆广英归娟
2019-11-06 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:787万
展开全部
您好,很高兴为您解答。
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)
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~
O(∩_∩)O~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式