Sqlserver2005日志文件太大如何減小_mssql2005

來源:腳本之家  責任編輯:小易  

sql server數據庫使用時間長了,日志文件會很大,占用過多系統資源,數據庫可能會報 log full 的錯誤,甚至磁盤空間占滿讓數據庫處于不可用狀態,這個時候我們需要清理數據庫:清理sql server數據庫日志可用兩種方法:方法一:清空日志。1、打開查詢分析器,輸入命令DUMP TRANSACTION 數據庫名 WITH NO_LOG2、再打開企業管理器-右鍵你要壓縮的數據庫-所有任務-收縮數據庫-收縮文件-選擇日志文件-在收縮方式里選擇收縮至:,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。方法二:有一定的風險性,因為SQL SERVER的日志文件不是即時寫入數據庫主文件的,如處理不當,會造成數據的損失。1、刪除LOG分離數據庫 企業管理器->服務器->數據庫->右鍵->分離數據庫2、刪除LOG文件附加數據庫 企業管理器->服務器->數據庫->右鍵->附加數據庫此法生成新的LOG,大小只有500多K。注意:建議使用第一種方法。如果以后,不想要它變大。SQL2000下使用:在數據庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型;蛴肧QL語句:alter database 數據庫名 set recovery simple另外,數據庫屬性有兩個選項,與事務日志的增長有關:Truncate log on checkpoint(此選項用于SQL7.0,SQL 2000中即故障恢復模型選擇為簡單模型)當執行CHECKPOINT 命令時如果事務日志文件超過其大小的70%則將其內容清除在開發數據庫時時常將此選項設置為True定期對數據庫進行檢查當數據庫文件或日志文件的未用空間超過其大小的25%時,系統將會自動縮減文件使其未用空間等于25%當文件大小沒有超過其建立時的初始大小時不會縮減文件縮減后的文件也必須大于或等于其初始大小對事務日志文件的縮減只有在對其作備份時或將Truncate log on checkpoint 選項設為True 時才能進行。注意:一般立成建立的數據庫默認屬性已設好,但碰到意外情況使數據庫屬性被更改,請用戶清空日志后,檢查數據庫的以上屬性,以防事務日志再次充滿www.anxorj.tw防采集請勿采集本網。

Sqlserver2005日志文件太大,使其減小的方法如下所示:

physname='c:\\Program Files\\Microsoft SQL Server\\MSSQL\\Data\\pubs.mdf ' 5.為了以后能自動收縮,做如下設置: 企業管理器-服務器-右鍵數據庫-屬性-選項-選擇\"自動收縮 SQL語句設置方式: EXEC sp_dboption

運行下面的三行 dbName為數據庫名:

詳細的恢復方法: 1、停止數據庫服務。2、將需要恢復的數據庫文件復制到另外的位置。3、啟動數據庫服務。4、確認要恢復的數據庫文件已經成功復制到另外的位置,然后在SQL Server Management

backup log dbNamewith NO_LOG

你說的是日志文件?如果是你可以這樣。分離數據庫,把日志文件拿到別的地方,然后再附加,附加的時候選好路徑就行了

backup log dbNamewith TRUNCATE_ONLY

SQL Server 2005還會將SQL Server的錯誤日志存在系統盤的“D:\\Program Files\\Microsoft SQL Server\\MSSQL.X\\MSSQL\\LOG”目錄下,文件名“ERRORLOG”和“ERRORLOG.X”,其中“X”是數字。用記事本可以打開

DBCC SHRINKDATABASE(dbName)

如果你要還原事務日志,首先你要有一個完整備份,先還原完整備份,并使用NORECOVERY選項,然后,按順序還原日志備份。只要后續還有文件要還原,就使用NORECOVERY選項,如果后續沒有文件或是不想再還原其他

日志文件減小到1MB

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)

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

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

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

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

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

/*--調用示例exec p_compdb "test"--*/use master --注意,此存儲過程要建在master數據庫中goif exists (select * from dbo.sysobjects where id = object_id(N"[dbo].[p_compdb]") and OBJECTPROPERTY(id, N"IsProcedure") = 1)drop procedure [dbo].[p_compdb]GOcreate proc [email protected] sysname, --要壓縮的數據庫名@bkdatabase bit=1, --因為分離日志的步驟中,可能會損壞數據庫,所以你可以選擇是否自動數據庫@bkfname nvarchar(260)="" --備份的文件名,如果不指定,自動備份到默認備份目錄,備份文件名為:數據庫名+日期時間as

--1.清空日志exec("DUMP TRANSACTION ["[email protected]+"] WITH NO_LOG")--2.截斷事務日志:exec("BACKUP LOG ["[email protected]+"] WITH NO_LOG")--3.收縮數據庫文件(如果不壓縮,數據庫的文件不會減小exec("DBCC SHRINKDATABASE(["[email protected]+"])")--4.設置自動收縮exec("EXEC sp_dboption """[email protected]+""",""autoshrink"",""TRUE""")--后面的步驟有一定危險,你可以可以選擇是否應該這些步驟--5.分離數據庫if @bkdatabase=1beginif isnull(@bkfname,"")="" set @[email protected]+"_"+convert(varchar,getdate(),112)+replace(convert(varchar,getdate(),108),":","")select 提示信息="備份數據庫到SQL 默認備份目錄,備份文件名:"[email protected]("backup database ["[email protected]+"] to disk="""[email protected]+"""")end--進行分離處理create table #t(fname nvarchar(260),type int)exec("insert into #t select filename,type=status&0x40 from ["[email protected]+"]..sysfiles")exec("sp_detach_db """[email protected]+"""")--刪除日志文件declare @fname nvarchar(260),@s varchar(8000)declare tb cursor local for select fname from #t where type=64open tb fetch next from tb into @fnamewhile @@fetch_status=0beginset @s="del ""+rtrim(@fname)+"""exec master..xp_cmdshell @s,no_outputfetch next from tb into @fnameendclose tbdeallocate tb--附加數據庫set @s=""declare tb cursor local for select fname from #t where type=0open tb fetch next from tb into @fnamewhile @@fetch_status=0beginset @[email protected]+","""+rtrim(@fname)+""""fetch next from tb into @fnameendclose tbdeallocate tbexec("sp_attach_single_file_db """[email protected]+""""[email protected])go

通常建立數據庫時,都會忘記要保存.mdf 和.ldf 文件,當以后再要用到的時候,找的天昏地暗也找不到,是不是很恨自己?在SQL Server 2005目錄下的默認目錄下,如果你不知道的話,你可以重新在SQL Server 2005新建立一個(當然不是真正的建),你取好名字后,在點擊.mdf 和.ldf 文件保存的路徑,點擊保存路徑,默認路徑就為出來!內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • sql server 2008 清空刪除日志文件(瞬間日志變幾m)
  • 清理sql server 2008日志文件cannot shrink log file 2 的解決方案
  • win2008中sqlserver2008 無法打開錯誤日志文件導致無法啟動的解決方法
  • sql server無法收縮日志文件的原因分析及解決辦法
  • sqlserver修改數據庫文件及日志文件存放位置
  • sql server 2005刪除日志文件的幾種方法小結
  • sqlserver2005 沒有日志文件(*.ldf) 只有數據文件(*.mdf) 恢復數據庫的方法
  • sql server 2008數據庫日志文件收縮的方法
  • sqlserver2005 中的幾個統計技巧
  • sql server 2005 management studio express企業管理器將英文變成
  • sqlserver 2005 無法在服務器上訪問指定的路徑或文件
  • sql server 移動系統數據庫
  • sql2005 日志清理 sql2005壓縮清除日志的方法
  • sql2005日志收縮方法
  • 使用sqlserver 2005/2008 遞歸cte查詢樹型結構的方法
  • win2008中安裝的mssql2005后無法訪問的解決方法
  • sqlserver2005安裝提示服務無法啟動原因分析及解決
  • sql2005clr函數擴展 - 關于山寨索引
  • sql server 2005數據庫日志文件放在哪里?
  • 如何清空sql server 2005日志文件
  • SQL Server 2005中如何清理日志文件
  • 如何讓SQL SERVER2005不記錄操作日志
  • sql server 2005怎么刪除日志文件
  • sql server2005 日志文件損壞怎么辦
  • sql server 2005 如何移動日志的位置
  • 如何查看SQLSERVER 2005日志
  • SQL server 2005中 備份事物日志后,用什么命令可以還原?
  • 如何修改sql server 2005數據庫系統日志保存路徑 ?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mssql2005sql server 2008 清空刪除日志文件(瞬間日志變幾m)清理sql server 2008日志文件cannot shrink log file 2 的解決方案win2008中sqlserver2008 無法打開錯誤日志文件導致無法啟動的解決方法sql server無法收縮日志文件的原因分析及解決辦法sqlserver修改數據庫文件及日志文件存放位置sql server 2005刪除日志文件的幾種方法小結sqlserver2005 沒有日志文件(*.ldf) 只有數據文件(*.mdf) 恢復數據庫的方法sql server 2008數據庫日志文件收縮的方法sqlserver2005 中的幾個統計技巧sql server 2005 management studio express企業管理器將英文變成sqlserver 2005 無法在服務器上訪問指定的路徑或文件sql server 移動系統數據庫sql2005 日志清理 sql2005壓縮清除日志的方法sql2005日志收縮方法使用sqlserver 2005/2008 遞歸cte查詢樹型結構的方法win2008中安裝的mssql2005后無法訪問的解決方法sqlserver2005安裝提示服務無法啟動原因分析及解決sql2005clr函數擴展 - 關于山寨索引sqlserver2005 安裝圖解教程以及超詳細的sql2005圖解安裝全過程sql server 數據庫清除日志的方法sql server 連接到服務器 錯誤23sql server安裝出錯,安裝程序配置sql server 2005“備份集中的數據sqlserver2005安裝提示服務無法啟sqlserver2005 沒有服務器名稱的win7 32/64位系統下安裝sql2005和sql server 2005安裝時asp.net版sql2005的默認端口的修改方法mssql 大量數據時,建立索引或添加字段后保sql2005 四個排名函數(row_number、rank、win7系統安裝mysql5.5.21圖解教程sql2005 provider: 命名管道提供程序 errsql2005利用row_number() over實現分頁功sql2008中通過dbcc opentran和會話查詢事sqlserver2005 數據庫同步配置圖文詳解sql2005 存儲過程解密方法
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载