非管理员用户是否有办法检查Oracle实例的正常运行时间?即我没有sysdba权限。
答案 0 :(得分:15)
试试这个。它不需要管理员用户,尽管SELECT
访问v_$instance
表。
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;
答案 1 :(得分:6)
您的问题指定“非管理员用户”,所以我担心答案可能不是。通常的机制需要从V $视图中选择 - V $ INSTANCE或V $ SESSION。默认情况下,这些都不会授予PUBLIC。
如果您很好地询问DBA,他们可能准备授予您访问这些视图的权限,或者至少编写一个包装函数(或函数)来公开这些值。
答案 2 :(得分: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 :(得分:0)
以下查询将向您显示Oracle database uptime和启动历史记录。
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;
答案 4 :(得分:-3)
我建议使用类似this的内容 - 但您应该提供更多详细信息,例如您所使用的操作系统以及Oracle的版本。