當前位置:首頁 » 編程語言 » sql數據刪除日誌文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql數據刪除日誌文件

發布時間: 2022-01-30 14:00:37

⑴ 如何清空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.設置為自動收縮

⑵ 如何清除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而不做備份。

⑶ 如何清除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」命令。

清除後對資料庫沒有影響

如何刪除sqlserver資料庫日誌文件

1、確定SQL資料庫的安裝路徑與所用的SQL資料庫名稱。2、點擊開始--程序--MicrosoftSQLServer--查詢分析器--確定,進入軟體里,點擊菜單幫助--Transact-sql幫助(S)--索引--輸入(sp_attach_single_file_db),在右邊對話框里找到以下的命令或者在空白處直接輸入以下的命令:EXECsp_detach_db@dbname='pubs'returnEXECsp_attach_single_file_db@dbname='pubs',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\pubs.mdf'注意:return是加入的命令語名,將資料庫(*.LDF與*.MDF)分離,再將資料庫名改回所要選的,即是pubs改為J2002。即是:EXECsp_detach_db@dbname='J2002'returnEXECsp_attach_single_file_db@dbname='J2002',@physname='c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\J2002.mdf'3、輸入命令後,點擊菜單查詢--執行,下面對話框出現命令"命令已成功完成"。4、刪除命令(EXECsp_detach_db@dbname='J2002'return),進入安裝SQL資料庫路徑里將J2002.ldf文件重命名。5、接著第3點開始,點擊菜單查詢--執行,下面對話框出現命令"設備激活錯誤。物理文件名'C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\J200188.ldf'可能有誤。已創建名為'c:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\j200188_log.LDF'的新日誌文件"。

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

可以的

⑹ 如何刪除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.設置為自動收縮

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

⑻ 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.附加資料庫
企業管理器–伺服器–資料庫–右鍵–附加資料庫

⑼ SQL資料庫刪除了數據文件和日誌文件是不是不能恢復了!

所有備份、數據文件硬碟磁軌損壞?
文件刪除還是可以找回來的,除非硬碟空間被別的文件覆蓋
如果有備份,也是可以恢復的

⑽ sql server運行中,是否能刪除主資料庫事務日誌文件

在SQL Server運行中,只能「清空」和「收縮」事務日誌文件,不能刪除它。

相關知識點延伸:
1、在當前的SQL Server中,事務日誌文件在資料庫運行中必需存在。如果是事務文件過大,想減少磁碟中用的話,可以清空事務日誌,並收縮事務日誌文件。
2、想刪除資料庫事務日誌文件,只能先「分離」資料庫,不過,在附加時如果資料庫文件的事務日誌文件缺失,將會在附加時重建。
3、相關操作:
a.清空日誌
DUMP TRANSACTION 庫名 WITH NO_LOG
b.截斷事務日誌:
BACKUP LOG 資料庫名 WITH NO_LOG
c.收縮資料庫文件(如果不收縮,資料庫的文件不會減小
企業管理器->右鍵你要壓縮的資料庫->所有任務->收縮資料庫->收縮文件

填入收縮數值,後確定。