打开数据库_打开这份指南,数据库运维也能优雅、简单!
生活随笔
收集整理的這篇文章主要介紹了
打开数据库_打开这份指南,数据库运维也能优雅、简单!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于常規數據庫的運維監控來說,如何能夠快速簡潔的發現問題,直達問題本質并解決常見問題,是 Bethune 的安身立命之本。
簡約,優雅,專業,直抵本心,這是用戶對 Bethune 的評價。
Bethune X 功能強大,許多特性能夠很好地解決DBA日常運維中遇到的問題,本文選取幾個場景,介紹如何利用 Bethune X 為你的數據庫多添一道保障!
閱讀提示:
Part 1:通過空間監控功能分析 AUD$ 的空間
Part 2:通過下鉆功能探查數據庫深層問題
Part 3:通過SQL自定義監控實現主機日志監控
在Bethune的監控中,針對表空間的空間增長,具有一個曲線監控展示,用于顯示空間都變化趨勢。例如如下視圖,展示了SYSTEM表空間高達 87%的空間被 AUD$ 占用:AUD$ 存儲的是數據庫的審計信息,已經占用了 8G 的存儲空間,如果這些信息不被使用,可以考慮通過TRUNCATE清除:SQL>?select?segment_name,bytes/1024/1024?MB?from?dba_segments?where?segment_name='AUD$';SEGMENT_NAME???????????????????MB
------------------------------?----------
AUD$?????????????????????8154
SQL>?truncate?table?sys.aud$;
Table?truncated.
SQL>?select?segment_name,bytes/1024/1024?MB?from?dba_segments?where?segment_name='AUD$';
SEGMENT_NAME???????????????????MB
------------------------------?----------
AUD$????????????????????.0625這個數據庫版本是 11.2.0.4 ,清理空間之后,Bethune 的空間展示變化如下圖所示:Bethune ,空間展示還可以更進一步!在 Bethune 的監控預警中,當問題具有可追溯性時,在告警右側就會有一個可點擊的小圖標,幫助我們進一步分析問題。下圖中,系統監控發現了長事務,對于OLTP系統,長時間運行的 DML 操作是必須要要多加關注的:進一步的點擊追溯,系統會呈現出詳細的信息,例如用戶和SQL信息等:點擊SQLID,就進入了SQL和執行計劃頁面。一目了然的可以看到這個 DELETE 語句,因為全表掃描的執行計劃而執行緩慢,極度影響性能:事實上,到這里 Bethune 就已經完成了整個問題的預警、根因追溯。接下來就應該是 DBA 們大顯身手的地方了。注意:監控是發現問題的手段,而如何解決問題,解決問題的時間,則要由 DBA 來決策和抉擇。DBA 可以根據數據和查詢字段的選擇性,來判斷是否可以通過創建索引提高效率。
并且,不能在業務高峰期間進行索引創建操作,避免引發系統競爭。SQL>?select?count(*)?from?TP_SYS_FIELDHISTORY;
??COUNT(*)
----------
???2430863
SQL>?select?count(distinct(RECORDID))?from?CUST_U_ENMOTECH.TP_SYS_FIELDHISTORY;
COUNT(DISTINCT(RECORDID))
-------------------------
??????????1944293
SQL>?explain?plan?for?delete?from?tp_sys_fieldhistory?where?recordid=:"SYS_B_0"
??2??;
Explained.
SQL>?set?serveroutput?on
SQL>?select?*?from?table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan?hash?value:?2894643821
------------------------------------------------------------------------------------------
|?Id??|?Operation???????|?Name????????|?Rows??|?Bytes?|?Cost?(%CPU)|?Time?????|
------------------------------------------------------------------------------------------
|???0?|?DELETE?STATEMENT???|?????????????|?????1?|????42?|?10379???(1)|?00:02:05?|
|???1?|??DELETE????????|?TP_SYS_FIELDHISTORY?|???|???|????????|??????|
|*??2?|???TABLE?ACCESS?FULL|?TP_SYS_FIELDHISTORY?|?????1?|????42?|?10379???(1)|?00:02:05?|
------------------------------------------------------------------------------------------
Predicate?Information?(identified?by?operation?id):
---------------------------------------------------
???2?-?filter("RECORDID"=:SYS_B_0)
14?rows?selected.
SQL>?create?index?idx_tpsys_fldhist_rcd?on?TP_SYS_FIELDHISTORY(RECORDID)?compute?statistics;
Index?created.
SQL>?explain?plan?for?delete?from?tp_sys_fieldhistory?where?recordid=:"SYS_B_0";
Explained.
SQL>?select?*?from?table(dbms_xplan.display());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan?hash?value:?3460354814
-------------------------------------------------------------------------------------------
|?Id??|?Operation??????|?Name??????????|?Rows??|?Bytes?|?Cost?(%CPU)|?Time?????|
-------------------------------------------------------------------------------------------
|???0?|?DELETE?STATEMENT??|??????????????|?1?|????42?|?3???(0)|?00:00:01?|
|???1?|??DELETE???????|?TP_SYS_FIELDHISTORY???|???|???|????????|??????|
|*??2?|???INDEX?RANGE?SCAN|?IDX_TPSYS_FLDHIST_RCD?|????1?|????42?|?3???(0)|?00:00:01?|
-------------------------------------------------------------------------------------------
Predicate?Information?(identified?by?operation?id):
---------------------------------------------------
???2?-?access("RECORDID"=:SYS_B_0)從以上的測試效果來看,通過一個索引的創建,原SQL的成本降低到3,效率大大提升。Bethune 在下一個版本中,將完全實現到創建之前的所有建議,實現智能化的索引推薦。Bethune X 支持 SQL 自定義監控,通過添加一個SQL采集任務,配置告警策略來實現數據庫內數據的監控。對于日志,Bethune X 已經預設了Oracle alert 日志監控:除了Oracle的alert 日志,其他日志可以通過添加Oracle 外部表的方式實現監控,以下例子就是實現了Linux 上secure 日志監控的配置過程。
第一步:必要的賦權
在root 用戶下將/var/log/secure 的讀權限給到Oracle 用戶:chmod?744?/var/log/secure第二步:創建外部表登陸到 Oracle 數據庫創建 directory,確保 數據庫能夠讀取該路徑下的日志:/var/log/create?or?replace?directory?var_log?as?'/var/log’;如果外部表不在sys底下創建,則需要對該目錄進行賦權,例如在BP_QUERY下創建外部表,則需要將該目錄讀寫權限賦權給BP_QUERY用戶:grant?read,write?on?directory?var_log?to?BP_QUERY;以/var/log/secure 日志文件創建外部表,這個外部表只有一個字段,每行日志一行數據:CREATE?TABLE?secure_log(
?text?varchar2(4000)
)
ORGANIZATION?EXTERNAL
?(TYPE?ORACLE_LOADER
??DEFAULT?DIRECTORY?var_log
??ACCESS?PARAMETERS
????(RECORDS?DELIMITED?BY?NEWLINE
?????nobadfile
?????nodiscardfile
?????nologfile
????)
??LOCATION?('secure')
?)
?reject?limit?unlimited?;創建好之后可以測試一下改外部表是否創建成功:select?*?from?secure_log?where?rownum<10將該讀權限賦給Bethune X 采集用戶:BP_QUERY。如果這個外部表是在BP_QUERY用戶下創建則不用:grant?select?on?secure_log?to?BP_QUERY;第三步:添加SQL自定義采集任務在Bethune X 設置/采集任務配置 里面添加一個SQL類的采集任務。示例圖如下:
采集任務選擇Oracle,采集頻率按需配置。SQL 腳本我用 instr+substr+to_date 的方式把日志里面的日期部分轉成了Oracle 可以識別的日期,并做了最近一小時的限定(>sysdate-1/24)。配置好SQL腳本之后,需要選擇相應的數據庫進行測試,因為我們是在Enmotech 這個數據庫上做的這個外部表,所以選擇Enmotech 作為測試數據庫,測試通過的數據庫才能啟動這個采集項。
第四步:創建告警策略,添加到模板,使用到目標數據庫
保存好采集任務之后,在告警策略里針對這個數據采集項:「安全日志外部采集」創建告警策略。監控類型選擇「數據庫」—>「Oracle」—>「自定義」;SQL 自定義采集任務通過對采集SQL返回的字段進行規則配置。這兒我們返回了通過日志截取轉化的時間字段「log_date」和內容字段「text」;這兒我們對「TEXT 」字段進行規則配置,利用like 表達式做全模糊查詢,包含這段關鍵字的日志都會觸發該告警規則。告警模板的配置,需要通過變量的方式將主機名,數據名等預設變量和字段變量加入到告警模板里。字段變量需要用 ${字段名} 的方式包起來,配置方式可以數據懸停告警模板旁邊的 i 展示出來。配置好告警策略后,配置到相應的模板,再把相應的庫配置上該告警策略。如果觸發了告警,就可以在 控制臺/告警看板 里面看到該告警。也可以在「數據庫詳情」頁面最近告警里面看到告警信息。
以上就是利用 Oracle 外部表+Bethune X 自定義 SQL 監控的方式實現主機日志監控的一個例子。總結一下:
1.通過賦權讓Oracle用戶有權限讀取日志的權限;
2.創建外部表,讓Oracle 數據庫能訪問該日志;
3.在Bethune X 里面創建采集任務,并保證目標數據庫的采集任務能測試成功;
4.針對這個采集任務創建個告警策略,添加到模板里面,應用到數據庫上。2020 ,對你的 DBA 好一點,一套 Bethune ,交個好朋友!數據驅動,成就未來,云和恩墨,不負所托!
云和恩墨是全球化數據資產端到端解決方案提供商,致力于將數據思維帶給每個組織、每個人,構建數據驅動的智能未來。我們在數據服務、運維平臺、數據智能、教育培訓等領域為企業和個人提供可信賴的產品、解決方案和服務,與業界廠商廣泛合作,圍繞用戶需求,持續為客戶創造價值、為行業培養人才,激發數據潛能,為成就未來數字化企業和數據人才而不懈努力。
云和恩墨堅持圍繞數據時代客戶面臨的挑戰持續創新,不斷加大研發投入,持續完善貫穿業務智能、開發管控、云管平臺、分布式存儲和基礎運維的端到端產品和服務,助力企業和個人成功。
總結
以上是生活随笔為你收集整理的打开数据库_打开这份指南,数据库运维也能优雅、简单!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tensorflow随笔-tf.no_o
- 下一篇: tensorflow随笔-读取多个文件