Sqlserver2005日誌文件太大,使其減小的方法

来源:http://www.cnblogs.com/roucheng/archive/2016/06/07/mssqlrizhi.html
-Advertisement-
Play Games

Sqlserver2005日誌文件太大,使其減小的方法: 運行下麵的三行 dbName為資料庫名: backup log dbNamewith NO_LOG backup log dbNamewith TRUNCATE_ONLY DBCC SHRINKDATABASE(dbName) 日誌文件減小到 ...


Sqlserver2005日誌文件太大,使其減小的方法: 

運行下麵的三行 dbName為資料庫名: 

backup log dbNamewith NO_LOG 
backup log dbNamewith TRUNCATE_ONLY 
DBCC SHRINKDATABASE(dbName) 

日誌文件減小到1MB

 

或者見:http://hovertree.com/menu/sqlserver/

sql server清空日誌文件2011-04-06 23:05

 

 

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 } ] 
}

--何問起 hovertree.com

--壓縮日誌及資料庫文件大小

/*--特別註意
請按步驟進行,未進行前面的步驟,請不要做後面的步驟
否則可能損壞你的資料庫.
--*/

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)
-------------------------------------------------------------------------------------------
/*--壓縮資料庫的通用存儲過程

壓縮日誌及資料庫文件大小
因為要對資料庫進行分離處理
所以存儲過程不能創建在被壓縮的資料庫中

--鄒建 2004.3--*/

/*--調用示例
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, N"IsProcedure") = 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 """+@dbname+""",""autoshrink"",""TRUE""")

--後面的步驟有一定危險,你可以可以選擇是否應該這些步驟
--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 disk="""+@bkfname+"""")
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 """+@dbname+"""")

--刪除日誌文件
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 """+@dbname+""""+@s)
go

 

推薦:http://www.cnblogs.com/roucheng/p/GUID.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Hi all:準時奉上一周的iOS精華內容了,事半功倍的效果是不是棒棒噠?還有還有,還有童鞋在愁金錢不夠如何下載想要的代碼嗎?快來看攻略吧~http://www.code4app.com/thread-7591-1-1.html<ignore_js_op> 【一周精品源碼】 [iOS精品源碼] 開源 ...
  • 通過Android Studio 生成的Nagvition DrawerLayout Activity 自帶的佈局中的NagvitionView會覆蓋ToolBar直接通到statusBar。 但是自己想把NagvationView控制到TooBar下邊,從網上找到的答案是把ToolBar從Coor ...
  • hihi~小code有來準時奉上上周精品內容啦~大家都開始養成讀周報的習慣了沒有呀?! 【一周精品源碼】 仿[逗趣] iOS客戶端http://www.code4app.com/forum.php?mod=viewthread&tid=7841&highlight=douqu折線圖 包括不同的象限內 ...
  • 這幾天要求做一個伺服器的統計信息,主要針對錶和索引。下麵我就簡單分享幾個查詢數據表和索引統計信息的方法: 1.使用T-SQL 語句實現: 執行結果如圖 這種方法的優點如下: 運行速度快。 由於不訪問用戶表,不會影響性能,不加鎖。 靈活組合,也可以與其他語句聯合查詢金結果。 2. 使用系統存儲過程sp ...
  • YARN資源調度器 轉載請註明出處: "http://www.cnblogs.com/BYRans/" 概述 集群資源是非常有限的,在多用戶、多任務環境下,需要有一個協調者,來保證在有限資源或業務約束下有序調度任務,YARN資源調度器就是這個協調者。 YARN調度器有多種實現,自帶的調度器為Capa ...
  • 在Oracle資料庫中,與用戶有關的表有三種,一是用戶自己創建的表,二是數據字典視圖,三是動態性能視圖。在後兩種視圖中,用戶可以查詢自己關心的信息。 數據字典視圖 數據字典是一種系統表,它在資料庫被創建時自動產生,並且由資料庫伺服器本身進行維護和更新。在數據字典中包含了資料庫的相關信息。 在數據字典 ...
  • 回到目錄 MultipleActiveResultSets可以使資料庫連接復用,但當你上了moebius這種集群工具後,這個選項不能開啟(預設是false),當你使用EF等ORM工具時,這個選項會預設的加上了,它是為了改進程式的性能,好處就是怕資料庫的連接資源被耗盡了,使用方法很簡單,只需要把它加到 ...
  • 前面已經提到,資料庫伺服器包括實例和資料庫兩部分。 其中資料庫是用來存儲數據的,而實例是用來訪問資料庫中的數據的。實例包括一組記憶體結構和後臺進程,而資料庫的結構需要從邏輯結構和物理結構兩個方面來理解。資料庫的邏輯結構是指數據的邏輯組織形式,是Oracle內部用來管理數據的機制。資料庫的物理結構是從用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...