Here are some frequently asked questions about the SAP Replication Server Data Assurance Option.
Yes. Replication Server Data Assurance Option is available as a separately licensed product for Replication Server and supports Replication Server versions 15.1 and later. The Replication Server Option or DA describes both the DA Server and the DA agent(s):
Replication Server Data Assurance Option is licensed through SySAM license manager and is available on multiple platforms. For more information about obtaining a license refer to the Obtaining a license section of the DA Installation guide.
Some of the advantages of installing separate DA agents are:
You can check the version of the DA server (or DA agent) in the following two ways:
a) On the command prompt, from the DA installation directory, execute the version command:
1> version
2> go
The returned result is:
VERSION
-------------------------------------------------------------------------------------------------------------------------------------------------------
SAP Replication Server Data Assurance Option - DA Server/15.7.1/SP304/P/generic/generic/damain/746/VM: SAP AG 1.8.0_45/OPT/Thu 28 Apr 2016 04:52:18 GMT
(0 rows affected)
b) Run one of the DA jar files with:
<PATH_TO_JAVA>\java –jar <PATH_TO_DA_LIB>\da-app.jar
For example, form the top-level SAP directory of the DA installation use the Sybase shared JRE and run:
:/sap> ./shared/SAPJRE-8_1_008_64BIT/bin/java -jar ./DA-15_5/server/lib/da-app.jar
The returned result is:
SAP Replication Server Data Assurance Option - DA Server/15.7.1/SP304/P/generic/generic/damain/746/VM: SAP AG 1.8.0_45/OPT/Thu 28 Apr 2016 04:52:18 GMT
(0 rows affected)
Does DA lock the source and target tables while it compares them?
DA doesn’t lock the entire table. DA doesn’t issue any explicit lock commands to the source and target data servers. What it does is execute the table SELECT statements with the default isolation-level of READ COMMITTED. The implementation of the SELECT statement varies across different data servers, but it typically involves acquiring and releasing the read-locks on a row-by-row or page-by-page basis.
Yes, you can use a WHERE clause to filter the table rows that you want to compare.
Add a WHERE clause to the compareset definition, for the source and/or the target:
create compareset persons_30plus
with source ase1 dbo person src
where “dateadd(yy, 30, birthdate) >= getdate()”
target hana1 PPL PERSON tgt
where “ADD_YEARS(BIRTHDATE, 30) >= NOW()”
map all
go
The WHERE clauses are appended to the SELECT statements that DA issues against the source and target data servers.
No, but for DA to compare two tables effectively, each table must have a column, or combination of columns, that can uniquely identify each row in the table. In DA, this is called the row key. Table columns that often make the best row keys are PRIMARY KEY columns, IDENTITY columns, and columns with a UNIQUE INDEX. However, any column, or combination of columns, that uniquely identifies each row in the table will suffice.
The create compareset … map all command automatically detects and assigns PRIMARY KEY and IDENTITY columns, and columns with a UNIQUE INDEX as row keys. If no such columns exist, all non-LOB columns are set as row keys.
Warning: If the columns assigned as the row key are neither a PRIMARY KEY nor an IDENTITY and do not have a UNIQUE INDEX, ordering by these columns can put a tremendous strain on the data server. Consider using DA external sort in these circumstances.
Warning: If the columns assigned as the row key are not unique, DA aborts the comparison (either immediately or after the first compare all phase) with a duplicate key error.
The throughput for row comparison can vary greatly. For example, the DA server row comparison is in-memory, quick, and (often) relatively simple; it is unlikely to be a bottleneck.
The time it takes for the JDBC driver to obtain the rows from the data servers usually governs the comparison throughput. The comparison is as fast as the slowest of the source and target data servers.
Note: Throughput for the row comparison does not include the additional time it takes for DA to perform an external sort, if configured.
Yes. There is no requirement to install DA server or DA agent on the same server as the SAP Replication Server, the primary database, or the replicate database.
In a live replication environment, there typically are false positive results. However, these false positives are driven by environmental factors, such as the frequency of table updates or whether you run DA during quiet times.
DA has a two-part strategy for eliminating false positive results:
The primary rows are not re-selected (they are cached during the initial compare) so as to ignore further updates to the primary table.
2. If the re-compare differences method fails, DA uses the single and final verify differences compare phase. During this phase, DA re-selects and re-compares all rows that are still different from both the primary and replicate tables.
Note: DA is prone to false positives caused by replication latency in the same way as the initial compare. Any differences that exist after the verify differences phase have to be investigated manually.
The easiest way to explain direct reconciliation is to first talk about non-direct reconciliation. Non-direct reconciliation is when you use an AUTO_RECON or CREATE_RECON_SCRIPT to reconcile your data. Non-direct reconciliation requires a minimum of three steps: compare all rows (perhaps with row column hashing); verify all differences (creating a column log of literal column values), and; reconcile the differences (script or auto). While Non-direct reconciliation might seem safer, it’s also relatively slow and drags down performance.
With direct reconciliation, the compare and reconcile steps occur simultaneously. Therefore, to make reconciliation faster, use direct reconciliation, which:
For more information about Non-direct and Direct reconciliation refer to the Comparison and Reconciliation Strategies section of the DA User’s Guide.
A LITERAL column value is a column value as it appears in the database table. A ROW_HASH is an MD5 or CRC32 hash of one or more column values.
The following diagram shows how different options affect the comparison of a four-column table with 1 GB of data.
There are no definite rules about using any of these options. Choose your desired option based on the rate at which a data server can deliver rows, and the speed of the network. As a general rule:
Yes. DA has several configuration options to help manage running jobs concurrently:
Typical usage: Use this option to avoid starving DA of resources (CPU/memory).
Typical usage: When a job has comparisons that all use the same source and target databases, use this option to avoid hitting a database too hard.
Typical usage: Use this option to ensure that the most important tables are compared first.
For more information about these configuration options refer to the Command Reference and Agent Command Reference sections of the DA User’s guide.
The compare thread allocator of DA manages multiple compare threads. The comparer_max_concurrent_threads configuration parameter specifies the maximum number of comparisons that can run simultaneously.
When the number of comparisons submitted to run exceed the limit specified by the comparer_max_concurrent_threads configuration parameter, DA allocates the compare threads as follows:
For more information about thread management, refer to the Compare Thread Management topic in the DA User's guide
For SAP Adaptive Server Enterprise, SAP IQ, and SAP HANA DA server, you do not need to install JDBC drivers as DA server and DA agent ship with the preconfigured drivers.
To install JDBC drivers for MSSQL, UDB, and Oracle, follow the steps mentioned in the DA Quick Start Guide and the Configuring JDBC Drivers section of the DA User’s guide.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
29 | |
21 | |
10 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 | |
5 |