Michał I.

Michał I. Freelancer /
Consultant Nie
bojący się wyzwań

Temat: jak sprawdzić

Witam

Jak z konsoli sprawdzić że dane instancje bazy są up ?
Pawel M.

Pawel M. oracle, middleware,
jboss, apache

Temat: jak sprawdzić

na unixie/linuxie na ktorym stoja bazki:
ps -ef | grep pmon | grep -i nazwa_instancji
na windzie mzoesz sprawdzic jakie serwisy sa 'started'.Pawel Matyjasiak edytował(a) ten post dnia 18.03.09 o godzinie 20:52

konto usunięte

Temat: jak sprawdzić

Michał Iwańczuk:
Witam
Jak z konsoli sprawdzić że dane instancje bazy są up ?

W sensie instancje są podniesione, a jakie tam są dane to już wszystko jedno :)

Ja to robię w ten sposób: ps -eaf | grep ora_ . Oczywiście zależy to od rodzaju systemu, czasami lepiej zadziała ps aux.

Generalnie jeśli loguję się do nieznanego systemu to w głowie mam zestaw żelaznych komend:

cat /etc/ora*
cat /var/opt/oracle/* (only Solaris)

env | grep ORA
env | grep NLS
env | grep TNS

ps -eaf | grep ora_
ps aux | grep ora_

Temat: jak sprawdzić

Krzysztof P.:
Michał Iwańczuk:
Witam
Jak z konsoli sprawdzić że dane instancje bazy są up ?

W sensie instancje są podniesione, a jakie tam są dane to już wszystko jedno :)

Ja to robię w ten sposób: ps -eaf | grep ora_ . Oczywiście zależy to od rodzaju systemu, czasami lepiej zadziała ps aux.

Rozwijajac wypowiedz Krzyska to instancja moze byc podniesiona,
a danych uzytkownika moze nie byc - to podniesienia instancji
wystaczy plik parametrow skladajacy sie o ile mnie pamiec nie myli z 2 linii ;)

Wiec czy pytasz o to czy jest podniesiona instancja ? czy o to w jakim statusie jest baza ?

ps.
Krzysztof ty kiedys wystepowales na kanale polonia jako Jim(i)?

pozdrawiam,
Marcin Przepiorowski

konto usunięte

Temat: jak sprawdzić

Marcin Przepiórowski:
Krzysztof ty kiedys wystepowales na kanale polonia jako Jim(i)?

Trafiony zatopiony :)

Czasami jeszcze na #pomoc zaglądam. Ale to nie te czasy, żeby mieć czas.
Michał I.

Michał I. Freelancer /
Consultant Nie
bojący się wyzwań

Temat: jak sprawdzić

dzięki za odp

A jak sprawdzić statut bazy w danej instancji.

Bo np mam zainstalowane 5 instancji i na nich jeszcze po 2 bazy jak to Sprawdzić tak żeby w konsoli otrzymać ładny log

konto usunięte

Temat: jak sprawdzić

Jeśli masz kilka instancji na danym serwerze, to przed podłączeniem się do bazy lokalnie z tegoż serwera bez użycia Oracle Net, musisz ustawić sobie odpowiednio środowisko. Możesz skorzystać z oracle'owego skryptu oraenv.
Ja osobiście od lat korzystam z powodzeniem z czegoś takiego (u mnie nazywa się to "chsid").

################################################################################
#!/bin/bash2
# Title: chsid
# Version: 1.0
# Last modified: 08/10/2001
# Author:
#
################################################################################
# DESCRIPTION
# ===========
# Script:
# --> changes ORACLE_SID and sets all necessary ORACLE environment
# --> If no SID from list is choosen then by default first one
# --> from /etc/oratab is choosen
#
################################################################################
# HISTORY OF CHANGES
# ==================
#
# Date Who What
# -------- ----------------- --------------------------------------------------
# 08/10/01 Dariusz Walat Default SID part added
#
################################################################################

awk 'BEGIN {FS=":"} /^[^#].*:.*:[YN]$/ {print ++a".",$1}' /etc/oratab
read a
if [ "${a:-xxx}" == "xxx" ]
then
ORACLE_SID=`cat /etc/oratab | \
awk 'BEGIN {FS=":"} /^.*:.*:[YN]$/ {print $1}' | head -1`
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES
export OSID=$ORACLE_SID
export ORACLE_BASE=/Oracle/app/oracle
export OB=$ORACLE_BASE
export OH=$ORACLE_HOME
export ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export DBA=/Oracle/app/oracle/admin/scripts/dba
export TOOLS=/Oracle/app/oracle/admin/scripts/tools
export PATH=${ORACLE_HOME}/bin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin:/usr/lbin:$DBA:$TOOLS
else
ORACLE_SID=`cat /etc/oratab | \
awk 'BEGIN {FS=":"} /^[^#]*:.*:[YN]$/ {print ++a".",$1}' | \
grep $a | head -1 | awk '{print $2}'`
echo "You have choosen : " $ORACLE_SID
export $ORACLE_SID
ORAENV_ASK=NO
. oraenv
ORAENV_ASK=YES
export OSID=$ORACLE_SID
export ORACLE_BASE=/Oracle/app/oracle
export OB=$ORACLE_BASE
export OH=$ORACLE_HOME
export ORA_NLS32=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export DBA=/Oracle/app/oracle/admin/scripts/dba
export TOOLS=/Oracle/app/oracle/admin/scripts/tools
export PATH=${ORACLE_HOME}/bin:/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin:/usr/lbin:$DBA:$TOOLS
fi


następnie zmiana środowiska na daną instancję, z którą chcę pracować:


[oracle@rcpserv lbin]$ . chsid
1. PYRLTEST
2. PYRLTRN
3. PYRLMIG
4. RCPDB
1
You have choosen : PYRLTEST


Jak już masz ustawione środowisko, to:

1. Sprawdzenie z poziomu OSa, czy baza chodzi (tutaj przykład z Linuxa)


[oracle@rcpserv lbin]$ pso
oracle 23006 0.0 2.6 386648 27764 ? S 2008 20:18 ora_pmon_PYRLTRN
oracle 23008 0.0 15.1 390420 156084 ? S 2008 5:51 ora_dbw0_PYRLTRN
oracle 23010 0.0 0.6 393352 7036 ? S 2008 5:58 ora_lgwr_PYRLTRN
oracle 23012 0.0 1.2 389272 12868 ? S 2008 16:35 ora_ckpt_PYRLTRN
oracle 23014 0.0 17.2 386568 177308 ? S 2008 7:10 ora_smon_PYRLTRN
oracle 23016 0.0 1.3 385992 13784 ? S 2008 0:02 ora_reco_PYRLTRN
oracle 23018 0.0 2.1 385992 22308 ? S 2008 18:27 ora_cjq0_PYRLTRN
oracle 23020 0.0 0.5 390168 5980 ? S 2008 0:34 ora_arc0_PYRLTRN
oracle 8364 0.0 0.6 304728 7032 ? S Jan16 9:57 ora_pmon_RCPDB
oracle 8366 0.0 1.2 305572 13284 ? S Jan16 2:35 ora_dbw0_RCPDB
oracle 8368 0.0 0.6 308684 6864 ? S Jan16 1:47 ora_lgwr_RCPDB
oracle 8370 0.0 0.7 304488 7668 ? S Jan16 8:20 ora_ckpt_RCPDB
oracle 8372 0.0 1.6 304132 17020 ? S Jan16 2:57 ora_smon_RCPDB
oracle 8374 0.0 0.8 304084 9048 ? S Jan16 0:01 ora_reco_RCPDB
oracle 8376 0.0 0.8 304072 8688 ? S Jan16 6:21 ora_cjq0_RCPDB


gdzie pso, jest u mnie aliasem (poniżej zamieszczam listę innych aliasów, z których od czasu do czasu korzystam - może się przydadzą)


alias cdadmin='cd ${ORACLE_BASE}/admin'
alias cdb='cd ${ORACLE_BASE}/admin/${ORACLE_SID}/bdump'
alias cdbak='cd $backup'
alias cdbin='cd ${ORACLE_HOME}/bin'
alias cdc='cd ${ORACLE_BASE}/admin/${ORACLE_SID}/cdump'
alias cdcman='cd ${ORACLE_HOME}/network/cman'
alias cdcmanlog='cd ${ORACLE_BASE}/admin/cman'
alias cdd='cd ${ORACLE_HOME}/dbs'
alias cddba='cd ${ORACLE_BASE}/admin/scripts/dba'
alias cdh='cd ${ORACLE_HOME}'
alias cdlislog='cd ${ORACLE_BASE}/admin/listener'
alias cdnames='cd ${ORACLE_HOME}/network/names'
alias cdnameslog='cd ${ORACLE_BASE}/admin/names'
alias cdnet='cd ${ORACLE_HOME}/network/admin'
alias cdscr='cd $scripts'
alias cdsqlnetlog='cd ${ORACLE_BASE}/admin/sqlnet'
alias cdu='cd ${ORACLE_BASE}/admin/${ORACLE_SID}/udump'
alias psdbsnmp='ps auxwww | egrep -i "^.*[d]bsnmp.*$"'
alias psl='ps auxwww | egrep "^.*[t]nslsnr.*$"'
alias psn='ps auxwww | egrep "^.*[n]ames.*$"'
alias pso='ps auxwww | egrep "[o]ra_[a-z]{1,4}[0-9]{0,3}_[A-Z0-9]{1,8}"'
alias psshsrv='ps auxwwww | egrep "oracle[A-Z]{3,}|^USER.*COMMAND$"'


a status instancji i bazy:


[oracle@rcpserv lbin]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.5.0 - Production on Thu Mar 19 14:47:19 2009

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> connect / as sysdba
Connected.

SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> select open_mode from v$database;

OPEN_MODE
----------
READ WRITE


>Bo np mam zainstalowane 5 instancji i na nich jeszcze po 2 bazy >jak to Sprawdzić tak żeby w konsoli otrzymać ładny log
5 instancji i na nich po 2 bazy???? to chyba jakieś delikatne niezrozumienie tematu. Może chodzi o to, że w pojedynczej bazie masz 2 schematy, z których korzystają 2 niezależne aplikacje?Dariusz W. edytował(a) ten post dnia 19.03.09 o godzinie 14:58
Michał I.

Michał I. Freelancer /
Consultant Nie
bojący się wyzwań

Temat: jak sprawdzić

5 instancji i na nich po 2 bazy???? to chyba jakieś delikatne niezrozumienie tematu. Może chodzi o to, że w pojedynczej bazie masz 2 schematy, z których korzystają 2 niezależne aplikacje?

Dokładnie mam po 2 schematy

Chodzi mi o to robię sobie automat który mnie rano poinformuje które bazy instancje podniesione.

konto usunięte

Temat: jak sprawdzić

Dokładnie mam po 2 schematy

Chodzi mi o to robię sobie automat który mnie rano poinformuje które bazy instancje podniesione.
No to, jeśli nie stosujecie jakichś trików z wyłączaniem przestrzeni tabel, blokowaniem właścicieli schematów (albo użytkowników mających zgrantowane przywileje do ich danych), to można postawić znak równości pomiędzy podniesioną i dostępną bazą, a dostępnością danych w tych schematach.

Napisz sobie skrypt, który zrobić coś takiego (składnia "wydumana")

FOR kazda_baza_na_serwerze
DO
IF
instancja jest podniesiona (open)
AND instancja nie jest w trybie restricted
AND baza w trybie read write
THEN
zaloguj: "baza x jest dostępna"
ELSE
zaloguj: "baza x nie jest dostępna"
END IF;
DONE;

I po sprawie.

skorzystaj z wartości zwracanych z zapytań:
select status from v$instance;
select open_mode from v$database;
select logins from v$instance; -- ALLOWED

jak masz się łączyć zdalnie po Oracle Net to musisz jeszcze zrobić sprawdzenie, czy Listener wie o każdej z baz, która cię interesuje:

lsnrctl status
lsnrctl services.Dariusz W. edytował(a) ten post dnia 19.03.09 o godzinie 15:15

Temat: jak sprawdzić

Michał Iwańczuk:
5 instancji i na nich po 2 bazy???? to chyba jakieś delikatne

No jest to dosc niedokladny opis, ale w gridzie
jak najbardziej mozliwy
jak dla mnie to moze byc RAC z trzema nodami
plus RAC z dwoma nodami i mamy 2 bazy i 5 instancji ;)

Wedlug mnie opisywanie bazy jako schematu to jeszcze gorsze zaciemnienie sprawy ;)

pozdrawiam,
Marcin Przepiorowski

Temat: jak sprawdzić

Krzysztof P.:

Trafiony zatopiony :)

Czasami jeszcze na #pomoc zaglądam. Ale to nie te czasy, żeby mieć czas.

Oj to prawda, ja bywalem na poloni pod nickiem Pioro.
Ale to bylo juz tak dawno ze prawie nieprawda ;)

pozdawiam,
Marcin

konto usunięte

Temat: jak sprawdzić

Marcin Przepiórowski:
Michał Iwańczuk:
5 instancji i na nich po 2 bazy???? to chyba jakieś delikatne

No jest to dosc niedokladny opis, ale w gridzie
jak najbardziej mozliwy
jak dla mnie to moze byc RAC z trzema nodami
plus RAC z dwoma nodami i mamy 2 bazy i 5 instancji ;)
kolega pisał 5 instancji i na nich po dwie bazy, czyli dla 1 instancji dwie bazy.
W RACu oczywiście to co napisałeś jest możliwe, ale nie to co napisał kolega. Odwrotna zależność ;).
Wedlug mnie opisywanie bazy jako schematu to jeszcze gorsze zaciemnienie sprawy ;)
No, akurat kolega sam przyznał, że chodziło mu dokładnie o to, że w w każdej bazie ma po 2 schematy ;)
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: jak sprawdzić

Krzysztof P.:
Michał Iwańczuk:
Witam
Jak z konsoli sprawdzić że dane instancje bazy są up ?

W sensie instancje są podniesione, a jakie tam są dane to już wszystko jedno :)

Ja to robię w ten sposób: ps -eaf | grep ora_ . Oczywiście zależy to od rodzaju systemu, czasami lepiej zadziała ps aux.

Jak mam na szybko sprawdzic, ktore instancje sa podniesione - to patrze na "smon"y:
pf -efa | grep smon
(efa mi sie tak jakos latwiej zapamietuje_

A pozniej to w zaleznosci od humoru - albo kill pokazanego procesu albo logowanie do instancji i patrzymy czy jest otwarta :-)



Wyślij zaproszenie do