Copied from StackOverflow
Are there any overwhelming reasons to pick one over the other?
I'm in the middle. Our database administrator says that Oracle on Linux is better, but cannot present proof. Our hardware administrators only know Windows.
Right now we're proceeding with Linux, but I'd feel better if I could find some proof that it was a better OS for hosting Oracle.
The database has 500 GB of data. I know it's not big, but we have some processes that are taxing our Windows 2003 (32 bit) server.
-- Edit -- I've seen several very good arguments for either one. Nothing that makes the decision easier, but good points none the less. It looks like there isn't a definite "bad" choice.
if your server admins knows only Windows (MS-only shop) - you should use Oracle on Windows... or do you want as a DBA to maintain O/S, install O/S patches, handle O/S security, do O/S backups etc etc?
However, in case of mixed shop, I usually recommend Oracle on Linux for various reasons (some might be subjective):
But anyway, for your developers, accessing Oracle on windows or linux is the same, totally transparent. They should be checking Oracle goodies for .NET either way.
You should also have a look at Solaris. Solaris has always been extremely well supported by Oracle. And now that Sun has been bought by Oracle, it's probably going to be even better supported.
You can very well use OpenSolaris if price is an issue, or go with standard Solaris if you want great support. The Solaris option is used in the bank where I work, by a lot of our competitors and by the state where I live.
That said, the major difference in stability / performance / cost / ... will probably come from the platform in which your administrators are the most comfortable ...
There used to be an overriding reason to go with Linux for 64bit support (and therefore better memory management) - this is now reduced with the more stable support of x64 WIntel platforms.
I cannot give you a definitive answer for why, but I looked after the IT support for a smallish development house who wrote applications against Oracle 7i, 8i, 9i and 10i - all database hosts were done vs Linux - on RHEL 3, 4 and 5.
The primary reason for this was given as it was the most stable supported Host OS that Oracle ratified for use with their database. With the plethora of patches that Microsoft release, it was almost impossible to keep the host OS at a level that Oracle had tested and would support.
Having used Oracle on Windows 2003 x64 and RHEL 4 x64 - the same database performed a lot better on Linux than on Windows - the back end storage was a 300Gb fibre presented raid 10 partition on an EMC array.
Both systems were 'untweaked'
It's down to a combination of which platform you'll get the best support from Oracle (or other external support providers) on, and which you're most comfortable with yourselves.
In my experience Oracle can be very high-maintenance, meaning that the quality of support is utterly crucial. If you can do it all in-house, more power to you, but it's an utterly huge beast these days, requiring a lot of dedicated resources to get the best out of, so like as not you're going to be calling on external support a bit. So which platform can you get the best external support on? I think that would be Linux, but I also think you'll get decent support on Windows.
On the other hand, and from the sound of things, your in-house skills are primarily Windows. Now, you can't be in a position where you're reliant on external support for basic day-to-day operational stuff. Also, I'd be suspicious of your DBA advocating Linux; OS platforms should be somewhat outside of a DBAs remit. Based on that alone I'd definitely be leaning towards Windows.
If you pay Oracle's own consultancy group to come in and design a 'turnkey' system for you that involves a DB there's a 98%+ chance that they'll install it on 'Oracle Enterprise Linux', which is their own rebranded version of RHEL.
That speaks volumes to me.
In practice you're unlikely to want to run a server which ONLY hosts an Oracle instance.
Even if you don't plan to run any other actual applications on there, you'll want monitoring, backup / restore, server management software and hardware support software.
Choose the OS on the basis of what OS those components run on (or you are most familiar with running on). It is likely you'll want to make some custom monitoring scripts / components; your developers will probably be more comfortable with one or the other, so allow them to make the decision on that basis.
Some organisations have a "never break" rule of insisting that absolutely every Windows box runs on-access AV software; this is likely to make the Windows box perform absolutely terribly. This is however, not a good reason to use Linux :)
MS SQL Server would be the first choice on Windows systems. On Linux, I'd use Oracle as database. I have worked with Oracle on Windows in the past and it works almost as well as under Linux. (Linux is faster with Oracle.) But more importantly, will those database administrators of yours be able to administrate the Linux hardware? They will have to do that, if your hardware administrators are unable to do so. If not, then you might decide to just go to Windows 2003 (64-bits) just because your organisation lacks the proper knowledge to keep these systems running properly on Linux.
Both Linux and Windows have their strengths and weaknesses. Both can be very good in the hands of experts. Both can be dangerous hazards in the hands of the amateurs.
Support is important as already stated... When you have the option to support both, clearly define SLA's for your app. Than release the db in both OS's and see how close you are to your SLA's. The cloud is great for this kind of A/B testing. In my experience for high performance SLA's I can find performance differences in different distributions of Unix/Linux let alone *nux vs Microsoft. Also, I do not believe testing DB's out of the box with out of the box OS configs. If that is the way tests are being done they are not useful. Most db's and os's can be customized to run better in different combinations. It would be silly to not consider that as part of the performance test. Every performance test I have ever done I have always found ways to make Oracle on some *nux version run orders of magnitude faster than windows. Those Os's offer more options to customize and that DB can also be customized for Linux to a greater degree. Linux vs Solaris can be interesting in particular because there is a often a slower ramp up time for solaris to reach maximum throughput than many linux distros.
I suspect any performance test that says windows performance compares to linux is an out of the box test or the tester just doesn't know how to customize the combination of linux and oracle.
The general rule is that Oracle is best on Solaris, then on Linux, then on Windows. Oracle now owns Solaris and repackages their own Linux (a clone of Red Hat / CentOS.) Those are the platforms that Oracle prefers. They are also the ways by which Oracle will support your entire stack.
I think that Windows sounds like the right choice for your shop, though, since that is where your skills already exist.
Here's my experience based on Oracle 10gR2 10.2.0.3 RAC on Win2003 x64:
I've got two production RACs that have been running happily for more than two years, with two maintenance reboots in between and four instance restarts due to patches application. So, stability-wise, Win2003 is a good option. System-wise, I have little to complain. It is stable and RAC configuration allows for good scalability.
However, should you install (or upgrade to) a RAC, bear in mind that RAC installs can be tricky, and RACs on linux are way more documented. When I installed these babies, I was somewhat out on my own and got my fair share of burns, and I have the feeling that RACs on Linux/Unix enjoy a somewhat better support.