sqlplus

Linux如何用脚本监控Oracle发送警告日志ORA-报错发送邮件

怎甘沉沦 提交于 2020-08-07 02:57:50
Linux如何用脚本监控Oracle发送警告日志ORA-报错发送邮件 前言 公司有购买的监控软件北塔系统监控,由于购买的版权中只包含了有限台数据库服务器的监控,所以只监控了比较重要的几台服务器。 后边出现过没有监控的数据库服务器表空间爆满导致生产业务出现问题,后续手工处理数据也麻烦。 因此领导让我想办法能用什么方法监控上目前没有监控的数据库。 当然,我想到的只有三种, OEM 13C,Oracle本家的产品,好处多多; 自己写脚本监控,比较锻炼人和实惠,功能比较单一; 第三方的监控软件,鉴于北塔在数据库方面的监控效果,本人不是看好第三方的 捣鼓了几天OEM 13C,最后公司暂时没有资源装新的OEM服务器,遂放弃。 自己写脚本吧。。 思路 我的思路是: (步骤1)每次检查的时候,截取警告日志中需要检查的内容到另外的日志文件中(比如new_alert.log); (步骤2)过滤该日志文件(new_alert.log)中存在的ORA报错信息,存放至另外的日志文件中(比如err_alert.log); (步骤3)将日志(err_alert.log)的报错内容发送至指定的邮箱中,达到报警的目的。 下边一步一步来写脚本解决吧。 步骤1 首先我用的shell,脚本的例行开头为: #!/bin/ bash source /home/oracle/.bash_profile 然后需要考虑几个问题,

SHELL脚本

江枫思渺然 提交于 2020-08-06 09:08:22
脚本中需要用sqlplus获取数据库的一行数据,语句很简单,不想传递sql文件,可以使用Here Document重定向查询语句: sqlplus -s $user/$token@$sid <<EOF select localtimestamp from dual; exit; EOF 但是使用了Here Document后,脚本的缩进格式有点乱了😢 那么我们把语句放进变量里面吧。 stmt="select localtimestamp from dual;exit;" sqlplus -s $user/$token@$sid <<EOF $stmt EOF 噫,这不还是乱的吗,有啥区别。还不直接用文件当变量。 echo "select localtimestamp from dual;exit;" > stmt.sql sqlplus -s $user/$token@$sid @stmt.sql 有必要生成这么多中间产物吗?况且这文件名不随机化,以后会搞大系统啊。 能不能直接上管道? echo "select localtimestamp from dual;exit;" | xargs -I {} .sqlplus -s $user/$token@$sid {} 不行。因为标准输入和参数输入是两个概念。 来源: oschina 链接: https://my.oschina

Oracle RAC 12.2.0.1打补丁Patch 30920127(Apr 2020)

走远了吗. 提交于 2020-08-06 00:52:28
环境介绍: Oracle RAC版本:12.2.0.1(两节点) 操作系统版本:CentOS7.4 64bit 一、补丁环境准备 1.1 上传安装包 p6880880_122010_Linux-x86-64 p30920127_122010_Linux-x86-64 1.2 确保OPatch utility版本 Patch 30920127要求Opatch工具为12.2.0.1.19及更高(gird和Oracle用户均需要确认) 1.2.1备份原来的OPatch utility root用户执行,两节点均需执行 ```mv /u01/app/12.2.0/grid/OPatch /u01/app/12.2.0/grid/OPatch_bak mv /u01/app/oracle/product/12.2.0/db_1/OPatch /u01/app/oracle/product/12.2.0/db_1/OPatch_bak ##### 1.2.2 安装新的OPatch utility > root用户执行,两节点均需执行 unzip /tmp/p6880880_122010_Linux-x86-64.zip -d /u01/app/12.2.0/grid unzip /tmp/p6880880_122010_Linux-x86-64.zip -d /u01/app/oracle

使用zabbix监控oracle数据库

血红的双手。 提交于 2020-08-05 04:36:51
一、概述 zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库。 二、环境介绍 以下是我安装的环境,实际部署时并不需要跟我的环境一样。 1. 监控机 Redhat Linux 6.5 + Zabbix server 3.4.10 + Python 2.6.6 (操作系统自带) + Oracle Client 11.2 (x86_64) 2. 被监控机 Oracle 11.2.0.4 三、选择监控方式 zabbix监控的方式主要有以下三种类型 Zabbix agent 在被监控机上面安装zabbix agent,zabbix agent将被监控机采集到的数据发送给zabbix server。这种方式最常用,一般用来采集服务器的cpu、内存等信息。 SNMP 一些网络设备如交换机,上面无法安装zabbix agent,所以只能通过snmp的方式收集监控数据如端口状态,流量等。 External check 在zabbix server上面运行查询脚本,直接查询被监控机上的数据。 此种方式在被监控机上面不需要做任何部署 ,所有查询全部从zabbix server上面发出,所以对zabbix server的性能要求较高,官方不推荐大量使用该方式。对于少量的oracle数据库服务器,可以采用该方式。

Oracle 优化篇+STS+输入源(1/5)Cursor Cache

妖精的绣舞 提交于 2020-08-05 00:57:33
说明:本文为STS(SQL Tuning Set)使用参考手册 用途:本文仅供初学者熟悉了解SQL Tuning Set或优化参考 标签:SQL Tuning Set、STS、STS使用方法、Oracle优化、SQL调优、STS架构图 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 高级内容:由于篇幅原因,部分高级内容和详情没有在此展现,如有需要可以留言或私信 ★ 相关文章(※ STS的5种输入源) ①Cursor Cache ②AWR(Automatic Workload Repository) ③SQL Trace ④SQLPA(SQL Performance Analyzer Task) ⑤STS(SQL Tuning Set) ★ 知识点 ※ 名词解释:SQL调优集(STS)是一个数据库对象,可以用作调优工具的输入。 ※ STS包括以下组件: ①一组SQL语句 ②关联的执行上下文,例如用户架构,应用程序模块名称和操作,绑定值列表以及游标的 SQL编译环境 ③相关的基本执行统计信息,例如经过时间,CPU时间,缓冲区获取,磁盘读取,已处理的行,游标提取,执行次数,完整执行次数,优化器成本和命令类型 ④每个SQL语句的关联执行计划和行源统计信息(可选) ★ STS架构图 ★ 输入源A【Cursor Cache】 → dbms_sqltune

通过批处理调用SQL*Plus执行批量脚本

时间秒杀一切 提交于 2020-08-04 10:23:55
文章目录 在批处理文件中调用SQL*Plus命令执行批量脚本的场景 Windows命令终端连接数据库 方式1:登录进入SQL命令行 方式2:先进入SQL命令行,再登录 方式3: 使用用户名/密码连接指定机器 切换用户或服务器 批量脚本执行 已经登录 没有登录 批量脚本的内容 set echo off set feedback off spool 完整示例 常见设置与语句汇总 关于SQL*Plus的介绍和安装参考: Oracle SQL*Plus的安装与使用 在批处理文件中调用SQL*Plus命令执行批量脚本的场景 SQL Plus是Oracle提供的命令行工具,可以在命令行中输入命令执行查询、插入和建表和执行脚本SQL等操作。 对于应用开发人员,一般数据库相关操作使用界面工具sqldeveloper就可以了,但是如果是CI(持续集成),需要命令行执行一些脚本文件就需要使用到SQL Plus。 在CI中,可以使用Jenkins等工具串接部署前确认、代码获取、代码构建、代码部署、数据导入以及部署后通知等流程节点。而在数据导入这一步,如果使用的是Oracle数据库,则可以在Jenkins中配置批处理文件(本地、远程皆可)进行导入。也就是: Jenkins触发批处理 批处理调用SQL*PLus命令 通过SQL*PLus执行批量脚本,插入数据到数据库表。 接下来从登录

Needs to execute one sql query against two Oracle DBs in shell script at a time and export the data to separate csv files

為{幸葍}努か 提交于 2020-07-31 04:19:03
问题 I have file1.sh file and which internally needs to execute one sql query against two Oracle DBs at a same time and needs to export date to csv fiiles, below is the sample shellscript which executes the query against two dbs. .... #!bin/bash set -X sqlplus -S ${user1}@${DBCONNECTIONNAME_1}/${Pwd} Datesquery.sql & >> ${Targetdirectory}/csvfile1.csv sqlplus -S ${user1}@${DBCONNECTIONNAME_2}/${Pwd} Datesquery.sql & >> ${Targetdirectory}/csvfile2.csv sed 1d csvfile2.csv > file2noheader.csv cat

Oracle SQLPlus导出数据到csv文件

情到浓时终转凉″ 提交于 2020-07-29 10:55:08
时不时地我们需要导出一些数据用作备份、查看报表等,如果用 Sql Developer 导出会非常慢。而用 SqlPlus ,则速度非常快。 准备 SQL 执行文件 export.sql : set colsep , set feedback off set heading off set newp none set pagesize 0 set linesize 200 set trimout on spool /data/export.csv select t.name||','||t.age||','||t.salary||','||t.email||','||t.title from employee t where t.age < 50 order by t.salary desc; spool off exit 说明: set colsep , #分割符 set feedback off #回显本次sql命令处理记录条数 set heading off # 输出标题 set newp none #设置查询出来的数据分多少页显示,如果需要连续的数据,中间不要出现空行就把newp设置为none set pagesize 0 # 输出每页行数,为了避免分页设置为0 set linesize 200 # 每行大小,如果设置太小,会分行,最好是超好输出最大值 set trimout

ASM单实例由Oracle Restart引发的系列故障分析(Final Version)

强颜欢笑 提交于 2020-07-29 08:11:06
ASM单实例由Oracle Restart引发的系列故障分析(Final Version) 置顶 aaron8219 2013-08-26 03:35:50 5816 收藏 分类专栏: Oracle ASM 版权 今天重新打开上次安装完的一个ASM单实例环境,突然报错 SQL> startup ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+DATA/asmsingle/spfileasmsingle.ora' ORA-17503: ksfdopn:2 Failed to open file +DATA/asmsingle/spfileasmsingle.ora ORA-29701: unable to connect to Cluster Synchronization Service 以为是监听问题造成的无法读取asm磁盘组,于是运行netca删除监听和服务名,准备重新创建。 当我删除监听后,准备再重新创建一个时,报了一个错误,如下图: 需要重启Oracle Restart后再配置netca,否则不能注册到Oracle Restart google了一下,Oracle Restart是11gR2用来管理单实例组件的一个组件,在装完Grid