it-swarm-eu.dev

Jak zkontrolovat, zda je databáze Oracle funkční?

Pro naši aplikaci máme konfigurační soubor pro připojení k databázi Oracle (URL, uživatelské jméno, heslo).

Spuštění aplikace trvá 2-5 minut. Pokud je v databázi něco špatného, ​​vidím to v protokolech, ale musím počkat 2-5 minut. To je hodně času.

Chci tedy zjistit rychle a jednoduše způsob, jak zjistit, že databáze je v pořádku a online.

Máte představu, jak bych to mohl udělat?

14
Eugene

Pokud spustíte následující dotaz:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;

Mělo by se vrátit:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE
17
Solego

ps -ef | grep pmon

Proces PMON (Process Monitor) kontroluje všechny ostatní procesy na pozadí. Poté musíte zkontrolovat záznam výstrah pro další vyšetřování.

12
ibre5041

Nejdříve je potřeba znát uživatelské jméno a heslo pro připojení k databázi pro krok 2

  1. Zkontrolujte běh procesu Oracle:

    Zapnuto Un * x:

    ps -ef|grep pmon
    

    V systému Windows:

    tasklist|findstr /i Oracle
    

    pokud příkaz v každém případě vrací výstup, tj. pokud je ve vašem prostředí spuštěn proces pmon/Oracle, databáze běží.

  2. Jít do Oracle_HOME/bin a spusťte:

     ./sqlplus /nolog
    

    Pokud po přihlášení získáte chyby, databáze se nespustí:

    SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 31 21:61:61 2014
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Enter user-name: Oracle
    Enter password: 
    ERROR:
    ORA-01034: Oracle not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0
    
4
coz

Měli byste použít/napsat skript, který se připojí k serveru a uvidíte, zda je vaše databáze online. Zde vám pomohou Oracle. Stačí jej spustit z dávkového/shellového skriptu (viz Spouštění skriptů z příkazového řádku SQL ) a uvidíte jeho výstup. Pokud je vše v pořádku, než máte odpověď.

Nebo jen zkuste s klientem SQL * Plus.

3
Marian

Mohlo by být rozumné spustit skutečný dotaz také proti databázi. To jen zajišťuje, že se můžete připojit i dotazovat. Udělal bych z toho něco velmi jednoduchého a rychlého, jako například:

SELECT pk_column 
  FROM sometable
WHERE rownum <= 1
0
Richard

PMON zkontroluje všechny procesy bg

ps -ef|grep pmon

Kromě toho můžeme zkontrolovat, zda databáze běží nebo není.

ps -ef|grep mydb
0
user3818965