Friday, April 11, 2025

How to reset System user password of Tenant DB and System DB

 Process to reset the system user password of the tenant:

1. Ensure that your tenant DB is offline. 

There are multiple ways to check it (HDB info, SELECT * FROM M_DATABASES; ==>Stastus active means running).

Process:

You need to run all the below commands from System DB

1. Login to system DB in HANA studio--> run the command ALTER SYSTEM STOP DATABASE <database_name>;

2. Go to SQL console of SYSTEM-DB and use command ALTER DATABASE <database_name> SYSTEM USER PASSWORD <new_password>; [Put your password in double quotes if you have special character in your password.]

3. Start the tenant database using command ALTER SYSTEM START DATABASE <database_name>;

4. It will ask you to change the password once you log in for the first time after resetting.

Process to reset System user password in System DB

 The system administrator can reset the password of any SYSTEM user if it has been irretrievably lost.

You must have the credentials of the operating system administrator (<sid>adm).

Shut down the instance by executing the following command:

/usr/sap/HDB/HDB<instance>/exe/sapcontrol -nr <instance> -function StopSystem HDB
or

HDB stop

Reset the system user: 

Now we will run the following commands to set the environment variables.

/usr/sap/<SID>/HDB<INSTANCE>/hdbenv.sh

Now we will start the name server with the option to reset the SYSTEM user password of SystemDB.

/usr/sap/<SID>/HDB<INSTANCE>/exe/hdbnameserver -reserUserSystem



Now the name server will be started; it will prompt you to enter password and stop the name server

You can start the HANA system with the following command.

          "HDB start" OR "sapcontrol -nr <instanceNumber> -function StartSystem HDB"

Tuesday, April 8, 2025

HANA Interview questions

What are the types of backup in HANA


1. Full Backup: Backs up the entire SAP HANA database (all data and metadata).
2. Differential Backup: Backs up the data changed since the last full backup.
3. Incremental Backup: Backs up the data changed from the last data backup (full or incremental).

  • How to check the version of Hana Database w/o logging in to SAP system and DB
  • a). You need to log in to the application server through Putty and switch to the sidadm user.

    Run the “R3trans -d” command. You will get the trans.log. Open that file, and you will get the version of the Hana database.

    or

    b). Another way is to check the work process log files from the work directory. Location—/usr/sap/SID/DVEBMGS00/work

    Check the work process log file with the name dev_w[n].

    General ways to check the HANA DB version

    • Log in to DB host through Putty and switch to the sidadm user. Run the command ‘HDB version.
    • Open the system in Studio and check the “Overview” page. There you will find the version.
    • sql query “select * from SYS.M_DATABASE_HISTORY”
    • Open the system in Sap Hana cockpit and go to applicatio“n General Information
    • Open the system from SAP Logon Pad and go to ‘System --> Status’; you will get the version.
    • Using python scripts available in directory (inside the DB server) ‘/usr/sap/SID/HDB<xx>/exe/python_support’ [you can reach to this directory using “cdpy.“] ==> Run the script ‘python systemOverview.py‘ using the sidadm user, and you will get the below output. It covers version along with other information-


    What are the ways to check the status of HANA Database

    Hana DB status can be checked using 

    • HDB info : This will provide you the status of all HDB services running in the system.
    • HDB proc: Same as HDB info, it provides the status of the services
    • sapcontrol -nr <instance##> -function GetProcessList
    • HANA Studio-->Landscape-->Services 
    • HANA cockpit


    How to install a HANA license if you are not able to connect using HANA Studio or HANA Cockpit.

    This is called lockdown mode, and there are few reasons behind this situation:

    • Your temporary license expires after installation.
    • The permanent license key is expired.
    • You manually deleted the license key.
    • Change in hardware key
    • Enforced license key has reached its limit and additional tolerance is exhausted

    In this case, only a user with the system privilege LICENSE ADMIN can connect to the database and execute license-related queries, such as obtaining previous license data or installing a new license key.
    While applying a fix, you must have the credentials of a SYSTEM user or any other user with the required privileges as stated above and a license key file generated from SMP handy.

    Solution: Log in to the database host with the sidadm user.

    Go to HDBSQL with the SYSTEM user. Once you are in HDBSQL, you will see message that *437: only commands for license handling are allowed in this current state SQLSTATE: HY000
    Switch ON multi line mode with command \mu ON

    Use the command SET SYSTEM LICENSE ‘<Copy paste your text from the license file>’ to install the license.
    You will return to the HDBSQL console without error, and your license will be renewed. If it does not come out to the HDBSQL console, then hit \g, and then it will come out of HDBSQL with output like 0 rows affected (overall time 20.486 msec; server time 18.529 msec).

    How to check if the installed HANA license is enforced or unenforced.

    We can check using an SQL query:  SELECT * FROM SYS.M_LICENSE. check the Enforced column (True or False)




    SAP HANA Architecture

     

    SAP HANA Directory Structure.



















    Thursday, April 3, 2025

    SAP HANA HA and DR

     SAP HANA HSR provides High Availability and Disaster recovery

    Fundamentals of HSR: 

    SAP HSR has two fundamental concepts

    1. HSR Replication Mode: Synchronous, Synchronous to memory, Asynchronous

    2. HSR Operation Modes: Delta shipping, Log replay or log replay with read access

    Replication Mode: 

    The HSR replication mode determines the behavior of secondary system in acquiring the data from the primary system

    1. Synchronous (SYNC)

    • The primary system waits for an acknowledgment from the secondary system before committing transactions.

    • Ensures no data loss.

    • Best for high-availability setups within low-latency environments.

    • Requires a reliable, high-speed network.

    2. Synchronous in-memory (SYNCMEM)

    • Ensures zero data loss but only guarantees that data is in the secondary system’s memory (not persisted to disk).

    • Faster than SYNC since it doesn’t wait for disk writes on the secondary system.

    • Suitable for systems with strict uptime requirements.

    3. Asynchronous (ASYNC)

    • The primary system does not wait for the secondary system to acknowledge the transaction.

    • Some data loss is possible in case of failure before replication completes.

    • Best for disaster recovery setups over long distances.

    4. Synchronous Full Sync (FULLSYNC) [Less Common]

    • Similar to SYNC but ensures the secondary system has fully committed the transaction before acknowledging.

    • Used in rare cases where absolute consistency is critical.

    Choosing the Right Mode

    • High availability within a data center?SYNC or SYNCMEM

    • Disaster recovery across regions?ASYNC

    • Extreme data consistency required?FULLSYNC

    Operation Mode:

    HSR Operation mode determines how the data is sent and processed by the secondary system


    1. Delta Data Shipping (operation_mode=delta_datashipping)
    This mode establishes a system replication where occasionally (per default every 10 minutes) a delta data shipping takes place in addition to the continuous log shipping. The shipped redo log is not replayed on the secondary site. The log is replayed only when a takeover (failover) occurs or when manually triggered.

    2. Continuous Log Replay (operation_mode=logreplay)
    This mode does not require a delta data shipping anymore. Additionally, the shipped redo log is continuously replayed on the secondary site.

    Log Replay Read Access
    The operation mode Log Replay Read Access is identical to the Log Replay mode with the exception that the secondary system is available in read only mode. This means that a SQL query can access (read) the data in the secondary, but the data can't be changed.


    Configure HANA Replication:

    Reference blog: 

    https://www.nexgen-tech.in/2019/01/hana-system-replication-hadr.html

    You can configure SAP HANA system replication by using the following tools:
        • SAP HANA cockpit
        • SAP HANA studio
        • `Hdbnsutil` (a command-line tool)

    Perform the following steps to configure replication by using SAP HANA studio:

    Step one: Enable system replication on the Primary

    1. Start the primary system.
    2. Perform an initial data backup or storage snapshot on the primary system.
    3. Enable system replication on the primary system by using the following steps in SAP HANA studio:
             a. In the Systems view, right-click the primary system and choose
                         Configuration and Monitoring -> Configure System Replication.


    sidadm password
    Provide logical name for primary system
    Finish.

    Step 2: Register the secondary System

      Stop the secondary system


    Register the secondary system:
     
    next

    Provide all the details such as : Logical Name, Replication mode, operation mode, primary system hostname and Instance number.

    Note: If you want to configure Active-Active Read, then you need to select the operation mode as Logreplay_readaccess. 

    Logreplay-readaccess operation mode is not supported in HANA Studio; you should use either the HANA cockpit or the HDBnsutil command-line tool. 

    Click on Finish
    With this HANA system replication setup completed successfully

    Once the secondary system restarts automatically, the replication will begin to start. 

    You can monitor the replication from Hana Studio-->Landscape-->System Replication.


    Step 3 : Takeover

    • You can trigger the takeover in the event of disaster or testing.
    • Register the former primary system as a new secondary system.

    Takeover:
      On secondary system --> config and monitoring--> system replication


    Click Finish to complete the takeover.



    Register the former primary as secondary: 

    Once the former primary comes back online, you need to register it as the secondary to the former secondary.

    1. Stop the former primary system
    2. Right click on the system ==>Configuration and monitoring ==> Configure Replication
    3. Register as secondary system
    4. Provide the details such as logical name, replication mode, operation mode, and primary host details.


    5.  Check the details you have provided in the below screen and click on Finish to complete the task.

    4. Disabling HANA Replication for Maintenance:

    1. Stop the secondary system
    2. Unregister secondary system from secondary system ==> Unregister secondary
    3. stop replication from primary system ==> Disable replication