Replication of TimeSeries data types

You can replicate tables that have columns with TimeSeries data types. You must prepare all replication servers and create time series instances before you create replicates that include TimeSeries columns.

Server preparation

All database servers must run HCL OneDB™ version 12.10 or later.

Before you create a replicate, do the following tasks on all replication servers that will participate in replicating time series data:

  1. Set the CDR_TSINSTANCEID configuration parameter to a different value on every replication server to ensure that time series instance IDs do not overlap. You cannot replicate time series instances that were created before you set the CDR_TSINSTANCEID configuration parameter.
  2. Create containers that have the same names on all replication servers. You cannot use containers that are created automatically or rolling window containers. If you add containers after replication is set up, add containers with the same names on all replication servers at the same time. The containers can be in different locations on each server.
  3. Create the same time series calendars that have the same names on all replication servers.
  4. Create time series tables on all replication servers. You cannot use the option to automatically create replicated tables when you define a replicate or template. You cannot nest a TimeSeries data type within a TimeSeries data type.
  5. Create time series instances. You must specify the container name.
Tip: You can quickly set up your replication servers by doing all but the first of these steps through a grid, however, all grid servers must be running HCL OneDB version 12.10 or later.

Rules for defining a replicate

You must follow these rules when you define a replicate for a table that contains a TimeSeries column:

  • The replicate must be a mastered replicate.
  • The Projection list in the participant definition must include all columns in the table.
  • The WHERE clause in the participant definition cannot include a TimeSeries column.
  • You cannot define a participant as send-only.
  • The conflict resolution rule must be always-apply.
  • The replication key cannot include an opaque data type.
  • You cannot enable conversion to and from UTF-8 (Unicode) when you replicate data between servers that use different code sets.
  • You cannot use the --autocreate option to create tables that have TimeSeries columns. You must create time series tables on all servers before you define replicates.
  • You cannot generate ATS or RIS files in XML format. ATS and RIS files must be in text format.

Restrictions

You cannot run a shared query on a table that includes a TimeSeries column. You can, however, run grid queries on a virtual table that is based on a table that has a TimeSeries column.

You cannot use the following commands on replicates that include TimeSeries columns:

  • cdr alter
  • cdr remaster
  • cdr start sec2er
  • cdr swap shadow

You cannot use the following options when you check or repair inconsistencies on a replicate that includes a TimeSeries column:

  • The --deletewins option in the cdr check replicate or cdr check replicateset command
  • The --extratargetrows=merge option in the cdr sync replicate, cdr sync replicateset, cdr check replicate, or cdr check replicateset command
  • The --since option in the cdr check replicate or cdr check replicateset command
  • The --timestamp option in the cdr check replicate or cdr check replicateset command
  • The --where option with a TimeSeries column in the WHERE clause in the cdr check replicate command

Although you can add and index an ifx_replcheck column on a replicated table that includes a TimeSeries column, the speed of consistency checking is not affected.