Oracle® Streams Concepts and Administration 11g Release 2 (11.2) Part Number E10704-02 |
|
|
View PDF |
This section describes new features of Oracle Streams for Oracle Database 11g and provides pointers to additional information.
This section contains these topics:
Oracle Database 11g Release 2 (11.2) New Features in Oracle Streams
Oracle Database 11g Release 1 (11.1) New Features in Oracle Streams
The following Oracle Streams features are new in Oracle Database 11g Release 2 (11.2):
A new type of apply handler called a statement DML handler can process row LCRs in a customized way using a collection of SQL statements. Statement DML handlers typically perform better than procedure DML handlers because statement DML handlers require no PL/SQL processing.
See Also:
The new MAINTAIN_CHANGE_TABLE
procedure in the DBMS_STREAMS_ADM
package makes it easy to configure an Oracle Streams environment that records the changes made to a table.
See Also:
SQL generation is the ability to generate the SQL statement required to perform the change encapsulated in a row logical change record (row LCR).
See Also:
"Creating a Procedure DML Handler" for an example of a procedure DML handler that uses SQL generation
Oracle Database PL/SQL Packages and Types Reference for information about the GET_ROW_TEXT
row LCR member function
In prior releases of Oracle Database, Oracle Streams did not support the capture of changes to compressed tables. In Oracle Database 11g Release 2 (11.2) and later, Oracle Streams capture processes and synchronous captures can capture changes made to tables compressed using either basic table compression or OLTP table compression. In addition, apply processes can apply changes to compressed tables.
Note:
Capture processes can capture changes to compressed tables only if the compatibility level is set to 11.2.0 or higher at the source database. In a downstream capture configuration, the compatibility level must be set to 11.2.0 or higher at the database running the capture process also. Synchronous captures can capture changes to compressed tables only if the compatibility level is set to 11.2.0 or higher at the database.See Also:
In prior releases of Oracle Database, Oracle Streams did not support SecureFile LOBs. In Oracle Database 11g Release 2 (11.2) and later, Oracle Streams capture processes can capture changes made to SecureFile CLOB
, NCLOB
, and BLOB
columns, and Oracle Streams apply processes can apply changes to SecureFile CLOB
, NCLOB
, and BLOB
columns.
The keep columns declarative rule-based transformation keeps a list of columns in a row logical change record (LCR) that satisfies the specified rule. The transformation deletes columns that are not in the list from the row LCR. You specify a keep columns declarative rule-based transformation using the KEEP_COLUMNS
procedure in the DBMS_STREAMS_ADM
package.
Two new capture process parameters can enable automatic split and merge: split_threshold
and merge_theshold
. When these parameters are set to specify automatic split and merge, Oracle Scheduler jobs monitor the streams flowing from a capture process. When an Oracle Scheduler job identifies a problem with a stream, the job submits a new Oracle Scheduler job to split the problem stream off from the other streams flowing from the capture process. Other Oracle Scheduler jobs continue to monitor the stream, and, when the problem is corrected, an Oracle Scheduler job merges the stream back with the other streams.
See Also:
The apply process begins to spill messages from memory to hard disk for a particular transaction when the amount of time that any message in the transaction has been in memory exceeds the specified number of seconds in the txn_age_spill_threshold
parameter.
The new START_MONITORING
procedure in the UTL_SPADV
package can create a monitoring job that monitors Oracle Streams performance continually at specified intervals. Other new procedures in this package enable you to manage monitoring jobs.
The new DBA_RECOVERABLE_SCRIPT_HIST
view stores the results of recovery operations that were performed by the RECOVER_OPERATION
procedure in the DBMS_STREAMS_ADM
package.
The following Oracle Streams features are new in Oracle Database 11g Release 1 (11.1):
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.
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.
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.
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.
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.
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.
See Also:
Oracle Database PL/SQL Packages and Types Reference for more information about this capture process parameter
"Listing the Database Objects That Are Not Compatible With Capture Processes"
A new apply process parameter named rtrim_on_implicit_conversion
determines whether the apply process trims character data during automatic data type conversion.
See Also:
Oracle Database PL/SQL Packages and Types Reference for more information about this apply process parameter
Synchronous capture is a new Oracle Streams client that captures data manipulation language (DML) changes made to tables immediately after the changes are committed.
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 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.
See Also:
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
.
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:
Oracle Database PL/SQL Packages and Types Reference for information about the message_tracking_frequency
capture process parameter
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.
See Also:
Enterprise Manager automatically alerts you when an Oracle Streams client becomes disabled or when Oracle Streams-related threshold that you have defined is crossed.
See Also:
"Viewing Oracle Streams Alerts"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.
See Also:
"Propagation Jobs"This release introduces the following notification improvements:
Notification grouping by time
Better scaling to enable a large number of notifications to be sent simultaneously
Improved diagnosability of notifications using registration statistics
The following apply error messages are new in Oracle Database 11g Release 1 (11.1):
An ORA-26787 error is raised if the row to be updated or deleted does not exist in the target table.
An ORA-26786 error is raised when the row exists in the target table, but the values of some columns do not match those of the row logical change record (row LCR).
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 procedure handlers and error handlers, then they you might need to modify them for the current release.
Oracle Streams can improve propagation efficiency under certain conditions.