Multitenant Database Container (MDC) FAQs
What do you mean by SAP HANA Multitenant Database Containers?
The SAP HANA system can be now installed in multiple-container mode, therefore it can contain multitenant database containers.
A multiple-container system comprises of one system database and may have any number of multitenant database containers (including zero), also known as tenant databases.
Does the tenant databases go down when System Database is down?
Yes, when SystemDB is down all the other tenant databases also goes down.
Is it possible to configure statement memory limit per tenant?
Yes, it is possible.
Does the cross-database access gets enabled by default?
No, cross-database access does not get enabled by default.
Please tell which system privilege is needed for administrating tenant databases while getting connected to the system DB?
DATABASE ADMIN privilege.
Note: This DATABASE ADMIN privilege is only available on SYSTEM DB.
The multiple database containers supported by which revision?
From the beginning SAP HANA 1.0 SPS 09 (Revision 90), SAP HANA has supported multiple isolated databases or multitenant database containers all from a single SAP HANA system.
Starting SAP HANA 2.0 SPS 01 (Revision 10), multitenant database containers all become the default and the only operation mode
How different is the installation from single-container to multi-container?
Installation is typically performed by using the same tools (hdblcm/hdblcmgui), and during SAP HANA installation the user has the option to choose between single-container and multi-container.
What happens generally post the installation of a multi-container system?
Only SYSTEM DB is created, after the installation is completed. Tenant DB's can be created from the System DB by using SQL.
Are there any differences in the list of services which run on System and Tenant DB?
The most notable differences have been listed below
- On the Systems DB, the nameserver and other non-persistent services are available.
- On tenant databases, the Indexserver and other persistent services are available.
How many tenant databases can we create per instance?
The main restraint is the number of resources which are required for each tenant database (CPU, Memory). To add to this further, there is a limitation with respect to the available ports 3XX40 until 3XX99, therefore by default with each instance, the user can have a maximum of 20 tenant databases.
Will I be able to migrate my existing single-container to multi-container?
Yes, you will be able to migrate from single-container to multi-container only after you fulfil the prerequisites.
The prerequisites are listed below:
- The SAP HANA Database is upgraded to revision 090 or higher
- Embedded statistics server has also been enabled
Note: Please keep in mind that this action is irrevocable.
Where is the topology information stored in SAP HANA MDC environment?
In SAP HANA MDC the topology information is preserved in index server, and the user can find all of this while performing backup.
The backup of a tenant will comprise of two files for index server one for topology and the other for data.
Is the conversion time for MDC dependent on the database size, incase I want to convert my single container system to MDC?
No, the conversion time is not dependent on the size of the database. During the process of conversion, the content is untouched, on systemdb is created and persistence and would also be the same, irrespective of database size.
For different tenants, can I set different isolation levels?
No, isolation level is not per the tenant but as per the system only.
Can we display in SAP HANA studio all services which belong to the system DB and to every tenant DB in one screen?
Yes, the user can display all services which belong to system database and tenant databases in the diagnosis mode of SAP HANA Studio.
Post upgrading to SPS9, will my system automatically be converted to multiple containers?
No, after upgrading to SPS9 from any lower revision your system will remain as a single container.
Starting SAP HANA 2.0 SPS1, multitenant is the default option and single container system will no longer be available. So if u wish to upgrade single container system from any lower version to HANA 2.0 SPS1 then the system will automatically be converted to the multitenant system.
We ideally connect to SAP HANA Database through indexserver which also serves as SQL port so, when there is no indexserver, how can we connect to system DB?
In a multi-container system, the connection to System DB takes place through Nameserver which serves as SQL port. Though there is no difference in tenant databases, which still uses the index server port for the connection.
If we have sufficient resources available, is it possible to overcome this limitation of 20 tenants per instance in case?
Yes, by reserving the port numbers of further instances the user can increase this number. This can be done by configuring the property global.ini -- [multidb] -- reserved_instance_numbers.
The default value of this property is 0. If the user changes the value to 1, the port numbers of one further instance are made available (for example, 30040-30199 in case the first instance is 00). If you change it to 2, the port numbers of two further instances are available (for example, 30040-30299 if the first instance is 00).
Thus we are blocking the reserving additional ports to one instance.
During the conversion from single-container to multi-container, which process is triggered?
The process triggers contain the following actions:
1) Closes down the instance
2) Converts the system for supporting multitenant database containers by:
- Setting up the global.ini property [multidb] mode to multidb.
- Creating the system database (SYSTEMDB@).
- Converting the existing SAP HANA database to a tenant database. The name of this database is the system ID (@).
- Updating the secure store in the file (SSFS) system.
3) Exporting the topology
4) Re-initializing the nameserver persistence of the system database
5) Importing the topology
6) For system database Set SYSTEM user password.
7) Initiating the instance
Post successfully converting from single-container to multi-container none of my user/password are valid, any specific reason for the same?
All the user/password on the single-container will now be valid only on your tenant database only and NOT on the system DB.
Where is statistics server functioning on System DB when there is no indexserver?
The embedded statistics server comprises of two components. A scheduler and workers which run in each database including the system database. There is only one scheduler, however, it triggers the execution of workers in all databases.
- Statistics service in System DB
- Statistics service in Tenant DB
Can we allocate more resources to one tenant database as compared to others?
Yes, if required you can assign more resources to one tenant database.
Will a tenant DB also be created as in the case of conversion while performing an installation of SAP HANA multi-container database?
No, only system DB is created, while performing a multi-container database installation. By executing the SQL, the User can create tenant DB.
CREATE DATABASE SYSTEM USER PASSWORD
In case of scaleout landscape if you want to create a tenant DB on a specific host:
CREATE DATABASE AT LOCATION 'HOST_A:30147' SYSTEM USER PASSWORD
Will there be an impact on the other tenant databases in case out of Memory (OOM) occurs on one tenant DB?
We advise setting up allocation limits, however, if there are no allocation limits set then OOM on one tenant database can also lead to OOM on other tenant databases.
Is there any global allocation limit set Per tenant?
No, the global allocation limit set on system level is only valid for the entire system which includes all tenant databases apart from the other services. If you would like to restrict the memory allocation for specific tenants it is recommended to restrict using the parameter.
global.ini --> [memorymanager] --> allocationlimit
How can I ensure tenant database administrators don’t assign more resources to one tenant?
A configuration change blacklist exists which prevents the tenant database administrators to make changes to parameters which are related to resource management.
Who can initiate a start/stop a tenant database?
Only a System DB user with DATABASE ADMIN system privilege can only start/stop a tenant DB using the following SQL.
- ALTER SYSTEM STOP DATABASE
- ALTER SYSTEM START DATABASE
You could also utilize SAP HANA Cockpit for start/stop the tenants when accessing through System DB.
Note: The tenant DB administrators cannot initiate a start/stop the tenant DB.
Which are the trace files specific to the tenant DB?
All tenant specific processes have specific tenant trace files.
Tenant-specific processes are:
- indexserver
- xsengine
- scriptserver
- dpserver
- esserver
- etsserver
(this list may expand in the near future).
Trace directory of System DB (This also includes folder for different Tenant DB)
Now check the specific tenant DB trace directory (Folder --> DB_TENANATDB), which depends on the tenant specific processes which have been configured in the tenant databases user may be able to see the additional traces.
Under the process list, the user can see the additional indexserver meant for each tenant DB along with the processes which are running under the System DB
In multi-container systems, what is database isolation?
For protection against the unauthorized access to the operating system (OS) level, the user can further increase isolation further through OS user separation and authenticated communication within the databases.
By default, all database processes in a multiple-container system can run under the default OS user adm. In case if it is important to mitigate against cross-database attacks through OS mechanisms, the user can configure the system for high isolation.
What is the process for configuring the system with high isolation?
The level of isolation can be configured during the time of installation or can also be increased for an already existing system.
Do we have a specific process which runs in multi-container database containers with high isolation?
Yes, when high isolation has been selected there is the process hdbmdcdispatcher running under root user, whereas all the other processes of System DB runs under sidadm user.
Example: This process is required and is important for high isolation during the creation of a tenant database so that indexserver process of the tenant DB functions under a dedicated user.
Example:
SID: H00 --> all processes of System DB is running under h00adm
Tenant DB: MDC --> indexserver process of the tenant DB is running under user mdcadm
Are there any pre-conditions to be considered while creating tenants on MDC system with high isolation?
When using high isolation the user should keep in mind that the dedicated OS user and group already exists before the creation of the tenant.
As a tenant administrator, can I start a backup of the tenant?
The user can create a backup directly on the tenant database via SQL, however, the only prerequisite is the user is required to have BACKUP ADMIN and CATALOG READ privileges.
As tenant database administrator the user can also utilize SAP HANA Cockpit for triggering data backups.
Can we create a backup of the complete database including the system db and tenant db in only one step?
No, it is not possible to perform the backup of all tenants and system db in simply one step. Backups has to be performed individually.
The same is also applicable for recovery.
How can I start or stop tenant databases?
Tenant databases can be started or stopped in the following ways:
- Using SAP HANA Cockpit
- Using SQL statement
What all possibilities exist for starting or stopping the entire system including system database and tenant database?
Two possibilities exist as of SAP HANA SPS11:
- Using SAP HANA Studio (While using SAP HANA Studio user should note stopping System DB would automatically stop tenant databases)
- Using OS command (HDB stop would stop both System DB and tenant databases)
Note: Upon start up of System DB the tenant will have the same status as it had prior to the stopping of the system.
Between systems, is it possible to copy/move tenant databases?
Starting SAP HANA SPS 12, SAP HANA utilizes the system replication mechanism for copying and moving securely with near-zero downtime.
Can we rename a tenant database?
No, it is not possible to rename a tenant database as a workaround, the user can perform a backup of the old tenant and thereby restore it into a new tenant.