Choosing the right HANA Database Architecture
Good day everyone! I hope you all enjoyed holidays, there is nothing better than spending time with family and friends, isn’t it? Now it’s time to gear up for more success and productivity in 2017!
I have realized that especially after the recent release of “more advanced” S/4 HANA products, the SAP community is now more focused on cloud, on premise or hybrid deployment options and it seems to me that the actual underlying SAP HANA database architecture is usually overlooked even though it is the core of the entire implementation. In case you end up with wrong HANA database architecture, it would be really hard to have a proper high-availability and disaster recovery setup in your landscape no matter where you deployed it – cloud or on premise. And remember, when it comes to architecting SAP HANA, there are 3 key elements must be considered carefully; scalability, effectiveness and fault tolerance. In this article, I aim to provide detailed information regarding the current available SAP HANA database architecture and deployment options.
There are six database deployment scenarios; three of them are perfectly fine for production use, other two options come with some restrictions in production and last one is available for non-production systems only.
1. Dedicated Deployment: This is the classical and most common scenario. Usually preferred for optimal (read: high) performance. As you can see from the below figure, there is one SAP system with one database schema created in one HANA DB running on one SAP HANA appliance.
Figure 1: SAP HANA Dedicated Database Deployment Scenario
2. Physical Server Partitioning: In this scenario, there is one storage and one HANA server which is physically split into fractions. Two separate operating systems installed on separate hardware partitions and hosting two separate HANA databases each have its own database schemas dedicated for respective SAP systems. There should not be any performance problems as long as you have a correct SAP HANA sizing specific for this purpose.
Figure 2: SAP HANA Physical Server Partitioning
3. MDC (Multitenant Database Containers): I previously released an article about MDC concept, you can read it here. Basically, there is one HANA database (and one system database container for administration purposes) and multiple tenant database containers can be spread on several hardware. Perfectly fine for production usage and I have to admit that this scenario is becoming my favourite due to its flexibility and scalability J More information can be found in SAP note 2096000.
Figure 3: SAP HANA MDC Deployment
4. MCOD (Multiple Components in One Database): The concept of having multiple applications in one database was available to SAP customers for more than 10 years, of course not with SAP HANA database back in then, but the technology was already there. This is basically multiple SAP systems/applications running on one SAP HANA database under different database schemas. Note that there are some restrictions in production usage especially when combining applications on SAP HANA on a single database explained in note 1661202 (white list of applications / scenarios) and 1826100 (white list relevant when running SAP Business Suite on SAP HANA). These restrictions do not apply if each application is deployed on its own tenant database, but do apply to deployments inside a given tenant database.
Figure 4: SAP HANA MCOD Deployment
5. Virtualized Deployment: Since SAP HANA SPS 05, SAP has been supporting virtualization on the HANA appliances. This scenario is based on VMware virtualization technology where separate OS images installed on one hardware, and each image is containing one HANA database hosting one database schema for each SAP system. Note that there are some restrictions to the hypervisor (including logical partitions). More information can be found on SAP note 1788665, 2024433 and 2230704.
Figure 5: SAP HANA Virtualized Database Deployment
6. MCOS (Multiple Components in One System): MCOS scenario allows you to have multiple SAP HANA databases on one SAP HANA appliance, e.g. SAP DEV and Test systems on one hardware. Production support for this scenario is restricted to SPS09 or higher due to the availability of some resource management parameters. SAP also does support running multiple SAP HANA DBMSs (SIDs) on a single production SAP HANA hardware installation. This is restricted to single host / scale-up scenarios only. I personally don’t recommend this scenario because it requires significant attention to various detailed tasks related to system administration and performance management. Since MCD is available, it would be a much better option in terms of supportability and scalability. More information about MCOS, check SAP note 1681092.
Figure 6: SAP HANA MCOS Deployment
Which one I should choose?
For production environments, I would consider options 1 (Dedicated Deployment) and 3 (MDC) depending on a few factors including the existing infrastructure setup and capability, availability and performance requirements of the business, database sizes and structure, HA or DR setup requirements (if any), and overall SAP landscape size. The reason I favour MDC over Physical Server Partitioning is because it can achieve almost everything Physical Server Partitioning do, and comes with great flexibility in terms of supportability, scalability and re-architecture when needed.
Have you already migrated to SAP HANA? If so, which database deployment option you selected and what was the reason?
Have other ideas or questions regarding SAP HANA database deployment scenarios? Leave a comment below, I would love to help you and learn from you as much as I can!
References and further reading:
SAP HANA System Architecture Overview
SAP HANA Database Architecture
Multitenant Database Containers
If you liked this post, you might like these relevant posts:
SAP HANA Multitenant Database Concept
Choosing The Most Effective Approach for Technical Migration to SAP HANA
This is a wonderful and informative brief for Orgs looking for HANA deployment.
Thanks Deepa, glad you liked it.
Fantastic article Alper. Information on Hana DB deployment scenarios and server sizing is really helpful.
Glad you liked it Shyam, thanks!
thanks for collecting all the different deployment options at one place. Just a few questions:
If you could add this missing details, the blog is a great starting point for those who are searching for the right deployment option.
Thanks for the comment and sorry for my late response as I don't check this blog regularly. Actually I thought this post more like a first step for beginners so I didn't include many details. Will certainly post some specific comparisons.
You are right, but since physical server partitioning is handled by hardware vendors mostly, I didn't provide detailed information.
With two schema, the most common scenario is MDC, physical server partitioning usually not preferred as it adds extra layer of complexity on the OS level. Which components you combine depends on their importance in your landscape. For example, we are doing an MDC setup for 3 business systems (ECC, BW, SRM) and because ECC has the top priority we are building it as MDC but only one system per host. BW and SRM have less priority than ECC so we will combine them on another host. We are also adding two more hosts for High Availability via System Replication and another two hosts for DR with System replication. So 6 host will be sufficient to cover all 3 critical business systems with HA and DR in place.
For the system repication I am currently performing some test, will publish the results soon.
Cloud approach (HEC) is too damn expensive so it still needs some more time. I'll look at those options as well.
What exactly you mean with "technical co-deployment"? I know some companies installed ECC, SRM and BW databases on one HANA host (in MDC) and they live happily with that. However, system replication as HA solution may not be the best approach in this case becase if you have a problem with one of the databases (and you need to restart it for instance) you will need to failover other 2 systems to other host first so restart the databases (incl system database). Host Auto-Failover might be a better option for HA. Of course it depends on your existing landscape setup and cost.
Thanks for the link of supported hardware which is officially certified by SAP.
here are some details about the technical co-deployment option:
Some Suite components can be implemented as Addon.
I see. I have not performed such a deployment before.
Did you implement it into Prod landscape? How was the results?
Thank you for the great article. I want to ask that Is multiple instance (one os, more than 1 sid) is supported for Production systems? And why didn't you mention about multi instances db?
Tutku, thanks for the comment.
Yes, that scenario is no.6 MCOS in the list and its production support is restricted to SPS09 or higher due to the availability of some resource management parameters. I personally favour MDC over this scenario because if you have constant performance issues with MCOS the first thing SAP will ask is to shutdown the other instance before even investigating it. Also you need to carefully tune the memory parameters to make this architecture running. That is not too bad if your secondary system is DR but still offers a longer RTO than System Replication for instance. You can check SAP Note 1681092 for more details.
Looking to understand the HA /DR capabilities in a dual datacentre scenario.
Specifically we are looking at SAP CAR and would like to understand best practices for not only a single datacentre and HA and what a dual datacentre scenario would look like.
Sorry for my late answer as I usually am more active on LinkedIn.
I'd be happy to help.
Are you planning to run DR crossite? Can you provide more information?
I have a question with regards to MDC
I have 4 multi tenant databases lets say DB1 DB2 DB3 & DB4 from this i want to configure replication for only DB1 is it possible?
keeping in mind the target dr site is also MDC which will have tenant databases and as you said earlier if i am doing fail over then i have to fail over for all the databases.
Hi Tabrayz, no it's not possible. You can either configure all DBs for System Replication or none of them. It is not possible (yet) to configure or failover a single DB in an MDC scenario.
In Dedicated Database Deployment Scenario, can we configure HA using Hana Studio
My question is: do we require common storage for configuring HA ?
I mean if one node1 goes down node2 will come up automatically.
For HA, you can choose System Replication or Host Auto-Failover. Please check the links. I wrote an article series covering HA and DR options with SAP HANA. They are also available on LinkedIn.
Thanks a lot for your reply, i will check Host Auto failover.
So clear and to the point explanation.
Thanks for writing this. It was helpful to clear the doubts.
We are planning to set up a production and development environment for business one in one Hana system. What scenario would you suggest that will best fit our requirement?
It is possible to install 2 MCD in the same hosts?