SAP HANA Multitenant Database structure is basically a concept that allows multiple but isolated databases in one SAP HANA.
It comes with three major advantages:
- Lower the capital expenditure & TCO
- Much simpler database management
- Allows to build, deploy and run multitenant cloud applications
In order to utilize multiple container capabilities, SAP HANA system needs to be installed in multiple container mode, but it is also possible to convert single container systems to multiple container systems. From architectural point of view, SAP HANA multiple container system have one system database for central system administration and additional multitenant database containers called tenant databases.
Note that when an SAP HANA system installed in multiple container mode, it will have only one system ID (SID) and tenant databases are identified by a SID and database name.
Below figure would provide a better understanding around the overall architecture of SAP HANA Multiple Container Structure. System database provides centralized administration activities and can be used to create, drop, start, stop tenant databases and perform backup/recovery, system replication activities for all tenant databases at once.
As an SAP HANA system consists of multiple servers; name server, index server, preprocessor server, XS server etc. and the databases in a multiple-container system run different combinations of these servers. For instance, only the system database runs the name server which contains landscape information about the system, including which databases exist where. It also provides index server functionality for the system database. However, unlike the name server in a single-container system, it does not own the topology information (location of tables and table partitions in databases), and all the topology information is stored in the relevant tenant db catalog.
Tenant databases in this structure, require only an own index server. The compile server and pre-processor servers run on the system database and they can serve all tenant databases. SAP HANA XS server runs as embedded to the master index server of the tenant database by default, and it can also be added as a separate service if necessary. For now, multiple container systems are not supported by the SAP HANA XS advanced model.
From performance point of view all tenant databases in the same HANA system share the same system resources (memory and CPU Cores). It is possible the allocated system resources anytime depending on requirements from each specific tenant database. Tenant databases are self-contained and has its own database users, db catalog, repository, backups and logs. Also, this structure allows to run cross-database SELECT queries which is a great advantage when it comes to cross application reporting.
Love the article? Hate the article? Have other ideas or questions regarding HANA multitenancy concept? Please leave a comment below, I would love to help and learn from you as much as I can!