Internal Variables

Internal variables are denoted by _ (underscore character), e.g. "_INT_SETTING". 

Changing these variables will in most cases require a restart of the affected process. If in doubt as to the affected process, restart both MINE and APPLY processes.

 

Internal VariableDescription
_APPLY_COUNT_LOOKAHEAD_READDefault value 10000. This parameter sets the value at how many LCRs (Logical Change Records) are read while waiting for user resolution of conflict handlers: RETRY, PAUSE, ABORT.
_APPLY_COUNT_LOOKAHEAD_READ_FASTFAILDefault value 50. This parameter sets the value at how many LCRs (Logical Change Records) are read while waiting for conflict handlers set to DISCARD, OVERWRITE and FORCE.
_APPLY_DRIVER
  • AUTO (default)
  • OCI
  • PERL

Set the Database driver for the APPLY process on Oracle. By default it is using the OCI driver when applying to Oracle.

When the DBI Perl driver is being used for the APPLY process on Oracle then the internal variable _APPLY_OCI_PASSTHROUGH_TYPES must be set to NO to force conversion of the binary bind representation to ascii strings.

The Oracle OCI driver executes SQL at the APPLY Oracle db with no Perl interaction and the OCI driver is directly binding the binary representation whereas the Perl driver does not understand the Oracle internal binary representation and needs a converted string representation.


_APPLY_OCI_PASSTHROUGH_TYPES
  • YES (default)
  • NO

Pass values to APPLY SQL as-is instead of converting them to strings and using to_number/to_date on the result. Value YES improves APPLY speed, value NO can lead to value conversions if the source value is invalid. Applies for OCI only and currently for DATE/NUMBER only. This applies to number values with excessive decimal places and completely invalid date values (such as 0000-00-00 00:00:00). If the source has invalid dates, then set to YES.

_APPLY_MAX_RETRY_COUNTHow many times should APPLY try to run the conflicting SQL before the process is paused. Default value 20.
_APPLY_PLOG_CHECK_FATALDisable checksum checking when transferring PLOG file from source to target servers.
_ADD_SUPLOG

Adjusts the behaviour of adding supplemental log to the database during the setup.

  • AUTO (default): 10/11g checks if PK suplog exists and does not run the DDL if it does
  • NO: ignore all requests for suplog
  • YES: skip the check
  • For 9i the YES and AUTO are the same: enable suplog on all columns that are eligible (=not LOBs etc) and are not yet in a unconditional suplog group.
  • 9i does allow multiple log groups with same columns, so this tries to prevent reruns of -all.sh from creating duplicate groups.
_APPLY_THREAD_MEM_ACCOUNTING
  • NO (default)
  • YES

Set to YES to turn on extra memory counting for support purposes. It incurs overhead as it adds 16 bytes to each allocation. Negative counts may be possible when the data is read before applier is actually allocated.

_APPLY_THREAD_MEM_ACCOUNTING_ON_APPLIER_SHUTDOWN
  • NO (default)
  • YES

Set to YES to automatically dump information into the trace file on each applier(=transaction) close. Negative counts maybe possible when the data is read before applier is actually allocated.

_DDL_REPLICATE_PARTITIONS

Controls whether Replicate will allow the Oracle 12c commands to propagate. The target of course must also be 12c.
TRUNCATE partition and EXCHANGE partition works when _DDL_REPLICATE_PARTITIONS is set to YES, replicate partition-related DDL will be replicated only if this setting is set.  Partition names cannot be system generated

  • NO (default)
  • YES
_DELETE_OBSOLETE_PLOGS

Set this to NO to turn off the housekeeping of the PLOG files.

  • YES (default)
  • NO

Example to stop the automatic removal of PLOG files on APPLY:

set APPLY._DELETE_OBSOLETE_PLOGS NO
_DELETE_OBSOLETE_RLOGS 

Set this to NO to turn off the housekeeping of the redo log files transferred from the Fetcher process to the mine_stage directory on the MINE server.

  • YES (default)
  • NO

_DELETE_OBSOLETE_DEBUG

  • NO (default)
  • YES

Turns on debugging for housekeeping of PLOG and redo logs. Extra information will appear in the MINE and or APPLY log files which indicate why PLOGS or redo logs have been deleted or not.

Example of debugging information is:

2013/11/28 10:16:43 INFO> Redolog file /home/oracle/d112F/mine_stage/o1_mf_1_45897_99dph3dl_.arc eligible (1) for deletion; size 0<524288000, age 2532<3600
2013/11/28 10:16:43 INFO> Redolog file /home/oracle/d112F/mine_stage/o1_mf_1_45897_99dph3dl_.arc eligible (2) for deletion; size 0<524288000, age 2532<3600
2013/11/28 10:16:43 INFO> Redolog file /home/oracle/d112F/mine_stage/o1_mf_1_45898_99dph6gh_.arc eligible (1) for deletion; size 0<524288000, age 2531<3600
2013/11/28 10:16:43 INFO> Redolog file /home/oracle/d112F/mine_stage/o1_mf_1_45898_99dph6gh_.arc eligible (2) for deletion; size 0<524288000, age 2531<3600
_DPUMP_SKIP_MODE_ENABLED

Skip replicating records being inserted by datapump with jobname beginning with DP_ddcname

  • YES (default)
  • NO

The program name must begin with ORACLE or oracle and contain DW or udi.

_ENABLE_5_19_PARSE 

Enables or disables processing of auditing information. This information is used by CDC/Audit function or by querying the DBRSAPPLY_PKG package on the target database (e.g. in triggers).

This information includes source sid, serial#, transaction id, os user, os machine, login name.

  • YES: (default) enables this information
  • NO: disables this information

Setting this to NO can improve the performance of the MINE process.

Only change this setting once Dbvisit Replicate initialization has been completed. If not then the message "MINE IS running, initialization NOT yet complete." will not disappear

Changing this requires a restart of the MINE and APPLY processes.

_EXIT_CONDITION

Specify if both online redo logs and archive logs should be use or archive log only (archivelogs only) files exclusively.

  • FOREVER (default, use both online redo and archive logs)
  • ARCHONLY (use only archive logs)

Set this in the *MINE.ddc only.

Changing this requires a restart of the MINE process.

Deprecated in 2.6.0.4. See MINE parameter  REDO_READ_METHOD.

_FORCE_LD_PATH_ALL

If set to yes, we add ORACLE_HOME (which is set in DDC to ASM home if ASM is used) to front of LD_LIBRARY_PATH. This forces use of Oracle libraries in ASM home, instead of the Oracle Instant Client bundled within dbvrep. This parameter is typically not needed for RedHat or Oracle Linux installs. Suse Linux typically requires this.

_FORCE_LD_PATH_SYSDBA

If set to yes, we add ORACLE_HOME (which is set in DDC to ASM home if ASM is used) to front of LD_LIBRARY_PATH. This forces use of Oracle libraries in ASM home, instead of the Oracle Instant Client bundled within dbvrep. This parameter is typically not needed for RedHat or Oracle Linux installs. Suse Linux typically requires this. This is for as sysdba connections only (which is used only for connection to ASM instances).

_LOG_ERRORS_TO_DATABASE

Log errors to the Dbvisit Replicate data dictionary. Values are:

  • YES (default)
  • NO
_MINE_ADD_TRAILING_NULLCOLS_ON_UPDATE_FORCE

Ensure that you are also adding supplemental logging on ALL columns. Any columns that are not present are thus either non-loggable, or trailing NULLs. Replicate will add all trailing NULLs for updates when the value is set to yes. Values are:

  • YES
  • NO (default)

In order to avoid conflicts on replicate internal tables, it is necessary to enable supplemental logging also on following 3 tables:

alter table DBVREP.DBRSCOMMON_HEARTBEAT add supplemental log data (ALL) columns;
alter table DBVREP.DBRSOBJ$ add supplemental log data (ALL) columns;
alter table DBVREP.DBRSUSER$ add supplemental log data (ALL) columns;

_MINE_AUTO_PREPARE_BY_NAME_STORE

 

  • NO (default)
  • YES
_MINE_AUTO_PREPARE_BY_NAME_USE

Setting the parameter to YES,

  • NO (default)
  • YES
_MINE_DETECT_DUPLICATES_IN_ASSEMBLY

 

  • YES
  • NO (default)
_MINE_FIX_INVALID_DATACheck date values for various types of invalid data and replace with new value. Values:
 1: zeroes at invalid places: year 0, month 0, day 0, hour -1, minute -1 or second -1.
[no further checks implemented now]
_MINE_FIX_INVALID_DATE_NEW_VALUEString representation of hex value to be used as the new value if DATE is found to be invalid. Can be empty (=NULL) or 7 bytes (=14 hex chars) of the new value. Use dump(datecol,16) to get the desired value. Do not use dump(PL/SQL expression,16), this gives different representation of date value. Please see Dealing with invalid dates for a full example of how this value works.
_MINE_KEY_IMAGE_ON_PK_UPDATE
  • Continue treating the Primary Key as a primary key and not as OLD/NEW values. Setting this value to NO will often break Conflict Handlers that have Primary Key updates.
  • NO
  • YES (Default)
_MINE_KEY_IMAGE_PREFER_SUPLOG
  • Setting the parameter to YES, means that it will look for manually set supplemental log groups. No means it will look for Primary Key or Unique key groups.
    Default: NO. Use YES only if users want to control supplemental groups manually and they should override any existing PK/UQs.

      • NO (Default)
      • YES
_MINE_KEY_IMAGE_WITH_ALL_LOGGING
  • If a user selects to supplementally log all columns (sets _PREPARE_SUPLOG_TYPE=ALL), this parameter determines how those columns should be treated. If set to YES then all supplemental Logging columns would be treated as the Primary Key. (Which could make the usefulness of overwrite/force conflict handlers obsolete for these records)
  • NO
  • YES (Default)
_MINE_RAC_SKIP_THREADSIf one (or more) of the instances are down in an RAC environment, this parameter allows MINE to start and will only work on the instances that are up.
  • Comma separated list of redo threads that MINE will ignore. The redo thread is gather from THREAD# is v$log, v$thread, etc.
_MINE_REPORT_INVALID_DATASame as _MINE_FIX_INVALID_DATA, but governs printing to log, not the actual value change. Values are:
  • 1 (prints the warning to the log)
  • 0 (disables the printing of warnings to the log)
_MINE_UPDATE_RBA_ON_VOID
  • NO (Default)
  • YES

Specific for RAC source database. Setting to YES ensures threads are synched in the correct order.

Setting can create MINE gap up to _MINE_FORCE_LOGSWITCH_IDLE_TIME (180s) on an idle database

 _MINE_WRONG_ORDER_FATAL

Debug RAC thread merging.

  • NO
  • ARCHONLY
  • ALL
 _NETWORK_TRAFFIC_DEBUG
  • 1 Turn on debugging
  • 0 Turn off debugging

To set use the following command from the Dbvisit Replicate command console:

dbvrep> engine mine send memory_set _NETWORK_TRAFFIC_DEBUG 1

 

Enable network traffic debugging. Useful for Dbvisit support when PLOG files are not being transferred consistently from MINE to APPLY.

Turn on the debugging for about 1 hour and then upload the MINE log file to Dbvisit support.

The following messages in the APPLY log are indication of network issues:

INFO> PLOG 699697 not yet available. 
INFO> Contacting mine to switch logs. 
WARN> WARN-4502: Timeout waiting for incoming data (timeout 300s) - get command.
_NOTIFY_ENABLESet to NO to disable notifications. This disables all smtp (mail) and snmp notifications.
_PREPARE_SUPLOG_TYPE

Controls the supplemental logging parameter. The default of PK will set supplemental logging to just include the Primary Key. The value of ALL will be ALL available columns that can have supplemental logging. (ie except for columns that don't allow it BLOB, CLOB, etc).

  • PK (default)
  • ALL

_SUBPROFILER

In some cases, sub profiling can also be enabled to obtain finer grained profiling information.

Profiling needs to be enabled before sub profiling can be turned on. Please see Dbvisit Replicate Profile Performance Statistics

To turn on sub profiling:

_SUBPROFILER=YES
_TCP_CONNECT_TIMEOUT

How long to wait for connection until timeout.

Default is 60 seconds.

If the following message is seen in the APPLY log:

WARN-4502: Timeout waiting for incoming data (timeout 60s) - get command.

Then increase this to 300 seconds.

Requires MINE and APPLY process restart: Yes

For this value to be updated, it requires NETWORK_QUALITY = WAN

_TCP_RECEIVE_TIMEOUT

How long to wait for receive until timeout.

Default is 60 seconds.

If the following message is seen in the APPLY log:

WARN-4502: Timeout waiting for incoming data (timeout 60s) - get command.

Then increase this to 300 seconds.

Requires MINE and APPLY process restart: Yes

For this value to be updated, it requires NETWORK_QUALITY = WAN

_TCP_SEND_TIMEOUT

How long to receive confirmation of send until timeout.

Default is 60 seconds.

If the following message is seen in the APPLY log:

WARN-4502: Timeout waiting for incoming data (timeout 60s) - get command.

Then increase this to 300 seconds.

Requires MINE and APPLY process restart: Yes

For this value to be updated, it requires NETWORK_QUALITY = WAN

_THREADED_OCI
  • AUTO (Default)
  • YES
  • NO

Determines if multiple Apply processes should be run to apply the changes. Auto means YES for ORACLE and NO for non-Oracle targets. Yes, means that there are multiple Apply process and that changes are being applied in parallel. Setting to NO, means there is only one Apply process and the changes will be applied serially.

For more explanation, please see Apply processes overview

_MINE_LCRLIST_SPILL_ENABLED

  • YES (Default)
  • NO

Enabling

_MINE_LCRLIST_SPILL_SIZE_TO_START

  • 1000000

threshold of spilling

if below this size, do not start spilling at all

_MINE_LCRLIST_SPILL_BLOCK_SIZE

  •  int default 500000

how much is written in one spill

_MINE_LCRLIST_SPILL_KEEP_IN_MEMORY

  •  int default 50000

how much is left in memory after spill (=so an immediate rollback does not mean we have to reread)

_APPLY_STATEMENT_ROLLBACK_WHEN_TOO_MANY

  • YES (Default)
  • NO
_RESOLVE_APPLY_LOCKS

Aborts apply when dead lock is detected, created file with list locked transaction. After restart APPLY the file with transaction list, those transaction will be executed in pessimistic mode

  • YES
  • NO (Default)

Option Yes leeds stopping APPLY when lock happens, saving names of locked transaction, in the next start APPLY looks thought those transaction (maximum deep length defined by setting _APPLY_COUNT_LOOKAHEAD_READ) excludes rollbacked operation from execution.

For avoid stopping service, it needs to set replicate service to restart after unexpected stopping.

Control Panel → System and Security → Administrative Tools → Services → Db replicate service properties in Recovery tab set Restart the Service for all options (First failure, Second failure, Subsequent failures)