ホームページ データベース mysql チュートリアル 通过定制Orabbix监控分析潜在的Oracle问题

通过定制Orabbix监控分析潜在的Oracle问题

Jun 07, 2016 pm 03:10 PM

定制的功能在Orabbix中实现非常灵活而且轻巧,还是能够感受到一种开源风的清爽。在orabbix原有模板的基础上添加了几个监控项,一

在之前的文章中分享过 简单定制Orabbix监控项 

定制的功能在Orabbix中实现非常灵活而且轻巧,还是能够感受到一种开源风的清爽。
我在orabbix原有模板的基础上添加了几个监控项,一个是监控闪回区的使用率,,还有一个是监控归档的切换频率,这两个功能看似微不足道,但是会在细节中反应出数据库中是否有明显的异常行为。
中午的时候注意到有一个库的闪回区使用率和归档频率比较高。还是有一些反常,而从我这边的信息来看,没有得到开发人员的反馈说需要做什么数据变更。
得到的orabbix监控图如下:
闪回区的使用情况如下:

通过定制Orabbix监控分析潜在的Oracle问题


归档频率如下:

通过定制Orabbix监控分析潜在的Oracle问题



通过这个图可以看到还是有一些异常情况的。这个库是一个统计库,案例来说并发访问量应该不高,但是现在从早上的某个时间点开始,归档量急剧提升,已经快触及警报线。
在这个时候也是带着疑问去检查了一下这个库,结果通过ash视图去看,是否正在进行大量的并发操作,结果没有任何的active session,然后查看数据库负载,又很高。
抓取了一个awr报告来看。赫然发现top1的sql竟然是一个update语句。
 

        Elapsed                  Elapsed Time                                                                                                         

        Time (s)    Executions  per Exec (s)  %Total  %CPU    %IO    SQL Id                                                                         

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

        3,604.9              0          N/A  26.9  32.5  68.2 3jggcpxmv6w8g                                                                     

Module: sqlplus@stat.xxxxx.com (TNS V1-V3)                                                                                                       

update "xxxx"."TEST_BILLING" set "ID" = 'xxxxxxxxxx'
这个语句可以明显看出来存在一定的问题,因为这是一个大表,数据量在亿级,进行这样一个dml操作,代价还是相当大的。
为了一探究竟我们来看看到底是谁在执行这样一个dml。
结果一看还是让人大吃一惊,竟然是在本地的sys的操作,问题又指向了自己,因为这个库开发人员是没有任何权限直接访问的。
USERNAME    SID    SERIAL# PROGRAM                                          MACHINE
--------------- ---------- ------------------------------------------------ --------------------
SYS          22      50043 sqlplus@stat.xxxxxxxxxx,com (TNS V1-V3)            xxxxxxxx.cyou.com
SYS        3560      63187 sqlplus@stat.xxxxxxxxxx,com (TNS V1-V3)            xxxxxxxx.cyou.com
但是我确实也没有做任何的操作,不至于说哪个脚本很神奇的执行了?
带着疑问和同事进行排查,最后发现,这个dml语句是在做log miner解析的时候出了点问题。
因为一些数据同步的考虑,需要从另外一个核心库中同步一部分的数据到这个统计库中,但是又不想直接在主库中进行任何的额外配置,这个时候就使用了log miner来定制抽取归档中的sql语句,然后部署在这个统计库中。这个过程是通过crontab来触发的。
但是在log miner解析的过程中还是出了一点解析的问题,有一条update语句没有where字句结果就直接应用到这个统计库中了,结果生成了大量的redo,归档切换也很频繁。
比如说解析log miner的视图的时候,默认是使用下面的方式。
SELECT sql_redo FROM v$logmnr_contents WHERE seg_owner='XXXX' AND TABLE_NAME IN ('XXXX','XXXXXX') AND OPERATION in ('INSERT','UPDATE','DELETE')
结果某一条语句在解析的过程中出了问题,结果导致对于这类不规范的update语句,应用到统计库的时候把影响放大了。
可以通过交半年进行过滤,也可以直接在sql中进行过滤。比如修改为下面的形式。
SELECT sql_redo FROM v$logmnr_contents WHERE seg_owner='XXXXX' AND TABLE_NAME IN ('XXXX','XXXX') AND OPERATION in ('INSERT') or (operation in ('DELETE','UPDATE') and upper(sql_redo)  like '%WHERE %')
这样对于update和delete操作都hi进行必要的过滤,那些不指定条件的delete,update操作都可以直接屏蔽。

当然对这个问题的紧急修复也很明确,就是kill那个运行很长时间的session.
Kill session之后的效果如下,可以看到闪回区的使用率一下子降下来了。归档频率也降下来了。

通过定制Orabbix监控分析潜在的Oracle问题

通过定制Orabbix监控分析潜在的Oracle问题



通过这个问题可以看出,定制适合自己的监控项在某种程度上还是能够起到很好的监控作用。对于某些异常情况还是不要掉以轻心。

 

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL対その他のプログラミング言語:比較 MySQL対その他のプログラミング言語:比較 Apr 19, 2025 am 12:22 AM

他のプログラミング言語と比較して、MySQLは主にデータの保存と管理に使用されますが、Python、Java、Cなどの他の言語は論理処理とアプリケーション開発に使用されます。 MySQLは、データ管理のニーズに適した高性能、スケーラビリティ、およびクロスプラットフォームサポートで知られていますが、他の言語は、データ分析、エンタープライズアプリケーション、システムプログラミングなどのそれぞれの分野で利点があります。

初心者向けのMySQL:データベース管理を開始します 初心者向けのMySQL:データベース管理を開始します Apr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

InnoDBバッファープールとそのパフォーマンスの重要性を説明してください。 InnoDBバッファープールとそのパフォーマンスの重要性を説明してください。 Apr 19, 2025 am 12:24 AM

Innodbbufferpoolは、データをキャッシュしてページをインデックス作成することにより、ディスクI/Oを削減し、データベースのパフォーマンスを改善します。その作業原則には次のものが含まれます。1。データ読み取り:Bufferpoolのデータを読む。 2。データの書き込み:データを変更した後、bufferpoolに書き込み、定期的にディスクに更新します。 3.キャッシュ管理:LRUアルゴリズムを使用して、キャッシュページを管理します。 4.読みメカニズム:隣接するデータページを事前にロードします。 BufferPoolのサイジングと複数のインスタンスを使用することにより、データベースのパフォーマンスを最適化できます。

MySQL:構造化データとリレーショナルデータベース MySQL:構造化データとリレーショナルデータベース Apr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQLの学習:新しいユーザー向けの段階的なガイド MySQLの学習:新しいユーザー向けの段階的なガイド Apr 19, 2025 am 12:19 AM

MySQLは、データストレージ、管理、分析に適した強力なオープンソースデータベース管理システムであるため、学習する価値があります。 1)MySQLは、SQLを使用してデータを操作するリレーショナルデータベースであり、構造化されたデータ管理に適しています。 2)SQL言語はMySQLと対話するための鍵であり、CRUD操作をサポートします。 3)MySQLの作業原則には、クライアント/サーバーアーキテクチャ、ストレージエンジン、クエリオプティマイザーが含まれます。 4)基本的な使用には、データベースとテーブルの作成が含まれ、高度な使用にはJoinを使用してテーブルの参加が含まれます。 5)一般的なエラーには、構文エラーと許可の問題が含まれ、デバッグスキルには、構文のチェックと説明コマンドの使用が含まれます。 6)パフォーマンスの最適化には、インデックスの使用、SQLステートメントの最適化、およびデータベースの定期的なメンテナンスが含まれます。

MySQL:初心者が習得するための必須スキル MySQL:初心者が習得するための必須スキル Apr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:データストレージに対する初心者向けのアプローチ MySQL:データストレージに対する初心者向けのアプローチ Apr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

See all articles