Slide 1
Slide 2
What is Replication
|
|
|
|
Multiple copies of data at different
sites |
|
Increased availability |
|
Manual data replication implementations |
|
Export/Import |
|
CREATE TABLE AS SELECT FROM REMOTETABLE |
|
COPY |
|
|
Oracle9i Features for
Information Sharing
|
|
|
|
Features Introduced In Prior Releases |
|
Data Guard Physical Standby Database |
|
Advanced Queuing -- Message Queuing |
|
Advanced Replication -- Replication of
Data |
|
Change Data Capture -- DW Loading |
|
Features available in Oracle9iR2 |
|
Oracle Streams -- a comprehensive
information sharing solution |
|
Data Guard -- Logical Standby Database
based on Oracle Streams |
Oracle Advanced
Replication
Oracle9i Replication
Technology
|
|
|
|
Oracle9i provides built-in technology
to create and manage replicated environments |
|
Integrated, no add-ons, no special
commands |
|
Managed with Oracle Enterprise Manager |
|
Advanced data replication technology |
|
Bi-directional, all copies potentially
updatable |
|
Automatic conflict detection and
resolution |
|
Tables and supporting objects |
|
Full copies or subsets |
|
DDL (schema changes) as well as DML
(transactions) |
|
Continuous or on demand replication |
Architectural
Overview
Single master replication
Architectural
Overview
Multiple master replication
Master vs. Materialized
View Replication
Advanced Replication
Key Features
|
|
|
|
Near real-time replication
(multimaster) |
|
Parallel data propagation |
|
Multiple, pre-defined conflict
resolution methods |
|
Mass deployment (materialized views) |
|
subquery materialized views |
|
deployment templates |
|
multitier materialized views |
|
Oracle Enterprise Manager for
configuration and administration |
|
Specialized options: procedural and
synchronous replication |
Near Real-time
Replication
|
|
|
|
Benefits: |
|
availability, scalability, failover |
|
Uses: |
|
Telesales, support |
|
Requirements: |
|
Efficient data capture and storage |
|
Efficient data propagation |
|
Continuous data propagation |
|
Automatic resolution of conflicting
updates |
Architectural
Overview
Multimaster
Replication Objects
|
|
|
|
|
Database object replication to multiple
servers |
|
The following database objects can be
replicated |
|
Tables, Indexes, Views, Synonyms,
Triggers |
|
Packages, Procedures, Functions |
|
Advanced Data Types |
|
User-Defined Types, Indextypes |
|
Tables with column objects, object
tables |
|
Nested Tables, Varrays |
Efficient Data Capture
and Storage
|
|
|
|
Committed changes are added to queue
for later propagation to remote sites |
|
Enqueued using advanced queueing
mechanism |
|
Captured and applied using internal C
code |
|
Minimum data needed to apply change is
captured |
Slide 15
Slide 16
Efficient Data
Propagation
|
|
|
|
Queued changes are pushed to remote
sites in parallel for improved performance |
|
Single parallel stream |
|
Maintains transactional consistency |
|
Automatically detects transaction
dependencies |
Parallel Data Propagation
|
|
|
|
Dependencies |
|
Transaction B is dependent on
transaction
A if B accesses data A has updated |
|
Dependency detection is dynamic and
light-weight |
|
Ordering |
|
Dependent transactions are
propagated
in dependency order |
|
All other transactions are propagated
in parallel |
Continuous Propagation
|
|
|
Changes can be continuously propagated
or at a fixed interval, fixed time, or on demand |
|
Different intervals can be used for
each location |
|
Different intervals can be used for
each group |
|
Dynamic Views to monitor propagation
activity and throughput |
Automatic Conflict
Resolution
|
|
|
|
Automatic conflict detection with
user-selectable conflict resolution routines |
|
latest timestamp, earliest timestamp,
maximum or minimum value, overwrite, priority group, discard, site priority,
average, or additive |
|
User-definable resolution routines |
|
Detection and resolution based on
column groups |
Mass Deployment
Replication
|
|
|
|
|
Benefits: |
|
disconnected, updatable |
|
Uses: |
|
field sales, field service |
|
Requirements: |
|
Easily define unique subsets |
|
Easily deploy to 100s of sites |
|
Support mobile users |
|
refresh on demand |
Architectural
Overview
Materialized Views
Managing Advanced
Replication
Specialized Options
|
|
|
|
Synchronous Replication |
|
always up to date, no conflicts |
|
slower response, network dependent |
|
Procedural Replication |
|
faster for batch processing |
|
must be serialized, best done in off
hours |
|
useful for purging |
Replication Summary
|
|
|
|
Full and subset |
|
Near realtime or on demand |
|
Graphical administration tool |
|
Sophisticated Functionality |
|
Efficient data capture and storage |
|
Parallel data propagation |
|
Automatic conflict detection and
resolution |
|
Subquery subsetting |
|
Deployment templates |
|
Multitier materialized views |
|
Specialized options |
Oracle Streams
Oracle Streams
Unified
Messaging and Data Movement
Oracle Streams
|
|
|
|
A new solution for information sharing |
|
Provides a unified architecture for all
information sharing solutions |
|
uniquely flexible replication |
|
message queuing |
|
data warehouse loading |
|
event management and notification |
|
The foundation of Data Guard Logical
Standby Database |
Streams Basic Elements
|
|
|
|
Three basic elements in each database |
|
Capture |
|
Staging |
|
Consumption (apply) |
Multi-Database Streams
|
|
|
A stream can contain multiple elements from multiple databases |
|
Events flow between staging areas |
Capture
|
|
|
|
Streams captures events |
|
Implicitly: log-based capture of DML and DDL |
|
Explicitly: Direct enqueue of user messages |
|
Captured events are published in the
staging area |
Log-Based Change Capture
|
|
|
|
Low overhead, low latency change
capture |
|
Changes to the database are written to
the online redo log |
|
Oracle Streams can extract changes from
the log as it is written (mining the active log) |
|
Changes are formatted as a Logical
Change Record (LCR), a SQL like representation of the change |
Direct Enqueue
|
|
|
|
User applications can explicitly
enqueue user messages into the staging area |
|
Multiple open interfaces supported:
JMS, C, PLSQL, SOAP (XML/HTTP), XML/SMTP |
|
Allows applications to communicate at a
higher level |
|
Allows users to introduce events into
the stream from non-Oracle systems |
Staging
|
|
|
|
Streams publishes captured events into
a staging area |
|
Implemented as a queue |
|
Supports for new self-describing type
any datatype allows a single staging area to hold any type of data |
|
All events, LCRs and user-messages, can
be staged in the same queue |
|
Messages remain in staging area until
consumed by all subscribers |
Staging Area Propagation
|
|
|
|
Other staging areas can subscribe to
events |
|
in same database |
|
in a remote database |
|
Events can be routed through a series
of staging areas |
Transformations
|
|
|
|
Transformations can be performed |
|
as events enter the staging area |
|
as events leave the staging area |
|
as events propagate between staging
areas |
|
Transformation examples |
|
change format, data type, column name,
table name |
Consumption
|
|
|
|
|
Staged events are consumed by
subscribers |
|
Implicitly: Apply Process |
|
Default Apply |
|
User-Defined Apply |
|
Explictly: Application dequeue via open interfaces |
|
JMS, C, PLSQL, SOAP (XML/HTTP),
XML/SMTP |
Default Apply
|
|
|
|
The default apply engine will directly
apply the DML or DDL represented in the LCR |
|
apply to local Oracle table |
|
apply via DB Link to non-Oracle table |
|
Automatic conflict detection with
optional resolution |
|
unresolved conflicts placed in
exception queue |
|
Parallel apply maximizes concurrency |
User-defined Apply
|
|
|
|
User-written custom apply functions |
|
Written in PL/SQL, Java, C, C++ |
|
Uses: |
|
custom transformations |
|
column subsetting |
|
normalizing or denormalizing data |
|
populating related fields or tables |
Rule-based Subscription
|
|
|
Consumers subscribe to published events |
|
Content-based subscriptions limit
delivered events to those meeting the subscription criteria |
|
Rules govern capture, staging, and
consumption |
Directed Networks
|
|
|
|
Propagation independent of Apply |
|
Rules-based subscription determine if
event is locally applied |
|
London applies UK only |
|
WAN Friendly |
|
Send once, fan out |
|
NY-->London,
London-->Milan,
London-->Paris |
Heterogeneous Support
|
|
|
|
Oracle to non-Oracle apply via gateway |
|
Apply process on Oracle node applies
change |
|
Non-Oracle to Oracle change capture
supported via explicit enqueue of LCRs |
|
Message Gateways |
|
MQ Series |
|
Tibco |
Streams Deployments
|
|
|
|
Streams can be deployed to meet a
variety of information sharing requirements |
|
Replication |
|
Data Warehouse Loading |
|
Event Notification |
|
Message Queuing |
|
Data Guard Logical Standby Database |
Replication
|
|
|
|
Streams asynchronously maintains
multiple copies of objects via automatic apply |
|
Identical objects |
|
Related via a transformation or
function |
|
Streams automatically captures,
propagates, and applies DML and DDL
changes |
|
Detects and optionally resolves
conflicts |
|
Supports flexible data movement and
subsetting |
|
Gateways and APIs for heterogeneous
support |
|
Compatible with Materialized Views |
Replication
|
|
|
|
Benefits: |
|
No quiesce for DDL |
|
Lower overhead on production system |
|
Reduced network traffic |
|
Flexible configurations |
Data Warehouse Loading
|
|
|
|
Streams can load data warehouse staging
areas and Operational Data Stores |
|
Updates captured from a production
system |
|
Messages and business events from a
process flow |
|
Supports continuous or batch loading |
|
Automatically transforms data to
appropriate format and schema during Operational Data Store load |
Data Warehouse Loading
|
|
|
|
Benefits: |
|
low overhead |
|
automatic transformation |
|
near real-time loading of operation
data stores |
Event Notification
|
|
|
|
Streams can notify subscribers that
events of interest have occurred |
|
Pager notification of flight delays
(Orbitz) |
|
Notification of price drops (CNET
Shopper) |
|
Notification to sales manager of Gold
Customer purchase (CRM App) |
|
Streams can evaluate DML events and
send notifications to applications that send emails, page users, etc |
|
Users get information they want |
Event Notification
|
|
|
|
Benefits: |
|
scalable |
|
reduced custom development |
Message Queuing
|
|
|
|
Streams can be deployed as an enhanced
database integrated message queuing solution |
|
Point-to-point messaging, publish and
subscribe |
|
Single data, security and transactional
model for database and message queuing operations |
|
Centrally managed and multi-consumer
queues to simplify configuration |
|
Content-based subscriptions, internet
access |
|
Automatic dequeue to server-run user
function |
|
Automatic transform DML/DDL into
messages |
Message Queuing
|
|
|
|
Benefits: |
|
Reduced development costs |
|
Easy database integration |
|
Single development, operational,
security model |
|
Reliability and integrity of database |
Data Guard Logical
Standby Database
|
|
|
|
Multiple copies of data protects from
human and data errors, and disasters |
|
Special case of replication |
|
Entire database (by default) |
|
One direction only |
|
Streams supports reporting from standby
as updates are applied |
|
Data Guard adds higher level interface,
tailored GUIs and broker |
Data Guard Logical
Standby Database
|
|
|
|
Benefits: |
|
Open while protecting data |
|
Support near real-time reporting from
standby |
|
Protects from physical corruptions |
|
Additional indexes and materialized
views |
Other Oracle9i
Information Sharing Features
|
|
|
|
Advanced Replication |
|
provides compatible replication with
Oracle 8, 8i, and 9i databases |
|
Migration path to Oracle Streams in
future release |
|
Advanced Queuing |
|
Compatible with Oracle Streams |
|
Most functionality offered in Streams |
|
APIs retained for compatibility |
|
Migration path to Oracle Streams in
future release |
Other Oracle9i
Information Sharing Features
|
|
|
|
|
Data Guard Physical Standby Database |
|
Uses media recovery mechanism to apply
changes to database |
|
Creates an exact copy of the production
database |
|
block-for-block copy |
|
Same version of Oracle, same
hardware/software architecture |
|
Supports very high transaction
workloads |
|
Will coexist with Data Guard Logical
Standby Database |
Summary
|
|
|
|
Oracle Streams unifies all enterprise
information into a single Stream |
|
Unifies database, messaging,
replication, publish/subscribe APIs and capabilities |
|
Allows deployment of a variety of
solutions |
|
Provides a single, unified solution to
the problem of Information Sharing |
Slide 57