What's New in Oracle Streams?

This section describes new features of Oracle Streams for Oracle Database 11g Release 1 (11.1) and provides pointers to additional information.

Oracle Database 11g Release 1 (11.1) New Features in Oracle Streams

The following Oracle Streams features are new in Oracle Database 11g Release 1 (11.1):

Oracle Streams Topology and Oracle Streams Performance Advisor

The Oracle Streams topology identifies individual streams of messages and the Oracle Streams components configured in each stream. An Oracle Streams environment typically covers multiple databases, and the Oracle Streams topology provides a comprehensive view of the entire Oracle Streams environment.

The Oracle Streams Performance Advisor reports performance measurements for an Oracle Streams topology, including throughput and latency measurements. The Oracle Streams Performance Advisor also identifies bottlenecks in an Oracle Streams topology so that they can be corrected. In addition, the Oracle Streams Performance advisor examines the Oracle Streams components in an Oracle Streams topology and recommends ways to improve their performance.

Automatic Data Type Conversion During Apply

During apply, an apply process automatically converts certain data types when there is a mismatch between the data type of a column in the row logical change record (row LCR) and the data type of the corresponding column in a table.

Simplified Way to Restore Default Values for Parameters

You can set a capture process parameter to its default value by specifying NULL for the value of the parameter in the DBMS_CAPTURE_ADM.SET_PARAMETER procedure. Similarly, you can set an apply process parameter to its default value by specifying NULL for the value of the parameter in the DBMS_APPLY_ADM.SET_PARAMETER procedure.

Oracle Streams Supports Tables in a Flashback Data Archive

In prior releases of Oracle Database, Oracle Streams did not support the replication of changes to tables in a flashback data archive. In Oracle Database 11g Release 1 (11.1) and later, Oracle Streams supports tables in a flashback data archive.

Oracle Streams Supports Virtual Columns

In prior releases of Oracle Database, Oracle Streams did not support the replication of changes to tables with virtual columns. In Oracle Database 11g Release 1 (11.1) and later, Oracle Streams supports tables with virtual columns.

New Capture Process Parameter: skip_autofiltered_table_ddl

A new capture process parameter named skip_autofiltered_table_ddl enables you to capture data definition language (DDL) changes to database objects for which data manipulation language (DML) changes are automatically filtered.

New Apply Process Parameter: rtrim_on_implicit_conversion

A new apply process parameter named rtrim_on_implicit_conversion determines whether the apply process trims character data during automatic data type conversion.

Synchronous Capture

Synchronous capture is a new Oracle Streams client that captures data manipulation language (DML) changes made to tables immediately after the changes are committed.

Oracle Streams Support for XMLType Columns

XMLType is an Oracle-supplied type that can be used to store and query XML data in the database. Oracle Streams can capture, propagate, and apply changes to XMLType data.

Capture processes can capture changes to XMLType columns stored as CLOB columns, but capture processes cannot capture changes to XMLType columns stored object relationally or as binary XML. Apply processes can apply changes to XMLType columns stored as CLOB columns, stored object relationally, or stored as binary XML.

Oracle Streams Support for Transparent Data Encryption

Oracle Streams supports capturing, propagation, and applying changes to columns that have been encrypted using transparent data encryption. Oracle Streams supports columns that were encrypted at the column level or through tablespace encryption. Tablespace encryption enables you to encrypt an entire tablespace. All objects created in the encrypted tablespace are automatically encrypted, including all columns in the database objects in the tablespace. Once a column is encrypted, whether it is due to column encryption or tablespace encryption, Oracle Streams components handle the column data in the same way.

Split and Merge of a Stream Destination

You can easily split off an unavailable replica from a Streams replication configuration. Splitting the stream minimizes the time needed for the replica to "catch up" when it becomes available again. When the replica is caught up, it can be merged back into the original configuration. This feature uses three new procedures in the DBMS_STREAMS_ADM package: SPLIT_STREAMS, MERGE_STREAMS_JOB, and MERGE_STREAMS.

Track LCRs Through a Stream

The new SET_MESSAGE_TRACKING procedure in the DBMS_STREAMS_ADM package lets you specify a tracking label for logical change records (LCRs) generated by a database session. You can query the new V$STREAMS_MESSAGE_TRACKING view to track the LCRs through the stream and see how they were processed by each Oracle Streams client.

LCR tracking is useful if LCRs are not being applied as expected by one or more apply processes. When this happens, you can use LCR tracking to determine where the LCRs are stopping in the stream and address the problem at that location.

Also, the new message_tracking_frequency capture process parameter enables you to track LCRs automatically.

See Also:

Compare and Converge Shared Database Objects

A new Oracle-supplied package called DBMS_COMPARISON enables you to compare the rows in a shared database object, such as a table, at two different databases. If differences are found in the database object, then this package can converge the database objects so that they are consistent.

Automated Alerts for Oracle Streams Clients and Thresholds

Enterprise Manager automatically alerts you when an Oracle Streams client becomes disabled or when Oracle Streams-related threshold that you have defined is crossed.

Oracle Streams Jobs Use Oracle Scheduler

In past releases, Oracle Streams used jobs created by the DBMS_JOB package to perform jobs such as propagation and event notification, and the JOB_QUEUE_PROCESSES initialization parameter controlled the number of slave processes that were created.

In Oracle Database 11g Release 1 (11.1), Oracle Streams uses Oracle Scheduler to perform these jobs. Oracle Scheduler automatically tunes the number of slave processes for these jobs based on the load on the computer system, and the JOB_QUEUE_PROCESSES initialization parameter is only used to specify the maximum number of slave processes. Therefore, the JOB_QUEUE_PROCESSES initialization parameter does not need to be set, unless you want to limit the number of slaves that can be created.

Notification Improvements

This release introduces the following notification improvements:

New Error Messages for Easier Error Handling

The following apply error messages are new in Oracle Database 11g Release 1 (11.1):

In past releases, an ORA-01403 error was returned in these situations. These new error messages make it easier to handle apply errors in DML handlers and error handlers. If you have existing DML handlers and error handlers, then they you might need to modify them for the current release.

Combined Capture and Apply

Oracle Streams can improve propagation efficiency under certain conditions.