當前位置:首頁 » 編程語言 » sql2008事務日誌

sql2008事務日誌

發布時間: 2023-09-05 14:23:05

『壹』 如何查看sql server 2008的操作日誌

apex sql log支持 sql server 2008,有試用版

下載:http://www.apexsql.com/sql_tools_log.aspx

你好,我已經下載了,能看到資料庫的所有的表、欄位等,可是不知道怎麼查看資料庫的日誌文件

這時從官網找到的圖片示例,頁面里的就是日誌記錄啊,某個表被做了什麼操作。

『貳』 MSSQL Server的事務日誌簡介一覽


(Transaction logs)是資料庫結構中非常重要但又經常被忽略的部分。由於它並不像資料庫中的schema那樣活躍,因此很少有人關注交易日誌。
交易日誌是針對資料庫改變所做的記錄,它可以記錄針對資料庫的任何操作,並將記錄結果保存在獨立的文件中。對於任何每一個交易過程,交易日誌都有非常全面的記錄,根據這些記錄可以將數據文件恢復成交易前的狀態。從交易動作開始,交易日誌就處於記錄狀態,交易過程中對資料庫的任何操作都在記錄范圍,直到用戶點擊埋茄提交或後退後才結束記錄。每個資料庫都擁有至少一個交易日誌以及一個數據文件。
出於性能上的考慮,SQL Server將用戶的改動存入緩存中,這些改變會立即寫入交易日誌,但不會立即寫入數據文件。交易日誌會通過一個標記點來確定某個交易是否已將緩存中的數據寫入數據文件。當SQL Server重啟後,它會查看日誌中最新的標記點,並將這個標記點後面的交易記錄抹去,因為這些交易記錄並沒有真正的將緩存中的數據寫入數據文件。這可以防止那些中斷的交易修改數據文件。
維護交易日誌
因為很多人經常遺忘交易日誌,因此它也會給系統帶來一些問題。隨著系統的不斷運行,日誌記錄的內容會越來越多,日誌文件的體積也會越來越大,最終導致可用磁碟空間不足。除非日常工作中經常對日誌進行清理,否則日誌文件最終會侵佔分區內的全部可用空間。日誌的默認配置為不限容量,如果以這種配置工作,它就會不斷膨脹,最終也會占據全部可用空間。這兩種情況都會導致資料庫停止工作。
對交易日誌的日常備份工作可以有效的防止日誌文件過分消耗磁碟空間。備份過程會將日誌中不再需要的部分截除。截除的方法是首先把舊記錄標記為非活動狀態,然後將新日誌覆蓋到舊日誌的位置上,這樣就可以防止交易日誌的體積不斷膨脹。如果無法對日誌進行經常性的備份工作,最好將資料庫設置為"簡單恢復模式"。在這種模式下,系統會強制交易日誌在每次記錄標記點時,自動進行截除操作,以新日誌覆蓋舊日誌。
截除過程發逗液碼山哪生在備份或將舊標記點標為非活動狀態時,它使得舊的交易記錄可以被覆蓋,但這並不會減少交易日誌實際佔用的磁碟空間。就算不再使用日誌,它依然會占據一定的空間。因此在維護時,還需要對交易日誌進行壓縮。壓縮交易日誌的方法是刪除非活動記錄,從而減少日誌文件所佔用的物理硬碟空間。
通過使用DBCC SHRINKDATABASE語句可以壓縮當前資料庫的交易日誌文件,DBCC SHRINKFILE語句用來壓縮指定的交易日誌文件,另外也可以在資料庫中激活自動壓縮操作。當壓縮日誌時,首先會將舊記錄標記為非活動狀態,然後將帶有非活動標記的記錄徹底刪除。根據所使用的壓縮方式的不同,你可能不會立即看到結果。在理想情況下,壓縮工作應該選在系統不是非常繁忙的時段進行,否則有可能影響資料庫性能。
恢復資料庫
交易記錄備份可以用來將資料庫恢復到某一指定狀態,但交易記錄備份本身不足以完成恢復資料庫的任務,還需要備份的數據文件參與恢復工作。恢復資料庫時,首先進行的是數據文件的恢復工作。在整個數據文件恢復完成前,不要將其設為完成狀態,否則交易日誌就不會被恢復。當數據文件恢復完成,系統會通過交易日誌的備份將資料庫恢復成用戶希望的狀態。如果在資料庫最後一次備份後,存在多個日誌文件的備份,備份程序會按照它們建立的時間依次將其恢復。
另一種被稱為log shipping的過程可以提供更強的資料庫備份能力。當log shipping配置好後,它可以將資料庫整個復制到另一台伺服器上。在這種情況下,交易日誌也會定期發送到備份伺服器上供恢復數據使用。這使得伺服器一直處於熱備份狀態,當數據發生改變時它也隨之更新。另一個伺服器被稱作監視(monitor)伺服器,可以用來監視按規定時間間隔發送的shipping信號。如果在規定時間內沒有收到信號,監視伺服器會將這一事件記錄到事件日誌。這種機制使得log shipping經常成為災難恢復計劃中使用的方案。
性能優化
交易日誌對資料庫有重要作用,同時它對系統的整體性能也有一定影響。通過幾個選項,我們可以對交易日誌的性能進行優化。由於交易日誌是一個連續的磁碟寫入過程,在這當中不會發生讀取動作。因此將日誌文件放在一個獨立的磁碟,對優化性能有一定作用。
另一項優化措施與日誌文件的體積有關。我們可以設置日誌文件的體積不超過硬碟空間的百分之幾,或者確定它的大小。如果將其設置的過大會浪費磁碟空間,而如果設置的過小則會強制記錄文件不斷嘗試擴展,導致資料庫性能下降。
事務日誌文件Transaction Log File是用來記錄資料庫更新情況的文件,擴展名為ldf。
在 SQL Server 7.0 和 SQL Server 2000 中,如果設置了自動增長功能,事務日誌文件將會自動擴展。
一般情況下,在能夠容納兩次事務日誌截斷之間發生的最大數量的事務時,事務日誌的大小是穩定的,事務日誌截斷由檢查點或者事務日誌備份觸發。
然而,在某些情況下,事務日誌可能會變得非常大,以致用盡空間或變滿。通常,在事務日誌文件占盡可用磁碟空間且不能再擴展時,您將收到如下錯誤消息:
Error:9002, Severity:17, State:2
The log file for database 』%.*ls』 is full.
除了出現此錯誤消息之外,SQL Server 還可能因為缺少事務日誌擴展空間而將資料庫標記為 SUSPECT。有關如何從此情形中恢復的其他信息,請參見 SQL Server 聯機幫助中的「磁碟空間不足」主題。
另外,事務日誌擴展可能導致下列情形:
· 非常大的事務日誌文件。
· 事務可能會失敗並可能開始回滾。
· 事務可能會用很長時間才能完成。
· 可能發生性能問題。
· 可能發生阻塞現象。
原因
事務日誌擴展可能由於以下原因或情形而發生:
· 未提交的事務
· 非常大的事務
· 操作:DBCC DBREINDEX 和 CREATE INDEX
· 在從事務日誌備份還原時
· 客戶端應用程序不處理所有結果
· 查詢在事務日誌完成擴展之前超時,您收到假的「Log Full」錯誤消息
· 未復制的事務

『叄』 如何清理sql server 2008日誌

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

『肆』 如何查看sql2008資料庫的事務日誌文件

在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看: DBCC log ( {dbiddbname}, [, type={01234}] ) 參數: Dbid or dbname - 任一資料庫的ID或名字 type - 輸出結果的類型: 0 - 最少信息(operation, context, transaction id) 1 - 更多信息(plus flags, tags, row length) 2 - 非常詳細的信息(plus object name, index name,page id, slot id) 3 - 每種操作的全部信息 4 - 每種操作的全部信息加上該事務的16進制信息 默認 type = 0 要查看MSATER資料庫的事務日誌可以用以下命令: DBCC log (master) 釋放日誌空間 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 或用代碼: 下面的示例分離 pubs,然後將 pubs 中的一個文件附加到當前伺服器。 a.分離 E X E C sp_detach_db @dbname = 'pubs' b.刪除日誌文件 c.再附加 E X E C sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 5.為了以後能自動收縮,做如下設置: 企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇"自動收縮" --SQL語句設置方式: E X E C sp_dboption '資料庫名', 'autoshrink', 'TRUE' 6.如果想以後不讓它日誌增長得太大 企業管理器--伺服器--右鍵資料庫--屬性--事務日誌 --將文件增長限制為xM(x是你允許的最大數據文件大小) --SQL語句的設置方式: alter database 資料庫名 modify file(name=邏輯文件名,maxsize=20) 特別注意: 請按步驟進行,未進行前面的步驟,請不要做後面的步驟 否則可能損壞資料庫. 一般不建議做第4,6兩步 第4步不安全,有可能損壞資料庫或丟失數據 第6步如果日誌達到上限,則以後的資料庫處理會失敗,在清理日誌後才能恢復. 另外提供一種更簡單的方法,建議大家使用。 更簡單的方法: 1。右建資料庫屬性窗口--故障還原模型--設為簡單 2。右建資料庫所有任務--收縮資料庫 3。右建資料庫屬性窗口--故障還原模型--設為大容量日誌記錄

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:433
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:744
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:147
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:240
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726