Is there a "best" method for where everything should be for multi dbases? Oracle home on separate server or everything on the filer (database and Oracle home)?
-----Original Message----- From: Yarmas, Tom [mailto:Tom.Yarmas@netapp.com] Sent: Friday, March 09, 2001 11:56 AM To: 'George Kahler'; toasters@mathworks.com Subject: RE: Multiple Oracle DBs on a filer
There are 2 things to keep in mind here. First, there is the oracle account's home directory, and second there is an environment variable known as ORACLE_HOME. These 2 things can be different. ORACLE_HOME used to have to be unique among instances of Oracle, but with OFA in version 8.x, that has been somewhat relaxed. In versions prior to 8.x, it is more difficult for Oracle instances to share the ORACLE_HOME directory (but not impossible, at least not with unix).
As a standard practice, I never install the Oracle software in the oracle account's home directory. That way I can put things in the home directory that affect multiple instances (i.e. shell scripts or sql scripts, etc.), and if I have multiple ORACLE_HOME directories then I don't have to copy things around when I make changes.
Oracle will look at the ORACLE_HOME and ORACLE_SID environment variables to determine where it should find certain files by default. I have had various Oracle instances share the same ORACLE_HOME directory without consequence. One of the drawbacks of multiple instances sharing the ORACLE_HOME is that if you upgrade from one version of Oracle to another, it affects all of the instances that were using that ORACLE_HOME. That may not be a good outcome. I prefer that each Oracle instance have it's own ORACLE_HOME, if possible.
You could of course create multiple oracle user account (i.e. oraprod1, oraprod2, or something more informative) instead of simply oracle. There is nothing magical in the user oracle and the group dba. They happen to be the default. However, in order to use different user names, you must re-link the Oracle S/W since the group is bound in to the oracle kernel at link time (trivial procedure). However, if multiple users are sharing the Oracle executables, then they must share the same unix group id (since it is linked into the code).
Typically, I find that it is best to create a single oracle account (or a small number of oracle accounts for related instances), and use a shell script to display a choice of various Oracle instance names to the user. Then depending on the response, the ORACLE_HOME, ORACLE_SID and other variables are set. Then when the user logs in, all the environment variables are set correctly, and the ORACLE_HOME directory is different than the oracle account's home directory. And, if I install a new version of Oracle, it lives in it's own ORACLE_HOME directory, and each individual instance is not affected by changes made to another, I simply have to edit the script that lives in the oracle account's home directory so it sets the environment variables correctly.
You should be able to create qtrees and/or volumes and mount points so that the Filer matches exactly what your DBA's see today in an existing environment, if that would make them happier.
-tom
-----Original Message----- From: George Kahler [mailto:george@YorkU.CA] Sent: Thursday, March 08, 2001 10:05 AM To: toasters@mathworks.com Subject: Multiple Oracle DBs on a filer
Hi, I'm setting up an 840 filer for our DBA group to run about 4-to-5 Oracle OLT databases and 4-to-5 Oracle DSS databases being served from about 1/2 a dozen Unix servers. This is something new to the DBAs in that they are not experienced with NFS or anything like a filer; a common disk storage. Their databases are married to specific Unix servers. The project mandates that the environment needs to be set up in such a way that if any Unix server fails, the database service that it was providing could easily be brought up on any other available Unix server. (So far no problem)
I have created and mapped out a quota tree into which I installed the Oracle distribution. It looks something like: /softwr/oracle/product/7.3.4 /7.3.5 this is then exported to all of the Unix servers.
The problem I have with is the Unix Oracle home directory that I also created in /softwr/oracle/home, ie. oracle:x:600:211:Oracle user:/softwr/oracle/home:/bin/ksh but the DBAs are telling me that the oracle home directory needs to be unique for each Unix server and Database running on that server because the home directory is the place where they keep their environment.
How do other people deal with this? Do you create specific Unix accounts for each Oracle database running on a server?
Thanks George
George Kahler e-mail: george@yorku.ca Sr. Systems Administrator humans: (416) 736-2100 x.22699 Computing and Network Services machines: (416) 736-5830 Ontario, Canada, M3J-1P3