當前位置:首頁 » 數據倉庫 » 如何監測資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

如何監測資料庫

發布時間: 2023-06-07 19:39:11

A. 如何監測和優化OLAP資料庫

微軟SQLServer分析服務(SSAS)提供了一個用來創建和管理數據挖掘應用和在線分析處理系統的強大引擎,為了取得最佳的OLAP性能,你應該仔細的監測和優化OLAP資料庫和潛在的關系數據源,本文介紹了監測SSAS和優化OLAP性能的工具。

SQLServer Profiler

你可以使用SQL ServerProfiler基於選擇好的事件來捕獲SSAS實例的活動,SQL Server
Profiler以跟蹤的方式來捕獲活動並且包含了一套滿足最常見的跟蹤捕獲場景的預定義的模板,可以將跟蹤到的信息保存到一個文件或者是一個允許你實時
監測數據的SSAS的資料庫中,也可以實時的或者是一步一步的在同一個或者是另一個SSAS實例上重放跟蹤,通過對跟蹤進行重放,能夠輕易地找到運行慢的
多維表達式,或者是MDXes,比較不同環境下的性能基準進行測試和調試,你也能夠使用SQL Server
Profiler對安全進行審核,比如說,可以設置用來審核失敗的鏈接嘗試或者是一個用戶試圖訪問一個未經授權的對象時許可失敗的跟蹤文件,關於如何創建
和運行跟蹤的詳細內容,請看為重放(分析服務)創建分析跟蹤和分析服務跟蹤事件。

系統監視器

監控本地和遠程SSAS實例和操作系統以及所運行的計算機性能的一個最常使用的工具是系統監視器,這是一個Windows性能的實用組件,提供了近
乎實時的僅被用來實時監控的性能信息,並且是被看作用來測量性能和識別硬體瓶頸的最好的工具之一,但是,你不能使用系統監視器來鑒定性能問題的原因,比如
說,系統監視器也許顯示高的CPU使用率,但是不會標識出原因;你可以從一個位置使用系統監視器來監控多個計算機,對於每一個需要監控的系統來講可以減少
資源佔用,並且給了你一種直接比較不同計算機的性能統計的方法。

擴展事件和分析服務動態管理視圖

擴展事件(XEvents)是一個對系統資源佔用非常少的一個高伸縮性和輕量級性能監視系統的事件基礎架構,使用XEvents,可以捕獲針對所有

SSAS事件給到指定的用戶,XEvents基礎架構已經被直接集成到了SQLServer並且可以使用T-SQL簡單的進行管理,更多的信息請看SQL
Server擴展事件。

分析服務動態管理視圖(DMVs)是用來提供大量的關於分析服務實例狀態和伺服器健康信息的查詢結構,使用這些信息能夠診斷和調優分析服務實例或者是資料庫性能,所有的DMVs都內置於$System中,關於使用DMVs監控分析服務的更多信息,請查看MSDN資源。

以上是用來監測SSAS和OLAP性能的工具,下面是優化OLAP應該考慮的地方。

使用索引

索引可以提高影響多維在線分析處理(MOLAP)分區處理速度和關系在線分析處理(ROLAP)分區查詢速度的基礎資料庫的查詢性能,大部分分析服
務資料庫是只讀的因此可以從索引中受益,一般的經驗法則是創建覆蓋所有分析服務執行的查詢,另外,為了實現最佳的性能,你應該創建的所有索引應該使用
100%的填充因子。

在基礎資料庫中成本消耗會關繫到使用的索引,比如,更新數據的查詢(INSERT,
UPDATE或者DELETE)也一定會修改索引,因此,大量的索引會降低這些DML操作(INSERT,UPDATE or
DELETE)的性能,但是,這個不會影響到一個只讀系統,另外,索引會佔用時間和磁碟空間,最好的做法是使用SQL Server
Profiler和資料庫引擎優化向導或者和索引相關的DMVs和動態管理函數DMFS定期的分析查詢和索引的使用,這樣能幫助你發現需要創建的索引以及
刪除掉的索引。

選擇適當的聚合

查詢性能在很大程度上依賴於適當的聚合,但是沒有必要在每一個維度的級別上添加聚合,當使用聚合設計向導(Aggregation Design
Wizard)或者是Usage-Based優化向導時,你應該從較低的值開始嘗試不同的性能增益值,最初,當你提高了性能增益值時會注意到主要的查詢速
度的提高,盡管性能增益值提高了,也常常會有收益遞減,每一次性能的提升使得磁碟空間的增長逐步升級,你也能夠使用搜索日誌來存儲用戶查詢以備為將來分析
使用,使用Usage-Based優化向導對查詢日誌數據優化聚合,你也能使用聚合設計向導創建適當的聚合,對於一個擁有較少或者是沒有查詢日誌數據的新
的系統來講聚合設計向導是非常有用的,而當一個系統成熟時Usage-Based優化向導會產生較好的結果。

使用主動緩存

為了在查詢OLAP資料庫時達到較快的效果,你必須使用MOLAP存儲,但是,如果你使用了MOLAP,因為它是周期性的處理數據的,所以數據會有
一些延遲,為了獲得最新的數據,你也必須使用ROLAP存儲,但是ROLAP的存儲性能要比MOLAP在查詢響應方面明顯的慢,那就是主動緩存配置選項很
有用的地方了,因為它允許分析服務可以從MOLAP和ROLAP兩邊檢索,因此為使用了ROLAP的最新數據的MOLAP提供了效能,可以在MSDN資源
中發現更過的關於主動緩存的信息。

B. 如何實時監測資料庫變化

方法不唯一,而且越高的版本提供的工具虛跡越多,比如監控SQL命令,用Profile
監控數據差螞並一是可以直接在表上加觸發器,記錄變更日誌
資料庫還有審計audit功能,2016還有歷史表物漏,CDC等

C. 如何監控MySQL

首先介紹下 pt-stalk,它是 Percona-Toolkit 工具包中的一個工具,說起 PT 工具包大家都不陌生,平時常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自於這個工具包,這里就不多介紹了。

pt-stalk 的主要功能是在出現問題時收集 OS 及 MySQL 的診斷信息,這其中包括:

1. OS 層面的 CPU、IO、內存、磁碟、網路等信息;

2. MySQL 層面的行鎖等待、會話連接、主從復制,狀態參數等信息。

而且 pt-stalk 是一個 Shell腳本,對於我這種看不懂 perl 的人來說比較友好,腳本裡面的監控邏輯與監控命令也可以拿來參考,用於構建自己的監控體系。

三、使用

接著我們來看下如何使用這個工具。

pt-stalk 通常以後台服務形式監控 MySQL 並等待觸發條件,當觸發條件時收集相關診斷數據。

觸發條件相關的參數有以下幾個:

  • function:

    ∘默認為 status,代表監控 SHOW GLOBAL STATUS 的輸出;

    ∘也可以設置為 processlist,代表監控 show processlist 的輸出;

  • variable:

    ∘默認為 Threads_running,代表 監控參數,根據上述監控輸出指定具體的監控項;

  • threshold:

    ∘默認為 25,代表 監控閾值,監控參數超過閾值,則滿足觸發條件;

    ∘監控參數的值非數字時,需要配合 match 參數一起使用,如 processlist 的 state 列;

  • cycles:

    ∘默認為 5,表示連續觀察到五次滿足觸發條件時,才觸發收集;

  • 連接參數:host、password、port、socket。

  • 其他一些重要參數:

  • iterations:該參數指定 pt-stalk 在觸發收集幾次後退出,默認會一直運行。

  • run-time:觸發收集後,該參數指定收集多長時間的數據,默認 30 秒。

  • sleep:該參數指定在觸發收集後,sleep 多久後繼續監控,默認 300 秒。

  • interval:指定狀態參數的檢查頻率,判斷是否需要觸發收集,默認 1 秒。

  • dest:監控數據存放路徑,默認為 /var/lib/pt-stalk。

  • retention-time :監控數據保留時長,默認 30 天。

  • daemonize:以後台服務運行,默認不開啟。

  • log:後台運行日誌,默認為 /var/log/pt-stalk.log。

  • collect:觸發發生時收集診斷數據,默認開啟。

    ∘collect-gdb:收集 GDB 堆棧跟蹤,需要 gdb 工具。

    ∘collect-strace:收集跟蹤數據,需要 strace 工具。

    ∘collect-tcpmp:收集 tcpmp 數據,需要 tcpmp 工具。

D. 如何使用C#監控oracle資料庫

這種思路不好,實現不了。
需要換一種想法。
例如:
1.C#寫一個實時監控程序,Oracle寫包和觸發器。
2.監控程序的作用是實時的調用包,然後返回相關數據。
3.觸發器的作用是,當某個表有數據插入或者刪除,或者某個欄位被修改了會直接觸發。將想要寫的數據,寫進指定表或視圖。
整體思路是:
當某個表有變動,觸發器就觸發並寫入數據到指定表或視圖。
一段時間後,C#監控程序調用Oracle的包,包從指定表或視圖獲取數據,然後將數據返回到監控端,監控端再觸發特定的C#代碼。

E. 如何檢測資料庫是否更新

你所想監控的對象是資料庫
如今所熟知的監控對象是表

相信你是知道表的監控的吧
方法很多
但是對資料庫的監控,在下
確實不清楚

以下是我所想的監控表的方
法,希望對閣下有用

在監控表時是不希望對原有的程序進行修改的,吃力不討好的事情咱們是不會做的!
1.在所監控的表對象中增加兩個欄位:
insertDate(數據寫入時間)--設置默認值為系統當前時間getdate()
latestDate(最近更新時間)--設置默認值為系統當前時間getdate()

對所監控的表建立insert、update、delete觸發器
建立一張記錄表log(記錄表中的欄位可根據自己的需要添加)
以上三個觸發器的共同點:
將該表被執行的動作與數據記錄到這張記錄表中
不同點:
update觸發器時還需要更新被修改數據的最後修改時間latestDate

這樣可以根據latestDate和insertDate中的時間判斷該數據是否被更改、被更改的時間等。
也可以根據log表中的記錄知道哪些數據被insert、update、detele等信息

以上只是自己的觀點(比較羅嗦,哈!)

F. 如何使用阿里雲監控自定義監控本地資料庫狀態

如何使用阿里雲監控自定義監控本地資料庫狀態
1、進入阿里雲後台管理,點雲監控--雲服務監控 就可以看到一些監控數據。 2、使用行雲管家,裡面也有主機監控,可以幫助你查看主機使用情況,還可以使用微信監控查看。還有成本分析和,堡壘機的運維審計等功能。

G. java求高手,怎樣隨時監測資料庫中數據的增刪改查

要看你是多大的項目,如果是比較大的項目,有必要泡在Unix上可以做shell腳本配成幾分鍾或者幾秒鍾就執行一次,裡面跑一些java或者perl的程序,如果比較小,這個就隨便了,開listener或者資料庫加個trigger什麼的都可以