RE: Server Architecture

From: Tanel Poder <>
Date: Fri, 04 Jan 2008 01:03:02 +0800
Message-id: <030001c84e2a$80723360$3201a8c0@windows01>


Nothing wrong from purely technical set-up perspective. And I agree with your other point - if it works, don't fix it...  

However the OP asked about future strategy and the present state of installations should be just one of many inputs to the future strategy. Often when radical changes are made to standards, the old systems remain as they are as "legacy" setups, once they're upgraded to new standards due software/hardware upgrades, data centre migrations or are eventually decommissioned.  

In order to keep thousands of databases manageable in a big enterprise with global "anonymous" DBA teams you need some kind of uniform standards of database setups & builds.    

One way is to install one oracle home (per db version) per server, save the space and if you're lucky then avoid additional patching hassle. However from the moment you need to patch or test upgrade you need to:  

  1. get new storage for the new home - may not be that easy in practice if storage consolidation & utilization improvement intiatives are going on in the company
  2. deploy software / patch it - easy part
  3. change configuration files to point to new home - there's a maintenance risk as depdendencies between datbaase & software installations are not immediately obvious (there's no 1-1 matching between a db and its software).

Another way is having one oracle home for each database in server.  

Having strictly one home for each database means more storage and potentially more patching work - but this setup itself is simpler - and uniform. Thus you lower the risk of creating a configuration jungle where no-one understands the dependencies between components within a server.    

The latter way may be less efficient in storage and some maintenance work sense, but at least its configuration complexity is stable, thus lower risk when managing these databases.    

As I said earlier, YMMV... but i've become an advocate of "self-contained" systems for flexibility & lower risk over last few years. The baseline is, make sure you think your standards through based on YOUR requirements and make sure you follow that standard, otherwise it's useless.    

Btw, a little less known performance thought supporting the single-oracle-home-per-server approach. If you use a single home for let say 20 dev databases in a server, then all Oracle processes will be sharing the same physical pages of the Oracle executable text section. This means less memory utilization, potentially less executable page TLB misses and warmer instruction caches when context switching to another instance's process running the same binary... so you could save a tiny amount of CPU ;-)


Tanel Poder <>  

From: Dan Norris [] Sent: Friday, January 04, 2008 00:26
To:; Oracle L
Subject: Re: Server Architecture

If they're all on the same patch level today, why introduce all the ORACLE_HOMEs today? Personally, I'd keep them all on the same ORACLE_HOME now and when one wants to patch and the others aren't ready, spin up a new ORACLE_HOME, patch it, then migrate the DB in question to use the new ORACLE_HOME at that point. That way, if you don't run into patching conflicts, you'll never need the extra ORACLE_HOMEs. Is there something wrong with my logic?


  • Original Message ---- From: Tanel Poder <> To: Sent: Thursday, January 3, 2008 10:05:40 AM Subject: RE: Server Architecture

One good reason for separate sets of binaries is patching and patch testing on one database without affecting others.  

Having all installations under different Unix users (and also groups in this case!) may be better for security but will make the everyday maintenance, refreshes etc probably harder... as you'll have various problems with permissioning and file access, need to constantly su between users, chmod/chown files etc... that's unless you want to chmod 777 all your directories & files, which would heavily go against the security principles again.  

I know quite many shops which use a separate software installation (and set of database directories) for each database and it works well. You need to do more manual work for applying patches for all software installations (unless you use automatic provisioning of some sort), but you win in flexibility to patch/upgrade only selected databased in the server instead of all.  

Regarding different users for each database - this may be useful if you want fine-grained separation of duties - by database. However this approach will be useless if all your DBAs have access to all accounts anyway, in this case you will just make your life harder without gaining any benefit. So you should figure out if you really need all your Oracle installations under different unix usernames and whether the benefit outweighs the maintenance overhead.  

In summary (YMMV):  

  • different oracle homes for each instance - YES
  • different unix user for each oracle installation - NO ( use single unix user and separate environment files for each instance ).


Tanel Poder <>

-- Received on Thu Jan 03 2008 - 11:03:02 CST

Original text of this message