久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

SQL Server中怎么刪除大容量日志

159次閱讀
沒有評論

共計 3512 個字符,預計需要花費 9 分鐘才能閱讀完成。

SQL Server 中怎么刪除大容量日志,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

1: 刪除 LOG

1:分離 企業管理器 - 服務器 - 數據庫 - 右鍵 - 分離數據庫

2:刪除 LOG 文件

3:附加數據庫 企業管理器 - 服務器 - 數據庫 - 右鍵 - 附加數據庫

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

再將此數據庫設置自動收縮

或用代碼:

下面的示例分離 77169database,然后將 77169database 中的一個文件附加到當前服務器。

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

2: 清空日志

DUMP TRANSACTION 庫名 WITH NO_LOG

再:

企業管理器 – 右鍵你要壓縮的數據庫 – 所有任務 – 收縮數據庫 – 收縮文件 – 選擇日志文件 – 在收縮方式里選擇收縮至 XXM, 這里會給出一個允許收縮到的最小 M 數, 直接輸入這個數, 確定就可以了

3: 不讓它增長

企業管理器 - 服務器 - 數據庫 - 屬性 - 事務日志 - 將文件增長限制為 2M

自動收縮日志, 也可以用下面這條語句

ALTER DATABASE 數據庫名

SET AUTO_SHRINK ON

故障還原模型改為簡單, 用語句是

USE MASTER
GO
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE
GO
———————————————————————————

截斷事務日志:

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

– 壓縮日志及數據庫文件大小

/*– 特別注意

請按步驟進行, 未進行前面的步驟, 請不要做后面的步驟

否則可能損壞你的數據庫.

–*/

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)

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

a. 分離數據庫:

企業管理器 – 服務器 – 數據庫 – 右鍵 – 分離數據庫

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

c. 附加數據庫:

企業管理器 – 服務器 – 數據庫 – 右鍵 – 附加數據庫

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

或用代碼:

下面的示例分離 77169database,然后將 77169database 中的一個文件附加到當前服務器。

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. 為了以后能自動收縮, 做如下設置:

企業管理器 – 服務器 – 右鍵數據庫 – 屬性 – 選項 – 選擇 自動收縮

–SQL 語句設置方式:

EXEC sp_dboption 數據庫名, autoshrink, TRUE

6. 如果想以后不讓它日志增長得太大

企業管理器 – 服務器 – 右鍵數據庫 – 屬性 – 事務日志

– 將文件增長限制為 xM(x 是你允許的最大數據文件大小)

–SQL 語句的設置方式:

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

——————————————————————————————-

  /*– 壓縮數據庫的通用存儲過程

壓縮日志及數據庫文件大小

因為要對數據庫進行分離處理

所以存儲過程不能創建在被壓縮的數據庫中 /*

  – 調用示例

exec p_compdb test
–*/
use master – 注意, 此存儲過程要建在 master 數據庫中
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, – 要壓縮的數據庫名
@bkdatabase bit=1, – 因為分離日志的步驟中, 可能會損壞數據庫, 所以你可以選擇是否自動數據庫
@bkfname nvarchar(260)= – 備份的文件名, 如果不指定, 自動備份到默認備份目錄, 備份文件名為: 數據庫名 + 日期時間
as

–1. 清空日志

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

–2. 截斷事務日志:

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

–3. 收縮數據庫文件 (如果不壓縮, 數據庫的文件不會減小

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

–4. 設置自動收縮

exec(EXEC sp_dboption)

– 后面的步驟有一定危險, 你可以可以選擇是否應該這些步驟

–5. 分離數據庫

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

– 進行分離處理

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

– 附加數據庫

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

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計3512字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 陇南市| 汪清县| 禄丰县| 宕昌县| 玉屏| 双辽市| 万载县| 巴彦县| 龙泉市| 连城县| 资讯 | 洮南市| 华坪县| 广州市| 肥东县| 衢州市| 赤城县| 民乐县| 钟祥市| 通化市| 文昌市| 怀柔区| 开平市| 东乡| 穆棱市| 乐陵市| 城步| 扎兰屯市| 广水市| 绥江县| 娄烦县| 五寨县| 凤台县| 涡阳县| 南平市| 栾川县| 巨野县| 手机| 金阳县| 神农架林区| 定日县|