This section describes the requirements, access privileges, and other features of HVR when using SAP HANA for replication. For information about compatibility and supported versions of HANA with HVR platforms, see Platform Compatibility Matrix.
For information about the supported data types and mapping of data types in source DBMS to the corresponding data types in target DBMS or file format, see Data Type Mapping.
To quickly setup replication into HANA, see Quick Start for HVR - HANA.
HVR requires that the HANA client (which contains the HANA ODBC driver) to be installed on the machine from which HVR connects to HANA. HVR uses HANA ODBC driver to connect, read and write data to HANA.
HVR does not support integrating changes captured from HANA into databases where the distribution key cannot be updated (e.g. Greenplum, Azure Synapse Analytics).
This section lists and describes the connection details required for creating HANA location in HVR.
|The hostname or ip-address of the machine on which the HANA server is running. |
The mode for connecting HVR to HANA server. Available options:
|The database instance number. |
|The port on which the HANA server is expecting connections. For more information about TCP/IP ports in HANA, refer to SAP Documentation|
The name of the specific database in a multiple-container environment. This field is enabled only if the Mode is either Multiple containers - Tenant database or Manual port selection.
|The username to connect HVR to the HANA Database. |
|The password of the User to connect HVR to the HANA Database.|
Driver Manager Library
|The directory path where the Unix ODBC Driver Manager Library is installed. For a default installation, the ODBC Driver Manager Library is available at /usr/lib64 and does not need to specified. When UnixODBC is installed in for example /opt/unixodbc-2.3.1 this would be /opt/unixodbc-2.3.1/lib|
|The directory path where odbc.ini and odbcinst.ini files are located. For a default installation, these files are available at /etc and does not need to be specified. When UnixODBC is installed in for example /opt/unixodbc-2.3.1 this would be /opt/unixodbc-2.3.1/etc. The odbcinst.ini file should contain information about the HANA ODBC Driver under heading [HDBODBC] or [HDBODBC32].|
|The user defined (installed) ODBC driver to connect HVR to the HANA database. If the user does not define the ODBC driver in the ODBC Driver field, then HVR will automatically load the correct driver for your current platform: HDBODBC (64-bit) or HDBODBC32 (32bit).|
Connecting to Remote HANA Location from Hub
HVR allows you to connect from a hub machine to a remote HANA database by using any of the following two methods:
- Connect to an HVR installation running on the HANA database machine using HVR's protocol on a special TCP port number (e.g. 4343). This option must be used for log-based capture from HANA.
- Use ODBC to connect directly to a HANA database remotely. In this case no additional software is required to be installed on the HANA database server itself. This option cannot be used for log-based capture from HANA database.
HVR only supports capture from HANA on Linux.
HVR supports capture from column-storage tables in HANA.
Grants for Capture
The following grants are required for capturing changes from HANA:
To read from tables which are not owned by HVR User (using TableProperties/Schema), the User must be granted select privilege.
- The User should also be granted select permission from some system table and views. In HANA, however, it is impossible to directly grant permissions on system objects to any user. Instead, special wrapper views should be created, and User should be granted read permission on this views. To do this:
- Connect to the HANA database as user SYSTEM.
Create a schema called _HVR.
Grant SELECT privilege on this schema to User.
- Execute the hvrhanaviews.sql script from the $HVR_HOME/sql/hana directory.
This will create a set of views that HVR uses to read from system dictionaries on HANA.
Configuring Log Mode and Transaction Archive Retention Requirements
For HVR to capture changes from HANA, the automatic backup of transaction logs must be enabled in HANA. Normally HVR reads changes from the 'online' transaction log file, but if HVR is interrupted (say for 2 hours) then it must be able to read from transaction log backup files to capture the older changes. HVR is not interested in full backups; it only reads transaction log backup file.
To enable automatic log backup in HANA, the log mode must be set to normal. Once the log mode is changed from overwrite to normal, a full data backup must be created. For more information, search for Log Modes in SAP HANA Documentation.
Transaction log (archive) retention: If a backup process has already moved these files to tape and deleted them, then HVR's capture will give an error and a refresh will have to be performed before replication can be restarted. The amount of 'retention' needed (in hours or days) depends on organization factors (how real-time must it be?) and practical issues (does a refresh take 1 hour or 24 hours?).
When performing log-shipping (Capture /ArchiveLogOnly), file names must not be changed in the process because begin-sequence and timestamp are encoded in the file name and capture uses them.
Archive Log Only Method
The Archive Log Only mode can be used for capturing changes from HANA. This allows the HVR process to reside on machine other than that on which HANA DBMS resides and read changes from backup transaction log files that may be sent to it by some file transfer mechanism.
HVR must be configured to find these files by defining action Capture with parameters /ArchiveLogOnly, /ArchiveLogPath, and /ArchiveLogFormat (optional).
The Archive Log Only method will generally expose higher latency than non-Archive Log Only method because changes can only be captured when the transaction log backup file is created. The Archive Log Only method enables high-performance log-based capture with minimal OS privileges, at the cost of higher capture latency.
OS Level Permissions or Requirements
To capture from HANA database, HVR should be installed on the HANA database server itself, and HVR remote listener should be configured to accept remote connections. The Operating System (OS) user the HVR is running under should have READ permission on the HANA database files. This can typically be achieved by adding this user to the sapsys user group.
Channel Setup Requirements
It is not possible to enable 'supplemental logging' on HANA. This means that the real key values are not generally available to HVR during capture. A workaround for this limitation is capturing the Row ID values and use them as a surrogate replication key.
The following two additional actions should be defined to the channel, prior to using Table Explore (to add tables to the channel), to instruct HVR to capture Row ID values and to use them as surrogate replication keys.
ColumnProperties /Name=hvr_rowid /CaptureFromRowId
This action should be defined for capture locations only.
ColumnProperties /Name=hvr_rowid /SurrogateKey
This action should be defined for both capture and integrate locations
Integrate and Refresh Target
HVR supports integrating changes into HANA location. This section describes the configuration requirements for integrating changes (using Integrate and refresh) into HANA location. For the list of supported HANA versions, into which HVR can integrate changes, see Integrate changes into location in Capabilities.
HVR uses HANA ODBC driver to write data to HANA during continuous Integrate and row-wise Refresh. For the method used during Integrate with /Burts and Bulk Refresh, see section 'Burst Integarte and Bulk Refresh' below.
Grants for Integrate and Refresh Target
The User should have permission to read and change replicated tables
The User should have permission to create and alter tables in the target schema
- The User should have permission to create and drop HVR state tables
Burst Integrate and Bulk Refresh
While HVR Integrate is running with parameter /Burst and Bulk Refresh, HVR can stream data into a target database straight over the network into a bulk loading interface specific for each DBMS (e.g. direct-path-load in Oracle), or else HVR puts data into a temporary directory (‘staging file') before loading data into a target database.
- HVR first stages data into a local staging file (defined in /StagingDirectoryHvr)
- HVR then uses SAP HANA SQL command 'import' to ingest the data into SAP HANA target tables from the staging directory (defined in /StagingDirectoryDb).
- /StagingDirectoryHvr: the location where HVR will create the temporary staging files.
/StagingDirectoryDb: the location from where HANA will access the temporary staging files. This staging-path should be configured in HANA for importing data,
Grants for Burst Integrate and Bulk Refresh
The User should have permission to import data:
Compare and Refresh Source
Grants for Compare and Refresh Source
The User should have permission to read replicated tables