Distributed
Databases in Oracle
Oracle provides support for homogeneous, heterogeneous,
and client server architectures of distributed databases. In a homogeneous
architecture, a minimum of two Oracle databases reside on at least one machine.
Although the location and platform of the databases are transparent to client
applications, they would need to distinguish between local and remote objects
semantically. Using synonyms, this need can be overcome wherein users can
access the remote objects with the same syntax as local objects. Different
versions of DBMSs can be used, although it must be noted that Oracle offers
backward compatibility but not forward compatibility between its versions. For
example, it is possible that some of the SQL extensions that were incorporated
into Oracle 11i may not be understood by Oracle 9.
In a heterogeneous architecture, at least one
of the databases in the network is a non-Oracle system. The Oracle database
local to the application hides the underlying heterogeneity and offers the
view of a single local, underlying Oracle database. Connectivity is handled by
use of an ODBC- or OLE-DB-compliant protocol or by Oracle’s Heterogeneous
Services and Transparent Gateway agent components. A discussion of the
Heterogeneous Services and Transparent Gateway agents is beyond the scope of
this book, and the reader is advised to consult the online Oracle
documentation.
In the client-server architecture, the Oracle
database system is divided into two parts: a front end as the client portion,
and a back end as the server portion. The client portion is the front-end database
application that interacts with the user. The client has no data access
responsibility and merely handles the requesting, processing, and presentation
of data managed by the server. The server portion runs Oracle and handles the
functions related to concurrent shared access. It accepts SQL and PL/SQL
statements originating from client applications, processes them, and sends the
results back to the client. Oracle client-server applications provide location
transparency by making the location of data transparent to users; several
features like views, synonyms, and procedures contribute to this. Global naming
is achieved by using <TABLE_NAME@DATABASE_NAME> to refer to tables uniquely.
Oracle uses a two-phase commit protocol to deal
with concurrent distributed trans-actions. The COMMIT statement triggers the two-phase commit
mechanism. The RECO (recoverer) background process automatically
resolves the outcome of those distributed transactions in which the commit
was interrupted. The RECO of each local Oracle server automatically
commits or rolls back any in-doubt
distributed transactions consistently on all involved nodes. For long-term
failures, Oracle allows each local DBA to manually commit or roll back any
in-doubt transactions and free up resources. Global consistency can be
maintained by restoring the data-base at each site to a predetermined fixed
point in the past.
Oracle’s distributed database architecture is
shown in Figure 25.12. A node in a distributed database system can act as a
client, as a server, or both, depending on the situation. The figure shows two
sites where databases called HQ (headquarters) and Sales are kept. For example,
in the application shown running at the headquarters, for an SQL statement
issued against local data (for example, DELETE
FROM DEPT ...), the HQ computer acts as a server, whereas for a statement
against remote data (for example, INSERT
INTO EMP@SALES), the HQ computer acts as a
client.
Communication in such a distributed heterogeneous environment is
facilitated through Oracle Net Services, which supports standard network
protocols and APIs. Under Oracle’s client-server implementation of distributed
databases, Net Services
is responsible for establishing and managing
connections between a client application and database server. It is present in
each node on the network running an Oracle client application, database server,
or both. It packages SQL statements into one of the many communication
protocols to facilitate client-to-server communication and then packages the
results back similarly to the client. The support offered by Net Services to
heterogeneity refers to platform specifications only and not the database
software. Support for DBMSs other than Oracle is through Oracle’s Heterogeneous
Services and Transparent Gateway. Each database has a unique global name
provided by a hierarchical arrangement of network domain names that is prefixed
to the database name to make it unique.
Oracle supports database links that define a one-way communication path from one Oracle database to another. For example, CREATE DATABASE LINK sales.us.americas; establishes a connection to the sales database in Figure 25.12 under the network domain us that comes under domain americas. Using links, a user can access a remote object on another database subject to ownership rights without the need for being a user on the remote database.
Data in an Oracle DDBS can be replicated using
snapshots or replicated master tables. Replication is provided at the following
levels:
Basic replication. Replicas of tables are managed for read-only
access. For updates, data must be
accessed at a single primary site.
Advanced (symmetric) replication. This extends beyond basic replication by allowing applications to update
table replicas throughout a replicated DDBS. Data can be read and updated at
any site. This requires additional software called Oracle’s advanced replication option. A snapshot generates a copy of a part of the table by means of a
query called the snapshot defining query. A simple snapshot definition
looks like this:
CREATE SNAPSHOT SALES_ORDERS AS
SELECT * FROM
SALES_ORDERS@hq.us.americas;
Oracle groups snapshots into refresh groups. By
specifying a refresh interval, the snapshot is automatically refreshed periodically
at that interval by up to ten Snapshot
Refresh Processes (SNPs). If the defining query of a snapshot contains a distinct or aggregate function, a GROUP BY or CONNECT BY clause, or join or set operations, the
snapshot is termed a complex snapshot
and requires additional processing. Oracle (up to version 7.3) also supports ROWID snapshots that are based on physical row identifiers of rows in
the master table.
Heterogeneous Databases in Oracle. In a heterogeneous DDBS, at least one database is a non-Oracle system. Oracle Open Gateways provides access to a non-Oracle database from
an Oracle server, which uses a database link to access data or to execute
remote procedures in the non-Oracle system. The Open Gateways feature includes
the following:
Distributed transactions. Under the two-phase commit mechanism,
trans-actions may span Oracle and non-Oracle systems.
Transparent SQL access. SQL statements issued by an application are
transparently transformed into SQL statements understood by the non-Oracle
system.
Pass-through SQL and stored procedures. An application can directly access a non-Oracle system using that system’s version of SQL.
Stored procedures in a non-Oracle SQL-based system are treated as if they were
PL/SQL remote procedures.
Global query optimization. Cardinality information, indexes, and so on at the non-Oracle system are accounted for by the Oracle server query optimizer to perform global query optimization.
Procedural access. Procedural systems like messaging or queuing systems are accessed by the Oracle server using PL/SQL remote procedure calls.
In addition to the above, data dictionary
references are translated to make the non-Oracle data dictionary appear as a
part of the Oracle server’s dictionary. Character set translations are done
between national language character sets to connect multi-lingual databases.
From a security perspective, Oracle recommends
that if a query originates at site A and accesses sites B, C, and D, then the
auditing of links should be done in the data-base at site A only. This is
because the remote databases cannot distinguish whether a successful connection
request and following SQL statements are coming from another server or a
locally connected client.
Directory Services
A concept closely related with distributed
enterprise systems is online directories.
Online directories are essentially a structured organization of metadata needed
for management functions. They can represent information about a variety of
sources ranging from security credentials, shared network resources, and
database catalog.
Lightweight
Directory Access Protocol (LDAP)
is an industry standard protocol for
directory services. LDAP enables the use of a partitioned Directory Information Tree (DIT)
across multiple LDAP servers, which in turn can return references to other servers as a result of a directory query.
Online directories and LDAP are particularly important in distributed
databases, wherein access of meta-data related to transparencies discussed in
Section 25.1 must be scalable, secure, and highly available.
Oracle supports LDAP Version 3 and online
directories through Oracle Internet Directory, a general-purpose directory
service for fast access and centralized man-agement of metadata pertaining to
distributed network resources and users. It runs as an application on an Oracle
database and communicates with the database through Oracle Net Services. It
also provides password-based, anonymous, and certificate-based user
authentication using SSL Version 3.
Figure 25.13 illustrates the architecture of
the Oracle Internet Directory. The main components are:
Oracle directory server. Handles client requests and updates for
information pertaining to people and resources.
Oracle directory replication server. Stores a copy of the LDAP data from Oracle directory servers as a backup.
Directory administrator: Supports both GUI-based and command line-based
interfaces for directory administration.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.