Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Please also see our forums for technical questions and solutions with Dbvisit Replicate: http://www.dbvisit.com/forums/forumdisplay.php?f=37

We are replicating a lot of tables (170) and we are not seeing the prompt in the Dbvisit Replicate console.

Even when the console is listing all the tables being replicated, the command prompt is still available. However, the table listing can be so long that the prompt cannot be seen. By default, 30 tables are listed for each replication, thus for a 2-way replication, it takes up to 70 screen lines.

 
To change this, edit the *-MINE.ddc file and add line:

No Format
set STATUS_BAR_ACTIVE_TABLES 5

Or enter this command at the console prompt. Restart the console for this change to take affect.


...

Why does the mine process have to go back to previous logs when it restarts?

The mine process always has to go back to the start of the oldest active transaction, or  last obsolete redo log, starting always on a redo log boundary. That is why on re-start the mine has to go back to a previous log (plog) when it restarts. Note that Dbvisit Replicate will never remove a plog that still has an active transaction.

...

How do we see the progress of the replication?

To asses how the replication is going, start the Dbvisit Replicate console. Then look at the first lines that display datetime, log sequence and SCN of the mine and apply processes. These numbers should be constantly updating as the replication is happening in real-time. 

The first time you start the replication, it starts at the time as of when the *-apply.sh script was run; on subsequent restarts, it needs to go back to the start of the oldest active transaction.


...

How is 2-way (active-active) replication different to 1-way replication?

...

No Format
bgColorCCC
dbvrep> choose replication mine1

 

...

What are the important commands to run when diagnosing Dbvisit Replicate?

The following commands should be run from the Dbvisit Replicate console:

No Format
HEALTHCHECK
SHOW TYPE
SHOW PEER
SHOW INTERFACE
SHOW UNIQUE_ID

Check that the hostnames and database names resolve to correct targets on all machines involved.

Please also see Basic Commands and General Check


...

How can I check on which interfaces and ports Dbvisit Replicate is listening?

Run the following command in the Dbvisit Replicate console:

No Format
SHOW INTERFACE

 

...

Our source is Oracle on Linux and our target is Microsoft SQL Server. Do  Do we need a Linux Microsoft SQL Server ODBC driver on the source Linux server? Can we use the FETCHER process to avoid the Linux ODBC driver?

The Mine process does not connect to the target database and thus does not need any ODBC drivers for Linux. So you do not need the FETCHER process. Apply is usually running locally with the database, and because that is Windows and it is a local MSSQL connection so that will work.

 
Dbvisit Replicate Console needs to connect to both MINE and APPLY, so it will need an ODBC connection. The simple solution is to run the console on the target server and you will not need an Linux MSSQL ODBC driver.

 

...

How can we manually compare the data between source and target and optionally apply the differences?

Please see Comparing the data between source and target


...

Does Dbvisit Replicate work with SELinux?

Currently Dbvisit Replicate does not work with Security-Enhanced Linux. When the dbvrep executable is run, there is an error message: libnnz11.so: cannot restore segment prot after reloc: Permission denied

 

To check if SELinux is enabled, run command:

No Format
/usr/sbin/getenforce

If the output is "Enforcing" then SELinux is enabled. 

 

To disable SELinux, please see http://www.crypt.gen.nz/selinux/disable_selinux.html

...

We recommend having a PK on target tables. Updates and delete SQL statements have where clauses that include the source PK columns. They are usually used to locate the row (index lookup). If there are no indexes and the tables are not small, performance of updates/deletes will suffer on the target.

 

...

If the apply is in sync, what exactly means a table with less than 100%

The counters not at 100% are caused by the IGNOREALL handler - this handler ignores all changes done in a transaction after the conflicting statement; use IGNORE to skip just the one change.


...

 What is the Error: Command affected 0 row(s).

Command affected 0 row(s), are caused by the data being out of sync before the replication starts. It means that a record was updated or deleted on the source database and when the update or delete SQL was applied to the target database, the record to update or delete was not found. Investigate why the data was not there on the target. It is possible to ignore this with the IGNORE conflict handler.

 For more information please see Conflicts and Conflict Resolution


...

Are Materialized views supported?

Materialized views are not supported. You can replicate a materialized view, but the target must be an ordinary table.


...

Mine is at 100% CPU. Is anything wrong

...

If the message says: "Escape character is" then the connection is successful.


...

How can I configure dbvrep to fetch logs from each RAC instance since they are on private storage? 

This configuration is not recommended and is not directly supported by the mine process. A workaround is to use multiple fetchers (usually one for each server), so they can access the redo/archive logs. However, this is not directly supported by the setup wizard and thus the configuration will need some manual work to set up.

The recommended way is to cross-mount the private storages, e.g. using NFS, so the logs are accessible from the machine where the mine runs.


...

If the LOB is stored out-of line (i.e. it is larger than 4000 bytes) will it still be replicated?

 Yes.

 

...

Does Replicate handle Multibyte charactersets like Japanese Kanji?

Yes, if they are stored on the source database as utf8/utf16 (Unicode).

...