Go to main content
1/26
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
Changes for Oracle Streams Replication Administrator's Guide
Changes in Oracle Database 12
c
Release 1 (12.1)
Deprecated Features
Part I Configuring Oracle Streams Replication
1
Preparing for Oracle Streams Replication
1.1
Overview of Oracle Streams Replication
1.1.1
Common Reasons to Use Oracle Streams Replication
1.1.2
Rules in an Oracle Streams Replication Environment
1.2
Decisions to Make Before Configuring Oracle Streams Replication
1.2.1
Decide Which Type of Replication Environment to Configure
1.2.1.1
About Two-Database Replication Environments
1.2.1.2
About Hub-And-Spoke Replication Environments
1.2.1.3
About N-Way Replication Environments
1.2.2
Decide Whether to Configure Local or Downstream Capture for the Source Database
1.2.3
Decide Whether Changes Are Allowed at One Database or at Multiple Databases
1.2.4
Decide Whether the Replication Environment Will Have Nonidentical Replicas
1.2.5
Decide Whether the Replication Environment Will Use Apply Handlers
1.2.6
Decide Whether to Maintain DDL Changes
1.2.7
Decide How to Configure the Replication Environment
1.3
Tasks to Complete Before Configuring Oracle Streams Replication
1.3.1
Configuring an Oracle Streams Administrator on All Databases
1.3.2
Configuring Network Connectivity and Database Links
1.3.3
Ensuring That Each Source Database Is In ARCHIVELOG Mode
1.3.4
Setting Initialization Parameters Relevant to Oracle Streams
1.3.5
Configuring the Oracle Streams Pool
1.3.5.1
Using Automatic Memory Management to Set the Oracle Streams Pool Size
1.3.5.2
Using Automatic Shared Memory Management to Set the Oracle Streams Pool Size
1.3.5.3
Setting the Oracle Streams Pool Size Manually
1.3.5.4
Using the Default Setting for the Oracle Streams Pool Size
1.3.6
Specifying Supplemental Logging
1.3.6.1
Required Supplemental Logging in an Oracle Streams Replication Environment
1.3.6.2
Specifying Table Supplemental Logging Using Unconditional Log Groups
1.3.6.2.1
Specifying an Unconditional Supplemental Log Group for Primary Key Column(s)
1.3.6.2.2
Specifying an Unconditional Supplemental Log Group for All Table Columns
1.3.6.2.3
Specifying an Unconditional Supplemental Log Group that Includes Selected Columns
1.3.6.3
Specifying Table Supplemental Logging Using Conditional Log Groups
1.3.6.3.1
Specifying a Conditional Log Group Using the ADD SUPPLEMENTAL LOG DATA Clause
1.3.6.3.2
Specifying a Conditional Log Group Using the ADD SUPPLEMENTAL LOG GROUP Clause
1.3.6.4
Dropping a Supplemental Log Group
1.3.6.5
Specifying Database Supplemental Logging of Key Columns
1.3.6.6
Dropping Database Supplemental Logging of Key Columns
1.3.6.7
Procedures That Automatically Specify Supplemental Logging
1.3.7
Configuring Log File Transfer to a Downstream Capture Database
1.3.8
Adding Standby Redo Logs for Real-Time Downstream Capture
2
Simple Oracle Streams Replication Configuration
2.1
Configuring Replication Using the Setup Streams Replication Wizard
2.2
Configuring Replication Using the DBMS_STREAMS_ADM Package
2.2.1
The Oracle Streams Replication Configuration Procedures
2.2.2
Important Considerations for the Configuration Procedures
2.2.2.1
Local or Downstream Capture for the Source Database
2.2.2.2
Perform Configuration Actions Directly or With a Script
2.2.2.3
Oracle Streams Components Configured by These Procedures
2.2.2.4
One-Way or Bi-Directional Replication
2.2.2.4.1
Change Cycling and Tags
2.2.2.5
Data Definition Language (DDL) Changes
2.2.2.6
Instantiation
2.2.3
Creating the Required Directory Objects
2.2.4
Examples That Configure Two-Database Replication with Local Capture
2.2.4.1
Configuring Two-Database Global Replication with Local Capture
2.2.4.2
Configuring Two-Database Schema Replication with Local Capture
2.2.4.3
Configuring Two-Database Table Replication with Local Capture
2.2.5
Examples That Configure Two-Database Replication with Downstream Capture
2.2.5.1
Configuring Tablespace Replication with Downstream Capture at Destination
2.2.5.2
Configuring Schema Replication with Downstream Capture at Destination
2.2.5.3
Configuring Schema Replication with Downstream Capture at Third Database
2.2.6
Example That Configures Two-Database Replication with Synchronous Captures
2.2.7
Example That Configures Hub-and-Spoke Replication
2.2.8
Monitoring Oracle Streams Configuration Progress
3
Flexible Oracle Streams Replication Configuration
3.1
Creating a New Oracle Streams Single-Source Environment
3.2
Creating a New Oracle Streams Multiple-Source Environment
3.2.1
Configuring Populated Databases When Creating a Multiple-Source Environment
3.2.2
Adding Replicated Objects to Import Databases When Creating a New Environment
3.2.3
Complete the Multiple-Source Environment Configuration
4
Adding to an Oracle Streams Replication Environment
4.1
About Adding to an Oracle Streams Replication Environment
4.1.1
About Using the Setup Streams Replication Wizard or a Single Configuration Procedure
4.1.2
About Adding the Oracle Streams Components Individually in Multiple Steps
4.2
Adding Multiple Components Using a Single Procedure
4.2.1
Adding Database Objects to a Replication Environment Using a Single Procedure
4.2.2
Adding a Database to a Replication Environment Using a Single Procedure
4.3
Adding Components Individually in Multiple Steps
4.3.1
Adding Replicated Objects to an Existing Single-Source Environment
4.3.2
Adding a New Destination Database to a Single-Source Environment
4.3.3
Adding Replicated Objects to an Existing Multiple-Source Environment
4.3.3.1
Configuring Populated Databases When Adding Replicated Objects
4.3.3.2
Adding Replicated Objects to Import Databases in an Existing Environment
4.3.3.3
Finish Adding Objects to a Multiple-Source Environment Configuration
4.3.4
Adding a New Database to an Existing Multiple-Source Environment
4.3.4.1
Configuring Databases If the Replicated Objects Already Exist at the New Database
4.3.4.2
Adding Replicated Objects to a New Database
5
Configuring Implicit Capture
5.1
Configuring a Capture Process
5.1.1
Preparing to Configure a Capture Process
5.1.2
Configuring a Local Capture Process
5.1.2.1
Configuring a Local Capture Process Using DBMS_STREAMS_ADM
5.1.2.2
Configuring a Local Capture Process Using DBMS_CAPTURE_ADM
5.1.2.3
Configuring a Local Capture Process with Non-NULL Start SCN
5.1.3
Configuring a Downstream Capture Process
5.1.3.1
Configuring a Real-Time Downstream Capture Process
5.1.3.2
Configuring an Archived-Log Downstream Capture Process
5.1.3.2.1
Configuring an Archived-Log Downstream Capture Process that Assigns Logs Implicitly
5.1.3.2.2
Configuring an Archived-Log Downstream Capture Process that Assigns Logs Explicitly
5.1.4
After Configuring a Capture Process
5.2
Configuring Synchronous Capture
5.2.1
Preparing to Configure a Synchronous Capture
5.2.2
Configuring a Synchronous Capture Using the DBMS_STREAMS_ADM Package
5.2.3
Configuring a Synchronous Capture Using the DBMS_CAPTURE_ADM Package
5.2.4
After Configuring a Synchronous Capture
6
Configuring Queues and Propagations
6.1
Creating an ANYDATA Queue
6.2
Creating Oracle Streams Propagations Between ANYDATA Queues
6.2.1
Preparing to Create a Propagation
6.2.2
Creating a Propagation Using DBMS_STREAMS_ADM
6.2.3
Creating a Propagation Using DBMS_PROPAGATION_ADM
7
Configuring Implicit Apply
7.1
Overview of Apply Process Creation
7.2
Preparing to Create an Apply Process
7.3
Creating an Apply Process for Captured LCRs Using DBMS_STREAMS_ADM
7.4
Creating an Apply Process Using DBMS_APPLY_ADM
7.4.1
Creating an Apply Process for Captured LCRs with DBMS_APPLY_ADM
7.4.2
Creating an Apply Process for Persistent LCRs with DBMS_APPLY_ADM
8
Instantiation and Oracle Streams Replication
8.1
Overview of Instantiation and Oracle Streams Replication
8.2
Capture Rules and Preparation for Instantiation
8.2.1
DBMS_STREAMS_ADM Package Procedures Automatically Prepare Objects
8.2.2
When Preparing for Instantiation Is Required
8.2.3
Supplemental Logging Options During Preparation for Instantiation
8.2.4
Preparing Database Objects for Instantiation at a Source Database
8.2.4.1
Preparing Tables for Instantiation
8.2.4.1.1
Preparing a Table for Instantiation Using DBMS_STREAMS_ADM When a Capture Process Is Used
8.2.4.1.2
Preparing a Table for Instantiation Using DBMS_CAPTURE_ADM When a Capture Process Is Used
8.2.4.1.3
Preparing Tables for Instantiation Using DBMS_STREAMS_ADM When a Synchronous Capture Is Used
8.2.4.1.4
Preparing Tables for Instantiation Using DBMS_CAPTURE_ADM When a Synchronous Capture Is Used
8.2.4.2
Preparing the Database Objects in a Schema for Instantiation
8.2.4.2.1
Preparing the Database Objects in a Schema for Instantiation Using DBMS_STREAMS_ADM
8.2.4.3
Preparing All of the Database Objects in a Database for Instantiation
8.2.4.3.1
Preparing All of the Database Objects in a Database for Instantiation Using DBMS_STREAMS_ADM
8.2.5
Aborting Preparation for Instantiation at a Source Database
8.3
Oracle Data Pump and Oracle Streams Instantiation
8.3.1
Data Pump Export and Object Consistency
8.3.2
Oracle Data Pump Import and Oracle Streams Instantiation
8.3.2.1
Instantiation SCNs and Data Pump Imports
8.3.2.2
Instantiation SCNs and Oracle Streams Tags Resulting from Data Pump Imports
8.3.2.3
The STREAMS_CONFIGURATION Data Pump Import Utility Parameter
8.3.3
Instantiating Objects Using Data Pump Export/Import
8.4
Recovery Manager (RMAN) and Oracle Streams Instantiation
8.4.1
Instantiating Objects in a Tablespace Using Transportable Tablespace or RMAN
8.4.1.1
Instantiating Objects Using Transportable Tablespace
8.4.1.2
Instantiating Objects Using Transportable Tablespace From Backup With RMAN
8.4.2
Instantiating an Entire Database Using RMAN
8.4.2.1
Instantiating an Entire Database on the Same Platform Using RMAN
8.4.2.2
Instantiating an Entire Database on Different Platforms Using RMAN
8.5
Setting Instantiation SCNs at a Destination Database
8.5.1
Setting Instantiation SCNs Using Export/Import
8.5.1.1
Full Database Export and Full Database Import
8.5.1.2
Full Database or User Export and User Import
8.5.1.3
Full Database, User, or Table Export and Table Import
8.5.2
Setting Instantiation SCNs Using the DBMS_APPLY_ADM Package
8.5.2.1
Setting the Instantiation SCN While Connected to the Source Database
8.5.2.2
Setting the Instantiation SCN While Connected to the Destination Database
8.6
Monitoring Instantiation
8.6.1
Determining Which Database Objects Are Prepared for Instantiation
8.6.2
Determining the Tables for Which an Instantiation SCN Has Been Set
9
Oracle Streams Conflict Resolution
9.1
About DML Conflicts in an Oracle Streams Environment
9.2
Conflict Types in an Oracle Streams Environment
9.2.1
Update Conflicts in an Oracle Streams Environment
9.2.2
Uniqueness Conflicts in an Oracle Streams Environment
9.2.3
Delete Conflicts in an Oracle Streams Environment
9.2.4
Foreign Key Conflicts in an Oracle Streams Environment
9.3
Conflicts and Transaction Ordering in an Oracle Streams Environment
9.4
Conflict Detection in an Oracle Streams Environment
9.4.1
Control Over Conflict Detection for Nonkey Columns
9.4.2
Rows Identification During Conflict Detection in an Oracle Streams Environment
9.5
Conflict Avoidance in an Oracle Streams Environment
9.5.1
Use a Primary Database Ownership Model
9.5.2
Avoid Specific Types of Conflicts
9.5.2.1
Avoid Uniqueness Conflicts in an Oracle Streams Environment
9.5.2.2
Avoid Delete Conflicts in an Oracle Streams Environment
9.5.2.3
Avoid Update Conflicts in an Oracle Streams Environment
9.6
Conflict Resolution in an Oracle Streams Environment
9.6.1
Prebuilt Update Conflict Handlers
9.6.1.1
Types of Prebuilt Update Conflict Handlers
9.6.1.1.1
OVERWRITE
9.6.1.1.2
DISCARD
9.6.1.1.3
MAXIMUM
9.6.1.1.4
MINIMUM
9.6.1.2
Column Lists
9.6.1.3
Resolution Columns
9.6.1.4
Data Convergence
9.6.2
Custom Conflict Handlers
9.7
Managing Oracle Streams Conflict Detection and Resolution
9.7.1
Setting an Update Conflict Handler
9.7.2
Modifying an Existing Update Conflict Handler
9.7.3
Removing an Existing Update Conflict Handler
9.7.4
Stopping Conflict Detection for Nonkey Columns
9.8
Monitoring Conflict Detection and Update Conflict Handlers
9.8.1
Displaying Information About Conflict Detection
9.8.2
Displaying Information About Update Conflict Handlers
10
Oracle Streams Tags
10.1
Introduction to Tags
10.2
Tags and Rules Created by the DBMS_STREAMS_ADM Package
10.3
Tags and Online Backup Statements
10.4
Tags and an Apply Process
10.5
Oracle Streams Tags in a Replication Environment
10.5.1
N-Way Replication Environments
10.5.2
Hub-and-Spoke Replication Environments
10.5.3
Hub-and-Spoke Replication Environment with Several Extended Secondary Databases
10.6
Managing Oracle Streams Tags
10.6.1
Managing Oracle Streams Tags for the Current Session
10.6.1.1
Setting the Tag Values Generated by the Current Session
10.6.1.2
Getting the Tag Value for the Current Session
10.6.2
Managing Oracle Streams Tags for an Apply Process
10.6.2.1
Setting the Tag Values Generated by an Apply Process
10.6.2.2
Removing the Apply Tag for an Apply Process
10.7
Monitoring Oracle Streams Tags
10.7.1
Displaying the Tag Value for the Current Session
10.7.2
Displaying the Default Tag Value for Each Apply Process
11
Oracle Streams Heterogeneous Information Sharing
11.1
Oracle to Non-Oracle Data Sharing with Oracle Streams
11.1.1
Change Capture and Staging in an Oracle to Non-Oracle Environment
11.1.2
Change Apply in an Oracle to Non-Oracle Environment
11.1.2.1
Apply Process Configuration in an Oracle to Non-Oracle Environment
11.1.2.1.1
Before Creating an Apply Process in an Oracle to Non-Oracle Environment
11.1.2.1.2
Apply Process Creation in an Oracle to Non-Oracle Environment
11.1.2.1.3
Substitute Key Columns in an Oracle to Non-Oracle Heterogeneous Environment
11.1.2.1.4
Parallelism in an Oracle to Non-Oracle Heterogeneous Environment
11.1.2.1.5
Procedure DML Handlers in an Oracle to Non-Oracle Heterogeneous Environment
11.1.2.1.6
Message Handlers in an Oracle to Non-Oracle Heterogeneous Environment
11.1.2.1.7
Error and Conflict Handlers in an Oracle to Non-Oracle Heterogeneous Environment
11.1.2.2
Data Types Applied at Non-Oracle Databases
11.1.2.3
Types of DML Changes Applied at Non-Oracle Databases
11.1.2.4
Instantiation in an Oracle to Non-Oracle Environment
11.1.3
Transformations in an Oracle to Non-Oracle Environment
11.1.4
Messaging Gateway and Oracle Streams
11.1.5
Error Handling in an Oracle to Non-Oracle Environment
11.1.6
Example Oracle to Non-Oracle Streams Environment
11.2
Non-Oracle to Oracle Data Sharing with Oracle Streams
11.2.1
Change Capture in a Non-Oracle to Oracle Environment
11.2.2
Staging in a Non-Oracle to Oracle Environment
11.2.3
Change Apply in a Non-Oracle to Oracle Environment
11.2.4
Instantiation from a Non-Oracle Database to an Oracle Database
11.3
Non-Oracle to Non-Oracle Data Sharing with Oracle Streams
Part II Administering Oracle Streams Replication
12
Managing Oracle Streams Replication
12.1
About Managing Oracle Streams
12.2
Tracking LCRs Through a Stream
12.3
Splitting and Merging an Oracle Streams Destination
12.3.1
About Splitting and Merging Oracle Streams
12.3.2
Split and Merge Options
12.3.2.1
Automatic Split and Merge
12.3.2.2
Manual Split and Automatic Merge
12.3.2.3
Manual Split and Merge With Generated Scripts
12.3.3
Examples That Split and Merge Oracle Streams
12.3.3.1
Splitting and Merging an Oracle Streams Destination Automatically
12.3.3.2
Splitting an Oracle Streams Destination Manually and Merging It Automatically
12.3.3.3
Splitting and Merging an Oracle Streams Destination Manually With Scripts
12.4
Changing the DBID or Global Name of a Source Database
12.5
Resynchronizing a Source Database in a Multiple-Source Environment
12.6
Performing Database Point-in-Time Recovery in an Oracle Streams Environment
12.6.1
Performing Point-in-Time Recovery on the Source in a Single-Source Environment
12.6.2
Performing Point-in-Time Recovery in a Multiple-Source Environment
12.6.3
Performing Point-in-Time Recovery on a Destination Database
12.6.3.1
Resetting the Start SCN for the Existing Capture Process to Perform Recovery
12.6.3.2
Creating a New Capture Process to Perform Recovery
12.7
Running Flashback Queries in an Oracle Streams Replication Environment
12.8
Recovering from Operation Errors
12.8.1
Recovery Scenario
13
Comparing and Converging Data
13.1
About Comparing and Converging Data
13.1.1
Scans
13.1.2
Buckets
13.1.3
Parent Scans and Root Scans
13.1.4
How Scans and Buckets Identify Differences
13.2
Other Documentation About the DBMS_COMPARISON Package
13.3
Quick Start: A Simple Compare and Converge Scenario
13.3.1
Tutorial: Preparing to Compare and Converge Data
13.3.2
Tutorial: Comparing Data in Two Different Databases
13.3.3
Tutorial: Converging Divergent Data
13.4
Preparing To Compare and Converge a Shared Database Object
13.5
Diverging a Database Object at Two Databases to Complete Examples
13.6
Comparing a Shared Database Object at Two Databases
13.6.1
Comparing a Subset of Columns in a Shared Database Object
13.6.2
Comparing a Shared Database Object without Identifying Row Differences
13.6.3
Comparing a Random Portion of a Shared Database Object
13.6.4
Comparing a Shared Database Object Cyclically
13.6.5
Comparing a Custom Portion of a Shared Database Object
13.6.6
Comparing a Shared Database Object That Contains CLOB or BLOB Columns
13.7
Viewing Information About Comparisons and Comparison Results
13.7.1
Viewing General Information About the Comparisons in a Database
13.7.2
Viewing Information Specific to Random and Cyclic Comparisons
13.7.3
Viewing the Columns Compared by Each Comparison in a Database
13.7.4
Viewing General Information About Each Scan in a Database
13.7.5
Viewing the Parent Scan ID and Root Scan ID for Each Scan in a Database
13.7.6
Viewing Detailed Information About the Row Differences Found in a Scan
13.7.7
Viewing Information About the Rows Compared in Specific Scans
13.8
Converging a Shared Database Object
13.8.1
Converging a Shared Database Object for Consistency with the Local Object
13.8.2
Converging a Shared Database Object for Consistency with the Remote Object
13.8.3
Converging a Shared Database Object with a Session Tag Set
13.9
Rechecking the Comparison Results for a Comparison
13.10
Purging Comparison Results
13.10.1
Purging All of the Comparison Results for a Comparison
13.10.2
Purging the Comparison Results for a Specific Scan ID of a Comparison
13.10.3
Purging the Comparison Results of a Comparison Before a Specified Time
13.11
Dropping a Comparison
13.12
Using DBMS_COMPARISON in an Oracle Streams Replication Environment
13.12.1
Checking for Consistency After Instantiation
13.12.2
Checking for Consistency in a Running Oracle Streams Replication Environment
14
Managing Logical Change Records (LCRs)
14.1
Requirements for Managing LCRs
14.2
Constructing and Enqueuing LCRs
14.3
Executing LCRs
14.3.1
Executing Row LCRs
14.3.1.1
Example of Constructing and Executing Row LCRs
14.3.2
Executing DDL LCRs
14.4
Managing LCRs Containing LOB Columns
14.4.1
Apply Process Behavior for Direct Apply of LCRs Containing LOBs
14.4.2
LOB Assembly and Custom Apply of LCRs Containing LOB Columns
14.4.2.1
LOB Assembly Considerations
14.4.2.2
LOB Assembly Example
14.4.3
Requirements for Constructing and Processing LCRs Containing LOB Columns
14.4.3.1
Requirements for Constructing and Processing LCRs Without LOB Assembly
14.4.3.2
Requirements for Apply Handler Processing of LCRs with LOB Assembly
14.4.3.3
Requirements for Rule-Based Transformation Processing of LCRs with LOBs
14.5
Managing LCRs Containing LONG or LONG RAW Columns
Part III Oracle Streams Replication Best Practices
15
Best Practices for Oracle Streams Replication Databases
15.1
Best Practices for Oracle Streams Database Configuration
15.1.1
Use a Separate Queue for Capture and Apply Oracle Streams Clients
15.1.2
Automate the Oracle Streams Replication Configuration
15.2
Best Practices for Oracle Streams Database Operation
15.2.1
Follow the Best Practices for the Global Name of an Oracle Streams Database
15.2.2
Monitor Performance and Make Adjustments When Necessary
15.2.3
Monitor Capture Process's and Synchronous Capture's Queues for Size
15.2.4
Follow the Oracle Streams Best Practices for Backups
15.2.4.1
Best Practices for Backups of an Oracle Streams Source Database
15.2.4.2
Best Practices for Backups of an Oracle Streams Destination Database
15.2.5
Adjust the Automatic Collection of Optimizer Statistics
15.2.6
Check the Alert Log for Oracle Streams Information
15.2.7
Follow the Best Practices for Removing an Oracle Streams Configuration at a Database
15.3
Best Practices for Oracle Real Application Clusters and Oracle Streams
15.3.1
Make Archive Log Files of All Threads Available to Capture Processes
15.3.2
Follow the Best Practices for the Global Name of an Oracle RAC Database
15.3.3
Follow the Best Practices for Configuring and Managing Propagations
15.3.4
Follow the Best Practices for Queue Ownership
16
Best Practices for Capture
16.1
Best Practices for Capture Process Configuration
16.1.1
Grant the Required Privileges to the Capture User
16.1.2
Set Capture Process Parallelism
16.1.3
Set the Checkpoint Retention Time
16.2
Best Practices for Capture Process Operation
16.2.1
Configure a Heartbeat Table at Each Source Database in an Oracle Streams Environment
16.2.2
Perform a Dictionary Build and Prepare Database Objects for Instantiation Periodically
16.2.3
Minimize the Performance Impact of Batch Processing
16.3
Best Practices for Synchronous Capture Configuration
17
Best Practices for Propagation
17.1
Best Practices for Propagation Configuration
17.1.1
Use Queue-to-Queue Propagations
17.1.2
Set the Propagation Latency for Each Propagation
17.1.3
Increase the SDU in a Wide Area Network for Better Network Performance
17.2
Best Practices for Propagation Operation
17.2.1
Restart Broken Propagations
18
Best Practices for Apply
18.1
Best Practices for Destination Database Configuration
18.1.1
Grant Required Privileges to the Apply User
18.1.2
Set Instantiation SCN Values
18.1.3
Configure Conflict Resolution
18.2
Best Practices for Apply Process Configuration
18.2.1
Set Apply Process Parallelism
18.2.2
Consider Allowing Apply Processes to Continue When They Encounter Errors
18.3
Best Practices for Apply Process Operation
18.3.1
Manage Apply Errors
Index
Scripting on this page enhances content navigation, but does not change the content in any way.