You are previewing Oracle Distributed Systems.
O'Reilly logo
Oracle Distributed Systems

Book Description

Any organization that uses the Oracle relational database management system (RDBMS) these days needs to use multiple databases. There are many reasons to use more than a single database in a distributed database system:

  • Different databases may be associated with particular business functions, such as manufacturing or human resources.

  • Databases may be aligned with geographical boundaries, such as a behemoth database at a headquarters site and smaller databases at regional offices.

  • Two different databases may be required to access the same data in different ways, such as an order entry database whose transactions are aggregated and analyzed in a data warehouse.

  • A busy Internet commerce site may create multiple copies of the same database to attain horizontal scalability.

  • A copy of a production database may be created to serve as a development test bed.

  • Tunability

  • Platform autonomy

  • Fault tolerance

  • Scalability

  • Location transparency

  • Site autonomy

  • Introduction to Distributed Database Systems

  • SQL*Net and Net8

  • Configuration and Administration

  • Distributed Database Security

  • Designing the Distributed System

  • Oracle's Distributed System Implementation

  • Sample Configurations 8. Engineering Considerations

  • Oracle Replication Architecture

  • Advanced Replication Option Installation

  • Basic Replication

  • Multi-Master Replication

  • Updateable Snapshots

  • Procedural Replication

  • Conflict Avoidance and Resolution Techniques

In a distributed database environment, data in two or more databases is accessible as if it were in a single database. Usually, the different databases are on different servers, which may be located at the same site or a continent away. Communication between the servers takes place via SQL*Net (for Oracle7) or Net8 (for Oracle8). Distributed database environments offer a number of benefits over single- database systems, including:

This book describes how you can use multiple databases and the distributed features of Oracle to best advantage. It covers: Table of contents: Part I: The Distributed System

Part II: Replication

Part III: Appendixes Appendix A: Built-in Packages for Distributed Systems Appendix B: Scripts

Table of Contents

  1. Oracle Distributed Systems
    1. Preface
      1. Audience for This Book
      2. About Replication
      3. About Oracle Versions and Platforms
      4. Structure of This Book
        1. Part I
        2. Part II
        3. Part III
      5. Conventions Used in This Book
      6. About the Scripts
      7. Comments and Questions
      8. Acknowledgments
    2. I. The Distributed System
      1. 1. Introduction to Distributed Systems
        1. Terminology and Concepts
        2. What Is a Distributed Database System?
        3. Benefits of Distributed Databases
          1. Tunability
          2. Platform Autonomy
          3. Fault Tolerance
          4. Scalability
          5. Location Transparency
          6. Site Autonomy
          7. Enhanced Security
        4. Multiple Schema Versus Multiple Databases
          1. The Single Database with Multiple Schema
          2. Database Instances Devoted to a Single Application
        5. Options for Distributed Data
          1. Export/Import
          2. Database Links
          3. Read-Only Snapshots
          4. Updateable Snapshots
          5. Advanced Replication
          6. Procedural Replication
        6. Perils of Distributed Databases
          1. Security
          2. Data Consistency
          3. Transaction Management
          4. Monitoring
          5. Recovery
          6. Performance
        7. Differences Between Oracle7 and Oracle8
      2. 2. SQL*Net and Net8
        1. Protocol Overview
          1. Distributed Processing
          2. Network Transparency and Network Independence
          3. Multiple Network Protocol Interoperability
          4. Oracle Names
        2. Architecture
          1. SQL*Net/Net8, TNS, and the OSI Reference Model
            1. Application layer
            2. Presentation layer
            3. Session layer
            4. Transport, network, data link, and physical layers
          2. SQL*Net/Net8 Elements
          3. Connection Scenarios
          4. Bequeathed and Redirected Connections
            1. How a bequeathed connection is established on Unix
            2. How a redirected connection is established
          5. Example: Connecting to a Multi-Threaded Server
          6. Example: Connecting to a Prespawned Server Process
        3. SQL*Net/Net8 Tuning
          1. Do You Have a Problem?
            1. Tuning the multi-threaded server
            2. Tuning multi-threaded server dispatchers in Oracle8
            3. Tuning multi-threaded server server processes
            4. Measuring m ulti-threaded server server activity
          2. Tuning Dedicated Processes and Prespawned Processes
          3. Break Out the Sniffer
        4. Load Balancing
          1. Multiple TNS Listeners and Multi-Threaded Server with a Single Database Instance
          2. Multiple TNS Listeners and Multi-Threaded Server with Multiple Database Instances
          3. Multiple TNS Listeners and Dedicated Processes
        5. Oracle8 Scalability Options
          1. Connection Pooling
          2. Session Multiplexing
          3. Scalability: Summary
        6. SQL*Net/Net8 Client Configuration
          1. Dead Connection Detection
          2. Tracing and Logging
          3. Default Domains
          4. Oracle Names Parameters
          5. Additional Parameters
        7. SNMP Support
          1. Configuring SNMP Support
          2. Using SNMP
        8. Security
      3. 3. Configuration and Administration
        1. Initialization Parameters
          1. COMMIT_POINT_STRENGTH
          2. DB_DOMAIN
          3. DBLINK_ENCRYPT_LOGIN (Oracle8)
          4. DISTRIBUTED_LOCK_TIMEOUT
          5. DISTRIBUTED_RECOVERY_CONNECTION_HOLD_TIME
          6. DISTRIBUTED_TRANSACTIONS
          7. GLOBAL_NAMES
          8. JOB_QUEUE_INTERVAL
          9. JOB_QUEUE_PROCESSES
          10. MAX_TRANSACTION_BRANCHES
          11. OPEN_LINKS
          12. OPEN_LINKS_PER_INSTANCE (Oracle8)
          13. REMOTE_DEPENDENCIES_MODE
          14. REMOTE_LOGIN_PASSWORD_FILE
          15. REMOTE_OS_AUTHENT
          16. REMOTE_OS_ROLES
          17. REPLICATION_DEPENDENCY_TRACKING (Oracle8)
          18. SNAPSHOT_REFRESH_INTERVAL
          19. SNAPSHOT_REFRESH_PROCESSES
        2. Database Links
          1. Global Names and Database Links
          2. Public, Private, and Global Database Links
            1. When to use public database links
            2. When to use private database links
            3. When to use global database links
          3. Creating Database Links
            1. Prerequisites for creating database links
            2. The PUBLIC qualifier
            3. The SHARED qualifier
            4. The connection qualifier
            5. The CONNECT clause
            6. The CURRENT_USER qualifier
            7. The USING clause
            8. The AUTHENTICATED clause
          4. Dropping Database Links
          5. Accessing Data over a Database Link
          6. How Database Links Are Resolved
            1. The algorithm
            2. Example of database link resolution
          7. Listing Information About Database Links
          8. Data Relocation with Database Links
          9. Restrictions on Distributed Operations over Database Links
        3. Distributed Queries and Transactions
          1. Behind the Scenes of a Distributed Transaction
            1. Two-phase commit: The participants
            2. Two-phase commit: Explained
          2. When Things Go Wrong
            1. Types of distributed transaction failures
            2. Forcing commits and rollbacks of distributed transactions
            3. Testing recovery of failed distributed transactions
          3. Restrictions on Distributed Transactions
        4. Distributed Backup and Recovery
          1. Distributed Recovery
          2. Snapshots
          3. Backup Strategy Considerations
        5. Multiversion Interoperability
      4. 4. Distributed Database Security
        1. Privilege Management
          1. The Simplistic Approach
            1. Advantages of the simplistic approach
            2. Disadvantages of the simplistic approach
          2. The Mirrored Account Approach
            1. Advantages of the mirrored account approach
            2. Disadvantages of the mirrored account approach
          3. The Local View Approach
            1. Advantages of the local view approach
            2. Disadvantages of the local view approach
          4. The Local Wrapper Approach
            1. Advantages of the local wrapper approach
            2. Disadvantages of the local wrapper approach
          5. Conclusions on Privilege Management
        2. Authentication Methods
          1. Database Authentication
            1. Write a wrapper command around sqlplus
            2. Use operating system authenticated (OPS$) accounts
            3. Don’t invoke programs with username and password on command line
          2. Operating System Authentication
            1. Creating OPS$ accounts
            2. The assumed risks of OPS$ accounts
          3. External Authentication
      5. 5. Designing a Distributed System
        1. Characteristics of a Distributed System
          1. Distributed System Objectives
            1. Local autonomy
            2. No reliance on a single site
            3. Continuous operation
            4. Location transparency
            5. Fragmentation independence
            6. Replication independence
            7. Distributed query processing
            8. Distributed transaction management
            9. Hardware independence
            10. Operating system independence
            11. Network independence
            12. RDBMS independence
          2. Distributed System Classifications
            1. Homogeneous distributed systems
            2. Heterogeneous distributed systems
            3. Federated database systems
            4. Redundant backup systems
            5. Distributed system classifications: Summary
        2. The Global Data Dictionary
          1. Placement of the Global Data Dictionary
          2. Object Naming
          3. The Local Data Dictionary
          4. Management of Interdatabase Integrity Constraints
          5. Management of User Accounts and Privileges
        3. Replication-Specific Issues
          1. Replication Architecture
            1. Log-based replication
              1. Advantages
              2. Disadvantages
            2. Transactional replication
              1. Advantages
              2. Disadvantages
          2. Software Compatibility
          3. Data Consistency
          4. Data Extraction
          5. Primary Keys
          6. Conflict Avoidance
        4. Data Partitioning Methodologies
          1. Identify Users, Locations, and Activities
          2. Assess Existing Network and Hardware Infrastructure
          3. Identify Coordinated Recovery Requirements
          4. Map Processes to Data
          5. Assess Global Requirements
          6. Propose and Validate Data Locations
        5. Application Partitioning Strategies
          1. Enforcing Business Rules in the Database Tier
          2. Enforcing Business Rules in the Presentation Tier
          3. Creating a Third Tier
          4. How Many Tiers Are Right for You?
        6. Procedural Replication
      6. 6. Oracle’s Distributed System Implementation
        1. Meeting the 12 Objectives with Oracle
          1. Local Autonomy
          2. No Reliance on a Single Site
          3. Continuous Operation
          4. Location Transparency
          5. Fragmentation Independence
          6. Replication Independence
          7. Distributed Query Processing
          8. Distributed Transaction Management
          9. Hardware Independence
          10. Operating System Independence
          11. Network Independence
          12. RDBMS Independence.
          13. Conclusions
        2. Oracle’s Global Data Dictionary
          1. Global Naming
          2. Data Dictionary Views and Location Transparency
      7. 7. Sample Configurations
        1. The High-Availability System
          1. The Hot Standby Database
            1. Advantages and disadvantages of the hot standby database
          2. Oracle Parallel Server
            1. Advantages and disadvantages of Oracle parallel server
          3. Advanced Replication
            1. Advantages and disadvantages of advanced replication
        2. Geographic Data Distribution
        3. Workflow Partitioning
        4. Data Collection and Consolidation
        5. Loosely Coupled Federation
      8. 8. Engineering Considerations
        1. Schema Design and Integration
          1. Interdatabase Referential Integrity
          2. Naming Conventions
          3. Distributed Queries and Transactions
            1. Control the driving site
            2. Control index usage
          4. Maintenance of Database Link Connections
          5. Error Handling
        2. Application Tiering
        3. Designing a Replicated System
          1. Transactional Consistency
          2. Schema Differences and Partitioning
          3. Row-Level Replication or Procedural Replication?
          4. Primary Keys and Unique Indexes
          5. Foreign Keys and Referential Integrity
          6. Triggers on Replicated Tables
          7. Datatypes
          8. Time
          9. Sequences
            1. Using a single sequence at a master site
            2. Allocating sequence ranges to sites
            3. Using a multicolumn primary key
          10. Multiple Character Sets
    3. II. Replication
      1. 9. Oracle Replication Architecture
        1. What Is Oracle Replication?
        2. Types of Replication
        3. Architecture Components
          1. The Queues
          2. The Triggers and Packages
            1. The read-only snapshot mechanism
            2. The updateable snapshot mechanism
            3. The multi-master replication mechanism
          3. The Background Processes
        4. Replication of DDL
        5. Oracle8 Enhancements
        6. Oracle8i Enhancements
        7. Alternatives to Replication
          1. A pplication- and Trigger-Based Replication
          2. Export/Import
          3. COPY/CREATE TABLE AS SELECT
      2. 10. Advanced Replication Installation
        1. Initialization Parameters
        2. Redo Logs and Rollback Segments
        3. Size and Placement of Data Dictionary Objects
        4. Administrative Accounts, Privileges, and Database Links
          1. Configuring Oracle7 for the Mirrored User Access Model
          2. Configuring Oracle7 for the Global Access Model
          3. Configuring Oracle8 for Advanced Replication
      3. 11. Basic Replication
        1. About Read-Only Snapshots
        2. Prerequisites and Restrictions
          1. Initialization Parameters
          2. System Privileges
          3. Restrictions
        3. Snapshot Creation Basics
          1. The Snapshot STORAGE Clause
          2. The REFRESH Clause
          3. The Defining Query
        4. Simple Versus Complex Snapshots
        5. Snapshot Logs
          1. Restrictions on Snapshot Logs
          2. Creation Tips
          3. Snapshot Logs for ROWID Snapshots
        6. Subquery Subsetting
          1. Restrictions on Subquery Subsets
          2. Subquery Subset Snapshot Base Tables
          3. A Special Case
        7. Refresh Groups
          1. Creating and Destroying Refresh Groups
            1. Creating a snapshot refresh group of read-only snapshots
            2. Creating a snapshot refresh group of read-only snapshots with specialized parameters
            3. Creating a snapshot r efresh group that uses parallel propagation (Oracle8 only)
            4. Dropping a refresh group
        8. Management and Optimization
          1. Tuning Snapshots
          2. Administrative Tasks
          3. Reorganizing a Master Table in Oracle8
            1. Steps for reorganizing a master table using truncation
            2. Steps for reorganizing a master table by renaming
          4. Offline Instantiation of Snapshots
          5. Troubleshooting
            1. Snapshots are not refreshing
            2. Snapshots refreshing continuously
            3. Snapshot logs are growing uncontrollably
        9. Scripts
      4. 12. Multi-Master Replication
        1. Concepts and Terminology
          1. Deferred Transaction
          2. Replication Group
          3. Quiescence
          4. Master Definition Site
          5. Master Site
          6. Replication Support
          7. Conflict
          8. Propagation Latency
          9. Instantiation
        2. Getting Started
          1. The Quick-and-Dirty Setup
          2. A Quick-and-Dirty Example
        3. Replication Groups
          1. API Calls
          2. Naming Conventions
          3. Which Tables Belong in the Same Replication Group?
          4. How to Drop a Replication Group
        4. Master Site Maintenance and Propagation
          1. API Calls
          2. Adding a Master Site
            1. Creating the REGIONS table
            2. Creating constraints and indexes on REGIONS table
            3. Creating user-defined triggers on the REGIONS table
          3. Dropping a Master Site
          4. Relocating a Master Definition Site
        5. Controlling Propagation
          1. API Calls
          2. About the Parameters
          3. Parallel Propagation
            1. Managing parallel propagation
            2. Checking parallel pushes
            3. Parallel push errors
            4. Synchronous versus asynchronous propagation
            5. Scheduling multiple push intervals for the same database
        6. The Replication Catalog
          1. Replication Catalog Data Dictionary Views
          2. Pushing repcatlog Entries
          3. Monitoring Progress
          4. Correcting Errors
        7. Table Replication
          1. API Calls
          2. Column Groups
          3. Minimum Communication and SEND_AND_COMPARE_OLD_VALUES
          4. Triggers on Replicated Tables
            1. A trigger to populate fields at the originating site only
            2. A trigger to populate a field from a sequence on inserts and fields used for conflict resolution
            3. Replicating triggers themselves
          5. Using Offline Instantiation
            1. Offline instantiation caveats
            2. An alternative to DBMS_OFFLINE_OG
          6. Adding and Removing Tables
            1. Adding replicated tables.
            2. Removing replicated tables
            3. Dropping replicated tables: caveats
            4. Partially dropped tables (Oracle8 only)
        8. Replicating DDL
          1. Restrictions
          2. Examples
            1. Creating an index
            2. Compiling a replicated package body
            3. Altering a column in a replicated table
          3. Manually Executing Entries in the repcatlog
          4. Deleting Errors from the repcatlog
        9. Your Replicated Environment
          1. Monitoring Queued Transactions
          2. Monitoring Deferred Transaction Errors
          3. Monitoring Snapshot Logs
          4. Monitoring: Summary
        10. Advanced Replication Limitations
      5. 13. Updateable Snapshots
        1. About Updateable Snapshots
          1. Restrictions
        2. Creating Updateable Snapshots
          1. Preliminary Steps
          2. Preparing the Master Table
          3. Preparing the Snapshot Site
          4. User-Defined Triggers on Updateable Snapshots
        3. Communication Flow
        4. Controlling Propagation and Refreshes
          1. Real-Time (Synchronous) Propagation
          2. Once-a-Day Propagation
          3. Propagation on Demand
        5. Maintenance
          1. Altering the Master Table
          2. Dropping a Replicated Snapshot Object
            1. Master table still exists
            2. Remastering a snapshot
      6. 14. Procedural Replication
        1. When to Use Procedural Replication
        2. How Procedural Replication Works
        3. Creating a Replicated Package Procedure
        4. Restrictions on Procedural Replication
        5. An Example
          1. cr_seq_audit_admin.sql
          2. cr_audit_admin.sql
          3. pl_useradmin.sql
          4. rep_useradmin.sql
      7. 15. Conflict Avoidance and Resolution Techniques
        1. Data Integrity Versus Data Convergence
        2. Applications That Avoid Conflicts
          1. Normalize
          2. Designate a Governing Column for Column Groups
          3. Standardize on a Time Zone
          4. Identify Workflow
          5. Consider Token Passing
          6. Perform Strategic Administration
        3. Types of Conflicts Detected
          1. Limitations of Delete Conflict Resolution
            1. Defining a delete conflict handler
          2. Limitations of NULL Values in Conflict Resolution
          3. Referential Integrity Violations and Conflict Resolution
          4. Conflicts Arising from Procedural Replication
        4. How Oracle Detects and Resolves Conflicts
        5. Column Groups and Priority Groups
          1. Column Groups
            1. How the column group resolution mechanism works
            2. APIs for column groups
          2. Priority Groups
          3. Site Priority
            1. APIs for priority groups and site priority
        6. The Built-in Methods
          1. Minimum Value/Maximum Value
          2. Earliest Timestamp/Latest Timestamp
          3. Overwrite Update/Discard Update
          4. Average/Additive
          5. Append Site Name/Append Sequence
          6. Ignore Insert/Discard Insert
        7. Writing Your Own Conflict Resolution Handler
    4. III. Appendixes
      1. A. Built-in Packages for Distributed Systems
        1. DBMS_DEFER: Building Deferred Calls
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_DEFER Procedures
          4. DBMS_DEFER Exceptions
          5. DBMS_DEFER Nonprogram Elements
            1. DBMS_DEFER.CALL
            2. DBMS_DEFER.COMMIT_WORK
            3. DBMS_DEFER.datatype_ARG
            4. DBMS_DEFER.TRANSACTION
        2. DBMS_DEFER_QUERY: Performing Diagnostics and Maintenance
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_DEFER_QUERY Procedures
          4. DBMS_DEFER_QUERY Nonprogram Elements
            1. DBMS_DEFER_QUERY.GET_ARG_TYPE
            2. DBMS_DEFER_QUERY.GET_CALL_ARGS
            3. DBMS_DEFER_QUERY.GET_datatype_ARG
        3. DBMS_DEFER_SYS: Managing Deferred Transactions
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_DEFER_SYS Procedures
          4. DBMS_DEFER_SYS Exceptions
          5. DBMS_DEFER_SYS Nonprogram Elements
            1. DBMS_DEFER_SYS.ADD_DEFAULT_DEST
            2. DBMS_DEFER_SYS.COPY (Oracle7 only)
            3. DBMS_DEFER.SYS.DELETE_DEFAULT_DEST
            4. DBMS_DEFER_SYS.DELETE_ERROR
            5. DBMS_DEFER_SYS.DELETE_TRAN
            6. DBMS_DEFER_SYS.DISABLED
            7. DBMS_DEFER_SYS.EXCLUDE_PUSH (Oracle8 Only)
            8. DBMS_DEFER_SYS.EXECUTE
            9. DBMS_DEFER_SYS.EXECUTE_ERROR
            10. DBMS_DEFER_SYS.PURGE (Oracle8 Only)
            11. DBMS_DEFER_SYS.PUSH
            12. DBMS_DEFER_SYS.REGISTER_PROPAGATOR (Oracle8 Only)
            13. DBMS_DEFER_SYS.SCHEDULE_EXECUTION
            14. DBMS_DEFER_SYS.SCHEDULE_PURGE (Oracle8 Only)
            15. DBMS_DEFER_SYS.SCHEDULE_PUSH (Oracle8 Only)
            16. DBMS_DEFER_SYS.SET_DISABLED
            17. DBMS_DEFER_SYS.UNREGISTER_PROPAGATOR (Oracle8 Only)
            18. DBMS_DEFER_SYS.UNSCHEDULE_EXECUTION
            19. DBMS_DEFER_SYS.UNSCHEDULE_PURGE (Oracle8 Only)
            20. DBMS_DEFER_SYS.UNSCHEDULE_PUSH (Oracle8 Only)
        4. DBMS_OFFLINE_OG: Performing Site Instantiation
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_OFFLINE_OG Procedures
          4. DBMS_OFFLINE_OG Exceptions
          5. DBMS_OFFLINE_OG Nonprogram Elements
            1. DBMS_OFFLINE_OG.BEGIN_INSTANTIATION
            2. DBMS_OFFLINE_OG.BEGIN_LOAD
            3. DBMS_OFFLINE_OG.END_INSTANTIATION
            4. DBMS_OFFLINE_OG.END_LOAD
            5. DBMS_OFFLINE_OG.RESUME_SUBSET_OF_MASTERS
        5. DBMS_OFFLINE_SNAPSHOT: Performing Offline Snapshot Instantiation
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_OFFLINE_SNAPSHOT Procedures
          4. DBMS_OFFLINE_SNAPSHOT Exceptions
            1. DBMS_OFFLINE_SNAPSHOT.BEGIN_LOAD
            2. DBMS_OFFLINE_SNAPSHOT. END_LOAD
        6. DBMS_RECTIFIER_DIFF: Comparing Replicated Tables
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_RECTIFIER_DIFF Procedures
          4. DBMS_RECTIFIER_DIFF Exceptions
            1. DBMS_RECTIFIER_DIFF.DIFFERENCES
            2. DBMS_RECTIFIER_DIFF. RECTIFY
        7. DBMS_REFRESH: Managing Snapshot Groups
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_REFRESH Procedures
          4. DBMS_REFRESH Nonprogram Elements
            1. DBMS_REFRESH.ADD
            2. DBMS_REFRESH.CHANGE
            3. DBMS_REFRESH.DESTROY
            4. DBMS_REFRESH.MAKE
            5. DBMS_REFRESH.REFRESH
            6. DBMS_REFRESH. SUBTRACT
        8. DBMS_REPCAT: Performing Replication Administration
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_REPCAT Procedures
          4. DBMS_REPCAT Exceptions
          5. DBMS_REPCAT Nonprogram Elements
          6. DBMS_REPCAT.ADD_conflicttype_RESOLUTION
            1. Parameters
            2. Exceptions
            3. Restrictions
              1. DBMS_REPCAT.ADD_GROUPED_COLUMN
              2. DBMS_REPCAT.ADD_MASTER_DATABASE
              3. DBMS_REPCAT.ADD_PRIORITY_datatype
              4. DBMS_REPCAT.ADD_SITE_PRIORITY_SITE
              5. DBMS_REPCAT. ALTER_MASTER_PROPAGATION
              6. DBMS_REPCAT. ALTER_MASTER_REPOBJECT
              7. DBMS_REPCAT.ALTER_PRIORITY
              8. DBMS_REPCAT.ALTER_PRIORITY_datatype
              9. DBMS_REPCAT.ALTER_SITE_PRIORITY
              10. DBMS_REPCAT.ALTER_SITE_PRIORITY_SITE
              11. DBMS_REPCAT.ALTER_SNAPSHOT_PROPAGATION
              12. DBMS_REPCAT.CANCEL_STATISTICS
              13. DBMS_REPCAT.COMMENT_ON_conflicttype_RESOLUTION
              14. DBMS_REPCAT.COMMENT_ON_COLUMN_GROUP
              15. DBMS_REPCAT.COMMENT_ON_PRIORITY_GROUP
              16. DBMS_REPCAT. COMMENT_ON_REPGROUP
              17. DBMS_REPCAT. COMMENT_ON_REPOBJECT
              18. DBMS_REPCAT.COMMENT_ON_REPSITES
              19. DBMS_REPCAT.COMMENT_ON_SITE_PRIORITY
              20. DBMS_REPCAT.CREATE_MASTER_REPGROUP
              21. DBMS_REPCAT.CREATE_MASTER_REPOBJECT
              22. DBMS_REPCAT. CREATE_SNAPSHOT_REPGROUP
              23. DBMS_REPCAT.CREATE_SNAPSHOT_REPOBJECT
              24. DBMS_REPCAT.DEFINE_COLUMN_GROUP
              25. DBMS_REPCAT.DEFINE_PRIORITY_GROUP
              26. DBMS_REPCAT.DEFINE_SITE_PRIORITY
              27. DBMS_REPCAT .DO_DEFERRED_REPCAT_ADMIN
              28. DBMS_REPCAT.DROP_conflicttype_RESOLUTION
              29. DBMS_REPCAT.DROP_COLUMN_GROUP
              30. DBMS_REPCAT.DROP_GROUPED_COLUMN
              31. DBMS_REPCAT.DROP_MASTER_REPGROUP
              32. DBMS_REPCAT.DROP_MASTER_REPOBJECT
              33. DBMS_REPCAT.DROP_PRIORITY
              34. DBMS_REPCAT.DROP_PRIORITY_datatype
              35. DBMS_REPCAT.DROP_PRIORITY_GROUP
              36. DBMS_REPCAT.DROP_SITE_PRIORITY
              37. DBMS_REPCAT.DROP_SITE_PRIORITY_SITE
              38. DBMS_REPCAT.DROP_SNAPSHOT_REPGROUP
              39. DBMS_REPCAT.DROP_SNAPSHOT_REPOBJECT
              40. DBMS_REPCAT.EXECUTE_DDL
              41. DBMS_REPCAT.GENERATE_REPLICATION_PACKAGE
              42. DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT
              43. DBMS_REPCAT.GENERATE_REPLICATION_TRIGGER
              44. DBMS_REPCAT.MAKE_COLUMN_GROUP
              45. DBMS_REPCAT. PURGE_MASTER_LOG
              46. DBMS_REPCAT.PURGE_STATISTICS
              47. DBMS_REPCAT.REFRESH_SNAPSHOT_REPGROUP
              48. DBMS_REPCAT.REGISTER_STATISTICS
              49. DBMS_REPCAT. RELOCATE_MASTERDEF
              50. DBMS_REPCAT.REMOVE_MASTER_DATABASES
              51. DBMS_REPCAT. REPCAT_IMPORT_CHECK
              52. DBMS_REPCAT.RESUME_MASTER_ACTIVITY
              53. DBMS_REPCAT.SEND_AND_COMPARE_OLD_VALUES (Oracle8 Only)
              54. DBMS_REPCAT. SET_COLUMNS
              55. DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY
              56. DBMS_REPCAT.SWITCH_SNAPSHOT_MASTER
              57. DBMS_REPCAT.VALIDATE
              58. DBMS_REPCAT.WAIT_MASTER_LOG
        9. DBMS_REPCAT_ADMIN: Setting Up Administrative Accounts
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_REPCAT_ADMIN Procedures
          4. DBMS_REPCAT_ADMIN Exceptions
            1. DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_REPGROUP
            2. DBMS_REPCAT_ADMIN.GRANT_ADMIN_REPGROUP
            3. DBMS_REPCAT_ADMIN.REVOKE_ADMIN_ANY_REPGROUP
            4. DBMS_REPCAT_ADMIN.REVOKE_ADMIN_REPGROUP
        10. DBMS_REPCAT_AUTH: Setting Up More Administrative Accounts
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_REPCAT_AUTH Procedures
          4. DBMS_REPCAT_AUTH Exceptions
            1. DBMS_REPCAT_AUTH.GRANT_SURROGATE_REPCAT
            2. DBMS_REPCAT_AUTH.REVOKE_SURROGATE_REPCAT
        11. DBMS_REPUTIL: Enabling and Disabling Replication
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_REPUTIL Procedures
          4. DBMS_REPUTIL Nonprogram Elements
            1. DBMS_REPUTIL.REPLICATION_OFF
            2. DBMS_REPUTIL.REPLICATION_ON
        12. DBMS_SNAPSHOT: Managing Snapshots
          1. How the Package Is Used
          2. Installation and Access
          3. DBMS_SNAPSHOT Procedures
            1. DBMS_SNAPSHOT.BEGIN_TABLE_REORGANIZATION (Oracle8 Only)
            2. DBMS_SNAPSHOT.END_TABLE_REORGANIZATION (Oracle8 Only)
            3. DBMS_SNAPSHOT.I_AM_A_REFRESH
            4. DBMS_SNAPSHOT.PURGE_LOG
            5. DBMS_SNAPSHOT.REFRESH
            6. DBMS_SNAPSHOT.REFRESH_ALL
            7. DBMS_SNAPSHOT.REGISTER_SNAPSHOT (Oracle8 Only)
            8. DBMS_SNAPSHOT.SET_I_AM_A_REFRESH
            9. DBMS_SNAPSHOT.UNREGISTER_SNAPSHOT (Oracle8 Only)
      2. B. Scripts and Utilities
        1. busycirc.sql
        2. busydisp.sql
        3. busyq.sql
        4. checklatency
        5. colgroups.sql
        6. confstats.sql
        7. cr_regions.sql
        8. defcall.sql
        9. defcalldest.sql
        10. defcallinfo.sql
        11. defdest.sql
        12. deferror.sql
        13. deferror8.sql
        14. deforigin.sql
        15. defschedule.sql
        16. deftran.sql
        17. deftrandest.sql
        18. disprate.sql
        19. errorinfo.sql
        20. fixdefer.sql
        21. gendelerrtran.sql
        22. gendeltran.sql
        23. gengensup.sql
        24. groupedcols.sql
        25. invalids.sql
        26. jobs.sql
        27. keycols.sql
        28. lastsnap.sql
        29. latent.sql
        30. links.sql
        31. mastersnapinfo.sql
        32. mlogs.sql
        33. needsgen.sql
        34. nonrepobjects.sql
        35. pk_regions.sql
        36. prioritygroups.sql
        37. prioritysites.sql
        38. propmode.sql
        39. refgroups.sql
        40. regsnaps.sql
        41. repcaterr.sql
        42. repcatlog.sql
        43. repconflict.sql
        44. repgroup.sql
        45. repobjects.sql
        46. repres.sql
        47. repsites.sql
        48. resconfs.sql
        49. snaps.sql
        50. snaps7.sql
        51. trg_regions.sql
        52. UserAdmin
    5. Index
    6. Colophon