SQL Server事務日誌的處理方法
1、用BACKUP LOG database WITH NO_LOG清除日誌
把資料庫屬性中的故障還原模型改為“簡單”可以大大減慢日誌增長的速度。
如果把還原模型調到簡單,這樣就不支援時間點還原了,但是日誌檔案會很小,如果資料比較重要推薦還是把資料庫的還原模型調為完全
用BACKUP LOG database WITH NO_LOG命名後,會截斷不活動日誌,不減小物理日誌檔案的大小,但邏輯日誌會減小,收縮資料庫後會把不活動虛擬日誌刪除來釋放空間,不會損壞資料。
如果日誌被截斷並收縮資料庫後,就不能直接用最近的一個全庫備份做時間點還原,建議立即備份資料庫,以防萬一。
2、sql server執行中,是否能刪除主資料庫事務日誌檔案
步驟如下:(1)、分離資料庫企業管理器--資料庫--右擊你要刪除日誌的資料庫--所有
任務--分離資料庫
(2)、然後刪除日誌檔案
(3)、然後再附加資料庫
企業管理器--資料庫--右擊資料庫--所有任務--附加資料庫這時候只附加。mdf就可以了。
3、壓縮SQL資料庫及日誌的詳細方法
SQL Server 2000基礎教程——壓縮資料庫資料庫在使用一段時間後,時常會出現因資料刪除而造成資料庫中空閒空間太多的情況,這時就需要減少分配給資料庫檔案和事務日誌檔案的磁碟空間,以免浪費磁碟空間。當資料庫中沒有資料時,可以修改資料庫檔案屬性直接改變其佔用空間,但當資料庫中有資料時,這樣做會破壞資料庫中的資料,因此需要使用壓縮的方式來縮減資料庫空間。可以在資料庫屬性選項中選擇“Auto shrink”選項,讓系統自動壓縮資料庫,也可以用人工的方法來壓縮。人工壓縮資料庫有以下兩種方式:
1、用Enterprise Manager 壓縮資料庫
在Enterprise Manager 中在所要壓縮的資料庫上單擊右鍵,從快捷選單中的“所有任務(All Tasks)”中選擇“Shrink Database(壓縮資料庫)”選項,就會出現如圖6-10 所示的對話方塊。可以在圖6-10 所示的對話方塊中選擇資料庫的壓縮方式,也可以選擇使用壓縮計劃或壓縮單個檔案單擊圖6-10 中的“Files”按鈕,會出現如圖6-11 所示的壓縮資料庫檔案對話方塊,可以針對每個資料庫檔案進行不同的壓縮設定。
單擊圖6-10 中的“Change” 按鈕,會出現如圖6-12 所示的壓縮計劃編輯對話方塊,可以指定壓縮計劃的執行方式。單擊圖6-12 中的“Change” 按鈕,會出現如圖6-13 所示的迴圈工作計劃編輯對話方塊,可以編輯計劃執行的週期或時間點。設定完成後單擊“OK” 按鈕就開始壓縮資料庫,在壓縮結束後會顯示一個壓縮情況資訊框。
2、用Transact-SQL 命令壓縮資料庫
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令來壓縮資料庫。其中DBCC SHRINKDATABASE 命令對資料庫進行壓縮,DBCC SHRINKFILE 命令對資料庫中指定的檔案進行壓縮。
(1) DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令語法如下:
DBCC SHRINKDATABASE (database_name [, target_percent]
[, {NOTRUNCATE | TRUNCATEONLY}] )
各引數說明如下:
·target_percent 指定將資料庫壓縮後,未使用的空間佔資料庫大小的百分之幾。如果指定的百分比過大,超過了壓縮前未使用空間所佔的比例,則資料庫不會被壓縮。並且壓縮後的資料庫不能比資料庫初始設定的容量小。
·NOTRUECATE
將資料庫縮減後剩餘的空間保留在資料庫,中不返還給作業系統
。如果不選擇此選項,則剩餘的空間返還給作業系統。
·TRUNCATEONLY
將資料庫縮減後剩餘的空間返還給作業系統。使用此命令時SQL Server 將檔案縮減到最後一個檔案分配,區域但不移動任何資料檔案。選擇此項後,target_percent 選項就無效了。例6-14: 壓縮資料庫mytest 的未使用空間為資料庫大小的20%
。
dbcc shrinkdatabase (mytest, 20)
執行結果如下:
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
(2) DBCC SHRINKFILE
DBCC SHRINKFILE 命令壓縮當前資料庫中的檔案。其語法如下:
DBCC SHRINKFILE ( {file_name | file_id }
{ [, target_size] |
[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各引數說明如下:
·file_id
指定要壓縮的檔案的鑑別號(Identification number, 即ID)
。檔案的ID 號可以透過 FILE_ID()函式或如本章前面所講述
的Sp_helpdb 系統儲存過程來得到。
·target_size
指定檔案壓縮後的大小。以MB 為單位。如果不指定此選項,SQL Server 就會盡最大可能地縮減檔案。
·EMPTYFILE
指明此檔案不再使用,將移動所有在此檔案中的資料到同一檔案組中的其它檔案中去。執行帶此引數的命令後,此檔案就可以用ALTER DATABASE 命令來刪除了。 其餘引數NOTRUNCATE 和TRUNCATEONLY 與DBCC SHRINKDATABASE
命令中的含義相同。 例6-15: 壓縮資料庫mydb 中的資料庫檔案mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)
企業管理器裡面的方法:
1、開啟企業管理器
2、開啟要處理的資料庫
3、點選最上面選單>工具>SQL查詢分析器,開啟SQL查詢分析器
4、在輸入視窗裡面輸入:
Code:
DUMP TRANSACTION [資料庫名] WITH NO_LOG
BACKUP LOG [資料庫名] WITH NO_LOG
DBCC SHRINKDATABASE([資料庫名])
點選綠色的小三角(或按F5)執行查詢,等狀態列提示處理完成
即可!
程式裡面的方法:
壓縮資料庫日誌
--1.清空日誌
exec(’DUMP TRANSACTION [’+@dbname+’] WITH NO_LOG’)
--2.截斷事務日誌:
exec(’BACKUP LOG [’+@dbname+’] WITH NO_LOG’)
--3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小
exec(’DBCC SHRINKDATABASE([’+@dbname+’])’)
4、減小日誌的方法:
一、用如下步做了:
1、DUMP TRANSACTION 庫名 WITH no_log
2、dbcc shrinkfile(logfilename)
3、收縮資料庫
4、設定自動收縮。
二、分離資料庫,刪除日誌檔案,再附加,OK!右擊資料庫--所有任務--分離or 附加
三、1、backup log 庫名 WITH no_log,2、dbcc shrinkfile(logfilename),3、收縮資料庫
把資料庫屬性中的故障還原模型改為“簡單”可以大大減慢日誌增長的速度。
如果把還原模型調到簡單,這樣就不支援時間點還原了,但是日誌檔案會很小,如果資料比較重要推薦還是把資料庫的還原模型調為完全
用BACKUP LOG database WITH NO_LOG命名後,會截斷不活動日誌,不減小物理日誌檔案的大小,但邏輯日誌會減小,收縮資料庫後會把不活動虛擬日誌刪除來釋放空間,不會損壞資料。
如果日誌被截斷並收縮資料庫後,就不能直接用最近的一個全庫備份做時間點還原,建議立即備份資料庫,以防萬一。
2、sql server執行中,是否能刪除主資料庫事務日誌檔案
步驟如下:(1)、分離資料庫企業管理器--資料庫--右擊你要刪除日誌的資料庫--所有
任務--分離資料庫
(2)、然後刪除日誌檔案
(3)、然後再附加資料庫
企業管理器--資料庫--右擊資料庫--所有任務--附加資料庫這時候只附加。mdf就可以了。
3、壓縮SQL資料庫及日誌的詳細方法
SQL Server 2000基礎教程——壓縮資料庫資料庫在使用一段時間後,時常會出現因資料刪除而造成資料庫中空閒空間太多的情況,這時就需要減少分配給資料庫檔案和事務日誌檔案的磁碟空間,以免浪費磁碟空間。當資料庫中沒有資料時,可以修改資料庫檔案屬性直接改變其佔用空間,但當資料庫中有資料時,這樣做會破壞資料庫中的資料,因此需要使用壓縮的方式來縮減資料庫空間。可以在資料庫屬性選項中選擇“Auto shrink”選項,讓系統自動壓縮資料庫,也可以用人工的方法來壓縮。人工壓縮資料庫有以下兩種方式:
1、用Enterprise Manager 壓縮資料庫
在Enterprise Manager 中在所要壓縮的資料庫上單擊右鍵,從快捷選單中的“所有任務(All Tasks)”中選擇“Shrink Database(壓縮資料庫)”選項,就會出現如圖6-10 所示的對話方塊。可以在圖6-10 所示的對話方塊中選擇資料庫的壓縮方式,也可以選擇使用壓縮計劃或壓縮單個檔案單擊圖6-10 中的“Files”按鈕,會出現如圖6-11 所示的壓縮資料庫檔案對話方塊,可以針對每個資料庫檔案進行不同的壓縮設定。
單擊圖6-10 中的“Change” 按鈕,會出現如圖6-12 所示的壓縮計劃編輯對話方塊,可以指定壓縮計劃的執行方式。單擊圖6-12 中的“Change” 按鈕,會出現如圖6-13 所示的迴圈工作計劃編輯對話方塊,可以編輯計劃執行的週期或時間點。設定完成後單擊“OK” 按鈕就開始壓縮資料庫,在壓縮結束後會顯示一個壓縮情況資訊框。
2、用Transact-SQL 命令壓縮資料庫
可以使用DBCC SHRINKDATABASE 和DBCC SHRINKFILE 命令來壓縮資料庫。其中DBCC SHRINKDATABASE 命令對資料庫進行壓縮,DBCC SHRINKFILE 命令對資料庫中指定的檔案進行壓縮。
(1) DBCC SHRINKDATABASE
DBCC SHRINKDATABASE 命令語法如下:
DBCC SHRINKDATABASE (database_name [, target_percent]
[, {NOTRUNCATE | TRUNCATEONLY}] )
各引數說明如下:
·target_percent 指定將資料庫壓縮後,未使用的空間佔資料庫大小的百分之幾。如果指定的百分比過大,超過了壓縮前未使用空間所佔的比例,則資料庫不會被壓縮。並且壓縮後的資料庫不能比資料庫初始設定的容量小。
·NOTRUECATE
將資料庫縮減後剩餘的空間保留在資料庫,中不返還給作業系統
。如果不選擇此選項,則剩餘的空間返還給作業系統。
·TRUNCATEONLY
將資料庫縮減後剩餘的空間返還給作業系統。使用此命令時SQL Server 將檔案縮減到最後一個檔案分配,區域但不移動任何資料檔案。選擇此項後,target_percent 選項就無效了。例6-14: 壓縮資料庫mytest 的未使用空間為資料庫大小的20%
。
dbcc shrinkdatabase (mytest, 20)
執行結果如下:
DBCC execution completed. If DBCC printed error
messages, contact your system administrator.
(2) DBCC SHRINKFILE
DBCC SHRINKFILE 命令壓縮當前資料庫中的檔案。其語法如下:
DBCC SHRINKFILE ( {file_name | file_id }
{ [, target_size] |
[, {EMPTYFILE | NOTRUNCATE | TRUNCATEONLY}] } )
各引數說明如下:
·file_id
指定要壓縮的檔案的鑑別號(Identification number, 即ID)
。檔案的ID 號可以透過 FILE_ID()函式或如本章前面所講述
的Sp_helpdb 系統儲存過程來得到。
·target_size
指定檔案壓縮後的大小。以MB 為單位。如果不指定此選項,SQL Server 就會盡最大可能地縮減檔案。
·EMPTYFILE
指明此檔案不再使用,將移動所有在此檔案中的資料到同一檔案組中的其它檔案中去。執行帶此引數的命令後,此檔案就可以用ALTER DATABASE 命令來刪除了。 其餘引數NOTRUNCATE 和TRUNCATEONLY 與DBCC SHRINKDATABASE
命令中的含義相同。 例6-15: 壓縮資料庫mydb 中的資料庫檔案mydb_data2 的大小到1MB。 use mydb dbcc shrinkfile (mydb_data2, 1)
企業管理器裡面的方法:
1、開啟企業管理器
2、開啟要處理的資料庫
3、點選最上面選單>工具>SQL查詢分析器,開啟SQL查詢分析器
4、在輸入視窗裡面輸入:
Code:
DUMP TRANSACTION [資料庫名] WITH NO_LOG
BACKUP LOG [資料庫名] WITH NO_LOG
DBCC SHRINKDATABASE([資料庫名])
點選綠色的小三角(或按F5)執行查詢,等狀態列提示處理完成
即可!
程式裡面的方法:
壓縮資料庫日誌
--1.清空日誌
exec(’DUMP TRANSACTION [’+@dbname+’] WITH NO_LOG’)
--2.截斷事務日誌:
exec(’BACKUP LOG [’+@dbname+’] WITH NO_LOG’)
--3.收縮資料庫檔案(如果不壓縮,資料庫的檔案不會減小
exec(’DBCC SHRINKDATABASE([’+@dbname+’])’)
4、減小日誌的方法:
一、用如下步做了:
1、DUMP TRANSACTION 庫名 WITH no_log
2、dbcc shrinkfile(logfilename)
3、收縮資料庫
4、設定自動收縮。
二、分離資料庫,刪除日誌檔案,再附加,OK!右擊資料庫--所有任務--分離or 附加
三、1、backup log 庫名 WITH no_log,2、dbcc shrinkfile(logfilename),3、收縮資料庫
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-510091/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server事務日誌過大的處理SQLServer
- SQL Server 收縮事務日誌的方法SQLServer
- SQL Server 事務日誌傳輸SQLServer
- SQL Server事務日誌介紹SQLServer
- SQL SERVER 事務處理(一)SQLServer
- sql server 事務處理(二)SQLServer
- SQL Server大型事務日誌的備份SQLServer
- MS SQL Server 事務日誌介紹SQLServer
- 清除 SQL SERVER 2005 事務日誌SQLServer
- SQL Server日誌檔案總結及日誌滿的處理SQLServer
- SQL Server 2005日誌檔案損壞的處理方法SQLServer
- 淺談SQL Server中的事務日誌(轉載)SQLServer
- 淺談SQL Server中的事務日誌(一)----事務日誌的物理和邏輯構架SQLServer
- SQL Server備份事務日誌結尾(Tail)SQLServerAI
- [zt] SQL Server日誌檔案總結及日誌滿的處理SQLServer
- SQL Server分散式事務處理(MS DTC)SQLServer分散式
- [zt] SQL Server 事務日誌的收縮和截斷SQLServer
- 關於SQL Server事務日誌的問題彙總SQLServer
- sql server日誌檔案總結及日誌滿的處理辦法SQLServer
- SQL Server資料庫事務日誌儲存序列SQLServer資料庫
- SQL Server 2008 事務日誌備份SQLServer
- SQL Server分散式事務處理(MS DTC)-續SQLServer分散式
- [轉載] SQL Server事務日誌的收縮和截斷SQLServer
- SQL Server 2008 事務日誌備份注意事項SQLServer
- SQL Server 2008 建立事務日誌備份SQLServer
- SQL 事務日誌填滿的原因SQL
- 清除SQL Server日誌的方法介紹SQLServer
- SQL Server資料庫事務日誌序列號(LSN)介紹SQLServer資料庫
- SQL Server如何截斷(Truncate)和收縮(Shrink)事務日誌SQLServer
- SQL Server 2008還原事務日誌備份SQLServer
- SQL Server 2008進行備份事務日誌SQLServer
- SQL Server 2008結尾事務日誌備份SQLServer
- SQL Server 2008中的聯機事務處理SQLServer
- 用sql語句dbcc log 檢視SQL Server 資料庫的事務日誌SQLServer資料庫
- 初探SQL Server 2008線上事務處理功能SQLServer
- php事務處理方法PHP
- 刪除SQL Server日誌的具體方法SQLServer
- SQL SERVER日誌清除的兩種方法(轉)SQLServer