打开数据库_打开这份指南,数据库运维也能优雅、简单!

对于常规数据库的运维监控来说,如何能够快速简洁的发现问题,直达问题本质并解决常见问题,是 Bethune 的安身立命之本。
简约,优雅,专业,直抵本心,这是用户对 Bethune 的评价。

Bethune X 功能强大,许多特性能够很好地解决DBA日常运维中遇到的问题,本文选取几个场景,介绍如何利用 Bethune X 为你的数据库多添一道保障!

阅读提示:

Part 1:通过空间监控功能分析 AUD$ 的空间

Part 2:通过下钻功能探查数据库深层问题

Part 3:通过SQL自定义监控实现主机日志监控

572b8fd72a096047921ebc029b9113c6.png在Bethune的监控中,针对表空间的空间增长,具有一个曲线监控展示,用于显示空间都变化趋势。例如如下视图,展示了SYSTEM表空间高达 87%的空间被 AUD$ 占用:5104b20cab8aebeae72a26fe487ae2bb.pngAUD$ 存储的是数据库的审计信息,已经占用了 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 的空间展示变化如下图所示:7c0b6925e0e35ca846dc88f1d72fdee1.pngBethune ,空间展示还可以更进一步!2c7fd94e839e7f04578e16a8a72a7778.png在 Bethune 的监控预警中,当问题具有可追溯性时,在告警右侧就会有一个可点击的小图标,帮助我们进一步分析问题。下图中,系统监控发现了长事务,对于OLTP系统,长时间运行的 DML 操作是必须要要多加关注的:8b0305af2149f2bc1c557cc5576b426d.png进一步的点击追溯,系统会呈现出详细的信息,例如用户和SQL信息等:8423ead40b85290528ed2b561e57a216.png点击SQLID,就进入了SQL和执行计划页面。一目了然的可以看到这个 DELETE 语句,因为全表扫描的执行计划而执行缓慢,极度影响性能:18e91c5d29b5be35b9e2917b3f018c77.png事实上,到这里 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 在下一个版本中,将完全实现到创建之前的所有建议,实现智能化的索引推荐。4a2b0f6c98c13090036ddb0ae3247314.pngBethune X 支持 SQL 自定义监控,通过添加一个SQL采集任务,配置告警策略来实现数据库内数据的监控。对于日志,Bethune X 已经预设了Oracle alert 日志监控:f2be88062f5f06461ee8d80df1b70c2e.png除了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)。3acaa139658c43afa362e10066d7e0c2.png配置好SQL脚本之后,需要选择相应的数据库进行测试,因为我们是在Enmotech 这个数据库上做的这个外部表,所以选择Enmotech 作为测试数据库,测试通过的数据库才能启动这个采集项。

第四步:创建告警策略,添加到模板,使用到目标数据库

保存好采集任务之后,在告警策略里针对这个数据采集项:「安全日志外部采集」创建告警策略。监控类型选择「数据库」—>「Oracle」—>「自定义」;SQL 自定义采集任务通过对采集SQL返回的字段进行规则配置。这儿我们返回了通过日志截取转化的时间字段「log_date」和内容字段「text」;
这儿我们对「TEXT 」字段进行规则配置,利用like 表达式做全模糊查询,包含这段关键字的日志都会触发该告警规则。告警模板的配置,需要通过变量的方式将主机名,数据名等预设变量和字段变量加入到告警模板里。字段变量需要用 ${字段名} 的方式包起来,配置方式可以数据悬停告警模板旁边的 i 展示出来。a1279d8cdad530bfd9445c73d6fae442.png配置好告警策略后,配置到相应的模板,再把相应的库配置上该告警策略。如果触发了告警,就可以在 控制台/告警看板 里面看到该告警。也可以在「数据库详情」页面最近告警里面看到告警信息。bcfce654d077ec5a23326c2b92301908.png
以上就是利用 Oracle 外部表+Bethune X 自定义 SQL 监控的方式实现主机日志监控的一个例子。总结一下:
1.通过赋权让Oracle用户有权限读取日志的权限;
2.创建外部表,让Oracle 数据库能访问该日志;
3.在Bethune X 里面创建采集任务,并保证目标数据库的采集任务能测试成功;
4.针对这个采集任务创建个告警策略,添加到模板里面,应用到数据库上。2020 ,对你的 DBA 好一点,一套 Bethune ,交个好朋友!数据驱动,成就未来,云和恩墨,不负所托!

云和恩墨是全球化数据资产端到端解决方案提供商,致力于将数据思维带给每个组织、每个人,构建数据驱动的智能未来。我们在数据服务、运维平台、数据智能、教育培训等领域为企业和个人提供可信赖的产品、解决方案和服务,与业界厂商广泛合作,围绕用户需求,持续为客户创造价值、为行业培养人才,激发数据潜能,为成就未来数字化企业和数据人才而不懈努力。

云和恩墨坚持围绕数据时代客户面临的挑战持续创新,不断加大研发投入,持续完善贯穿业务智能、开发管控、云管平台、分布式存储和基础运维的端到端产品和服务,助力企业和个人成功。

41f29a50ef02fc3775c38cfcbeecb06d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554609.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql集群_MySQL集群

MySQL集群搭建之主从复制: 主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中…

mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

数据库(Database)操作是在开发过程中重要的组成部分&#xff0c;熟练掌握数据库的操作是开发人员必备的武器。PHP中文网为大家提供了各种封装好的php数据库操作类库&#xff0c;供大家下载和学习。相关mysql视频教程推荐&#xff1a;《mysql教程》php各种数据库操作类库下载PDO…

程序员需要知道的职场真相

关于面试谈薪&#xff1a; 1. 你值多少钱&#xff0c;不是由老板决定的&#xff0c;也不是由你自己的能力决定&#xff0c;而是由市场决定的。这个技术就你一个会&#xff0c;你说多少钱就多少钱。这个技术 100W人会&#xff0c;不好意思&#xff0c;肯定是公司在一定的时间内&…

QQ浏览器怎么同步通讯录?QQ浏览器同步通讯录的方法

QQ浏览器怎么同步通讯录&#xff1f;QQ浏览器同步通讯录的方法 qq浏览器是一款非常好用的手机服务软件&#xff0c;有很多用户都会使用这款软件作为自己的主流浏览器&#xff0c;相信已经有很多用户使用过这款软件了&#xff0c;这款软件的搜索功能非常的强大&#xff0c;有很多…

win10如何删除注册表残留文件

win10如何删除注册表残留文件?下面一起来看看如何操作吧。 1、按下“winr”打开运行&#xff0c;输入“regedit”&#xff0c;点击“确定”; 2、依次展开“HKEY_LOCAL_MACHINESOFTWAREMicrosoftwindowsCurrentVersionUninstall”; 3、在该子键下根据已卸载的应用程序软件图标…

jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库

前言连接数据库进行测试在工作中会比较常用&#xff0c;首先可以读取数据库的数据进行参数化、关联等&#xff0c;批量添加测试数据以及清理数据&#xff0c;还可以直接对SQL语句进行压测。一、基本介绍1. 首先第一步要导入mysql驱动包&#xff0c;放到jmeter/lib目录下&#x…

下如何查看mysql表单_Navicat 教程:如何进行表单查看

Navicat 表单查看方便表单查看、更新或删除数据&#xff0c;显示当前的记录&#xff1a;栏位名及其值。表单的弹出菜单包括这些功能&#xff1a;设置栏位值为 Null 或空白字符串、使用当前栏位值为筛选、设置表单查看格式及更多&#xff0c;导览栏可以快速切换记录、插入、更新…

怎么禁止开机启动nvidia

1、单击开始菜单&#xff0c;选择运行&#xff0c;打开运行后输入services.msc 确定。 2、打开本地服务后&#xff0c;在列表中找到NVIDIA Display Driver Service服务。 3、双击打开该服务&#xff0c;然后将NVIDIA Display Driver Service服务的启动类型设置为禁用&#x…

mysql insert 错误码_利用 MySQL 自身错误诊断区域-爱可生

原标题&#xff1a;利用 MySQL 自身错误诊断区域-爱可生背景本篇文章来源于今天客户问的一个问题。问题大概意思是&#xff1a;我正在从 Oracle 迁移到 MySQL&#xff0c;数据已经转换为单纯的 INSERT 语句。由于语句很多&#xff0c;每次导入的时候不知道怎么定位到错误的语句…

mac版crt8.0.2打开无响应怎么办_Mac电脑程序无响应怎么办?教你强制退出无响应程序...

Mac电脑运行时间长了&#xff0c;难免也会遇到程序卡死无响应的情况&#xff0c;可能是由于程序冲突、缓存不足或者一些bug等情况导致&#xff0c;这个时候我们就需要强制退出这个程序了&#xff0c;一起来看看如何强制退出无响应程序吧&#xff01;快捷键强制退出当前运行的应…

win7如何关闭密码保护共享

1、首先打开控制面板&#xff0c;选择用户账户和家庭安全。 2、其次点击用户账户。 3、然后选择管理其他账户。 4、接着点击Guest&#xff0c;点击启用。 5、之后关闭窗口&#xff0c;右击点击计算机&#xff0c;选择管理。 6、接着按顺序点击本地用户和组、用户&#xff0…

python英文字典小程序_python 小程序—三级菜单—循环和字典练习

程序中利用多级字典来存储三级菜单&#xff0c; 通过一系列while循环和for循环&#xff0c;实现了三级菜单的查询&#xff0c;选择&#xff0c;退回上级菜单&#xff0c;退出程序几个功能。缺点&#xff1a;程序语句过于重复&#xff0c;效率低。#-*-coding:utf-8-*-date{北京:…

win7电脑假死机怎么办

1、正在使用电脑&#xff0c;如果网页或一些页面卡住不动&#xff0c;我们首先要保持电脑的正常运行。这时候可以同时按WinD&#xff0c;可以马上回到桌面。然后尝试着刷新几次。 2、当回到桌面后&#xff0c;我们试着看看是不是运行的软件太多了&#xff0c;造成电脑运行不动…

ubuntu mysql master slave_Ubuntu下MySQL5.5 配置主从(Master Slave)同步

折腾了将近3个小时!终于把mysql的主从同步给配置成功了!网上的不少例子都行不通(也许是版本问题).官网看了一下原版的tutorial,还是比较懵逼.....最后,通过官网的教程和自己的摸索,终于弄好mysql 主从复制了..在此记录一下.1.环境:1.1.vmware 121.2.ubuntu14.041.3.Master Ip:1…

怎么关闭u盘写保护

通过电脑对U盘设置的了写保护。在U盘盘符的上方点击右键&#xff0c;在弹出的菜单中点击属性。 在属性窗口上方找到并点击安全&#xff0c;在安全选项卡中部找到并点击编辑。 在打开的窗口上部选中everyone&#xff0c;然后在下方everyone的权限中勾选完全控制&#xff0c;最后…

win8系统软件不兼容怎么办

1、在出现问题的程序文件上右键单击&#xff0c;将弹出一个快捷菜单&#xff0c;在该菜单中找到“兼容性疑难解答”这一项&#xff0c;单击它; 2、这时&#xff0c;将弹出“程序兼容性疑难解答”的“正在检测问题”进度状态&#xff0c;您需要根据情况等待片刻; 3、检测完毕&…

怎么提升笔记本显卡性能

1、打开控制面板&#xff0c;点击硬件和声音。 2、硬件和声音页面&#xff0c;点击电源选项。 3、系统默认电源计划为平衡&#xff0c;点击更改计划设置。 4、进入电源计划编辑页面&#xff0c;点击更改高级电源设置。 5、电源选项窗口&#xff0c;点击可切换动态显卡&#…

win10桌面不停自动刷新闪屏解决方法

1、右键点击桌面上的此电脑&#xff0c;然后点击管理; 2、然后双击服务与应用程序&#xff0c;展开它; 3、再双击服务; 4、然后找到Problem Reports and Solutions Control Panel Support&#xff0c;点击左侧的停止&#xff0c;或者右键后停止; 5、接着找到Windows Error R…

防止u盘中毒的方法

防止u盘中毒的方法是什么&#xff0c;下面一起来看看吧。 方法一、通过修改注册表来阻断U盘病毒 即使关闭了自动播放功能&#xff0c;但是还是会在双击盘符的时候入侵系统&#xff0c;通过修改注册表来阻止U盘病毒&#xff0c;但是U盘病毒依然会在双击盘符时入侵系统&#xff…

win10 dns异常上不了网如何解决

遇到win10 dns异常上不了网如何解决呢&#xff0c;接下来就给大家讲述一下win10系统dns异常上不了网的修复步骤。 1、首先&#xff0c;我们单击左下角的开始菜单按钮&#xff0c;然后右键单击命令提示符选项。 2、然后&#xff0c;我们复制以下命令&#xff1a;ipconfig / flu…