導航:首頁 > 文件管理 > 怎麼刪除sql日誌文件

怎麼刪除sql日誌文件

發布時間:2022-09-28 00:32:18

A. 如何清空sql資料庫的日誌文件

其中database為你的庫名 --壓縮日誌
1:截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG2:清空日誌DUMP TRANSACTION 庫名 WITH NO_LOG再:企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了3: 刪除LOG1:分離資料庫 企業管理器->伺服器->資料庫->右鍵->分離資料庫
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'
4: 如果想以後不讓它增長
企業管理器--伺服器--右鍵資料庫--屬性--事務日誌--將文件增長限制為xM(x是你允許的最大數據文件大小)
--SQL語句的設置方式:
alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20)
5.設置為自動收縮

B. SQL資料庫日誌文件 可以刪除嗎

可以的

C. 如何清除SQL日誌

方法1:
第一步:
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,具體意思看幫助。

方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在Query Analyzer中執行如下的語句:
exec sp_detach_db yourDBName,true --卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query Analyzer中執行如下的語句:
exec sp_attach_single_file_db yourDBName,'d:\mssql7\data\yourDBName_data.mdf'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。

以上方法在清除log日誌中均有效。
但,能否讓sql server 不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql server每天都會產生4,500M的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?

我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
SELECT * into test_2 from b_bgxx
共45000條記錄,產生十幾M log,如果
delete from test_2
產生80多M log ,這明顯存在問題。

雖然可以換成:
truncate table test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。

D. 如何清除SQL資料庫日誌

1.打開查詢分析器,輸入命令 DUMP TRANSACTION 資料庫名 WITH NO_LOG 2.再打開企業管理器--右鍵你要壓縮的資料庫--所有任務--收縮資料庫--收縮文件--選擇日誌文件--在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。 清除Log有兩種方法: 1.自動清除法 開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQL Server自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。 2.手動清除法 執行命令「mp transaction」來清除Log。以下兩條命令都可以清除日誌: mp transaction with truncate_only mp transaction with no_log 通常刪除事務日誌中不活躍的部分可使用「mp transaction with trancate_only」命令,這條命令寫進事務日誌時,還要做必要的並發性檢查。SYBASE提供「mp transaction with no_log」來處理某些非常緊迫的情況,使用這條命令有很大的危險性,SQL Server會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。

E. sql server怎麼刪除資料庫日誌

一、簡單方法
–SQL Server收縮方法
1、右鍵資料庫→屬性→選項→故障還原模型→設為簡單→確定;
2、右鍵資料庫→所有任務→收縮資料庫→確定;
3、右鍵資料庫→屬性→選項→故障還原模型→設為大容量日誌記錄→確定。
二、復雜方法
–SQL Server日誌清空方法
在查詢分析器中順序執行以下三步,其中 databasename 為你的資料庫文件名
1.清空日誌:DUMP TRANSACTION databasename WITH NO_LOG
2.截斷事務日誌:BACKUP LOG databasename WITH NO_LOG
3.收縮資料庫:DBCC SHRINKDATABASE(databasename)
(BACKUP LOG databasename WITH NO_LOG|TRUNCATE_ONLY可以截斷事務日誌。
第一步只是將非活動的事務日誌截斷,並沒有收縮資料庫,只有進行第二項操作後,資料庫才進行事務日誌的清理工作,將截斷的非活動事務刪除,並將事務日誌文件收縮到適當尺寸。)
3、收縮資料庫文件(如果不壓縮,資料庫的文件不會減小)
企業管理器–右鍵你要壓縮的資料庫–所有任務–收縮資料庫–收縮文件–選擇日誌文件–在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了
–選擇數據文件–在收縮方式里選擇收縮至XXM,這里會給出一個允許收縮到的最小M數,直接輸入這個數,確定就可以了。
收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同簡單方法里第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據
也可以用SQL語句來完成
–收縮資料庫
DBCC SHRINKDATABASE(資料庫名)
–收縮指定數據文件,1是文件號,可以通過這個語句查詢到:
select * from sysfiles DBCC SHRINKFILE(1)
4、為了最大化的縮小日誌文件(如果是sql 7.0,這步只能在查詢分析器中進行)
在使用 SQL Server 時,資料庫里的日誌文件會越來越大,需要把它刪除。 我先把這個資料庫分離,在資料庫上點右鍵 -> 所有任務 -> 分離資料庫,分離之後,就可以把 Log 文件刪除,同時也可以把數據進行備份。之後,就可以在所有任務里的附加資料庫再把那個資料庫添進來,SQL Server 會提示 LOG 文件不存在,問你是不是要新建一個,選是就行了,這樣,LOG 文件就清空了。 這個方法只需幾分鍾的時間,但在這幾分鍾里,就不能訪問這個資料庫了,我覺得只適用於小型的應用,對於大型的系統就要找其它方法了。)
a.分離資料庫
企業管理器–伺服器–資料庫–右鍵–分離資料庫
b.在我的電腦中刪除LOG文件
c.附加資料庫
企業管理器–伺服器–資料庫–右鍵–附加資料庫

F. SQL Server 快速清除日誌文件的方法

SQL Server 2000快速清除日誌文件的方法

SQL Server 2000 資料庫日誌太大!

如何清理SQL Server 2000的日誌呢?

如何壓縮SQL Server 2000的日誌呢?

如何讓SQL Server 2000的日誌變小呢?

據我所知,辦法有很多很多,總結起來算有3類吧:

1、點幾下滑鼠,用SQL Server 2000管理工具中的企業管理器即可實現,待會兒詳解;

2、用SQL語句,在SQL Server 2000管理工具中的查詢分析器可以實現,此法高級人士喜歡用;

3、用第三方工具實現,原理嘛,我覺得應該是用SQL語句來實現的,這方法好,簡單易用,網上不乏精品工具,待會兒介紹一款。

一、現在我們詳細描述一下如何用企業管理器清理SQL 2000的日誌:

1、打開企業管理器,右擊要處理的資料庫--》屬性--》選項--》故障還原,選「簡單」--》確定。如圖:

2、右擊要處理的資料庫--》所有任務--》收縮資料庫--》什麼也不動,默認第一個是0%,其它兩個未選中,點確定--》如果您以前資料庫日誌文件大於1M那麼現在再看看,是不是只有1M了呢。

3、操作完後--》按第一步,把「故障還原」,選「完全」,傳說中SQL Server 2000 有自動還原功能,說是如果非法關機等因素造成數據丟失可以自動回滾,另外可以用程序來實現操作回滾,所以最好是讓故障還原是「完全」。

4、這樣便實現了「SQL Server 2000 資料庫日誌太大!如何管理,清除,變小,壓縮它」中的清除,變小,壓縮了,至於怎麼管理,自己看著辦吧,我一般只會用到這些,再有深入研究的話我會寫上來的`。

二、現在我們介紹用第三方SQL Server 日誌清理工具來清理日誌,簡單易用高效,推薦用這個方法。

我喜歡用 SqlServer日誌清除專家 v3.5 來實現這個功能。界面如下:

資料庫那裡一般會將整個伺服器的資料庫名都列舉出來,需要選擇為自己賬戶能管理到的那個,我這里DB_iszip賬戶能管理的是 iszip ,選擇好之後,點「清除日誌」按鈕,然後SQL Server 2000的日誌就被清理好了,此時你去伺服器看你資料庫日誌佔用空間就只有1M了。

;

G. 如何清空sql server 2005日誌文件

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

H. 怎樣清理或者刪除MSSQL資料庫日誌文件

資料庫的性能是DBA都需要重點關注的,日誌文件的增多嚴重影響資料庫的性能,本文將為您介紹SQLServer刪除日誌文件的方法,供您參考,希望對您有所幫助。

資料庫在使用過程中會使日誌文件不斷增加,使得資料庫的性能下降,並且佔用大量的磁碟空間。SQL Server資料庫都有log文件,log文件記錄用戶對資料庫修改的操作。可以通過直接刪除log文件和清空日誌在清除資料庫日誌。

1、刪除LOG

1.1 分離資料庫

分離資料庫之前一定要做好資料庫的全備份,選擇資料庫——右鍵——任務——分離。

附加資料庫之後將生成新的日誌文件log,新的日誌文件的大小事504K。

1.4 也可以通過命令才完成以上的操作

use master;
exec sp_detach_db @dbname='資料庫名';
exec sp_attach_single_file_db @dbname='資料庫名',@physname='D:Program FilesMicrosoft SQL ServerMSSQL10.SQL2008MSSQLDATATestDB.mdf'

Sp_detach_db:分離資料庫;

sp_attach_single_file_db:附加單個資料庫文件;在上述代碼中只附加了數據文件,而未附加日誌文件,言下之意就是刪除了日誌文件。

該命令在SQL Server 2005和2000支持,SQL Server 2008不支持該命令。

2. 清空日誌

DUMP TRANSACTION 資料庫名 WITH NO_LOG

3. 收縮資料庫文件

DBCC SHRINKFILE ('TestDB_log',1)

SQL Server中「數據收縮」詳解

4. 截斷事務日誌

BACKUP LOG TestDB WITH NO_LOG

該命令在SQL Server 2008也是不支持,在SQL Server 2005和2000可以使用。

I. 如何清除mssql資料庫日誌

方法一:
1、backup log database_name with no_log
mp transaction with no_log
或者 backup log database_name with truncate_only --no_log和truncate_only是在這里是同義的,隨便執行哪一句都可以
2、收縮特定資料庫的所有數據和日誌文件,執行 dbcc shrinkdatabase (database_name,[,target_percent])--database_name是要收縮的資料庫名稱;target_percent是資料庫收縮後的資料庫文件中所要的剩餘可用空間百分比
收縮一次一個特定資料庫中的數據或日誌文件,執行 dbcc shrinkfile(file_id,[,target_size]) --file_id是要收縮的文件的標識 (ID) 號,若要獲得文件 ID,請使用 FILE_ID 函數或在當前資料庫中搜索 sysfiles;target_size是用兆位元組表示的所要的文件大小(用整數表示)。如果沒有指定,dbcc shrinkfile 將文件大小減少到默認文件大小
兩個dbcc都可以帶上參數notruncate或truncateonly,具體意思看幫助。

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

方法二:(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
1、先備份整個資料庫以備不測
2、備份結束後,在Query Analyzer中執行如下的語句:
exec sp_detach_db DBName,true --卸除這個DB在MSSQL中的注冊信息
3、到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
4、在Query Analyzer中執行如下的語句:
exec sp_attach_single_file_db DBName,'d:\mssql7\data\DBName_data.mdf'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。

方法三:自動清除法
開放資料庫選項 Trunc Log on Chkpt,使資料庫系統每隔一段時間自動清除Log。此方法的優點是無須人工干預,由SQLServer自動執行,並且一般不會出現Log溢滿的情況;缺點是只清除Log而不做備份。

J. 如何清除SQL server日誌

方法1:
第一步:
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,具體意思看幫助。
方法2
(這個方法在sqlserver2000的環境下做一般能成功,在sqlserver7及以下版本就不一定了):
第一步:
先備份整個資料庫以備不測
第二步:
備份結束後,在Query
Analyzer中執行如下的語句:
exec
sp_detach_db
yourDBName,true
--卸除這個DB在MSSQL中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在Query
Analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourDBName,'d:\mssql7\data\yourDBName_data.mdf'
--以單文件的方式注冊該DB,如果成功則MSSQL將自動為這個DB生成一個500K的日誌文件。
以上方法在清除log日誌中均有效。
但,能否讓sql
server
不產生log日誌呢?以上方法好像均無效。
我這兒正好有個case:
我客戶的sql
server每天都會產生4,500M的log日誌,每天都清除一下,非常不便。有沒有辦法實現不產生log日誌呢?
我分析了一下客戶產生log日誌的原因,並且做了相應測試。
客戶是每天將資料庫清空,從總系統中將數據導入到sql
server里。我感決sqlserver在插入時產生log不大,在delete整個庫時產生log極大。
比如:
SELECT
*
into
test_2
from
b_bgxx
共45000條記錄,產生十幾M
log,如果
delete
from
test_2
產生80多M
log
,這明顯存在問題。
雖然可以換成:
truncate
table
test_2
但我還是希望能找到不產生log的方法。就如oracle不產生歸檔一樣。

閱讀全文

與怎麼刪除sql日誌文件相關的資料

熱點內容
男主外號叫撒旦的小說 瀏覽:382
導航APK升級文件 瀏覽:216
看未上映電影的網站 瀏覽:693
蘋果解壓有密碼的文件 瀏覽:521
5g視頻網站都有哪些 瀏覽:551
尹美麗還演過什麼 瀏覽:650
抗日奇俠之終極任務演員表 瀏覽:628
電影短片網 瀏覽:646
日本的電影大全免費看中文版 瀏覽:188
一女多男七個世界 瀏覽:733
cad文件怎麼轉換slt文件 瀏覽:948
外語電影翻譯成普通話的網站 瀏覽:381
別克怎麼用原廠電腦編程 瀏覽:125
半月談app是什麼意思 瀏覽:788
廣州正大數據恢復 瀏覽:80
什麼app軟體上買汽車減震器 瀏覽:375
在線免費的網站你懂得 瀏覽:611
linux服務加入開機啟動 瀏覽:115
手機百度app如何上傳文件 瀏覽:672
韓劇電影版 瀏覽:887

友情鏈接