SQL Server 日誌分析

來源:互聯網
上載者:User
 

4.6  通過日誌查看伺服器的運行情況

SQL
Server 2005可以將某些系統事件和使用者自訂的事件記錄到SQL Server錯誤記錄檔和Windows應用程式記錄檔中。這兩種日誌都會自動標上時間。

4.6.1  在【事件檢視器】中查看伺服器的運行情況

SQL
Server
2005伺服器的啟動、關閉和暫停動作,都會產生一個事件記錄,這個記錄將會記在Windows的【事件檢視器】中。如果在4.5.4節中為SQL
Server
2005伺服器設定的安全性裡,設定了登入審核的話,那麼只要符合登入審核條件的事件記錄,也會記在Windows的【事件檢視器】中,下面介紹一下查看
SQL
Server 2005事件記錄的辦法。

(1)在電腦的【開始】菜單à【管理工具】à【事件檢視器】,有些讀者的菜單可能和筆者的不一樣,沒關係,只要是找到【事件檢視器】程式就行了。

(2)在4.49所示【事件檢視器】對話方塊,選擇【事件檢視器(本地)】à【應用程式】選項,在右邊的列表框裡可以看到所有的事件記錄列表。

圖4.49 【事件檢視器】對話方塊

(3)雙擊其中一個事件,將彈出4.50所示的【事件屬性】對話方塊,在這裡可以看到事件的詳細內容。本例中是審核成功資訊。通過這一項可以看出是否有駭客成功入侵。

圖4.50 【事件屬性】對話方塊

(4)在【事件檢視器】裡有可能記錄了各種不同應用程式的事件記
錄,如果只想查看和SQL
Server有關的事件記錄的話,可以右擊【應用程式】,在彈出的捷徑功能表裡選擇【查看】à【篩選】。4.51所示的【應用程式屬性】對話方塊。在這裡
可以篩選事件類型、事件來源、類別、事件時間等。具體篩選例子就不贅述了。

圖4.51 【應用程式屬性】對話方塊

注意:在事件檢視器裡的【安全性】、【系統】裡,也會記載著於SQL Server 2005相關的事件記錄,不要忘記查看它們。在Windows應用程式記錄檔裡,不僅僅記錄資料庫啟動停止和身份審核資訊,還會完整地記錄Windows作業系統上發生的事件,以及SQL
Server和SQL Server代理中的事件。

4.6.2  2005新增功能:通過日誌查看器查看SQL Server日誌

在SQL Server Management Studio中查看SQL Server日誌的方法如下:

(1)啟動【SQL Server Management Studio】並串連到SQL Server伺服器上。

(2)在【物件總管】中,屏開【執行個體名】à【管理】à【SQL Server日誌】,4.52所示,可以看到SQL Server的日誌存檔。

圖4.52 查看SQL Server日誌

(3)雙擊某一個日誌存檔,4.53所示對話方塊【記錄檔查看器】視窗,可以查看日誌的具體內容。

圖4.53 【記錄檔查看器】視窗

4.6.3  在LOG檔案夾中查看SQL
Server錯誤記錄檔

SQL
Server 2005還會將SQL Server的錯誤記錄檔存在系統硬碟的“D:/Program
Files/Microsoft SQL Server/MSSQL.X/MSSQL/LOG”目錄下,檔案名稱“ERRORLOG”和“ERRORLOG.X ”,其中“X”是數字。用記事本可以開啟來查看。

查看SQL SERVER的交易記錄:
在SQL SERVER 7.0和2000中,可以用下面的命令查看:

DBCC log ( {dbid|dbname}, [, type={0|1|2|3|4}] )

參數:
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

要查看ZHOZDB資料庫的交易記錄可以用以下命令:
DBCC log (zhozdb)

SQL Server壓縮日誌及資料庫檔案大小

1、清空日誌

DUMP  TRANSACTION  ZHOZDB  WITH NO_LOG

2、截斷交易記錄

BACKUP LOG ZHOZDB 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.分離

EXEC sp_detach_db @dbname = 'pubs'

b.刪除記錄檔

c.再附加:

EXEC sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:/Program Files/Microsoft SQL Server/MSSQL/Data/pubs.mdf'

5、為了以後能自動收縮,做如下設定:

企業管理器--伺服器--右鍵資料庫--屬性--選項--選擇“自動收縮”

--SQL語句設定方式:

EXEC sp_dboption 'ZHOZDB', 'autoshrink', 'TRUE'

6、如果想以後不讓它日誌增長得太大。

企業管理器--伺服器--右鍵資料庫--屬性--交易記錄

--將檔案增長限制為xM(x是你允許的最大資料檔案大小)

--SQL語句的設定方式:

alter database ZHOZDB modify file(name=邏輯檔案名稱,maxsize=20)

很多朋友在事件檢視器看到出現了問題,但大多不知道如何根據這些資訊去解決實際碰到的問題,以下是我根據網上的討論和實踐,總結出來的一些經驗供大家分享,版主覺得有協助的話,希望加入精華,不好的話,請勿使用雞蛋或者磚頭等物體,謝謝!  
   
  事件檢視器中看到不斷出現下面的錯誤記錄檔。  
   
  事件類型:錯誤  
  事件來源:TermServDevices  
  事件種類:無  
  事件   ID:1106  
  日期:2004-7-8  
  事件:14:06:37  
  使用者:N/A  
  電腦:UBO-WS  
  描述:  
  無法安裝印表機。    
  資料:  
  0000:   ba   06   00   00   32   04   00   00       o...2...  
  =================================  
  針對此問題,我們得到事件來源和事件ID分別是   TermServDevices   和   1106  
   
  訪問http://eventid.net/search.asp(這是個查詢事件裡面源和ID資訊的很好的網站,免費收費服務都有,英文好的朋友可以直接閱讀)將上面的事件來源和事件ID填入搜尋索引鍵裡面搜尋,得到以下關於此錯誤的資訊:  
  ==============  
  Event   ID:   1106   //錯誤事件ID  
  Source   TermServDevices     //錯誤事件來源  
  Type   Error     //錯誤類型  
  Description   The   printer   could   not   be   installed.     //簡單描述(無法安裝印表機)  
  Details   Comments   and   links   for   event   id   1106   from   source   TermServDevices     //這裡有詳細連結到具體的討論中,點擊這裡  
  ============================  
 
接下來點擊上文Detail的連結,得到詳細的討論,Comments顯示則是一些國外IT朋友對此問題的討論,很有參考價值,然後Links裡面有到微
軟知識庫的相關問題連結:Q239088   ,   Q294429,由此我們得到兩個知識庫ID號   239088   和   294429
 
   
  微軟知識庫的連結方式為:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;+知識庫ID號  
   
  最後,我們使用以下連結得到了最後的答案,並排錯。  
   
  Windows   2000   終端服務伺服器記錄事件   1111、1105   和   1106  
  http://support.microsoft.com/default.aspx?scid=kb;zh-cn;239088  
   
  Windows   Server   終端服務中的印表機重新導向體繫結構  
  http://support.microsoft.com/default.aspx?scid=kb;zh-cn;294429

在SQL企業管理器中,管理-SQL   Server日誌,開啟即可。

在SQL   2000下,可用系統Function來查到。  
   
SELECT   *   From   ::fn_dblog(Default,Default)  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.