資料庫日誌怎麼查看
這是一個慢查詢日誌的展示工具,能夠幫助 DBA 或者開發人員分析資料庫的性能問題,給出全面的數據擺脫直接查看 slow-log。QAN(Query Analytics)
PMM 目前有 2 個版本,但是對於 QAN 來說其大致由三部分組成:
QAN-Agent(client):負責採集 slow-log 的數據並上報到服務端
QAN-API(server):負責存儲採集的數據,並對外提供查詢介面
QAN-APP:專門用來展示慢查詢數據的 grafana 第三方插件
1. 數據流轉
slow-log --> QAN-Agent --> QAN-API <--> QAN-APP(grafana)
2. pmm1 架構圖
❷ 如何查看mysql資料庫操作記錄日誌
有時候我們會不小心對一個大表進行了 update,比如說寫錯了 where 條件......
此時,如果 kill 掉 update 線程,那回滾 undo log 需要不少時間。如果放置不管,也不知道 update 會持續多久。
那我們能知道 update 的進度么?
實驗
我們先創建一個測試資料庫:
那我們怎麼准確的這個倍數呢?
一種方法是靠經驗:update 語句的 where 中會掃描多少行,是否修改主鍵,是否修改唯一鍵,以這些條件來估算系數。
另一種方法就是在同樣結構的較小的表上試驗一下,獲取倍數。
這樣,我們就能准確估算一個大型 update 的進度了。
❸ oracle資料庫的警告日誌如何查看
測試環境中出現了一個異常的告警現象:一條告警通過 Thanos Ruler 的 HTTP 介面觀察到持續處於 active 狀態,但是從 AlertManager 這邊看這條告警為已解決狀態。按照 DMP 平台的設計,告警已解決指的是告警上設置的結束時間已經過了當前時間。一條發送至 AlertManager 的告警為已解決狀態有三種可能:1. 手動解決了告警2. 告警只產生了一次,第二次計算告警規則時會發送一個已解決的告警3. AlertManager 接收到的告警會帶著一個自動解決時間,如果還沒到達自動解決時間,則將該時間重置為 24h 後首先,因為了解到測試環境沒有手動解決過異常告警,排除第一條;其次,由於該告警持續處於 active 狀態,所以不會是因為告警只產生了一次而接收到已解決狀態的告警,排除第二條;最後,告警的告警的產生時間與自動解決時間相差不是 24h,排除第三條。那問題出在什麼地方呢?
分析
下面我們開始分析這個問題。綜合第一節的描述,初步的猜想是告警在到達 AlertManager 前的某些階段的處理過程太長,導致告警到達 AlertManager 後就已經過了自動解決時間。我們從分析平台里一條告警的流轉過程入手,找出告警在哪個處理階段耗時過長。首先,一條告警的產生需要兩方面的配合:
metric 數據
告警規則
將 metric 數據輸入到告警規則進行計算,如果符合條件則產生告警。DMP 平台集成了 Thanos 的相關組件,數據的提供和計算則會分開,數據還是由 Prometheus Server 提供,而告警規則的計算則交由 Thanos Rule(下文簡稱 Ruler)處理。下圖是 Ruler 組件在集群中所處的位置:
首先,圖中每個告警規則 Rule 都有一個 active queue(下面簡稱本地隊列),用來保存一個告警規則下的活躍告警。
其次,從本地隊列中取出告警,發送至 AlertManager 前,會被放入 Thanos Rule Queue(下面簡稱緩沖隊列),該緩沖隊列有兩個屬性:
capacity(默認值為 10000):控制緩沖隊列的大小,
maxBatchSize(默認值為 100):控制單次發送到 AlertManager 的最大告警數
了解了上述過程,再通過翻閱 Ruler 源碼發現,一條告警在放入緩沖隊列前,會為其設置一個默認的自動解決時間(當前時間 + 3m),這里是影響告警自動解決的開始時間,在這以後,有兩個階段可能影響告警的處理:1.緩沖隊列階段2.出緩沖隊列到 AlertManager 階段(網路延遲影響)由於測試環境是區域網環境,並且也沒在環境上發現網路相關的問題,我們初步排除第二個階段的影響,下面我們將注意力放在緩沖隊列上。通過相關源碼發現,告警在緩沖隊列中的處理過程大致如下:如果本地隊列中存在一條告警,其上次發送之間距離現在超過了 1m(默認值,可修改),則將該告警放入緩沖隊列,並從緩沖隊列中推送最多 maxBatchSize 個告警發送至 AlertManager。反之,如果所有本地隊列中的告警,在最近 1m 內都有發送過,那麼就不會推送緩沖隊列中的告警。也就是說,如果在一段時間內,產生了大量重復的告警,緩沖隊列的推送頻率會下降。隊列的生產方太多,消費方太少,該隊列中的告警就會產生堆積的現象。因此我們不難猜測,問題原因很可能是是緩沖隊列推送頻率變低的情況下,單次推送的告警數量太少,導致緩沖隊列堆積。下面我們通過兩個方面驗證上述猜想:首先通過日誌可以得到隊列在大約 20000s 內推送了大約 2000 次,即平均 10s 推送一次。結合緩沖隊列的具體屬性,一條存在於隊列中的告警大約需要 (capacity/maxBatchSize)*10s = 16m,AlertManager 在接收到告警後早已超過了默認的自動解決時間(3m)。其次,Ruler 提供了 3 個 metric 的值來監控緩沖隊列的運行情況:
thanos_alert_queue_alerts_dropped_total
thanos_alert_queue_alerts_pushed_total
thanos_alert_queue_alerts_popped_total
通過觀察 thanos_alert_queue_alerts_dropped_total 的值,看到存在告警丟失的總數,也能佐證了緩沖隊列在某些時刻存在已滿的情況。
解決通過以上的分析,我們基本確定了問題的根源:Ruler 組件內置的緩沖隊列堆積造成了告警發送的延遲。針對這個問題,我們選擇調整隊列的 maxBatchSize 值。下面介紹一下這個值如何設置的思路。由於每計算一次告警規則就會嘗試推送一次緩沖隊列,我們通過估計一個告警數量的最大值,得到 maxBatchSize 可以設置的最小值。假設你的業務系統需要監控的實體數量分別為 x1、x2、x3、...、xn,實體上的告警規則數量分別有 y1、y2、y3、...、yn,那麼一次能產生的告警數量最多是(x1 * y2 + x2 * y2 + x3 * y3 + ... + xn * yn),最多推送(y1 + y2 + y3 + ... + yn)次,所以要使緩沖隊列不堆積,maxBatchSize 應該滿足:maxBatchSize >= (x1 * y2 + x2 * y2 + x3 * y3 + ... + xn * yn) / (y1 + y2 + y3 + ... + yn),假設 x = max(x1,x2, ...,xn), 將不等式右邊適當放大後為 x,即 maxBatchSize 的最小值為 x。也就是說,可以將 maxBatchSize 設置為系統中數量最大的那一類監控實體,對於 DMP 平台,一般來說是 MySQL 實例。
注意事項
上面的計算過程只是提供一個參考思路,如果最終計算出該值過大,很有可能對 AlertManager 造成壓力,因而失去緩沖隊列的作用,所以還是需要結合實際情況,具體分析。因為 DMP 將 Ruler 集成到了自己的組件中,所以可以比較方便地對這個值進行修改。如果是依照官方文檔的介紹使用的 Ruler 組件,那麼需要對源碼文件進行定製化修改。
❹ 如何查看db2的資料庫的日誌文件
查看db2的資料庫的日誌文件:
實例日誌在sqllib/db2mp/db2diag.log,記錄起停、出錯警告信息。
資料庫的事務日誌通過db2 get db cfg for <dbname>,看NEWLOGPATH下面一行。
(4)資料庫日誌怎麼查看擴展閱讀:
在日常DB2的維護中,transaction log full是比較常見的問題,日誌空間使用情況也是我們比較重視的問題,如果日誌是單獨的文件系統分區,在操作系統上即可看到日誌空間使用情況,對日誌使用情況進行監控,可以看到如下信息:
$ df -g
Filesystem GB blocks Free %Used Iused %Iused Mounted on
/dev/db2inst1_log01 60.00 54.50 10% 1458 1% /db2inst1_log01
❺ 怎樣查詢訪問資料庫的日誌
查看sql資料庫操作日誌的方法步驟:
1、用windows身份驗證登陸資料庫,點擊【連接】;
2、展開資料庫伺服器下面的【管理】【SQL Server日誌】;
3、雙擊【當前】可以打開【日誌文件查看器】裡面有所有的運行日誌;
4、點擊任意一行,可以看見具體的信息,錯誤原因和時間;
5、勾選相應的復選框,可以篩選查看相應的日誌內容;
6、點擊【篩選】還可以詳細篩選日誌;
7、在【SQL Server日誌】上單擊右鍵,選擇【視圖】【SQL Server和windows日誌】可以查看操作系統日誌;
8、如圖所示,就可以查看到操作日誌了。
按以上步驟操作即可以查看操作日誌。
❻ 如何查看資料庫運行日誌
查看步驟如下:
1,用windows身份驗證登陸資料庫,點擊連接,
2,展開資料庫伺服器下面的管理,SQL Server日誌,
3,雙擊當前可以打開日誌文件查看器裡面有所有的運行日誌,
4,點擊任意一行,可以看見具體的信息,錯誤原因和時間,
5,勾選相應的復選框,可以篩選查看相應的日誌內容,
6,點擊,篩選還可以詳細篩選日誌,
7,在,SQL Server日誌上單擊右鍵,選擇視圖,SQL Server和windows日誌可以查看操作系統日誌了。
❼ 如何查看sql資料庫操作日誌
請參照以下步驟查看sql資料庫操作日誌。
1、首先在電腦上打開sql server軟體,進入軟體載入界面。
❽ 如何查詢Oracle資料庫的操作日誌
1、打開oracle sql developer工具,沒有此工具的可以去oracle官網下載安裝即可,剛剛安裝完成的是沒有記錄的,只有使用工具執行過後才會留下記錄可以查詢。打開之後不需要連接資料庫就可以查詢到sql記錄了。
❾ 如何查看資料庫日誌
查看sql server資料庫日誌的話:
方法1:DBCC LOG ('DatabaseName',2)
方法2: select * from ::fn_dblog (default,default)
方法3:用Log Explorer
DBCC LOG可以用下面的命令查看:
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
❿ mysql資料庫日誌怎麼看
MySQL的日誌文件模塊啟動後才會有日誌記錄。
開啟日誌服務:
在MY.INI里,MYSQLD項下添加log-bin=mysql。
如果只對某個庫進行日誌文件記錄,那麼再添加binlog-do-db=test,這樣就只記錄test資料庫的日誌,而放棄其他的。
添加完後,重新啟動MYSQL的服務,日誌文件開始工作了.
查看是否啟用了日誌命令:mysql>show variables like 'log_bin';
查看當前的日誌命令:mysql> show master status;
看二進制日誌文件用mysqlbinlog命令:shell>mysqlbinlog mail-bin.000001