真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SQLServer中怎么刪除大容量日志

SQL Server中怎么刪除大容量日志,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比開(kāi)州網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式開(kāi)州網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋開(kāi)州地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

1: 刪除LOG

1:分離 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->分離數(shù)據(jù)庫(kù)

2:刪除LOG文件

3:附加數(shù)據(jù)庫(kù) 企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->右鍵->附加數(shù)據(jù)庫(kù)

此法生成新的LOG,大小只有520多K

再將此數(shù)據(jù)庫(kù)設(shè)置自動(dòng)收縮

或用代碼:

下面的示例分離 77169database,然后將 77169database 中的一個(gè)文件附加到當(dāng)前服務(wù)器。

EXEC sp_detach_db @dbname = 77169database
EXEC sp_attach_single_file_db @dbname = 77169database,
@physname = c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf


2:清空日志

DUMP TRANSACTION 庫(kù)名 WITH NO_LOG


再:

企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了

3:不讓它增長(zhǎng)

企業(yè)管理器->服務(wù)器->數(shù)據(jù)庫(kù)->屬性->事務(wù)日志->將文件增長(zhǎng)限制為2M

自動(dòng)收縮日志,也可以用下面這條語(yǔ)句

ALTER DATABASE 數(shù)據(jù)庫(kù)名

SET AUTO_SHRINK ON


故障還原模型改為簡(jiǎn)單,用語(yǔ)句是

USE MASTER
GO
ALTER DATABASE 數(shù)據(jù)庫(kù)名 SET RECOVERY SIMPLE
GO
---------------------------------------------------------------------------------

截?cái)嗍聞?wù)日志:

BACKUP LOG { database_name | @database_name_var }
{
[ WITH
{ NO_LOG | TRUNCATE_ONLY } ]
}


--壓縮日志及數(shù)據(jù)庫(kù)文件大小

/*--特別注意

請(qǐng)按步驟進(jìn)行,未進(jìn)行前面的步驟,請(qǐng)不要做后面的步驟

否則可能損壞你的數(shù)據(jù)庫(kù).

--*/

1.清空日志

DUMP TRANSACTION 庫(kù)名 WITH NO_LOG


2.截?cái)嗍聞?wù)日志:

BACKUP LOG 數(shù)據(jù)庫(kù)名 WITH NO_LOG

3.收縮數(shù)據(jù)庫(kù)文件(如果不壓縮,數(shù)據(jù)庫(kù)的文件不會(huì)減小

企業(yè)管理器--右鍵你要壓縮的數(shù)據(jù)庫(kù)--所有任務(wù)--收縮數(shù)據(jù)庫(kù)--收縮文件

--選擇日志文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了

--選擇數(shù)據(jù)文件--在收縮方式里選擇收縮至XXM,這里會(huì)給出一個(gè)允許收縮到的最小M數(shù),直接輸入這個(gè)數(shù),確定就可以了

也可以用SQL語(yǔ)句來(lái)完成

--收縮數(shù)據(jù)庫(kù)

DBCC SHRINKDATABASE(客戶資料)

--收縮指定數(shù)據(jù)文件,1是文件號(hào),可以通過(guò)這個(gè)語(yǔ)句查詢到:select * from sysfiles

DBCC SHRINKFILE(1)

4.為了最大化的縮小日志文件(如果是sql 7.0,這步只能在查詢分析器中進(jìn)行)

a.分離數(shù)據(jù)庫(kù):

企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫(kù)--右鍵--分離數(shù)據(jù)庫(kù)

b.在我的電腦中刪除LOG文件

c.附加數(shù)據(jù)庫(kù):

企業(yè)管理器--服務(wù)器--數(shù)據(jù)庫(kù)--右鍵--附加數(shù)據(jù)庫(kù)

此法將生成新的LOG,大小只有500多K

或用代碼:

下面的示例分離 77169database,然后將 77169database 中的一個(gè)文件附加到當(dāng)前服務(wù)器。

a.分離

EXEC sp_detach_db @dbname = 77169database


b.刪除日志文件

c.再附加

EXEC sp_attach_single_file_db @dbname = 77169database,
@physname = c:Program FilesMicrosoft SQL ServerMSSQLData77169database.mdf


5.為了以后能自動(dòng)收縮,做如下設(shè)置:

企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫(kù)--屬性--選項(xiàng)--選擇"自動(dòng)收縮"

--SQL語(yǔ)句設(shè)置方式:

EXEC sp_dboption 數(shù)據(jù)庫(kù)名, autoshrink, TRUE

6.如果想以后不讓它日志增長(zhǎng)得太大

企業(yè)管理器--服務(wù)器--右鍵數(shù)據(jù)庫(kù)--屬性--事務(wù)日志

--將文件增長(zhǎng)限制為xM(x是你允許的最大數(shù)據(jù)文件大小)

--SQL語(yǔ)句的設(shè)置方式:

alter database 數(shù)據(jù)庫(kù)名 modify file(name=邏輯文件名,maxsize=20)

-------------------------------------------------------------------------------------------

     /*--壓縮數(shù)據(jù)庫(kù)的通用存儲(chǔ)過(guò)程

壓縮日志及數(shù)據(jù)庫(kù)文件大小

因?yàn)橐獙?duì)數(shù)據(jù)庫(kù)進(jìn)行分離處理

所以存儲(chǔ)過(guò)程不能創(chuàng)建在被壓縮的數(shù)據(jù)庫(kù)中 /*

      --調(diào)用示例


exec p_compdb test
--*/
use master --注意,此存儲(chǔ)過(guò)程要建在master數(shù)據(jù)庫(kù)中
go
if exists (select * from dbo.sysobjects where id = object_id(N[dbo].[p_compdb]) and OBJECTPROPERTY(id, NIsProcedure) = 1)
drop procedure [dbo].[p_compdb]
GO
create proc p_compdb
@dbname sysname, --要壓縮的數(shù)據(jù)庫(kù)名
@bkdatabase bit=1, --因?yàn)榉蛛x日志的步驟中,可能會(huì)損壞數(shù)據(jù)庫(kù),所以你可以選擇是否自動(dòng)數(shù)據(jù)庫(kù)
@bkfname nvarchar(260)= --備份的文件名,如果不指定,自動(dòng)備份到默認(rèn)備份目錄,備份文件名為:數(shù)據(jù)庫(kù)名+日期時(shí)間
as

--1.清空日志

exec(DUMP TRANSACTION [+@dbname+] WITH NO_LOG)


--2.截?cái)嗍聞?wù)日志:

exec(BACKUP LOG [+@dbname+] WITH NO_LOG)


--3.收縮數(shù)據(jù)庫(kù)文件(如果不壓縮,數(shù)據(jù)庫(kù)的文件不會(huì)減小

exec(DBCC SHRINKDATABASE([+@dbname+]))


--4.設(shè)置自動(dòng)收縮

exec(EXEC sp_dboption )


--后面的步驟有一定危險(xiǎn),你可以可以選擇是否應(yīng)該這些步驟

--5.分離數(shù)據(jù)庫(kù)

if @bkdatabase=1
begin
if isnull(@bkfname,)=
set @bkfname=@dbname+_+convert(varchar,getdate(),112)
+replace(convert(varchar,getdate(),108),:,)
select 提示信息=備份數(shù)據(jù)庫(kù)到SQL 默認(rèn)備份目錄,備份文件名:+@bkfname
exec(backup database [+@dbname+] to )
end


--進(jìn)行分離處理

create table #t(fname nvarchar(260),type int)
exec(insert into #t select filename,type=status&0x40 from [+@dbname+]..sysfiles)
exec(sp_detach_db )
--刪除日志文件
declare @fname nvarchar(260),@s varchar(8000)
declare tb cursor local for select fname from #t where type=64
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=del "+rtrim(@fname)+"
exec master..xp_cmdshell @s,no_output
fetch next from tb into @fname
end
close tb
deallocate tb


--附加數(shù)據(jù)庫(kù)

set @s=
declare tb cursor local for select fname from #t where type=0
open tb
fetch next from tb into @fname
while @@fetch_status=0
begin
set @s=@s+,+rtrim(@fname)+
fetch next from tb into @fname
end
close tb
deallocate tb
exec(sp_attach_single_file_db )
go

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


新聞名稱:SQLServer中怎么刪除大容量日志
網(wǎng)址分享:http://weahome.cn/article/ghpcog.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部