当前位置:首页 » 操作系统 » oracle数据库监控

oracle数据库监控

发布时间: 2022-05-03 03:28:24

㈠ 如何实时监控oracle数据库中是否有新纪录

在要监控的表A中创建触发器,把新记录数据,更新到另外一张表B,
应用定期查询B的时间,前后两次查询的结果一样就是没有更新,不一样就是有新记录。
当然也可以直接查询原表A,不过A的数据一多就影响性能了。

㈡ 监控判断oracle数据库挂了

监控判断oracle数据库挂了就是数据库宕机了,不能再提供服务。
最简单的处理办法就是重启计算机。
或者就要在数据库里排查出发生问题的原因,然后对症解决。

㈢ 如何监控oracle数据库性能

oracle的性能判断需要综合数据库的多个运行指标来判断:
1、进程数量和占用cpu:这个主要看有没有长时间占用cpu的进行。通常会判断大出sql,需要优化;这个可以用执行计划或者awr报告查看;
2、内存占用:主要用系统命令查看ora_占用和系统总内存的比例,swap的使用率;通常swap使用率低就没事;这个主要使用系统命令;
3、磁盘占用率:防止磁盘空间不足,需要的主要在系统和用户表空间、RMAN等操作上;这个主要使用系统命令;RMAN命令查看

㈣ 如何监控Oracle数据库中长时间运行的进程

监控Oracle 数据库中长时间运行进程的两种方式,通过这些方 法,我们可以监控单条语句的 长时间操作,监控存储过程的运行进度,甚至自己'生成'进度信息. 关键词:监控进度V$SESSION_LONGOPS 当Oracle 存储过程运行时间较长时,我们希望客 户端能了解到它在后台执行的状况或者进度信息(类 似WINDOWS 安装软件时的进度条信息),这样可以知 道运行在后台的应用进程是否终止或者休眠,更近一 步要求,最好能知道进行到哪一步骤,还有多少时间才 能完成. 简单到一条SQL 语句的情况,如果执行时间较长, 我们如何得到它的运行状况?是否后台还在运行?虽 然可以查看SQL 的执行计划了解它的执行步骤,但如 何知道它运行到哪一个步骤了呢?如何才能估计出它 的合理的较为精确的执行时间呢? Oracle 数据库前端发出执行命令后,进程在后台 执行,普通开发人员一般无法了解到后台在做什么,一 般采用的方法是用DBMSOUTPUT.PUT_LINE 来打印出 来,但DBMS—OUTPUT.PUT—LINE 打印的信息受缓冲区 大小限制,如果信息较多就容易溢出,而且如果存储过 程执行时间较长,只有在其执行完后,这些信息才会打 印出来,这就增加了调试周期,影响了调试效果.有的 开发人员在存储过程中通过写日志表的形式来记录进 度,但需要COMMIT 后其他进程才能看到这些日志信 息,而在某些控制结构中(如游标CURSOR 循环)COM— MIT,则很容易引起ORA 一01555 错误,造成程序出错. 下面介绍两种监控方法. 如何监控单条长语句从ORACLE8 开始,出现一个新的动态视图:V $SESSION_LONGOPS,从这个视图可以获知一些操作 (如全表扫描,并行查询,RMAN,排序等)的执行进度, 我们先来了解一下V$SESSION—LONGOPS 视图的一些 重要字段: 列说明 sID 会话标识 5ERIAL#会话序列号 OPfE 操作的简短描述 TARG 盯操作的对象,如xx TAR~_DESC目标描述 SOFAR 目前已执行单位数目 ToTAIWORK 总单位数目 UNlTS 单位 START_TIME 开始执行时间 LAST_ UPDATE_TIME 统计数据最后更新时间 TIME_ REMAINING 估计剩余时间c ELAPSED_SECONDS 已执行时间(秒) MEsSAGE 统计数据汇总信息 USERA^^E 用户名 ~L_ADDRES5 语句的地址,,用于和V$sql_text 等关联 语句的hash 地址,用于和V$sql_texlSQLHASH VALUE等关联 这个动态视图显示各个运行时间超过6 程.这些进程包含许多备份和恢复功能,统计数据收集,查询等. 执行以下语句就可以得到数据库中各个长时间操 作的进程信息: select'Icfromv$sesslon_ longopswheretime_ re- malnlng>0 我们也可以用图形化工具查看,如TOAD,OEM中 均可查看长操作进程进度信息. Oracle 自带的管理工具OracleEnterpriseManager (OEM)提供了图形化查看长操作的功能,如: 计算机系统应用2007 Quest公司的数据库管理工具TOAD 也可以看到 长操作信息,如: 表的统计信息. 长时问运行的SQL 语句可以用V$SESSION—LON? 为了能监控到查询进程执行的进度,必需使用 CBO 优化器并且: 设置TlMED—STATISTICS或者SQL—TRACE 用ANALYZE语句或者DBMS—STAT 包收集相关 108 实践经验P 帕cficalExpen GOPS来监控.实际上,长时间运行的存储过程也可以 监控.那是否任何操作都可以通过这个视图来监控进 度呢?很遗憾,V$SESSION—LONGOPS 只会报告它认为 耗时长的操作.对于NEsTEDLOOP/UNIQUEINDEX READS/INDEXRANGEScANS 等执行速度很快的操作, 2007 期计算机系统应用由于它们执行一般不超过6 秒,因此将不会出现在V $SESSION—LONGOPS 如何监控自定义存储过程单条长语句可以用上面的方法监控,Oracle 动生成V$SE.SSION— LONGOPS 记录.那么存储过程中 有许多小操作,如何监控进度呢?其实,我们也可以手 工生成V$SESSION—LONGOPS 记录,方法是调用DBMS APPLICATION—INFO 包来生成自定义进度信息. 从Oracle7.2 开始,提供了DBMS—APPLICATION— INFo 包,通过调用这个包,应用可以将自己的名字和 动作填写到V$SESSION 和V$SQLAREA 的MODULE ACTION列中.V$SESSION 列出每个会话的用户名,操 作系统机器名,终端名,程序名等. 应用可以在执行模块时设置模块名和动作名,模 块名一般是甩户自定义的.而动作名一般描述模块中 的当前执行的事务的名字. DBMSAPPLICATION_INFO 包包含以下过程 SET_ MODULE 设置当前运行程序的模块名 SET__AEl'ION 设置当前模块的当前动作名 SESSION—LON-在V$SESSIONLONGOPS视图中 GoPS 插入一行进度信息 SETMODULE过程设置模块名和动作名: createorreplaceproceredel—cust(v_cust—Id varchar2) begindbms—— application—— info.set— mole(mole—— name=>"delcust". actlon_name=>"deletetablecust)i deletefromcustwherecustld=v_ cusLId; dbms_appllcatlon— Info.seLmole(,); end;以上设置的模块名和动作名可以通过查询V $sqlarea 获取. 如:selectsql—text,mole,actionfromv $sqlareawheremole="del_cust: sql_textmoleadion Deletefr0mcustdel_ custdeletetableoust 1rowselected. SET_SESSION—LONGOPS 过程用于在V$session— longops 中插入一行,开发人员可以调用此过程设置长 时间操作的状态信息,这样,任何其他其他会话都可以 看到这个进度信息.如下例所示: declare _info.set_ session— Iongops_ nohint; IdndexnumberdefaultInohlnt: slnonumber;begin forlIn1..8888888888 loop update....; dbms_ appllcaflon— Info.setsesslon_ longops (rlndex=>l_rlndex, slno=>I_slno. op_name=>"updateahugetable. target=>126, target_desc=>'.msgdescription context=>0.sOfar=>j. totalwork=>8888888888. units=>loops endloop;end; 然后,从另一个会话来执行以下语句selectfromv$sesslon_ longopswheretlmere? malnlng>0; 也可以用图形化工具TOAD 或OEM来查看. 因此,采用本文说明的方法,Oracle 开发人员可以 比较方便的监控长操作进程的进度信息,也可以自己 设置监控信息,来了解后台存储过程的运行效率.甚 至,可以在存储过程或SQL 语句提交执行后马上观察 其执行进度,如果比较缓慢,则可以中断其执行,进行 调优,从而缩短调试周期,提高开发效率.

㈤ 如何在LoadRunner中监控oracle数据库

使用LR自带的监控引擎:

1,在第一个图choose monitor engine中选择sitescope,然后在在Monitored Server Machines区域点击Add如下所示:

㈥ 开启ORACLE服务与监控

使用命令行开启监听服务和数据库服务:
(1)打开监听程序:C:\>LSNRCTL START
(2)打开数据库服务:C:\>ORACLE 数据库名称
(3)启动与关闭数据库的准备工作:C:\>SQLPLUS NOLOG
SQL>CONN / @数据库名称 AS SYSDBA
(4)启动数据库:STARTUP
(5)关闭数据库:SHUTDOWN
以上是在windows系统下的完整步骤,纯手工,希望对你有所帮助。

㈦ 如何监控oracle数据库的备份

监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)

一、查看EXPDP/IMPDP的进度

1 两个视图

当你当如导出的时候,如果数据量比较大,中途有些人会着急,不免想看看进度如何,利用两个视图就可以看:

DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图
colowner_namefora10
coljob_namefora20
coloperationfora10
coljob_modefora10
colstatefora20
coldegreefora10
colATTACHED_SESSIONSfora30
colDATAPUMP_SESSIONSfora30
setlinesize200

格式化只是为了好看,也可以不用,直接用PL/SQL DEVELOPER图形工具。

可以使用DBA_DATAPUBMP_JOBS和DBA_DATAPUMP_SESSIONS视图来显示数据泵取作业的信息。

select*fromDBA_DATAPUBMP_JOBS;
select*fromDBA_DATAPUMP_SESSIONS;
selectsid,serial#fromv$sessions,dba_datapump_sessionsdwheres.saddr=d.saddr;

补充一下,前面的sql命令行格式化有点问题,number型的字段应该用9999xxx(多个9) 而不是axx,否则会出现一串串的#。

2 attach参数

1)查看任务进度

当你使用crontab后台任务运行导入导出任务的时候,想查看任务进度,该参数很有用,可以让你再次连接到已经断开的会话中,再次接管导出或导入的任务,当然你得先用前面2个视图查到jobname。

2)中途想停止crontab后台任务

此时,该参数非常好用。因为你不这样做,就得杀进程,而那么多进程,通常都会出错,如此暴利的杀进程方式,强烈滴不推荐。

举例:

假如之前后台任务的脚本中,有类似命令:

expdpsystem/xxxDIRECTORY=DATA_PUMP_DIR2parallel=32DUMPFILE=xxxx-%U.dmp

ATTACH参数解释:将你的数据泵取客户机会话加入到一个运行的作业中,并使你进行交互方式。此参数只能与用户名/密码组合一起使用。

此时你可以使用如下命令重新连接任务,并达到提前终止任务的目的:

expdpsystem/xxxattach=lurou.exp
连接进去之后再执行help命令可以查到停止任务的命令,这里就不列出来了
3longops视图
另也可以通过v$session_longops视图来监控长期运行的会话。

4.通过语句查看impdp进度SELECTa.tablespace_name,
ROUND(a.total_size)"total_size(MB)",
ROUND(a.total_size)-ROUND(b.free_size,3)"used_size(MB)",
ROUND(b.free_size,3)"free_size(MB)",
ROUND(b.free_size/total_size*100,2)||'%'free_rate
FROM
(
SELECT
tablespace_name,SUM(bytes)/1024/1024total_size
FROMdba_data_files
GROUPBY
tablespace_name)a,
(
SELECT
tablespace_name,SUM(bytes)/1024/1024free_size
FROMdba_free_space
GROUPBY
tablespace_name)b
WHERE
a.tablespace_name=b.tablespace_name(+);

二、查看RMAN备份进度
另外,查看rman的备份进度,可以用如下语句,记录备忘。

SELECTSID,OPNAME,SERIAL#,CONTEXT,SOFAR,TOTALWORK,ROUND(SOFAR/TOTALWORK*100,2)"%_COMPLETE"
FROMV$SESSION_LONGOPSWHEREOPNAMELIKE'RMAN%'ANDOPNAMENOTLIKE'%aggregate%'ANDTOTALWORK!=0ANDSOFAR<>TOTALWORK
orderby"%_COMPLETE"desc

㈧ 如何在LoadRunner中监控Oracle数据库

1、使用LR自带的监控引擎
在LR的controller上安装oracle客户端:
这一步就不用说了,安装直接Setup,安装就OK了。
1)安装完后,先配置一下Net Configuration Assistant。记住配置的服务名。
配置成功会显示:正在连接...测试成功。
2)用sqlplus连接一下,看是否可以连接成功,打开sqlplus输入oracle用户名密码和主机字符串。
查看是否登录成功。
添加oracle计数器:
3)登录成功后,打开LR的controller.,在可用图中选择oracle,点击add measurements,再点击Advanced,如下所示:

这里我们用LR native monitors。
4)在Monitored Server Machines区域,添加oracle服务器所在的IP。
5)再在Resource Measurements on:IP区域点击添加,弹出对话框如下:

6)输入相应的信息,这里的orcl就是前面在Net Configuration Assistant配置的服务名。
7)点击OK,这里我们应该可以看到可以添加oracle的计数器了,如下所示:

2、使用Sitescope引擎
不需要配置Net Configuration Assistant。
1)在第一个图choose monitor engine中选择sitescope,然后在在Monitored Server Machines区域点击Add如下所示:

在这里可以选择本地或者其他机器的sitescope,如果sitescope启用了account的验证,也要写上相应的用户名密码。
2)在Resource Measurements on:IP区域点击添加,弹出对话框如下:

3)输入信息如图。点击OK,如下:

至此就可以监控Oracle了

㈨ 怎么监控oracle数据库表和表空间的现状

可以通过查询v$tablespace、dba_data_files、dba_tablespaces等视图监控Oracle数据库表空间状态。
Oracle数据库表状态可以通过查询user_tables视图进行监控,如select table_name,status from user_tables where table_name='T1';语句。

热点内容
万魔斩脚本 发布:2024-10-06 08:23:18 浏览:876
华强北耳机连安卓手机下什么软件 发布:2024-10-06 08:21:53 浏览:251
儿科发现传染病的应急演练脚本 发布:2024-10-06 08:21:48 浏览:598
玩王者荣耀的时候要买哪个配置 发布:2024-10-06 08:19:41 浏览:620
imovie怎么清理缓存 发布:2024-10-06 08:14:30 浏览:17
python字典list 发布:2024-10-06 08:14:26 浏览:578
amhip访问 发布:2024-10-06 08:03:54 浏览:437
joy加密 发布:2024-10-06 07:53:27 浏览:201
结构是由哪种脚本语言填写的 发布:2024-10-06 07:24:27 浏览:744
客户端反编译教学 发布:2024-10-06 07:10:42 浏览:783