HANA Replication Rarely known parameter - replication_port_offset


While checking out SAP books or articles, you might have come across below statement related to instance number:

"The instance number is a two-digit number in the range of 00 to 99. If you plan to set up a disaster-tolerant SAP HANA system by using the system replication technology, be aware that such a system will internally need two consecutive instance numbers

It says that for replication scenario, we need two consecutive instance numbers. But why?
To understand this, first let's have a look at the ports that are used for replication scenario.

Basically we will understand this by just considering standard and replication specific  nameserver service ports instead of going through all the services.

Standard Nameserver ports

3<NN>01 - Internal port of the nameserver

Replication specific Nameserver ports

3<NX>01Used for log and data shipping from a primary site to a secondary site in a system replication landscape (single-container systems), where NX = Instance number plus 1 (01..99)
3<NX>02Used for metadata communication between sites in a system replication landscape (single-container systems), where NX = Instance number plus 1 (01..99)
4<NN>01Used for log and data shipping from a primary site to a secondary site in a system replication landscape (multitenant systems), where NN = Instance number (01..99)
4<NN>02Used for unencrypted metadata communication between sites in a system replication landscape (multitenant systems), where NN = Instance number (01..99)
4<NN>06 Used for encrypted metadata communication between sites in a system replication landscape (multitenant systems)where NN = Instance number (01..99)

From above port rules, we could observe that single containers use NX as instance number +1 and MDC ports are defined like 4NNxx where NN is instance number itself.

How these rules got derived?

For Single container system, the default replication_port_offset is 100. So, if we add 100 to standard port ex. 30201, then replication port becomes 30301. That's the reason why it says instance number+1 

And for MDC systems, the default replication_port_offset is 10000. So, if we add 10000 to standard port ex. 30201, then replication port becomes 40201. That's the reason why we don't have requirement of instance number+1. This approach helps to have more number of instances as N+1 is not reserved.

Can we set this replication_port_offset parameter manually?
Yes we can set it in global.ini. Replication needs to be setup again after changing the parameter.

We'll cover all replication related ports in our further blog.

Comments