2010-04-14 13 views
11

Czy istnieje możliwość sprawdzenia czasu pracy instancji Oracle przez użytkownika nie będącego administratorem? To znaczy. Nie mam uprawnień sysdba.Zapytanie Oracle Uptime

+0

Zwykle jest to Oracle 10g. System operacyjny jest różny ... –

Odpowiedz

4

Twoje pytanie określa "użytkownik nie administratora", więc obawiam się, że odpowiedź brzmi prawdopodobnie nie. Typowe mechanizmy wymagają wyboru z V $ views - V $ INSTANCE lub V $ SESSION. Żadne z nich nie jest przyznawane domyślnie dla PUBLIC.

Jeśli dobrze zapytasz DBA, mogą być gotowi do przyznania ci dostępu do tych widoków, lub przynajmniej napisać funkcję owijającą (lub funkcje), aby ujawnić te wartości.

+0

Dzięki za to - to właśnie myślałem. –

15

Spróbuj tego. Nie wymaga użytkownika administratora, ale dostęp do tabeli SELECT.

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

Lub, jeśli przyjąć, że czas uruchamiania PMON jest taki sam jak czas uruchamiania bazy danych, można uzyskać czas pracy takiego:

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

Te muszą być uruchamiane jako administrator db niestety. –

+0

@Greg: Nie, nie jestem administratorem naszej bazy danych, ale mogę wysłać zapytanie do instancji sys.v_ $. Musisz tylko być administratorem db, aby * przyznać * uprawnienie select na tabelach v $. –

+0

Dzięki - nadal potrzebuje trochę interwencji. W tym przypadku nie miało to większego znaczenia, więc zrezygnowaliśmy w końcu. –

-2

Sugerowałbym coś this - ale powinien podać więcej szczegółów, na przykład, w jakim systemie operacyjnym jesteś i jaka wersja Oracle.