Oracle® Streams Concepts and Administration 10g Release 1 (10.1) Part Number B10727-01 |
|
|
View PDF |
This section describes new features of Oracle Streams for Oracle Database 10g Release 1 (10.1) and provides pointers to additional information where appropriate.
The following sections describe the new features in Oracle Streams:
Oracle Database 10g Release 1 (10.1) includes performance improvements for most Streams operations. Specifically, the following Streams components have been improved to perform more efficiently and handle greater workloads:
This release also includes performance improvements for SYS.AnyData
queue operations and rule set evaluations.
The following are Streams configuration manageability enhancements for Oracle Database 10g Release 1 (10.1):
Streams clients, which include capture processes, propagations, apply processes, and messaging clients, can use two rule sets: a positive rule set and a negative rule set. Negative rule sets make it easier to discard specific changes so that they are not processed by a Streams client.
A capture process can run on a database other than the source database. The redo log files from the source database are copied to the other database, called a downstream database, and the capture process captures changes in these redo log files at the downstream database.
You can use subset rules for capture processes, propagations and messaging clients, as well as for apply processes.
In a single database, you can specify that Streams memory be allocated from a new pool in the SGA called the Streams pool. To configure the Streams pool, specify the size of the pool in bytes using the STREAMS_POOL_SIZE
initialization parameter. The Streams pool contains buffered queues and is used for internal communications during parallel capture and apply.
The following new dynamic performance views enable you to monitor buffered queues:
V$BUFFERED_QUEUES
V$BUFFERED_SUBSCRIBERS
V$BUFFERED_PUBLISHERS
See Also:
|
The default tablespace for LogMiner has been changed from the SYSTEM
tablespace to the SYSAUX
tablespace. When configuring a new database to run a capture process, you no longer need to relocate the LogMiner tables to a non-SYSTEM
tablespace.
Some of the procedures that create rules in the DBMS_STREAMS_ADM
package include an and_condition
parameter. This parameter enables you to add custom conditions to system-created rules.
A new procedure, SET_RULE_TRANSFORM_FUNCTION
in the DBMS_STREAMS_ADM
package, makes it easy to specify and administer rule-based transformations.
A new procedure, SET_ENQUEUE_DESTINATION
in the DBMS_APPLY_ADM
package, makes it easy to specify a destination queue for events that satisfy a particular rule. When an event satisfies such a rule in an apply process rule set, the apply process enqueues the event into the specified queue.
A new procedure, SET_EXECUTE
in the DBMS_APPLY_ADM
package, enables you to specify that apply processes do not execute events that satisfy a certain rule.
Streams capture processes and apply processes now support the following additional datatypes:
Logical change records (LCRs) containing these datatypes may also be propagated using propagations.
Streams capture processes and apply processes now support processing changes to index-organized tables.
You can use a new type of apply handler called a precommit handler to record information about commits processed by an apply process.
The following are specific enhancements that improve Streams interoperation with RAC:
Streams capture processes and apply processes now support processing changes to tables that use function-based indexes and descending indexes.
A new parameter, drop_unused_rule_sets
, is added to the following procedures:
DROP_CAPTURE
in the DBMS_CAPTURE_ADM
packageDROP_PROPAGATION
in the DBMS_PROPAGATION_ADM
packageDROP_APPLY
in the DBMS_APPLY_ADM
packageIf you drop a Streams client using one of these procedures and set this parameter to true
, then the procedure drops any rule sets, positive and negative, used by the specified Streams client if these rule sets are not used by any other Streams client. Streams clients include capture processes, propagations, apply processes, and messaging clients. If this procedure drops a rule set, then this procedure also drops any rules in the rule set that are not in another rule set.
See Also:
|
A new procedure, REMOVE_QUEUE
in the DBMS_STREAMS_ADM
package, enables you to remove a SYS.AnyData
queue. This procedure also has a cascade
parameter. When cascade
is set to true
, any Stream client that uses the queue is removed also.
See Also:
|
You can use the BUILD
procedure in the DBMS_CAPTURE_ADM
package to extract the data dictionary of the current database to the redo log. A capture process can use the extracted information in the redo log to create the LogMiner data dictionary for the capture process. This procedure also identifies a valid first system change number (SCN) value that can be used by the capture process. The first SCN for a capture process is the lowest SCN in the redo log from which a capture process can capture changes. In addition, you can reset the first SCN for a capture process to purge unneeded information in a LogMiner data dictionary.
This release includes new Streams data dictionary views and new columns in Streams data dictionary views that existed in past releases.
See Also:
|
The DBMS_STREAMS_TABLESPACE_ADM
package provides administrative procedures for copying tablespaces between databases and moving tablespaces from one database to another. This package uses transportable tablespaces, Data Pump, and the DBMS_FILE_TRANSFER
package.
In this release, granting the DBA
role to a Streams administrator is sufficient for most actions performed by the Streams administrator. In addition, a new package, DBMS_STREAMS_AUTH
, provides procedures that make it easy for you to configure and manage a Streams administrator.
A new procedure, REMOVE_STREAMS_CONFIGURATION
in the DBMS_STREAMS_ADM
package, enables you to remove the entire Streams configuration at a database.
See Also:
PL/SQL Packages and Types Reference for more information about the |
The following are Streams replication enhancements for Oracle Database 10g Release 1 (10.1):
For database supplemental logging, you can specify that all FOREIGN
KEY
columns in a database are supplementally logged, or that ALL
columns in a database are supplementally logged. These new options are added to the PRIMARY
KEY
and UNIQUE
options, which were available in past releases.
For table supplemental logging, you can specify the following options for log groups:
These new options make it easier to specify and manage supplemental logging at a source database because you can specify supplemental logging without listing each column in a log group. If a table changes in the future, then the correct columns are logged automatically. For example, if you specify FOREIGN
KEY
for a table's log group, then the foreign key for a row is logged when the row is changed, even if the columns in the foreign key change in the future.
See Also:
Oracle Streams Replication Administrator's Guide for more information about supplemental logging in a Streams replication environment |
In addition to original export/import, you can use Data Pump export/import, transportable tablespaces, and RMAN to perform Streams instantiations.
See Also:
Oracle Streams Replication Administrator's Guide for more information about performing instantiations |
The following new data dictionary views enable you to determine which database objects have a set instantiation SCN at the schema and global level:
A new recursive
parameter in the SET_SCHEMA_INSTANTIATION_SCN
and SET_GLOBAL_INSTANTIATION_SCN
procedures enables you to set the instantiation SCN for a schema or database, respectively, and for all of the database objects in the schema or database.
See Also:
|
The DBMS_STREAMS
package includes two new functions: GET_STREAMS_NAME
and GET_STREAMS_TYPE
. These functions return the name and type, respectively, of a Streams client that is processing an LCR. You can use these functions in rule conditions, rule-based transformations, apply handlers, error handlers, and in a rule condition.
For example, if you use one error handler for multiple apply processes, then you can use the GET_STREAMS_NAME
function to determine the name of the apply process that raised the error. Also, you can use the GET_STREAMS_TYPE
function to instruct a DML handler to operate differently if it is processing events from the error queue (ERROR_EXECUTION
type) instead of the apply process queue (APPLY
type).
See Also:
|
You can use the MAINTAIN_SIMPLE_TABLESPACE
procedure to configure Streams replication for a simple tablespace, and you can use the MAINTAIN_TABLESPACES
procedure to configure Streams replication for a set of self-contained tablespaces. Both of these procedures are in the DBMS_STREAMS_ADM
package. These procedures use transportable tablespaces, Data Pump, the DBMS_STREAMS_TABLESPACE_ADM
package, and the DBMS_FILE_TRANSFER
package to configure the environment.
The COMPARE_OLD_VALUES
procedure in the DBMS_APPLY_ADM
package enables you to specify whether to compare old values of one or more columns in a row LCR with the current value of the corresponding columns at the destination database during apply.
You can optionally use the INCLUDE_EXTRA_ATTRIBUTE
procedure in the DBMS_CAPTURE_ADM
package to instruct a capture process to include the following extra attributes in LCRs:
The GET_SCN_MAPPING
procedure in the DBMS_STREAMS_ADM
package gets information about the SCN values to use for Streams capture and apply processes to recover transactions after point-in-time recovery is performed on a source database in a multiple source Streams environment.
You can use the following new member procedures and functions for LCR types:
The GET_COMMIT_SCN
member function returns the commit SCN of the transaction to which the current LCR belongs.
The GET_EXTRA_ATTRIBUTE
member function returns the value for the specified extra attribute in an LCR, and the SET_EXTRA_ATTRIBUTE
member procedure enables you to set the value for the specified extra attribute in an LCR.
The GET_COMPATIBLE
member function returns the minimal database compatibility required to support an LCR.
LONG
data in a row LCR into a LOB chunk
The CONVERT_LONG_TO_LOB_CHUNK
member procedure converts LONG
data in a row LCR into a CLOB
, or converts LONG
RAW
data in a row LCR into a BLOB
.
See Also:
|
You can use the procedure DBMS_REPCAT.STREAMS_MIGRATION
to generate a SQL*Plus script that migrates an existing Advanced Replication environment to a Streams environment.
See Also:
Oracle Streams Replication Administrator's Guide for information about migrating from Advanced Replication to Streams |
The following are Streams messaging enhancements for Oracle Database 10g Release 1 (10.1):
See Also:
Oracle Streams Advanced Queuing User's Guide and Reference for more information about Streams messaging enhancements |
A messaging client is a new type of Streams client that enables users and applications to dequeue messages from a SYS.AnyData
queue based on rules. You can create a messaging client by specifying dequeue
for the streams_type
parameter in certain procedures in the DBMS_STREAMS_ADM
package.
See Also:
|
A new package, DBMS_STREAMS_MESSAGING
, provides an easy interface for enqueuing messages into and dequeuing messages from a SYS.AnyData
queue.
See Also:
|
A new procedure, ADD_MESSAGE_RULE
in the DBMS_STREAMS_ADM
package, enables you to configure messaging clients and apply processes, and it enables you to create the rules for user-enqueued messages that control the behavior of these messaging clients and apply processes.
See Also:
|
A new procedure, ADD_MESSAGE_PROPAGATION_RULE
in the DBMS_STREAMS_ADM
package, enables you to configure propagations and create rules for propagations that propagate user-enqueued messages.
See Also:
PL/SQL Packages and Types Reference for more information about the |
A new procedure, SET_MESSAGE_NOTIFICATION
in the DBMS_STREAMS_ADM
package, enables you to configure message notifications that are sent when a Streams messaging client dequeues messages. The notification can be sent to an email address, a URL, or a PL/SQL procedure.
See Also:
|
The following are rules interface enhancements for Oracle Database 10g Release 1 (10.1):
During rule set evaluation, a client now can specify that evaluation results are sent iteratively, instead of in a complete list at one time. The EVALUATE
procedure in the DBMS_RULE
package includes the following two new parameters that enable you specify that evaluation results are sent iteratively: true_rules_interator
and maybe_rules_iterator
.
In addition, a new procedure in the DBMS_RULE
package, GET_NEXT_HIT
, returns the next rule that evaluated to TRUE
from a true rules iterator, or returns the next rule that evaluated to MAYBE
from a maybe rules iterator. Also, the new CLOSE_ITERATOR
procedure in the DBMS_RULE
package enables you to close an open iterator.
See Also:
|
You can use the following new dynamic performance views to monitor rule sets and rule evaluations: