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
George Kahler wrote:
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?
I'd create an oracle user:
oracle:x:600:211:Oracle User:/local/oracle/home:/bin/ksh
where /local is a local filesystem.
Then, on each server box make /local/oracle/home a symbolic link to /softwr/server/oracle/home. That way, you have one oracle account that can have a different home directory on each server.
barry
On Thu, 8 Mar 2001, George Kahler wrote:
[snip]
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.
Not to pick on Oracle DBAs, but this is a crock. Oracle violates *both* of my top pet peeves [1] with Unix software vendors: they abuse environment variables most heinously, and they mix writable stuff in with shareable read-only stuff. ARGH!
Given that Oracle says "Obey the OFA! Always do it this way!" that's how most DBAs insist on doing it. And most Unix admins (including yours truly) eventually give up and say "Okay, whatever, not the hill I want to die on. Get me another beer." Geez. It's only Thursday.
How do other people deal with this? Do you create specific Unix accounts for each Oracle database running on a server?
I share home directories on our internal filer to everyone _except_ the "oracle" user. Since we mount a common /home, this means that /home/skeezics points to my shared home directory on all our servers, while /home/oracle points to /var/local/oracle, which in turn points to the local Oracle installation on each machine that runs it. Whee! Follow the bouncing symlink! :-)
But through the indirection, at least every script we write can use the same paths. And I will grant that the installer for 8.x is less evil than past versions; hell, we only had to run it three times to get our first install to work right, and people tell me that's something just shy of a miracle. :-| (In the bad old days, Oracle's installer use to do all kinds of evil all over your /etc files, which just pisses me off to no end...)
As far as running multiple instances on your filer, it's certainly doable, with a bit of planning. Some others have posted some reasonable alternatives, but in general, they all amount to about the same thing. You'll need to do some redirection through symlinks to make each installation _appear_ to be separate so that Oracle doesn't step on itself and your DBAs don't freak out[4]. But when I can update my .tcshrc _once_ and they have to edit their .profile on a dozen separate home directories or rsync it everywhere, they start to get the picture. :-)
-- Chris
[1] Skeezics' Rules for Unix Software Deployment, the First: If your product requires that you set more than one environment variable, you're doing it wrong. (Oracle uses a raft of environment variables, and it seems most DBA's would rather customize their .profile [2] for the host they're on, rather than write a few if..fi's and share a common one.)
Rule, the Second: Never make me install your package according to some fixed path, and never assume that path is writable. (Oracle assumes it can scribble anywhere it likes, and this makes having one shared tree for binaries less appetizing as just duplicating the whole damned thing on every host.[3])
[2] And not to start a religious war, but I've got to know: why on Earth do Oracle DBAs always use ksh!? Bleah!! :-P
[3] I know. Disks are cheap. Whatever. I've been sharing out /usr or /usr/local since SunOS4, when disks were NOT cheap and Ethernet was usually faster anyway. It sure makes upgrades easier, and for packages that follow Rule #2, the clean separation of /usr/local and /var/local keeps everyone happy. Ah, well. Given that better tools than rdist exist now, I suppose I'll eventually have to get with the program, and just fill up those 18gig boot disks with more than root, swap and /var. :-)
[4] And don't get me wrong, I love my DBA. He does all that nasty Oracle stuff so that I don't have to. :-)
-- Chris Lamb, Unix Guy MeasureCast, Inc. 503-241-1469 x247 skeezics@measurecast.com