SAP Sybase Replication Server version
15.7.1 SP 100 is the first edition which supports data replication to SAP HANA.
Source can be any SAP Sybase
Replication Server primary supported RDBMS:
- Adaptive Server
- Oracle
- Microsoft SQL Server
- DB2 UDB on Linux, UNIX, and Windows
RepServer provides a new connector called
ECH (ExpressConnect for HANA) which has been implemented similar to the Oracle
(ECO). ExpressConnect for Oracle (ECO) is a library that
is loaded by Replication Server 15.5 or later for Oracle replication.
More info regarding ECO/ECH --> The advantages of ECO/ECH include:
- It does not require a separate server process for starting up, monitoring, or administering.
- Since Replication Server and ECO/ECH run within the same process, no SSL is needed between them.
- Server connectivity is configured via Replication Server using the “create connection” and “alter connection” commands, thus there is no need to separately configure the equivalent to the ECDA for Oracle connect_string setting.
- ECH consists in 2 dynamic libraries shipped with SAP Sybase Replication Server (libsybhdb and libsybhdbodbc) that are linked with SAP HANA odbc driver (libodbcHDB)
- Direct load materialization support for HANA, no need to use materialization queues (this requires Rep Agent 15.7.1 SP100)
Using ExpressConnect for HANA DB
A Replication Server database connection
to HANA DB can be:
- secure, in which the connection uses the hdbuserstore key specified in the database connection, or
- standard, in which the connection uses an entry in the interfaces file for the host and port number for HANA DB.
Replication Server provides new a function
string class, new connection profiles, and replicate database objects to
support HANA DB.
New function strings have been added to
the Replication Server rs_hanadb_function_class. These function strings
are designed to communicate with a HANA DB data server and access the tables
and procedures.
Replication Server provides new connection
profiles for replicating into HANA DB:
- rs_ase_to_hanadb – installs Adaptive Server-to-HANA DB class-level translations.
- rs_oracle_to_hanadb – installs Oracle-to-HANA DB class-level translations.
- rs_udb_to_hanadb – installs DB2 UDB-to-HANA DB class-level translations.
- rs_msss_to_hanadb – installs Microsoft SQL Server-to-HANA DB class-level translations.
Direct Load Materialization
Use direct load materialization to
materialize data between different kinds of primary databases and HANA DB.
Direct load materialization can be used to
materialize data:
- from Adaptive Server to HANA DB
- from Microsoft SQL Server to HANA DB
- from Oracle to HANA DB
- from DB2 UDB to HANA DB
Note: Direct load materialization is not supported for
materializing data into an Adaptive Server database.
Direct load materialization is enabled
through the direct_load option of the create subscription command.
When using direct load materialization, note these restrictions for create
subscription:
- When the direct_load option is used, no other subscription can be created or defined at the same time for the same replicate table.
- The direct_load option is for subscriptions to table replication definitions only and is used withwithout holdlock. It cannot be used with the without materialization or incrementally options.
- The user and password options are used only with direct_load.
- You cannot use the direct_load option against a logical or alternate connection. The primary connection in the replication definition and the replicate connection in the subscription must be physical connections.
- The maintenance user of the primary database cannot be used in the user and password options to create subscriptions.
- You cannot use other automatic materialization methods if the primary database is not Adaptive Server. The only automatic materialization option for Oracle or other databases is direct load materialization. You cannot drop a subscription with the with purge option if the replicate database is not Adaptive Server.
- The direct_load option is available only if the replicate Replication Server site version and route version are 1571100 or later.
- You can use row filtering, name mapping, customized function strings and datatype mapping with subscriptions created using the direct_load option.
- Replication Server rejects any attempt to create a subscription with the direct_load option if the number of subscriptions being created has reached or exceeded num_concurrent_subs.
Primary Database Considerations
In directly materializing data from a
primary database, Replication Server connects to Replication Agent for
non-Adaptive Server databases, and directly to the primary database for
Adaptive Server.
You must have Replication Agent version
15.7.1 SP100 or later to materialize data from a non-Adaptive Server primary
database using direct load materialization.
When invoking the create subscription command,
Replication Server connects to Replication Agent using the Replication Agent
administrator login name.
rs_init sets
default configuration parameters after you install your Replication Server.
======================================================================
Configuring/ Setup replication from ASE to HANA
6 Steps required for establishing a replication system from ASE to
HANA using SAP Sybase Replication Server.
1. Create the connection to primary ASE
database (easy using rs_init)
create connection
Adds a database to the replication system and sets configuration
parameters for the connection. To create a connection for an Adaptive Server
database, use Sybase Central or rs_init. To create a connection for
a non-Adaptive Server database, see create connection using profile command.
create connection to ASE_PS.pubs2
set error class ansi_error
set function string class sqlserver_derived_class
set username pubs2_maint
set password pubs2_maint_pw
set function string class sqlserver_derived_class
set username pubs2_maint
set password pubs2_maint_pw
Syntax
create connection to data_server.database
set error class [to] error_class
set function string class [to] function_class
set username [to] user
[set password [to] passwd]
[set dsi_connector_sec_mech [to] hdbuserstore]
[set replication server error class [to] rs_error_class]
[set database_param [to] 'value' [set database_param
[to] 'value']...]
[set security_param [to] 'value' [set security_param
[to] 'value']...]
[with {log transfer on, dsi_suspended}]
[as active for logical_ds.logical_db |
as standby for logical_ds.logical_db
[use dump marker]]
Parameters
data_server – The data server that
holds the database to be added to the replication system.
database – The database to be added
to the replication system.
error_class – The error class that
is to handle errors for the database.
function_class – The function string
class to be used for operations in the database.
user – The login name of the
Replication Server maintenance user for the database. Replication Server uses
this login name to maintain replicated data. You must specify a user name if
network-based security is not enabled.
passwd – The password for the
maintenance user login name. You must specify a password unless a network-based
security mechanism is enabled.
dsi_connector_sec_mech –
Specifies the DSI connector security mechanism.
rs_error_class – The error class that
handles Replication Server errors for a database. The default is rs_repserver_error_class.
database_param – A parameter that
affects database connections from the Replication Server.
value – A character string that
contains a value for the option.
security_param – A parameter that
affects network-based security. See "Parameters Affecting network-Based
Security" table for a list and description of security parameters that you
can set with create connection. This parameter does not apply to
non-ASE, non-IQ connectors.
log transfer on – Indicates that the
connection may be a primary data source or the source of replicated functions.
When the clause is present, Replication Server creates an inbound queue and is
prepared to accept a RepAgent connection for the database. If you omit this
option, the connection cannot accept input from a RepAgent.
dsi_suspended – Starts the
connection with the DSI thread suspended. You can resume the DSI later. This
option is useful if you are connecting to a non-Sybase data server that does
not support Replication Server connections.
as active for – Indicates that the
connection is a physical connection to the active database for a logical
connection.
as standby for – Indicates that the
connection is a physical connection to the standby database for a logical
connection.
logical_ds – The data server name
for the logical connection.
logical_db – The database name
for the logical connection.
use dump marker – Tells Replication
Server to apply transactions to a standby database after it receives the first
dump marker after the enable replication marker in the transaction stream from
the active database. Without this option, Replication Server applies transactions
it receives after the enable replication marker.
2. Create the connection to the HANA
database (only can do manually with create connection command).
create connection to
<hana_server>.<hana_db>
using profile rs_ase_to_hanadb;ech
set username <userid>
set password <password>
HANA
DB Replicate Database Permissions
Replication Server requires a maintenance
user ID that you specify using the Replication Server create connection command
to apply transactions in a replicate database.
The maintenance user ID must be defined at
the HANA DB data server and granted authority to apply transactions in the
replicate database. The maintenance user ID must
have these schema privileges:
- CREATE ANY – allows the user to create tables, views, sequences, synonyms, SQL script functions, or database procedures in a schema.
- DELETE, DROP, EXECUTE, INDEX, INSERT, SELECT, and UPDATE – granted on every object stored in the specified schema.
Connection has to be created using profile rs_ase_to_hanadb;ech
Additional
Settings
Command
Batching : HANA DB does not support command batching.
Do not turn on command batching for the HANA DB database connection.
Dynamic
SQL: The dynamic_sql configuration
parameter is set to 'on' by default, and this setting is recommended for all
HANA DB connection profiles.
HVAR : If you have a Replication Server license
for Advanced Service Options, you can use Replication Server High-Volume
Adaptive Replication (HVAR) in replicating to HANA DB.
Direct
Load Materialization
Use direct load materialization to
materialize data between different kinds of primary and replicate databases.
- Direct load materialization is only for use with subscriptions to table replication definitions.
- Direct load materialization differs from other automatic materialization methods:
- No materialization queue is used with direct load materialization. Data is loaded directly from a primary table into a replicate table.
- Replication to other tables is not suspended during direct load materialization. DML operations on a primary table being materialized are stored in a catch-up queue and applied to the replicate table after the initial materialization phase. DML operations on a primary table that is not being materialized are replicated into the replicate table as the DSI receives them. Multiple tables can be concurrently materialized with direct load materialization.
- When subscription materialization stops due to an error, regular replication to other tables is not suspended.
- Multiple parallel threads can be used to load data from one primary table to its corresponding replicate table. You can tune this multi-threaded behavior with max_mat_load_threads.
- The atomic and nonatomic materialization methods described here are only supported for an Adaptive Server primary. For an explanation of the different types and methods of materialization, see the Replication Server Heterogeneous Replication Guide > Materialization > Types of Materialization and the Replication Server Administration Guide: Volume 1 > Manage Subscriptions > Subscription Materialization Methods.
Direct load materialization can be used to
materialize data:
- from Adaptive Server to HANA DB
- from Microsoft SQL Server to HANA DB
- from Oracle to HANA DB
- from DB2 UDB to HANA DB.
Note: Direct load materialization is not supported for materializing data into an Adaptive Server database
Restrictions
and Limitations for create subscription
- When the direct_load option is used, no other subscription can be created or defined at the same time for the same replicate table.
- The direct_load option is for subscriptions to table replication definitions only and is used withwithout holdlock. It cannot be used with without materialization or incrementally.
- The user and password options are used only with direct_load.
- You can only use the direct_load option against a physical database connection, not an alternate or logical connection. This is the case for both the primary connection—the connection specified in the replication definition—and the replicate connection—the connection specified in the subscription.
- The maintenance user of the primary database cannot be used in the user and password options to create subscriptions.
- You cannot use atomic materialization if the primary database is not Adaptive Server. For a primary database other than Adaptive Server, the only automatic materialization option supported is direct load.You cannot drop a subscription with the with purge option if the replicate database is not Adaptive Server.
- The direct_load option is available only if the replicate Replication Server site version and route version are 1571100 or later.
- You can use row filtering, name mapping, customized function strings and datatype mapping with subscriptions created using the direct_load option.
- Replication Server rejects any attempt to create a subscription with the direct_load option if the number of subscriptions being created has reached or exceeded num_concurrent_subs.
3. Create replication definition at primary
ASE database and mark it
create replication definition authors_rep
with primary at ASE_PS.pubs2
with all tables named 'authors'
(au_id varchar(11), au_lname varchar(40),
au_fname varchar(20), phone char(12),
address varchar(12), city varchar(20),
state char(2), country varchar(12), postalcode
char(10))
primary key (au_id)
searchable columns (au_id, au_lname)
replicate minimal columns
4. Create table at replicate HANA database
similar to Primary Table
using
SAP HANA Studio tools:
- Select your Schema and Right click on and select "New Table"
- Enter the Table Name
- Choose the Table Type, e.g. "Row Store"
- Enter the table columns/fields, data types, Key characteristics, etc. by clicking on the "+" sign similar to Sybase ASE Table, and click on the Create table icon (or F8) when it’s ready.
using
standard SQL
- Select your Schema. Right click and select "SQL Console". Otherwise you can also click on “SQL" button on top panel.
- Type the SQL statement in the SQL editor.
CREATE TABLE REP_TABLE1 ( UID INTEGER, UNAME VARCHAR(10),
UREMARKS VARCHAR(100), PRIMARY KEY (ID) );
click on the Execute (or F8)
5. Create subscription and verify.
At
the replicate Replication Server, create the subscription:
Create subscription sub_hana_authors_rep
for authors_rep
with Replication at HanaDB.TestDB
without holdlock
direct_load
go
Syntax
create subscription subscription_name
for replication_definition
with replicate at dataserver.database
[where search_conditions]
without holdlock
direct_load
go
check subscription subscription_name for repdef_name
with replicate at replicate_dataserver.replicate_database
go
When materialization is complete, Replication Server returns a message
similar to:
Subscription <subscription_name> has
been MATERIALIZED at the replicate.
When the subscription process is complete, Replication Server returns a message
similar to:
Subscription <subscription_name> is
VALID at the replicate.
If there is an error in the subscription process, the check
subscription command returns a message similar to:
Subscription <subscription_name>
encountered ERROR.
6. Start repagent and replication is ready
(Thanks much to the SAP Sybase Documentation and Many SAP geeks)
.
.