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