ESXi Installation- For beginners (Acquire Hardware, Software – Install and experiment)

Goal : With a bare minimum understanding of  OS, Hardware, and Virtual Machine  create  functional  Virtual Machine environment for testing, learning and experiment   with  ESXi.

Audience:: Anybody enthusiastic  about  ESXi,   who has  minimum  OS,Hardware knowledge , time and a bit of money to spend

ESXi is a wonderful and powerful product.   Let  us take  a close look on how  to install it  from the  scratch. The idea  here is to examine all steps needed  to get an ESXi installed system  right  from identifying the  suitable hardware. ESXi  may be working on any hardware  I suppose. However to  avoid   spending  time on investigating  unknown issues that arises  from HW compatibility , it  is a good idea  to get one the  certified  server.(Many such  ESXi certified models are available in ebay (also in some  local craiglist listings) .

(1)So step 1 is  obviously identifying a suitable  Hardware.(  For  testing purpose the best cost effective  way is to  procure a  used  server .)One can  search for compatible hardware  using the following Link . Screen shot of  a sample search result is shown below.  Here I just checked  for  DELL  poweredge R210 servers  as they are the low cost options  available  for  reasonably good rack mounts  from DELL. The ESXi support  tables shows it supports  for various versions, older models of DELL poweredge servers. some of these servers  like poweredge 2950 are available  in second hand market for  amount less than five hundred bucks.

(Step 2) Once   decided  on hardware model and it is purchased next step  is  to get  the   Software (ESXi).Go to

Select ESXi.  (Then import  look for the right version  you need  (based on hardware and any other specific feature  requirement, Sample screenshot below )



Step 3:  Once the  Hardware and Software is procured   next step is to  install the ESXi software  on the  hardware  and make it host of  several virtual machines.  Avery good reference of the ESXi  installation best practices are  available in the following page   from VMware.  This  has  links to various pages that list   compatibility /certification of various hardware pieces  like  CPU, Memory,NICs  etc.

Next step is to get  a bootable media  for  ESXi. By burning the ISO image to a DVD and attaching this media  to  the server,  it is all set to boot  from the ESXi for its installation.


A Step by step Screen shot of  ESXi 5.5   installation is  available in the following link.  I just followed the steps   below . The detailed Instructions  and screen shots  make this installation really easy to follow.

Next step is to create VMs (Guest).

The Beauty of VM environments (especially ESXi ) is  it allows  to   run huge range of guest OS.

There is a compatibility search  Tool available in the following tool.

I is interesting to know that even  MAC OS  is supported on ESXi.


Detailed   example of  creating a VM is available in the below Link. This can be used as  reference when creating the VM of  choice

Posted in Uncategorized | Comments Off

Oracle RAC One


This document is intend to explain about the RAC One feature that’s  introduced in Oracle 11gR2.

What is Oracle RAC One

Real Application Cluster (RAC) One is a RAC enabled single instance database that can be moved around in a cluster.

The purpose of this feature is to improve the availability of a single instance database by providing fail-over protection. It helps to reduce down time during patching windows, rolling upgrades of both Oracle sand Operating system binaries.

To configure a RAC One database, we need to have a cluster environment with 2 or more nodes configured to form a cluster.  Using the on-line database relocation feature, we can relocate the database instance from one node to another.

In, RAC One feature is limited to Linux platforms. This limitation is removed in, by integrating RAC One  administration to SRVCTL.

Also there is another restriction exists to use the RAC One with 3rd party cluster-ware. Oracle has not certified this combination yet. I hope this will be removed in future.

How RAC One works?

On-line relocation is actually the key feature of RAC One. It allows the database instance to be relocated to another node of the cluster with a grace period.

This grace period will allow all the existing transactions in the database to complete. Once the online relocation is initiated all the new client connections will be re-directed to the new node node where the instance will be relocating.

Once the grace period is completed, the existing instance will be shutdown and all the connected clients will be failed over to the new instance that is running from the relocated node.

Configuring RAC One.

There are some significant differences in the way RAC One configurations  works in both and

In, Oracle provides a set of shell scripts to monitor and perform the online migration.  But starting from, this is integrated into SRVCTL utility.  Both monitoring and migration can be done using SRVCTL command line options.

MOS Doc ID  1232802.1 gives more details about how RAC One works in

In the below section, we will see how RAC One can be configured and monitored in both  and versions.

(i)    RAC One in

Once RAC cluster is installed and configured, we need to download and install the patch 9004119 from MOS. This basically installs all the scripts required to use RAC One.

Ensure that the patch is applied to RDBMS HOMEs on all the nodes of the cluster, which are being considered as candidate nodes for RAC One.

The patch basically installs all the necessary scripts to perform the RAC One initialization and migrations.

-rwxr-xr-x 1 oracle oinstall         12396     Oct 22  2009     racone2rac
-rwxr-xr-x 1 oracle oinstall         25719      Oct 22  2009     raconefix
-rwxr-xr-x 1 oracle oinstall         20268    Oct 22  2009     raconeinit
-rwxr-xr-x 1 oracle oinstall          7461       Oct 22  2009     raconestatus
-rwxr-xr-x 1 oracle oinstall         22120     Oct 22  2009     Omotion

Once the patch is installed, use DBCA to create a RAC database on the first node of the cluster. Once the database creation is completed, we can start the configuration for RAC One.

(a)    Run the script “raconeinit” script to initialize the database as RAC One.

Candidate Databases on this cluster:

#          Database        RAC One Node        Fix Required
===     ========     ============    ============
[1]        roneDB           NO                            N/A

Enter the database to initialize [1]: 1

Database roneDB is now running on server: rac1

Candidate servers that may be used for this DB:  rac2 rac3

Enter the names of additional candidate servers where this DB may run (space delimited): rac2  rac3

Please wait, this may take a few minutes to finish….

Database configuration modified.

$ raconestatus

Database     UP     Fix Required      Current Server              Candidate  Server Names
———–    —–    —————–    ——————-            ——————————–
roneDB       Y         N                          rac1                                  rac1 rac2 rac3

(b)      Once the database is initialized, we can run Omotion to start the database relocation.

$ Omotion

RAC One Node databases on this cluster:

#        Database                            Server                     Fix Required
—-     ———————-           ——————-    ———————————-
[1]           roneDB                         rac1                          N

Enter number of the database to migrate [1]: 1

Specify maximum time in minutes for migration to complete (max 30) [30]:

Available Target Server(s) :

#            Server                           Available
==         =============      =========
[1]         rac2                               Y
[2]         rac3                              Y

Enter number of the target node [1]: 1

Omotion Started…
Starting target instance on rac2…
Migrating sessions…
Stopping source instance on rac1…
Omotion Completed…

=== Current Status ===
Database roneDB is running on node rac2

$ raconestatus

RAC One Node databases on this cluster:

Database     UP         Fix Required          Current Server      Candidate Server Names
————    ——-    ——————-    ——————       ——————————
roneDB        Y            N                              rac2                          rac1 rac2 rac3

First step during the online migration is to start the instance on the target node. All the new client connections will be re-directed to the new node.

The “Omotion” will be wait for all the existing sessions that are connected to instance 1 to complete their transactions. And the timeout for this is based on the value we give for the  “maximum time in minutes for migration to complete”  when we execute the Omotion.

The max timeout is 30 mins in

Once the timeout is reached, the source instance will be terminated which will force all the existing sessions to reset their connections and initiate a new connection to the new instance that’s running on the target node.

During this process, all the running transactions will be rolled back.

(ii)    RAC One in

Starting from, Oracle has added several improvements to RAC One feature. Most of them are documented in the MOS document 1232802.1.

Main change are:

o      All RAC One administration ctivities can be done using SRVCTL utility.
o      Both Universal installer  and DBCA are RAC One aware now. We are able to install the binaries  and create the database  in RAC One mode.

(a)    Once the installation is completed, run DBCA to create the database.

$ srvctl config database -d rone2db

Database unique name: ROne2DB
Database name: ROne2DB
Oracle home: /home/oracle/product/11gR2/
Oracle user: oracle
Spfile: +DG2/ROne2DB/spfileROne2DB.ora
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: ROne2DB
Database instances:
Disk Groups: DG2,DG1
Mount point paths:
Services: ROne2DB_svc
Type: RACOneNode
Online relocation timeout: 30
Instance name prefix: ROne2DB
Candidate servers: rac1,rac2,rac3
Database is administrator managed

SRVCTL gives the options to manually add the RAC One database as well.


srvctl add database -d <db_unique_name> -o <oracle_home> [-c {RACONENODE | RAC | SINGLE} [-e <server_list>] [-i <instname>] [-w <timeout>]] [-m <domain_name>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s <start_options>] [-t <stop_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL}] [-g "<serverpool_list>"] [-x <node_name>] [-a "<diskgroup_list>"] [-j "<acfs_path_list>"]


srvctl add database -d ROne2DB -o $ORACLE_HOME -c RACONENODE -e rac1,rac2,rac3 -w 30

(b)     Online relocation in

The Omotion script has been replaced with “srvctl relocate database” command , this allow the online migration of RAC One database to any of the available candidate servers.

Usage: srvctl relocate database -d <db_unique_name> {[-n <target>] [-w <timeout>] | -a [-r]} [-v]


$ srvctl status database -d rone2db
Instance RoneDB_1 is running on node rac1
Online relocation: INACTIVE

$ srvctl relocate database -d rone2db -n lnxrac2 -w 100 -v

Configuration updated to two instances
Instance RoneDB_2 started
Services relocated
Waiting for 100 minutes for instance Rone2DB_1 to stop…..
Instance RoneDB_1 stopped
Configuration updated to one instance

$ srvctl status database -d ronedb
Instance RoneDB_2 is running on node rac2
Online relocation: INACTIVE

(iii)     Conversion between RAC One to RAC or vice versa

Both and allow coversion between RAC One and RAC.

Converting between RAC and RACOne is quite easy in

$  srvctl config database -d ronedb

Database unique name: RoneDB
Database name: RoneDB
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DG1/RoneDB/spfileRoneDB.ora
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: RoneDB
Database instances:
Disk Groups: DG1,DG2
Mount point paths:
Services: RoneDB_svc
Type: RACOneNode
Online relocation timeout: 30
Instance name prefix: RoneDB
Candidate servers: rac1 ,rac2
Database is administrator managed

$ srvctl convert database -d ronedb -c RAC -n rac1

$ srvctl config database -d ronedb

Database unique name: RoneDB
Database name: RoneDB
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DG1/RoneDB/spfileRoneDB.ora
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: RoneDB
Database instances: RoneDB_1
Disk Groups: DG1,DG2
Mount point paths:
Services: RoneDB_svc
Type: RAC
Database is administrator managed

Once the database is converted to RAC, we need to run DBCA to add additional instances on the remaining cluster nodes.

In the same way,  to covert the database from RAC to RAC One, we need to run DBCA to delete the instances from all the nodes except the first node.

$ srvctl convert database -d ronedb -c RACONENODE -i RoneDB
$ srvctl modify database -d ronedb -e rac1,rac2

$ srvctl config database -d ronedb
Database unique name: RoneDB
Database name: RoneDB
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +DG1/RoneDB/spfileRoneDB.ora
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: RoneDB
Database instances:
Disk Groups: DG1,DG2
Mount point paths:
Services: RoneDB_svc
Type: RACOneNode
Online relocation timeout: 30
Instance name prefix: RoneDB
Candidate servers: rac1,rac2
Database is administrator managed

This RAC/RAC One conversion is done with the  help of racone2rac script in

$ racone2rac

Candidate Databases on this cluster:

#         Database       RACOne Node           Fix Required
===    ========    =============    ============
[1]        roneDB         YES                             N

Enter the database to convert to one node RAC database [1]: 1

You are converting roneDB to single instance Oracle RAC database running on rac1,

Do you want to Continue? [Y]es or [N]o? Y

As mentioned earlier, we need to run DBCA to add additional instances on the remaining nodes of the cluster.

raconeinit  script will convert RAC database back to Rac One. And off course we need to remove the additional instances we created earlier using DBCA and make database a single node RAC.




Posted in RAC | Comments Off

ORACLE SCAN Single Client Access Name – A close look

SCAN  Single Client Access Name

SCAN is a simple and beautiful concept introduced in Oracle Clusterware (Grid Infrastructure) 11.2. To appreciate the convinience that SCAN brings in , it is essentail to understand how the client connection works in earlier releases and what are the drawbacks of them.


How Client Connection to a RAC database (real application cluster database) works in pre-11gR2 releases:

In a simple scenario,
On the RAC Server side : All RAC nodes have their own VIP(Virutal IPs).On  Each  nodes there is a listener listening on Virtual IP.
Each instance on the Server is registered with listener on the node it runs and with ALL other listeners in the cluster.That means at any given time all the listeners  are aware of  all instances in the cluster and load conditions of each of those instances.

On the Client accessing the RAC DB:

The goals cleint have while establishing  a connection are :

  1. Connection attempt should be made to nodes in a round robin manner from each client.
  2. If one node is not available , connection should go to another available node.
  3. Connection should reach the least loaded node.

How these goals are achieved?
On the client side there is a tnsname.ora. (Or the JDBC connect string used to connect RAC database ).The tnsname.ora conatins  all VIPs in its address list. For example in the case of  sixteen node rac a sample tnsnames.ora would contan entres like.

(ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = node3-vip)(PORT = 1521))
……..    ……..
……….   ………
(ADDRESS = (PROTOCOL = TCP)(HOST = node16-vip)(PORT = 1521))

Now this Tnsnames entry , along with server side setting helps to acheive all the three goals  a client wishes.Let us see how it is.

A client initates an connection attempt by specifying RACDB as its connect identifier. If there is a load_balance  ON on the client side , TNS would select one of  the addresses randomly selected from the above list of node vips – met goal 1 above. If the selected address is not availble, (In case if node down)  the connection attempt would be made to another address – met goal 2 above.(Note: incase if a node1 is down,  node1-vip would have move to another node and would send reset signal when a connection is attempted to it).

On Server,
Once the connection request reaches one of the listeners (for example the listener on node10-vip) , that listener will decide which is the least loaded instance for the requested connection and then direct the client to the listener running on the desired node. Ie  for example  client attempts to connect using “RACDB” ,  The address selected is of node10-vip.   The listener on node10-vip knows (by service updates) instance on node5 is least loaded.   The listener on node10-vip directs the client to listener on node5-vip. Client connect to node5-vip listener and that listener hand off connection to rdbms instance node5.

This is what happens in the case of pre-11gR2 releases.

What are the  advantages of using SCAN (Single client access name)?

First let us look into  the drawbacks of existing  mechanism.
When a node added or removed from cluster:Think about  scenario when you have  16 nodes in the cluster. As  described above the tnsname.ora should contain 16 address entries. Assume that there are several clients that keeps tnsname.ora in various locations. If you are to add a node or remove a node from the clsuter, the same change has to be made in all tnsnames.ora files in various different locations.

When Using EZ connect

Oracle now offers a method called EZ Connect for client connections. Using EZ connect allows to connect without having a tnsnames.ora entry.An example EZ Connect connection will like the  following.
sqlplus system/oracle@node1-vip1:1521/orcl
However here we specify only one node.(which indicate we are not able to meet some of the goals mentioned above a client connection has)

When JDBC Thin connection strings are created:
Having to specify several node names(vips) in JDBC connect string is also  another concern.

What is the SCAN (Single Client Access Name) and how it addresses above  problems?

First of all When you use SCAN Name to connect to a RAC database you would be specifying on one name.(in tnsnames or in EZ connect or in JDBC connect string).This is the unique name associated with each of the rac cluster.

An example of  SCAN connection will look like

in tnsnames.ora it will be just like the following irrespective of the number or nodes in the cluster.


That is only one entry irrespecitive of number of nodes. Even if the nodes are added or removed this does not change as node specific entries are not there.
An EZ connect will look like below when using SCAN Access.

./sqlplus system/oracle@SCAN_NAME:1521/orcl
(this is still capable of  provide all desired goals of connection attempt)

A JDBC Thin connect string also need to contain only just SCAN_NAME instead of several node VIPS.

Now what is this SCAN Name:
From an Networking perspective, it is just a name defined in the DNS. However DNS is configured in such a way that this name would resolve to three different IPs.When ever there is a request  from Clients these IPs would be provided in round robin.

From a Clusterware perspective, clusterware uses these three IPs to accept the client connections. ie client connections are no longer  directed to the node-vips (they still exists) when SCAN name is used. Instead they reach the SCAN IPs first. The three SCAN IPs can be considered as  another SET OF FLOATING VIPs. These three IPs can be bought online on any of the three nodes in a cluster(decided by Clusterware usually).

How the SCAN Works:

  1. Clusterware brings SCAN IPs online on any of the three nodes in the cluster
  2. Clusterware starts three listeners (known as SCAN Listeners) also on these nodes.  (these are technically same as any other lister, but listens on scan ip)
  3. All instances in the  clsuter will have remote_listener parameter pointed to the scan_name:port     example for remote_listener        *.remote_listener=scan_name:1521

How the Client connection works thru SCAN?
Client connection attempt, based on the IP provide from DNS, reaches one the SCAN LIstner. SCAN Listener is aware of load and availability conditions of all Instances in the
cluster.It direct the client to most sutiable instance. This is done by directing the client to the Listener on node-vip of the most suitable instance. Once the client connection reaches the local listerner it hands off the connection to database.

Advantages of SCAN :Since it uses only one name for clsuter , node addition/removal does not need any change in the tnsname. Easier option of using just one name in EZ connect string. Easier option of using just one name in the JDBC connect string.
Client side load balancing is acheived by connecting to either of the three scan ips. Server side load balancing is done by SCAN Listeners who are aware of the  load conditions of instances.So while meeting all the  desired goals of client connection attempts, scan provides ease of managing.

Does SCAN introduces any new concerns: (draw back of SCAN?)

Assume  there is DNS issue which results in a DNS hang. What will be the result?Ofcourse the clients will not get any IP back from DNS for the scan_name and client connection attemps would be just hung.
Why this become more severe in the  case of scan. SCAN which uses a three ip resolution method can not be exactly handled by the /etc/hosts name resolution. In the case of VIPS(which resolve to only one IP) it was possible to  handle this nodevip-name resolution by /etc/hosts itself.(true, one more file to manage)
Now assuming that if the SCAN Name is somehow locally resolved by /etc/hosts/. Would that be just enough? Not exactly. Because the scan listener would direct the client connection to one of the node local listeners. That means the SCAN listener would just send back the client a VIP_NAME. (for example the node5-vip). The client need to still resolve this VIP name too. So either this need to be resolved at client local /etc/hosts or from DNS.
This kind of scenarios (which includes a DNS hang) are rare, but can happen at any environment , especially if the name resolution for  node vips only not working in DNS, a
common user will be clueless on what is going on. Becuase a tnsping to  the scan name (or tns alias) will work quick, only connection would be hung.

Common Errors Seen with SCAN and Real application clusters.
ALL illustrations below uses EZ connect. The issues would be more or less simiar with TNS Entry or even JDBC connect string.

(1) /sqlplus system/oracle@scan_name:1521/test
Error :ORA-12514: TNS:listener does not currently know of service requested in connect descriptor When connecting using scan listener.Cause :This simply indicate the SCAN LISTENER is not aware of the database service test.
Diagnosing and Solution:
on the RAC server run the following to identify on which node the scan listeners are running.

[grid@ racnode1:H1121]/grid/64bit/crs112/bin> ./srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node racnode2
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node racnode3
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node racnode1
[grid@ racnode1:H1121]/grid/64bit/crs112/bin>

This output shows on which node each of the scan listener listens.
Now check for the services known to each of them on respective nodes.

[grid@ racnode1:H1121]/grid/64bit/crs112/bin> ./lsnrctl status Listener_scan3
LSNRCTL for Linux: Version – Production on 01-JUL-2011 16:21:56
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
LISTENER_SCAN3Version                   TNSLSNR for Linux: Version – ProductionStart Date                29-JUN-2011 18:19:20Uptime                    1 days 22 hr. 2 min. 35 secTrace Level               offSecurity                  ON: Local OS AuthenticationSNMP                      OFFListener Parameter File   /grid/64bit/crs112/network/admin/listener.oraListener Log File         /grid/64bit/crs112/log/diag/tnslsnr/racnode1/listener_scan3/alert/log.xmlListening Endpoints Summary…
Service “orcl” has 3 instance(s).  Instance “orcl1″, status READY, has 1 handler(s) for this service
…  Instance “orcl2″, status READY, has 1 handler(s) for this service
…  Instance “orcl3″, status READY, has 1 handler(s) for this service
…Service “orclXDB” has 3 instance(s).
Instance “orcl1″, status READY, has 1 handler(s) for this service
…  Instance “orcl2″, status READY, has 1 handler(s) for this service
…  Instance “orcl3″, status READY, has 1 handler(s) for this service…The command completed successfully

Now this output shows the service name used in the connect string “test” is not registerd with SCAN_Listener and that results in error.
Solution: Login to instances of test database and  make sure the following parameter is set.
*.remote_listener = scan_name:1521
This will  make sure instances are registered with SCAN Listeners.

(2) Error TNS-12545: Connect failed because target host or object does not exist while connecting via scan listener.

However tnsping to scan  listener works fine.

Cause : The node vip names are not resolving on the client machine.

Diagnosing and Solution:
Attempt to connect all node listeners on the rac cluster.      Ping and make sure all NODE VIPS and listeners are accessible from the client machine.
When a client reaches the scan listener, scan listener simply divert the client to suitable node,by providing the vip name of that node. If that name does not resolve on
the client machine above error will be the result.
Solution: Make sure all node vip names are resolving properly on the client machines.  (Either make necessary changes on DNS or add the entries to /etc/hosts)



1. Is it possible to have more than three SCAN IPS?
Ans: No, number of scan IPs is limited to three.

2. Can Oracle 11.2 be installed without  a scan name?

Ans: Oracle 11.2 installation screens of OUI needs a scan name.  So it can not be installed without a scan name. However if SCAN Name is not available from DNS, a dummy entry in the /etc/hosts of all node would be sufficient to complete the installation.

3. Oracle 11.2 Clusterware , can it be used without SCAN?    Yes , Oracle 11.2 also can be used without scan as it used to be in the earlier versions of 10g or 11.1.  In this case still connections can be made via node vips and instances needs to be registered with Node listeners as it used to be in 11.1 or 10g.

4. Can we have more than one local listener per node with scan?     Yes , more than one local listener (for example one local listener per database) is possible with scan. Still the connections can be made via Scan. This is because when PMON of each database registers with scan  it will inform scan about the local listener  information too. So that enables scan listener to hand off connection to appropriate local listener.

Posted in RAC | Comments Off

Linux Vs Windows : For Oracle Database?

The Debate Linux Vs Windows

A few years ago the debate was Unix Vs Windows. Now a days, with Linux  dominating the  OS world the debate has been changed naturally to Linux  Vs Windows. In the earlier debates , while Performance considerations, availability considerations  and Security considerations used to  give Unix an upper hand, but ease of management was always in favor of windows. However how true is the perception that Windows is easy to manage than Linux?. What are the important facts  people often forget  when making this claim?. A closer look on the complete life cycle of the system clearly proves  the ‘ease of managing’ of windows is just a myth.

Why would somebody choose Windows for their Oracle Server?

Most of the  IT decision makers who select Windows as their Operating system for Oracle  often have the common  justification – the shop does not have enough expertise to install,configure  and manage a Linux Operating system. Are they right in their decision here? Should n’t they look into the complete life cycle of the system rather that just the ease of installation and configuration?Is it possible to use a Linux system with existing IT resources and with a lesser TCO(Total Cost of Owning) compared to Windows?. What are the other important factors ,which can make IT department’s life miserable in later stages of system life cycle?  Is it true that it is easy to manage a Windows system compared to Linux? The Answer would be  a “NO” , when ‘ease of managing ‘ is looked upon from  all the angles of complete system life cycle. Let us take closer look here.

What are the important facts to consider before selecting an Operating system?

Of course small or midsize shops should give much attention to ease of managing the system with limited resources they have. However ease of managing should be looked up from all angles. Which Operating system is easy to manage when the following key  factors are evaluated? 

  1. Reliability and Stability.
  2. Security  (especially from viruses,worms).
  3. Cost of license.
  4. Quality and Cost of Support for OS.
  5. Support for Oracle Software on the selected OS.
  6. Ease of Troubleshooting problems.
  7. Ease of Management (Read below more about this aspect which is favor of Windows to understand how negligible it is and how to over come this difficulty on linux)


1 Reliability and Stability..

There are UNIX and Linux system that runs for years without  a reboot. How many days can one run his laptop which has a Windows OS without a reboot?  Windows servers are also of no exemption.  Issues like memory leaks, poor memory management etc  would often make reboot as an essential part of Windows’ daily or weekly routine.  This is just one point, there would be not anybody (even windows fans due to its ‘ease of management’) who would dare to argue on the reliability  and stability of Linux or Unix .Consider the effort that would need to mitigate the problems arising from the stability of operating system. This includes the time when application is not available purely due to OS issues. So which operating system is easy to manage when one consider the reliability and stability  – The answer is certainly Linux.

2 .Security  (especially from viruses,worms).

Linux has a big hand over Windows  when the talks are about security. The number of viruses that exists and spread  over windows machines are unimaginable. Every day is a birth day of  several new viruses. One need to have  a constantly updating  Antivirus software on windows to  keep the OS running. What does this mean for an IT Decision maker? He need to consider the cost and effort needed for maintaining  one more piece of software. That means additional overhead  in the entire life cycle of another software product from third vendor , just because windows in most vulnerable to the threats of  viruses and worms. It would be wrong to assume that the server is  not connected to internet and thus free from threats of virus. On the bad day it will get  infected from a  usb device that somebody in the organisation connect to anywhere in the network on which the server is connected. On other hand Unix and Linux are almost free from this threat and there is no need of having an antivirus software. So which operating system is easy to manage when one consider security aspects? Certainly the answer is  Linux from this perspective.

3.Cost of license.

In  any small or mid sized  organisation the important consideration would  be cost. The cost of Windows license can be in several thousand dollars for each server. While most of Linux distributions are available as free downloads . Also, even for those Linux distributions which needs a payment to get the media, once  you pay negligible amount the software is all yours. It can be installed on any number of servers unlike windows.The amount spent as license cost for windows itself is more than sufficient for buying the expertise and resources needed to install and configure a Linux Server. So which Operating system is easy to manage in terms of cost -Certainly the answer is  Linux.

4 Quality and Cost of Support for OS.

One quick search on Google would reveal how incompetent and less efficient is the support for Windows. On the other hand Linux flavors like Oracle Enterprise Linux provides world class support backed by Oracle’s  support infrastructure. Cost of Oracle Enterprise Linux support is also far less compared to the Windows support options. Ideally quality of support for the software should be a prime factor when a decision is taken on the software. Inefficient support can make life of  IT department miserable. So which operating system is easy to manage when  the Quality and Cost of support is considered? – Certainly the answer is Linux.

5.Support for Oracle Software on the selected OS.

Next important consideration would be the quality and availability of support for the application(Oracle DB) on the selected Operating system. When the discussion is about a server OS for the Oracle database , one need to  study if there is any difference in the support application vendor (here Oracle) offers for each of these platforms. While no  explicit differences are stated or documented, people who have dealt with troubleshooting and fixing problems on both Linux and Windows platforms knows how less efficient are the options to diagnose  and  fix a problem on Windows compare to Linux. When talking about diagnosing a problem, options for process tracing etc are far more easier on Linux.On Linux where each oracle process runs as independent processes even killing a process is pretty easy  with native Linux tools itself. This  not that easy or feasible with thread model that is followed on Windows. Another important aspect is the availability of bug fixes. Bugs are integral part of any software , Oracle database is also of no exception. So the consideration would be how easy to get and apply patches for Oracle rdbms on Linux Vs Windows. For Oracle on Linux one-off fixes available for most of the issues that are identified. However on Windows one-off fixes are not available and customer  need to wait for windows patch bundles.  The new  capability of online patching aka “oracle  hot patching” is available on Linux , not on Windows. This allows Linux Oracle software to be patched even without a down time. So which OS allows easy handling of  oracle software running on it –  The definitive answer is  Linux.

6. Ease of Troubleshooting problems.

Important aspects of this point -ease of diagnosing the problem – is discussed in the previous  discussion itself. Windows lacks the ability to do process tracing etc  with native tools where are Linux has lot of free tools for the same.So which operating system allows easy troubleshooting of  Oracle issues-  The definitive answer is  Linux.

7 Ease of Management.

This is the classic answer from  most of the decision makers who favors Winodws. This is  in favor of Windows when somebody looks  just on it from a perspective on installing the Oracle software or copying some files or taking backups etc. It is true that installation and configuration  Oracle may be easy on windows systems compared to Linux platforms. This is merely because of the fancy GUI which Windows provides. However Installing and configuring the Oracle software is just  one time activity. If the IT department is not staffed with Linux experts, the needed expertise for Installation and configuration of OS and Oracle on Linux can be easily procured from third party service providers. The cost involved in doing this would be much lesser than the license cost one need to put for Windows. A small portion of windows license cost saved would be sufficient to get Linux system installed and configured by an external agency, if your IT department lack Linux skills. Once it is configured  and most of the tasks are automated , there is no need of great OS expert in the shop to run the daily show.

How oraInvicta can assist you ?

If you are convinced that Linux would be wiser  choice for your organisation and need assistance in Installing and Configuring Linux and Oracle oraInvicta is there to assist you. With  bare metal machine and Software Installation media (Linux and Oracle) provided oraInvicta can Install both Linux and Oracle and configure it in such a way that there is  not much manual intervention needed to run the system. All this  would be done under supervision of renowned Oracle DBAs  and Linux Experts and with cost  that is less than what you would have paid for Windows license otherwise.

We do the following :

  • Install and Configure Linux OS .
  • Install Oracle RDBMS Software.
  • Install Oracle Recommended patches.
  • Create Oracle Database.
  • Configure Oracle networking for Application’s access to database.
  • Develop  and Implement backup and recovery strategy.
  • Deploy scripts to monitor space, and server resource and to automate alerts.
  • Provide IT staff a detailed documentation and necessary training.
  • Any Other configuration/requirement as specified by your application vendor.



Posted in General | Comments Off