Thanks for the question, Rahul.
Asked: April 29, 2019 - 6:57 am UTC
Answered by: Connor McDonald - Last updated: May 02, 2019 - 6:56 am UTC
Category: Database Administration - Version: 22.214.171.124
Viewed 1000+ times
Thanks for taking up this question.
There is an enterprise java application hosted on a huge (40 TB) Oracle database. Can this Oracle database be migrated to :
1. SQL Server or any other RDBMS?
2. Any No SQL database?
I have been asked to analyze this option because of the huge oracle license cost the company is incurring.
In my opinion, it is a terrible idea because there are some fundamental differences between each RDBMS like concurrency control, locking etc. If at all, the database gets migrated to SQL Server, it might lead to several data corruption and performance issues down the road.
But that's just my opinion. Please share your thoughts on this.
In your experience, has this ever been done successfully (DB of this magnitude) in the history. If it can't be done, can you please highlight some of the show stoppers.
PS: I am not asking how to migrate from Oracle to SQL Server because that would be a suitable question for Microsoft. I am just looking for your valuable insights in the feasibility of this project.
and we said...
It's a common question, especially from those at management level in an organization. It's based on the idea that:
Is this answer out of date? If it is, please let us know via a Review
"All relational databases have tables, columns and rows ... so we should be able to just chop and change"
That statement (in my view) is basically delusional, and this isn't me being biased for Oracle. Whether you are migrating *to* Oracle, or *away* from Oracle, or for that matter to/away *any* database platform, there are significant differences in the technology.
In regard to 40TB, its not the size of the *database* that matters (because most database platforms can accommodate such sizes), it the size and complexity of:
- the database design (ie, what specific vendor-specific extensions are you using)
- the application code (both inside and outside the database)
- what vendor features are you using without even knowing it (eg, some database lock data when you read it , others don't...that's a HUGE difference)
You just need to look at the complexity and code bases for those large companies that do platform-independent solutions to see how much effort is involved in handling different database back ends.
That money may be better spent investigating options for staying with the Oracle landscape but looking at other opportunities to reduce costs, eg
- changes to hardware
- code optimization
- cloud migration
It is smart for *any* company, on *whatever* technology they use, to be seeking ways to get the biggest bang for their buck on their IT investment.