The use of shadow tables requires that you follow certain guidelines when you do regular
administration tasks such as backing up, restoring, reorganizing, and redesigning
databases.
Review and follow the guidelines in the following sections:
Starting and stopping Db2 and IBM
InfoSphere Change Data Capture
processes
For
Db2
environments that use shadow tables, start the processes in the following sequence so that
replication works without any additional intervention:
- Start the Db2 instance. For more information, see Starting instances (Linux®, UNIX).
- Start the InfoSphere CDC Access
Server processes by
entering the following
commands:
cd /access-server-installation-dir/bin/
nohup ./dmaccessserver &
- Start the InfoSphere CDC instance by
entering the following
commands:
cd /cdc-installation-dir/bin
nohup ./dmts64 -I cdc-instance-name &
Table space backup and restore for shadow tables
When you design a backup strategy for shadow tables, consider all the database objects that are
involved with shadow table operation to ensure the smooth running of the database after a restore.
Because source tables, shadow tables, and InfoSphere CDC metadata can be
in different table spaces, you must back up and restore relevant table spaces together.
- Table spaces that are associated with shadow tables
- The table spaces that are associated with shadow tables are the table spaces that contain the
following tables:
- Source table and shadow table pairs. It is common practice to place a source table and a shadow
table in separate table spaces. For backup and restore, you must back up and restore together the
table spaces for source-shadow table pairs. Restoring only the table space that contains a source
table to a previous point in time can place the shadow table in a drop-pending state. Restoring only
the table space that contains the shadow table can place the shadow-table in an integrity-pending
state.
- InfoSphere CDC
metadata tables. These tables are created in the default user table space when you create the
InfoSphere CDC
instance. You should move these tables into a specific table space during the instance setup. For
more information about moving these tables, see Setting up the InfoSphere CDC instance for shadow tables. You must back up these
tables together for recovery purposes. Recovering these tables is required only in the case of table
space corruption.
You can use the following query to identify all table spaces that are associated with shadow
tables:WITH TABLELIST as (
SELECT TABSCHEMA, TABNAME
FROM SYSCAT.TABLES
WHERE SUBSTR(PROPERTY,23,1) = 'Y'
OR TABNAME IN ('TS_AUTH', 'TS_BOOKMARK', 'TS_CONFAUD',
'TS_DDLAUD')
UNION SELECT BSCHEMA as TABSCHEMA, BNAME as TABNAME
FROM SYSCAT.TABLES, SYSCAT.TABDEP
WHERE SUBSTR(SYSCAT.TABLES.PROPERTY,23,1) = 'Y'
AND SYSCAT.TABLES.TABNAME = SYSCAT.TABDEP.TABNAME
AND SYSCAT.TABLES.TABSCHEMA = SYSCAT.TABLES.TABSCHEMA
)
SELECT substr(SYSCAT.TABLES.TABSCHEMA,1,30) as TABSCHEMA,
substr(SYSCAT.TABLES.TABNAME,1,30) as TABNAME,
substr(TBSPACE,1,30) as TBSPACE,
substr(INDEX_TBSPACE,1,30) as INDEX_TBSPACE,
substr(LONG_TBSPACE,1,30) as LONG_TBSPACE
FROM SYSCAT.TABLES, TABLELIST
WHERE SYSCAT.TABLES.TABNAME = TABLELIST.TABNAME
AND SYSCAT.TABLES.TABSCHEMA = TABLELIST.TABSCHEMA;
- Backup strategies
- You must back up together all the table spaces that are associated with a source-shadow table
pair to the same backup image. You can also back up in one image the table spaces for two or more of
source-shadow table pairs. What is important is that the table space for a source table and its
corresponding shadow table are in the same backup image. For example, if the source tables are in
the BASE table space and the shadow tables are in SHADOW table space, back up these two table spaces
as
follows:
BACKUP DATABASE db2-database-name TABLESPACE (BASE, SHADOW) ONLINE
Optionally,
you can back up the table space that contains the InfoSphere CDC metadata tables
to the same backup image. For example, if the InfoSphere CDC metadata tables
are in the REPL table space, back up the table spaces that contain the source, shadow, and InfoSphere CDC metadata tables
to one backup image as
follows:BACKUP DATABASE db2-database-name TABLESPACE (BASE, SHADOW,REPL) ONLINE
To
back up table spaces that contain shadow tables, follow the steps in Backing up table spaces in shadow table environments.
- Restore and rollforward strategies
- You can recover table spaces for individual source-shadow table pairs independently of other
source-shadow table pairs. After a rollforward, flag the source table for refresh before you start
mirroring.
It is normal practice to restore only table spaces that contain source-shadow table
pairs and to exclude the table space that includes the InfoSphere CDC metadata tables.
Recovery of the table space that contains the InfoSphere CDC metadata tables
is required only in cases of table space corruption, such as due to a disk failure. If you recover
the table space that contains the InfoSphere CDC metadata tables,
you must flag all source tables for refresh before you start mirroring.
To prevent inaccurate
latency information from being communicated to the Db2 database through the
SYSTOOLS.REPL_MQT_LATENCY table, reset to zero the columns in this table after you end replication
because of a restore.
To restore and rollforward table spaces that contain shadow tables,
follow the steps in Restoring table spaces in shadow table environments.
- InfoSphere CDC
replication configuration data
- InfoSphere CDC for
Db2 stores
replication configuration data for the InfoSphere CDC instance in a
metadata database. This database is stored in files in the cdc-installation-dir and is different from the InfoSphere CDC metadata tables,
which are related to replication and are stored in the Db2 database. Back up the
replication configuration of your InfoSphere CDC instance after
you do the initial setup of the subscription for shadow tables and after you update this
subscription by adding or dropping a table mapping for a shadow table. To back up the replication
configuration, use the dmbackupmd command.
Under normal circumstances, you do
not have to restore the replication configuration of your InfoSphere CDC instance.
However, if you restore shadow tables to a point in time in the past, ensure that you restore from a
backup of the replication configuration data that you made at that point in time. Restoring from
this backup ensures that the table descriptions that are stored in the replication configuration
data match the table information in the Db2 system
catalog.
To back up and restore table spaces that contain shadow tables, follow the steps in Backing up table spaces in shadow table environments and Restoring table spaces in shadow table environments.
Shadow table statistics
Keeping table statistics, including shadow table statistics, up-to-date is essential for query
performance. To keep your table statistics up-to-date, use one of the following approaches:
Table and index reorganization
This activity can increase the efficiency with which the database manager accesses your tables.
Use one of the following approaches:
Table operations that interrupt InfoSphere CDC
replication
InfoSphere CDC
maintains and depends on metadata that describes source tables, shadow (target) tables, and columns
that are being replicated. If the source or target table structures change as a result of a data
definition language (DDL) statement being issued, these changes interrupt replication because
InfoSphere CDC can no
longer read the database log records during mirroring due to the discrepancy with the existing
metadata. In addition, any operation that triggers and error can also interrupt InfoSphere CDC replication.
Review the following list of table operations that can interrupt
InfoSphere CDC replication and
the proper actions that you can perform to minimize this interruption for each operation:
- Altering
the structure of a source table
- Issuing the ALTER TABLE ADD COLUMN statement on a source table interrupts replication. To safely
perform these DDL operations without disrupting replication, follow the instructions in Performing table operations on source tables that can interrupt InfoSphere CDC replication.
- Altering the logging properties of a source table
- Issuing the ALTER TABLE DATA CAPTURE NONE or ALTER TABLE ACTIVATE NOT LOGGED INITIALLY statement
on a source table results in InfoSphere CDC not being able to
detect any changes to source tables. InfoSphere CDC requires that
DATA CAPTURE CHANGES is enabled on all source tables. You should not issue these statements on
source tables.
- Dropping a source or shadow table
- Issuing the DROP TABLE statement on a source or shadow table for which replication
is active returns an InfoSphere CDC error and stops
replication. Before you drop a source or shadow table, stop replication, delete the table mapping
for that table, and restart replication. For more information, see To delete a table mapping.
- Updating a unique key
- During the InfoSphere CDC apply phase,
updating a unique key might cause the uniqueness check on a shadow table to fail. The reason is that
the updates from the Db2 logs and the
uniqueness checks are applied one row at a time instead of performing deferred uniqueness checking.
If the update of unique key fails, you must perform a refresh of the shadow table and restart
replication. For more information, see Restarting replication when table operations cause replication to end.
- Loading data to a source table
- Issuing the LOAD command on a source table when replication is active makes
the subscription fail and stops replication. Populating a source table with the
LOAD command also stops replication because the data for this operation is not
logged and replication to the shadow table is not possible. To load the data to your source table
with minimal impact to replication, follow the steps in Performing table operations on source tables that can interrupt InfoSphere CDC replication.
- Updating shadow tables by InfoSphere CDC
-
While replication is active and mirroring is in progress, if InfoSphere CDC fails to update a
shadow table because the database manager returns an error, you must perform a refresh of the shadow
table and restart replication. For more information, see Restarting replication when table operations cause replication to end.
Unsupported table operations on source tables of shadow tables
The following table operations are unsupported on a source table that has a shadow table:
- ALTER TABLE RENAME column-name
- ALTER TABLE DROP column-name
- ALTER TABLE ALTER COLUMN column-name
- RENAME TABLE
- ADMIN_MOVE_TABLE
- db2convert
If you try to perform any of these operations, an error is returned.
Before you apply any of these operations to a source table, you must end replication and drop the
associated shadow table. You can then apply the action to the source table. Next, re-create the
shadow table, and then (unless the operation was to issue the RENAME TABLE statement), refresh the
InfoSphere CDC table
mapping for the shadow table. If the operation was to issue the RENAME TABLE statement, instead of
refreshing the table mapping, delete it and re-create it, specifying the new source table name.
To apply any of these operations to a source table, follow the guidelines in Performing unsupported table operations on source tables that have shadow tables.