Sie sind auf Seite 1von 8

Physical and logical structures

An Oracle database system—identified by an alphanumeric system identifier or SID[4]—


comprises at least one instance of the application, along with data storage. An instance—
identified persistently by an instantiation number (or activation id:
SYS.V_$DATABASE.ACTIVATION#)—comprises a set of operating-system processes and
memory-structures that interact with the storage. Typical processes include PMON (the process
monitor) and SMON (the system monitor).

Users of the Oracle databases refer to the server-side memory-structure as the SGA (System
Global Area). The SGA typically holds cache information such as data-buffers, SQL commands,
and user information. In addition to storage, the database consists of online redo logs (or logs),
which hold transactional history. Processes can in turn archive the online redo logs into archive
logs (offline redo logs), which provide the basis (if necessary) for data recovery and for some
forms of data replication.

If the Oracle database administrator has implemented Oracle RAC (Real Application Clusters),
then multiple instances, usually on different servers, attach to a central storage array. This
scenario offers advantages such as better performance, scalability and redundancy. However,
support becomes more complex, and many sites do not use RAC. In version 10g, grid computing
introduced shared resources where an instance can use (for example) CPU resources from
another node (computer) in the grid.

The Oracle DBMS can store and execute stored procedures and functions within itself. PL/SQL
(Oracle Corporation's proprietary procedural extension to SQL), or the object-oriented language
Java can invoke such code objects and/or provide the programming structures for writing them.

[edit] Storage

The Oracle RDBMS stores data logically in the form of tablespaces and physically in the form of
data files ("datafiles").[5] Tablespaces can contain various types of memory segments, such as
Data Segments, Index Segments, etc. Segments in turn comprise one or more extents. Extents
comprise groups of contiguous data blocks. Data blocks form the basic units of data storage.

There is also a partitioning feature available on newer versions of the database, which allows
tables to be partitioned based on different set of keys. Specific partitions can then be easily added
or dropped to help manage large data sets.

Oracle database management tracks its computer data storage with the help of information stored
in the SYSTEM tablespace. The SYSTEM tablespace contains the data dictionary—and often (by
default) indexes and clusters. A data dictionary consists of a special collection of tables that
contains information about all user-objects in the database. Since version 8i, the Oracle RDBMS
also supports "locally managed" tablespaces which can store space management information in
bitmaps in their own headers rather than in the SYSTEM tablespace (as happens with the default
"dictionary-managed" tablespaces). Version 10i and later introduced the SYSAUX tablespace
which contains some of the tables formerly in the SYSTEM tablespace.
[edit] Disk files

This section requires expansion.

Disk files primarily consist of the following types:

• Data and index files


• Redo log files consisting of all changes to the database, used to recover from an instance
failure
• Undo files used for recovery, rollbacks, and read consistency
• Archive log files
• Temporary files
• Control files containing information on data files

At the physical level, data files comprise one or more data blocks, where the block size can vary
between data files.

Data files can occupy pre-allocated space in the file system of a computer server, utilize raw disk
directly, or exist within ASM logical volumes.[6]

[edit] Control files

The following parameters govern the size of the control files:

* maxlogfile
* maxlogmembers
* maxloghistory
* maxinstances
* control_file_record_keep_time

[edit] Database Schema

Oracle database conventions refer to defined groups of object ownership (generally associated
with a "username") as schemas.

Most Oracle database installations traditionally came with a default schema called SCOTT. After
the installation process has set up the sample tables, the user can log into the database with the
username scott and the password tiger. The name of the SCOTT schema originated with Bruce
Scott, one of the first employees at Oracle (then Software Development Laboratories), who had a
cat named Tiger.[7]

Oracle Corporation has de-emphasized the use of the SCOTT schema, as it uses few of the
features of the more recent releases of Oracle. Most recent examples supplied by Oracle
Corporation reference the default HR or OE schemas.

Other default schemas[8][9] include:


• SYS (essential core database structures and utilities)
• SYSTEM (additional core database structures and utilities, and privileged account)
• OUTLN (utilized to store metadata for stored outlines for stable query-optimizer execution
plans.[10]
• BI, IX, HR, OE, PM, and SH (expanded sample schemas[11] containing more data and
structures than the older SCOTT schema).

[edit] System Global Area

Main article: System Global Area

Each Oracle instance uses a System Global Area or SGA—a shared-memory area—to store its
data and control-information.[12]

Each Oracle instance allocates itself an SGA when it starts and de-allocates it at shut-down time.
The information in the SGA consists of the following elements, each of which has a fixed size,
established at instance startup:

• the redo log buffer: this stores redo entries—a log of changes made to the database. The
instance writes redo log buffers to the redo log as quickly and efficiently as possible. The
redo log aids in instance recovery in the event of a system failure.
• the shared pool: this area of the SGA stores shared-memory structures such as shared
SQL areas in the library cache and internal information in the data dictionary. An
insufficient amount of memory allocated to the shared pool can cause performance
degradation.

[edit] Library cache

The library cache[13] stores shared SQL, caching the parse tree and the execution plan for every
unique SQL statement. If multiple applications issue the same SQL statement, each application
can access the shared SQL area. This reduces the amount of memory needed and reduces the
processing-time used for parsing and execution planning.

[edit] Data dictionary cache

The data dictionary comprises a set of tables and views that map the structure of the database.

Oracle databases store information here about the logical and physical structure of the database.
The data dictionary contains information such as:

• user information, such as user privileges


• integrity constraints defined for tables in the database
• names and datatypes of all columns in database tables
• information on space allocated and used for schema objects
The Oracle instance frequently accesses the data dictionary in order to parse SQL statements.
The operation of Oracle depends on ready access to the data dictionary: performance bottlenecks
in the data dictionary affect all Oracle users. Because of this, database administrators should
make sure that the data dictionary cache[14] has sufficient capacity to cache this data. Without
enough memory for the data-dictionary cache, users see a severe performance degradation.
Allocating sufficient memory to the shared pool where the data dictionary cache resides
precludes these particular performance problems.

[edit] Program Global Area

The Program Global Area[15][16] or PGA memory-area of an Oracle instance contains data and
control-information for Oracle's server-processes.

The size and content of the PGA depends on the Oracle-server options installed. This area
consists of the following components:

• stack-space: the memory that holds the session's variables, arrays, and so on.
• session-information: unless using the multithreaded server, the instance stores its session-
information in the PGA. (In a multithreaded server, the session-information goes in the
SGA.)
• private SQL-area: an area in the PGA which holds information such as bind-variables and
runtime-buffers.
• sorting area: an area in the PGA which holds information on sorts, hash-joins, etc.

[edit] Dynamic performance views

The dynamic performance views (also known as "fixed views") within an Oracle database
present information from virtual tables (X$ tables[17]) built on the basis of database memory.[18]
Database users can access the V$ views (named after the prefix of their synonyms) to obtain
information on database structures and performance.

[edit] Process architectures

[edit] Oracle processes

The Oracle RDBMS typically relies on a group of processes running simultaneously in the
background and interacting to monitor and expedite database operations. Typical operating
environments might include some of the following individual processes (shown along with their
abbreviated nomenclature):[19]

• advanced queueing processes (Qnnn)[20]


• archiver processes (ARCn)
• checkpoint process (CKPT) *REQUIRED*
• coordinator-of-job-queues process (CJQn): dynamically spawns slave processes for job-
queues
• database writer processes (DBWn) *REQUIRED*
• dispatcher processes (Dnnn): multiplex server-processes on behalf of users
• job-queue slave processes (Jnnn)[21]
• log-writer process (LGWR) *REQUIRED*
• log-write network-server (LNSn): transmits redo logs in Data Guard environments
• logical standby coordinator process (LSP0): controls Data Guard log-application
• media-recovery process (MRP): detached recovery-server process
• memory-manager process (MMAN): used for internal database tasks such as Automatic
Shared Memory Management
• memory-monitor process (MMON): process for automatic problem-detection, self-tuning
and statistics-gathering[22]
• memory-monitor light process (MMNL): gathers and stores Automatic Workload
Repository (AWR) data
• mmon slaves (Mnnnn—M0000, M0001, etc.): background slaves of the MMON
process[23]
• process-monitor process (PMON) *REQUIRED*
• process-spawner (PSP0): spawns Oracle processes
• queue-monitor coordinator process (QMNC): dynamically spwans queue monitor
slaves[24]
• queue-monitor processes (QMNn)
• recoverer process (RECO)
• remote file-server process (RFS)
• shared server processes (Snnn): serve client-requests
• system monitor process (SMON) *REQUIRED*

[edit] User processes, connections and sessions

Oracle Database terminology distinguishes different computer-science terms in describing how


end-users interact with the database:

• user processes involve the invocation of application software[25]


• a connection refers to the pathway linking a user process to an Oracle instance[26]
• sessions consist of specific connections to an Oracle instance.[27] Each session within an
instance has a session identifier or "SID"[28] (distinct from the system-identifier SID).

[edit] Concurrency and locking

Oracle databases control simultaneous access to data resources with locks (alternatively
documented as "enqueues"[29] ). The databases also utilize "latches" -- low-level serialization
mechanisms to protect shared data structures in the System Global Area.[30]

[edit] Configuration

Database administrators control many of the tunable variations in an Oracle instance by means of
values in a parameter file.[31] This file in its ASCII default form ("pfile") normally has a name of
the format init<SID-name>.ora. The default binary equivalent server paramater file ("spfile")
(dynamically reconfigurable to some extent)[32] defaults to the format spfile<SID-name>.ora.
Within an SQL-based environment, the views V$PARAMETER[33] and V$SPPARAMETER[34] give
access to reading parameter values.

[edit] Internationalization
Oracle Database software comes in 63 language-versions (including regional variations such as
British English and American English). Variations between versions cover the names of days and
months, abbreviations, time-symbols such as A.M. and A.D., and sorting.[35]

Oracle Corporation has translated Oracle Database error-messages into Arabic, Catalan, Chinese,
Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hebrew, Hungarian, Italian,
Japanese, Korean, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Spanish,
Swedish, Thai and Turkish.[36]

Oracle Corporation provides database developers with tools and mechanisms for producing
internationalized database applications: referred to internally as "Globalization". [37] ".[38]

[edit] History
[edit] Corporate/technical timeline

• 1977: Larry Ellison and friends founded Software Development Laboratories.


• 1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and
introduced its product Oracle V2 as an early commercially available relational database
system. The version did not support transactions, but implemented the basic SQL
functionality of queries and joins. (RSI never released a version 1 - instead calling the
first version version 2 as a marketing gimmick.)[39]
• 1982: RSI in its turn changed its name, becoming known as "Oracle Corporation",[40] to
align itself more closely with its flagship product.
• 1983: The company released Oracle version 3, which it had re-written using the C
programming language and which supported COMMIT and ROLLBACK functionality for
transactions. Version 3 extended platform support from the existing Digital VAX/VMS
systems to include Unix environments.[40]
• 1984: Oracle Corporation released Oracle version 4, which supported read-consistency.
• 1985: Oracle Corporation released Oracle version 5, which supported the client–server
model—a sign of networks becoming more widely available in the mid-1980s.
• 1986: Oracle version 5.1 started supporting distributed queries.
• 1988: Oracle RDBMS version 6 came out with support for PL/SQL embedded within
Oracle Forms v3 (version 6 could not store PL/SQL in the database proper), row-level
locking and hot backups.[41]
• 1989: Oracle Corporation entered the application products market and developed its ERP
product, (later to become part of the Oracle E-Business Suite), based on the Oracle
relational database.
• 1990: the release of Oracle Applications release 8[40]
• 1992: Oracle version 7 appeared with support for referential integrity, stored procedures
and triggers.
• 1997: Oracle Corporation released version 8, which supported object-oriented
development and multimedia applications.
• 1999: The release of Oracle8i aimed to provide a database inter-operating better with the
Internet (the i in the name stands for "Internet"). The Oracle8i database incorporated a
native Java virtual machine (Oracle JVM, also known as "Aurora".[42]).
• 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software[40]
• 2001: Oracle9i went into release with 400 new features, including the ability to read and
write XML documents. 9i also provided an option for Oracle RAC, or "Real Application
Clusters", a computer-cluster database, as a replacement for the Oracle Parallel Server
(OPS) option.
• 2003: Oracle Corporation released Oracle Database 10g, which supported regular
expressions. (The g stands for "grid"; emphasizing a marketing thrust of presenting 10g
as "grid computing ready".)
• 2005: Oracle Database 10.2.0.1—also known as Oracle Database 10g Release 2 (10gR2)
—appeared.
• 2006: Oracle Corporation announces Unbreakable Linux[40]
• 2007: Oracle Database 10g release 2 sets a new world record TPC-H 3000 GB
benchmark result[43]
• 2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft
Windows.
• 2008: Oracle Corporation acquires BEA Systems.
• 2010: Oracle Corporation acquires Sun Microsystems.

[edit] Version numbering

Oracle products have historically followed their own release-numbering and naming
conventions. With the Oracle RDBMS 10g release, Oracle Corporation started standardizing all
current versions of its major products using the "10g" label, although some sources continued to
refer to Oracle Applications Release 11i as Oracle 11i. The suffixes of "i" and "g" do not actually
represent a lower-order level of version numbering, as letters typically represent in software
industry version numbering. That is, there is no predecessor version of Oracle 10g called Oracle
10f. Instead, the letters merely represent a marketing gimmick to demonstrate Oracle's focus on
the "internet" and "grid", respectively. Consequently, many simply drop the letter suffix when
referring to Oracle versions. Major database-related products and some of their versions include:

• Oracle Application Server 10g (also known as "Oracle AS 10g"): a middleware product;
• Oracle Applications Release 11i (aka Oracle e-Business Suite, Oracle Financials or
Oracle 11i): a suite of business applications;
• Oracle Developer Suite 10g (9.0.4);
• Oracle JDeveloper 10g: a Java integrated development environment;

Since version 5, Oracle's RDBMS release numbering has used the following codes:

• Oracle v5
• Oracle v6
• Oracle7: 7.0.16—7.3.4
• Oracle8 Database: 8.0.3—8.0.6
• Oracle8i Database Release 1: 8.1.5.0—8.1.5.1
• Oracle8i Database Release 2: 8.1.6.0—8.1.6.3
• Oracle8i Database Release 3: 8.1.7.0—8.1.7.4
• Oracle9i Database Release 1: 9.0.1.0—9.0.1.5 (patchset as of December 2003)
• Oracle9i Database Release 2: 9.2.0.1—9.2.0.8 (patchset as of April 2007)
• Oracle Database 10g Release 1: 10.1.0.2—10.1.0.5 (patchset as of February 2006)
• Oracle Database 10g Release 2: 10.2.0.1—10.2.0.5 (patchset as of April 2010)
• Oracle Database 11g Release 1: 11.1.0.6—11.1.0.7 (patchset as of September 2008)
• Oracle Database 11g Release 2: 11.2.0.1—11.2.0.2 (patchset as of November 2010)

The version-numbering syntax within each release follows the pattern:


major.maintenance.application-server.component-specific.platform-specific.

For example, "10.2.0.1 for 64-bit Solaris" means: 10th major version of Oracle, maintenance
level 2, Oracle Application Server (OracleAS) 0, level 1 for Solaris 64-bit.

The Oracle Administrator's Guide offers further information on Oracle release numbers.

Das könnte Ihnen auch gefallen