marrowyung
asked on
oracle command
Dear all,
What is the use of the following command:
1) export ORACLE_SID=xxxx
2) !ps =eaf | grep -1 pmon
3) select <text> from dual;
4) . oraenv
-> after that we need to input the sid of a named sid
any failover guide of RAC from one node to the other node and from site to site in case of DR ? I am not saying DataGuard
What is the use of the following command:
1) export ORACLE_SID=xxxx
2) !ps =eaf | grep -1 pmon
3) select <text> from dual;
4) . oraenv
-> after that we need to input the sid of a named sid
any failover guide of RAC from one node to the other node and from site to site in case of DR ? I am not saying DataGuard
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Steve,
very god answer.
from that link:
"
DUAL exists solely as a means to have a 1 row table
we can reliably select from. Thats all."
then I dont understnad why we need that and it seems that the rest of the talbe is not reliably ? or dual is a old style Oracle stuff hasn't been remove yet ?
it seems if we do this :
. oraenv
we don't even need this:
export ORACLE_SID=orcl
right?
very god answer.
from that link:
"
DUAL exists solely as a means to have a 1 row table
we can reliably select from. Thats all."
then I dont understnad why we need that and it seems that the rest of the talbe is not reliably ? or dual is a old style Oracle stuff hasn't been remove yet ?
it seems if we do this :
. oraenv
we don't even need this:
export ORACLE_SID=orcl
right?
ASKER
also, what is :
1) after we do .oraenv and set an environment,
we can do this
1) after we do .oraenv and set an environment,
we can do this
crsctl stat res -t
Yes, if you do ". oraenv", you don't need to export ORACLE_SID (unless, as I mentioned, you're trying to script it in which case you can set ORACLE_SID and ORAENV_ASK and then run . oraenv).
crsctl apparently is the main controlling program for Oracle Clusterware. I have never used that product so can't comment any further on what crsctl is doing with any experience backing me.
However, the crsctl utility is documented here: http://docs.oracle.com/cd/E11882_01/rac.112/e16794/crsref.htm#CWADD91142
crsctl apparently is the main controlling program for Oracle Clusterware. I have never used that product so can't comment any further on what crsctl is doing with any experience backing me.
However, the crsctl utility is documented here: http://docs.oracle.com/cd/E11882_01/rac.112/e16794/crsref.htm#CWADD91142
ASKER
tks,
but any more reasonable explanation about the dual table one why 1 row is the return and how important Is it?
"crsctl apparently is the main controlling program for Oracle Clusterware. I have never used that product so can't comment any further on what crsctl is doing with any experience backing me."
then what program you use for that ?
but any more reasonable explanation about the dual table one why 1 row is the return and how important Is it?
"crsctl apparently is the main controlling program for Oracle Clusterware. I have never used that product so can't comment any further on what crsctl is doing with any experience backing me."
then what program you use for that ?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Setting ORACLE_SID sets an environment variable so that if you just type "sqlplus" on your database server, it will make a local connection to the database using the SID defined in /etc/oratab (or /var/opt/oracle/oratab on Solaris - where ever it is, or the service name as defined on Windows)
2) !ps =eaf | grep -1 pmon
Done at the Unix shell, I would think that this is going to give you an error. Done from within sqlplus (or any other process) it will shell out to the OS (that's what the ! does) and return a process list (do man ps to see what the options e, a and f do for ps) and then pipe the output to grep where it is pattern matching for the string pmon.
(I will also assume that =eaf is a typo, it should be -eaf)
Since every database should have pmon as a mandatory process, it can give you an idea of what databases you have running. Presence of a pmon process does not mean that your database is operational though, just be aware. Databases started but not mounted, or mounted but not open will still have a pmon process.
The -1 passed to grep shows the one line either side in the text you're matching. -2 would show two lines either side.
For example I have databases dev, dev2 and tst on a server:
Open in new window
It found 3 pmon processes, the grep for pmon and returned the 1 line either side of what it found in the process list. Not very useful in my mind for the output of a process list, but there you go.
3) select <text> from dual;
The DUAL table is a special 1 row / 1 column table. Tom Kyte and the Oracle documentation explain what it is in detail:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1562813956388
http://docs.oracle.com/cd/E11882_01/server.112/e40540/datadict.htm#CNCPT1219
4) . oraenv
-> after that we need to input the sid of a named sid
Oraenv is a script that is provided by Oracle to set up your shell environment to point to a particular database. It sets appropriate environment variables so you can just type sqlplus or rman or whatever and connect directly to the database you specified.
You can even do this:
export ORACLE_SID=orcl
export ORAENV_ASK=NO
. oraenv
Then it will take the value assigned to ORACLE_SID and set the environment without further prompting because you set ASK to no.
That is particularly useful for setting the environment in a crontab script, for example.