當前位置:首頁 » 編程語言 » sql2000清理日誌

sql2000清理日誌

發布時間: 2022-07-15 21:40:45

1. sql2000資料庫日誌文件太大,怎麼辦

最常用日誌清除方法
1、打開查詢分析器,輸入命令
BACKUP LOG database_name WITH
NO_LOG

2、打開企業管理器 ,選中資料庫, 選擇 所有任務>收縮資料庫

3、選擇 收縮文件>文件

4、選擇資料庫文件,設置收縮文件至?MB

2. 怎樣清理或者刪除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可以使用。

3. SQL server資料庫日誌滿了怎麼處理

一、刪除日誌文件。

二、手動收縮。操作如下:

1、在資料庫頁面中選擇「選項」;

4. 如何清理sql server 已滿的資料庫日誌

具體方法有3種。
方法一:
第一步:
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,具體意思查看聯機幫助.
方法二:
第一步:
先備份整個資料庫以備不測

第二步:
備份結束後,在query
analyzer中執行如下的語句:
exec
sp_detach_db
yourdbname,true
--卸除這個db在mssql中的注冊信息
第三步:
到日誌的物理文件所在的目錄中去刪除該日誌文件或者將該日誌文件移出該目錄
第四步:
在query
analyzer中執行如下的語句:
exec
sp_attach_single_file_db
yourdbname,'
d:\mssql\data\yourdbname_data.mdf
'
--以單文件的方式注冊該db,如果成功則mssql將自動為這個db生成一個500k的日誌文件。
方法三:
1.
進入企業管理器,選中資料庫,比如demo
2.
所有任務->分離資料庫
3.
到資料庫文件的存放目錄,將muonline_log.ldf文件刪除,以防萬一,你可以拷出去
4.
企業管理器->附加資料庫,選muonline,這個時候你會看見日誌文件這項是一個叉,不要緊,繼續,此時資料庫就會提示你該資料庫無日誌是否創建一個新的,確定就是了。
5.
記得資料庫重新附加後用戶要重新設置一下。
如果以後,不想要它變大:
sql2000下使用:
在資料庫上點右鍵->屬性->選項->故障恢復-模型-選擇-簡單模型。
或用sql語句:
alter
database
資料庫名
set
recovery
simple

5. 如何清除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不產生歸檔一樣。

6. 如何清理SQL伺服器日誌

全部刪除:
mp
transaction
master
with
no_log;
mp
transaction
master
with
truncate_only
單個刪除:
mp
transaction
@databasename
with
no_log
dbcc
shrinkfile(
@logofilename,@newsize)
--收縮
日誌
declare
@dbname
varchar(20)
set
@dbname='thsybsecondtest'
--1.清空日誌
exec('mp
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''')

7. 如何清除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不產生歸檔一樣。

8. SQL SERVER 2000資料庫日誌文件過大如何解決

守得雲開見月明,花了一個上午結合前輩的博客,終於弄好了sqlserver2008的資料庫日誌收縮到1MB,分享給大家# 方法步驟1、執行SQL語句改成「簡單模式」2、收縮資料庫3、執行SQL語句改回「完全模式」## 第一步:執行SQL語句改成「簡單模式」USE [master]GOALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名) SET RECOVERY SIMPLE --改成簡單模式GO## 第二步:進行資料庫操作相關界面截圖和操作假定:資料庫名:SlowXWebDB 日誌文件名:SlowXWebDB_Log

## 第三步:執行SQL語句改成「完全模式」USE [master]GOALTER DATABASE SlowXWebDB (改成你需要進行收縮的資料庫名)SET RECOVERY FULL WITH NO_WAITGOALTER DATABASE datebaseName(改成你需要進行收縮的資料庫名)SET RECOVERY FULL --還原為完全模式GO==最後不要忘記實測下資料庫是否能夠正常使用==

9. 如何清除SQL資料庫日誌,清除後對資料庫有什麼影響

教你如何清除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會彈出一條警告信息。為了盡量確保資料庫的一致性,你應將它作為「最後一招」。

以上兩種方法只是清除日誌,而不做日誌備份,若想備份日誌,應執行「mp transaction database_name to mpdevice」命令。

清除後對資料庫沒有影響

10. sql2000資料庫日誌大了我要手動刪除怎麼弄呢

最簡單的方法是:先卸離資料庫,然後找到資料庫文件(*.mdf, *.log)保存的位置,直接把.log文件刪除,然後再附加資料庫(單獨.mdf文件)就可以了。

熱點內容
康佳29寸電視存儲器壞怎麼代換 發布:2025-02-01 22:40:44 瀏覽:186
訪問的結果 發布:2025-02-01 22:30:12 瀏覽:175
cmd訪問網站 發布:2025-02-01 22:02:45 瀏覽:440
清除svn緩存 發布:2025-02-01 22:01:04 瀏覽:945
安卓模擬器怎麼用鍵盤操作 發布:2025-02-01 21:55:24 瀏覽:808
安卓手機屏幕為什麼會變色 發布:2025-02-01 21:55:20 瀏覽:823
安卓存摺怎麼看余額 發布:2025-02-01 21:53:34 瀏覽:770
其他電腦怎麼設置訪問伺服器 發布:2025-02-01 21:34:27 瀏覽:896
如何敲編程 發布:2025-02-01 21:26:13 瀏覽:25
微信加密嗎 發布:2025-02-01 21:26:07 瀏覽:43