Oracle运行时间查询

14

非管理员用户有没有办法检查Oracle实例的正常运行时间?即我没有sysdba权限。


通常是Oracle 10g。操作系统各不相同... - Greg Reynolds
5个回答

20

试试这个。它不需要管理员用户,虽然需要对 v_$instance 表有 SELECT 访问权限。

SELECT to_char(startup_time,'DD-MON-YYYY HH24:MI:SS') "DB Startup Time"
FROM sys.v_$instance;

或者,如果你假设PMON启动时间和数据库启动时间相同,你可以像这样获取运行时间:

SELECT to_char(logon_time,'DD/MM/YYYY HH24:MI:SS')
FROM v$session
WHERE sid=1;

6

你的问题指定了“非管理员用户”,所以恐怕答案可能是否定的。通常的机制需要从V$视图-V$INSTANCE或V$SESSION中进行选择。这两者默认情况下都不授予PUBLIC权限。

如果你友好地向数据库管理员提出请求,他们可能会准备授予你访问这些视图的权限,或者至少编写一个包装函数(或多个函数)来公开这些值。


1
以下查询将显示您Oracle数据库正常运行时间和启动历史记录。
SELECT host_name, instance_name,TO_CHAR(startup_time, 'DD-MM-YYYY HH24:MI:SS') startup_time, FLOOR(sysdate-startup_time) days FROM sys.v_$instance;


select * from ( select STARTUP_TIME FROM dba_hist_database_instance ORDER BY startup_time DESC) WHERE rownum <10;

0

PMON的sid并不总是等于1。因此最好使用以下查询:

SELECT t.LOGON_TIME FROM v$session t where upper(t.PROGRAM) like ('%PMON%')

它适用于Solaris和Linux Redhat上的11.2.0.4和12.1.0.2版本。


-3
我建议使用类似this的东西 - 但你应该提供更多细节,例如你使用的操作系统和Oracle的版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接