怎样压缩数据库的日志文件
展开全部
具体方法有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
方法一:
第一步:
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
展开全部
2:删除log文件
3:附加数据库
企业管理器->服务器->数据库->右键->附加数据库
此法生成新的log,大小只有500多k
再将此数据库设置自动收缩或用代码:下面的示例分离
pubs,然后将
pubs
中的一个文件附加到当前服务器。
exec
sp_detach_db
@dbname
=
'pubs
'
exec
sp_attach_single_file_db
@dbname
=
'pubs
',
@physname
=
'c:\program
files\microsoft
sql
server\mssql\data\pubs.mdf
'
exec
sp_attach_db
@dbname
=
n
'pubs
',
@filename1
=
n
'c:\program
files\microsoft
sql
server\mssql\data\pubs.mdf
',
@filename2
=
n
'c:\program
files\microsoft
sql
server\mssql\data\pubs_log.ldf
'2:清空日志dump
transaction
库名
with
no_log再:企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了清空日志dump
transaction
库名
with
no_log
或截断日志:
backup
log
数据库
with
no_log--清除日志方法1、--在查询分析器,选中所要清理日志的数据库,执行如下sql
backup
log
数据库名
with
no_log
dbcc
shrinkfile
(
日志文件名或日志文件id,要缩小的目标大小)
在当前数据库下
select
fileid,groupid,name
from
sysfiles
where
groupid=0
----------------------------------------------------------
得到以下结果
fileid
groupid
name
2
0
test_log
以上结果,fileid为日志文件id,name为test_log你可以backup
log
test
with
no_log
dbcc
shrinkfile
(2,2)orbackup
log
test
with
no_log
dbcc
shrinkfile
(
'test_log
',2)
如果以后,不想要它变大,在数据库上点右键->
属性->
选项->
故障恢复
模型
选择
简单模型就可以了!
或用sql语句
alter
database
数据库名
set
recovery
simple方法2、sql
server企业管理器-》sql
server组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
3:附加数据库
企业管理器->服务器->数据库->右键->附加数据库
此法生成新的log,大小只有500多k
再将此数据库设置自动收缩或用代码:下面的示例分离
pubs,然后将
pubs
中的一个文件附加到当前服务器。
exec
sp_detach_db
@dbname
=
'pubs
'
exec
sp_attach_single_file_db
@dbname
=
'pubs
',
@physname
=
'c:\program
files\microsoft
sql
server\mssql\data\pubs.mdf
'
exec
sp_attach_db
@dbname
=
n
'pubs
',
@filename1
=
n
'c:\program
files\microsoft
sql
server\mssql\data\pubs.mdf
',
@filename2
=
n
'c:\program
files\microsoft
sql
server\mssql\data\pubs_log.ldf
'2:清空日志dump
transaction
库名
with
no_log再:企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了清空日志dump
transaction
库名
with
no_log
或截断日志:
backup
log
数据库
with
no_log--清除日志方法1、--在查询分析器,选中所要清理日志的数据库,执行如下sql
backup
log
数据库名
with
no_log
dbcc
shrinkfile
(
日志文件名或日志文件id,要缩小的目标大小)
在当前数据库下
select
fileid,groupid,name
from
sysfiles
where
groupid=0
----------------------------------------------------------
得到以下结果
fileid
groupid
name
2
0
test_log
以上结果,fileid为日志文件id,name为test_log你可以backup
log
test
with
no_log
dbcc
shrinkfile
(2,2)orbackup
log
test
with
no_log
dbcc
shrinkfile
(
'test_log
',2)
如果以后,不想要它变大,在数据库上点右键->
属性->
选项->
故障恢复
模型
选择
简单模型就可以了!
或用sql语句
alter
database
数据库名
set
recovery
simple方法2、sql
server企业管理器-》sql
server组-》服务器-》数据库-》选中数据库实体-》右键-》所有任务-》分离数据库,
然后到数据库所在物理路径下删除.ldf文件,再数据库右键-》所有任务-》附加数据库,即可,会重新生成日志文件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |