1. 程式人生 > >zabbix3.0.2 監控oracle高可用dataguard的standby庫狀態詳細過程

zabbix3.0.2 監控oracle高可用dataguard的standby庫狀態詳細過程

1,判斷standby複製實時的標準

判斷標準是,通過sqlplus執行select sequence#,applied from v$archived_log order by sequence#;如果全是YES則表明standby庫已經實時複製了,primary和standby資料一致了沒有延遲,否則就是有延遲的。如下所示:

SQL> select sequence#,applied from v$archived_log order by sequence#;                                                                      

 SEQUENCE# APPLIED

---------- ---------

      5118 YES

      5119 YES

      5120 YES

      5121 YES

      5122 YES

      5123 YES

      5124 YES

      5125 YES

      5126 YES

      5127 YES

      5128 YES

 SEQUENCE# APPLIED

---------- ---------

      5129 YES

419 rows selected.

SQL>

所以通過進入oracle帳號,登入sqlplus控制檯執行selectsequence#,applied from v$archived_log order by sequence#;來判斷,將獲取的查詢結果集列出來,如果都是YES表明standby複製正常,反之則有問題,編寫判斷指令碼如下:

指令碼一get_dg.sh,獲取standby狀態,將所有的YES記錄放在當前的檔案bst.csv下面:

#!/bin/bash

su - oracle -c "

cd /oracle/backup/data

sqlplus -S zabbix/[email protected]

<< EOF

set heading off

set feedback off

set pagesize 0

set verify off

set echo off

spool bts.csv 

select sequence#,applied from $1 order by sequence#;                                                           

spool off

exit

EOF

指令碼二check_dg.sh,取出YES的num數量,取出standy所有的記錄數,如果兩個數字相等,則證明standby複製正常,否則複製不正常,則報警出來,check_dg.sh指令碼如下:

#!/bin/bash

#> /oracle/backup/data/bts.csv

/bin/sh /oracle/backup/data/get_dg.sh $1 > /dev/null

cd /oracle/backup/data

result_num=`cat bts.csv |wc |awk '{print $1}'`

yes_num=`cat bts.csv |grep YES |wc |awk '{print $1}'`

in_memory_num=`cat bts.csv |grep IN-MEMORY  |wc |awk '{print $1}'`                                                             

out_num=0;

standby_num=`expr $yes_num + $in_memory_num + $out_num`

if [ "$result_num" -eq 0 ]

then

         echo 0

elif [ "$result_num" -eq 1 ]

then

        echo 0

elif [ "$result_num" -eq "$standby_num" ]

then

         echo 1

else echo 0

fi

2Zabbix-agentd配置檔案新增引數

vim /usr/local/zabbix/conf/zabbix_agentd.conf

UnsafeUserParameters=1

UserParameter=oracle.standby_status,/oracle/backup/data/check_dg.sh 'v$archived_log'                                         

新增完後,重啟zabbix_agentd

3,使用普通的root帳號呼叫sqlplus指令碼報錯

在oracle伺服器可以正常呼叫:

[[email protected] data]# sh check_dg.sh'v$archived_log'

1

[[email protected] data]#

但是在zabbix-server上調用出錯:

[[email protected]_serv_121_12 ~]#/usr/local/zabbix/bin/zabbix_get -s 192.168.3.13 -p10050 -k"oracle.standby_status"

standard in must be a tty

1

[[email protected]_serv_121_12 ~]#

4,改用zabbix帳號來呼叫check_dg.sh

4.1在腳本里面新增oracle環境變數

需要在腳本里面配置一些oracle的環境變數,這樣可以利用當前的zabbix帳號來執行sqlplus命令,get_dg.sh如下:

[[email protected] data]# more get_dg.sh

#!/bin/bash

export NLS_LANG=american_america.ZHS16GBK

export ORACLE_BASE=/oracle/app/oracle

export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1                                                                                       

export ORACLE_SID=powerdesdg2

export PATH=$ORACLE_HOME/bin:$PATH

cd /oracle/backup/data

sqlplus -S zabbix/[email protected] << EOF

set heading off

set feedback off

set pagesize 0

set verify off

set echo off

spool bts.csv 

select sequence#,applied from $1 order by sequence#;

spool off

exit

EOF

[[email protected] data]#

指令碼2check_dg.sh基本沒有變動,如下所示:

[[email protected] data]# more check_dg.sh

#!/bin/bash

#> /oracle/backup/data/bts.csv

/bin/sh /oracle/backup/data/get_dg.sh $1 > /dev/null

cd /oracle/backup/data

result_num=`cat bts.csv |wc |awk '{print $1}'`

yes_num=`cat bts.csv |grep YES |wc |awk '{print $1}'`

in_memory_num=`cat bts.csv |grep IN-MEMORY  |wc |awk '{print $1}'`

out_num=0;

standby_num=`expr $yes_num + $in_memory_num + $out_num`

if [ "$result_num" -eq 0 ]

then

         echo 0

elif [ "$result_num" -eq 1 ]

then

        echo 0

elif [ "$result_num" -eq "$standby_num" ]

then

         echo 1

else echo 0

fi

[[email protected] data]#

4.2zabbix加入oracle使用者組

    gpasswd -a zabbix oinstall            

    gpasswd -a zabbix dba

    gpasswd -a zabbix oracle

4.3zabbix-server伺服器上檢查standby成功

在zabbix-server的伺服器上,遠端呼叫oracle的standby上的狀態監控,看到能獲取到實際的值1:

[[email protected]_serv_121_12 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.13 -p10050 -k "oracle.standby_status"

1

[[email protected]_serv_121_12 ~]#

5,在zabbix管理介面新增standby

建立oracle模版22.png:

在standby的主機上新增模版E:\u\azure_cloud\pd\024.png:

Actions裡面新增觸發條件的模版,這樣當standby模版的條件滿足後就會觸發這個actions事件來發報警簡訊郵件或者打電話等等,E:\u\windows\pic\21.png:

至此,在zabbix上通過自己寫的shell指令碼來監控oracle的高可用的standby庫複製狀態已經完成了。


相關推薦

zabbix3.0.2 監控oracle可用dataguard的standby狀態詳細過程

1,判斷standby複製實時的標準判斷標準是,通過sqlplus執行select sequence#,applied from v$archived_log order by sequence#;如果全是YES則表明standby庫已經實時複製了,primary和stand

ZABBIX4.0.2監控歷史資料存放Elasticsearch及叢集可用方案

一、概述 Zabbix 4.0.2是一個長期支援版本(LTS),至少提供 5 年的技術支援;下面簡單看一下Zabbix 4.0.2 新特徵更具時效的監控項值檢查(Checking item value immediately)新的 HTTP 監控項型別(New HTTP item type)監控項原型可以依

ZABBIX4.0.2監控歷史數據存放Elasticsearch及集群可用方案

php more lar math 高可用方案 glib lock 內核參數 ec2 一、概述 Zabbix 4.0.2是一個長期支持版本(LTS),至少提供 5 年的技術支持;下面簡單看一下Zabbix 4.0.2 新特征更具時效的監控項值檢查(Checking item

zabbix3.0.2 通過orabbix監控多臺oracle資料庫

# put here your databases in a comma separated list # 放置oracle列表用逗號分隔,這裡放置的是hostname,和zabbix介面上的hosts裡面的hostname保持一模一樣。                                  

zabbix3.0.2 通過orabbix來監控oracle11g增強版的詳細過程

-->Orabbix簡介說明  orabbix是一個用來監控oracle資料庫效能的zabbix外掛工具,通過安裝在被監控伺服器上客戶端上收集資料並傳給zabbix伺服器端,然後通過呼叫圖形顯示。具有以下功能:(1)、資料庫版本(2)、歸檔檔案(3)、等待的事件(如檔案

Zabbix3.0.4監控Windows的CPU使用百分比

log window 效果 blog -1 perf nbsp 技術分享 分享 Zabbix3.0.4監控Windows的CPU使用百分比 Zabbix 自帶的模塊沒有 CPU 使用率(百分比)這個監控項,我們可以通過添加計數器的方式實現 CPU 百分比的監控。 1.在Za

深入解讀HBase2.0新功能之可用讀Region Replica

數據庫摘要: 基於時間線一致的高可用讀(Timeline-consistent High Available Reads),又稱Region replica,為HBase帶來了高可用讀的能力。本文主要介紹region replica這個功能設計的背景,技術細節和使用方法,同時會仔細分析這個功能的優缺點並給出使

CentOS7.5 下zabbix3.0.18監控CPU負載

clip CP vpd tex 儀表盤 mys 系統 mysql serve 大綱:一、環境準備二、創建主機三、創建監控項四、查看監控流量圖一、環境準備服務器1: IP:192.168.4.66,操作系統:CentOS 7.5 應用程序:zabbix-server-mysq

mysql 8.0.11 innodb cluster 可用集群手冊系列之一 ------集群介紹

png nag tex 介紹 畫的 innodb process http term MySQL 8.0.11 innodb cluster 高可用集群部署運維管理手冊 一 innodb cluster 原理介紹 作者 方連超 Innodb cluster 原理介

zanePerfor前端效能監控系統可用之Mongodb副本集讀寫分離架構

HI!,你好,我是zane,zanePerfor是一款最近我開發的一個前端效能監控平臺,現在支援web瀏覽器端和微信小程式段。 我定義為一款完整,高效能,高可用的前端效能監控系統,這是未來會達到的目的,現今的架構也基本支援了高可用,高效能的部署。實際上還不夠,在很多地方還有優化的空間,我會持續的

Oracle 可用作業測試

1.RAC 是一種: A 分散式資料庫B 記憶體共享多節點資料庫C 能夠保護資料安全的架構 2.RAC 和CRS 的區別是: A 前者表示一種架構,後者是一套軟體B 前者表示一套軟體,後者是一種架構 C 它們之間沒有關係 3.RAC 的每個節點擁有各自的redo 檔案: A 對B 不對C 不一定

Redis: 2、Redis可用原理,搭建與驗證

Redis高可用原理,搭建與驗證   一、redis-ha原理 1 原理 redis高可用採用的是哨兵(sentinel),多個redis-slave配備了多個哨兵程序,哨兵監控redis-master,一旦出現故障,將一臺slave提升為master。客戶端通過連線哨

iOS 從0到1搭建可用App框架(二)

前言: 本文是繼《iOS 從0到1搭建高可用App框架》之後,通過專案實踐以及同行交流思考總結出來的一些新的架構思想,但初心仍不變,目的為搭建高可用App框架,保持框架底層健壯的同時讓程式碼更清晰,為後期頂層業務開發時,避免出現風格迥異的程式碼。 架構圖: 架構圖 效果

SpringBoot2.0 + SpringCloud Eureka搭建可用註冊中心(Eureka之二)

上一篇中提到用SpringBoot2.0+Eureka搭建服務註冊中心和服務提供者,詳情參考: https://www.cnblogs.com/SysoCjs/p/10127448.html         現在講一下SpringCloud+Eureka搭建高可用註

redis-3.0.1 sentinel 主從可用 詳細配置

最近專案上線部署,要求redis作高可用,由於redis cluster還不是特別成熟,就選擇了redis sentinel做高可用。redis本身有replication,實現主從備份。結合sentinel可以做主、從自動切換。 生產環境中,一般要求有3個r

zabbix3.0.4新增對web頁面url的狀態監控

1、應用集配置  在配置—>主機中開啟主機列表,選擇需要新增監控主機的web,建立應用集 2、web監測配置 選擇web場景,再單擊右上角的建立web場景 在名稱中輸入監控的名稱,客戶端是選擇測試站點的瀏覽器型別 在步驟選項卡新增測試步驟 Name是測試步驟的

深入解讀 HBase2.0 新功能之可用讀 Region Replica

1.前言 基於時間線一致的高可用讀(Timeline-consistent High Available Reads),又稱 Region replica。其實早在 HBase-1.2 版本的時候,這個功能就已經開發完畢了, 但是還是不太穩定,離生產可用級別還有一段距離,後來社群又陸陸續續修復了 一些 bu

zabbix3.0.4監控linux主機cpu使用率超過90%的時候報警

在windows系統中監控cpu利用率非常容易,自帶模板就有這樣的功能,但是在linux裡面沒有預設的模板 只有cpu的負載,預設當cpu的負載在一定時間內5以上報警cpu utilization中有一個cpu idle時間,即cpu的空閒時間,當空閒時間小於10%的時候就

構建Oracle可用環境pdf

下載地址:網盤下載內容簡介編輯《構建Oracle高可用環境》共分為五篇,依次為高可用性篇、資料處理篇、效能優化篇、系統維護篇和監控體系篇,其中對管理Oracle高可用資料庫的講解尤為細緻,在幫助您學習Oracle高可用性方面極具參考價值。本書不僅適合有高可用需求的Oracle

hbase-1.2.6的可用叢集搭建安裝文件

1.安裝 zookeeper 叢集,此處略2.找到官網下載 hbase 安裝包 hbase-1.2.6-bin.tar.gz,    這裡給大家提供一個下載地址:http://mirrors.hust.edu.cn/apache/hbase/    對應版本的官方文件:htt