Jump to content

Oracle Database: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
my name
Tag: blanking
ClueBot (talk | contribs)
m Reverting possible vandalism by 218.248.80.112 to version by Mark Renier. False positive? Report it. Thanks, ClueBot. (760582) (Bot)
Line 1: Line 1:
{{Infobox Software
| name = Oracle Database
| logo = [[Image:Oracle logo.svg|200px]]
| screenshot =
| caption =
| developer = [[Oracle Corporation]]
| released =
| latest_release_version = 11g
| latest_release_date = {{release date|2007|07|11}}
| latest_preview_version =
| latest_preview_date =
| release_location = Equitable Auditorium, 787 Seventh Avenue, New York, NY 10019
| operating system = [[Cross-platform]]
| programming language = [[C (programming language)|C]]
| language = [[#Languages|Multiple languages]]
| genre = [[Relational database management system|RDBMS]]
| license = [[Proprietary software|Proprietary]]
| website = http://www.oracle.com/
}}


The '''Oracle Database''' (commonly referred to as '''Oracle RDBMS''' or simply '''Oracle''') consists of a [[relational database management system]] (RDBMS) produced and marketed by [[Oracle Corporation]]. {{As of | 2009}}, Oracle remains a major presence in [[database]] [[computing]].<ref>[http://www.pcworld.com/businesscenter/article/147684/idc_oracle_maintains_lead_in_database_market.html IDC: Oracle Maintains Lead in Database Market]</ref>


[[Larry Ellison]] and his friends and former co-workers [[Bob Miner]] and [[Ed Oates]] started the consultancy Software Development Laboratories (SDL) in 1977. SDL developed the original version of the Oracle software. The name ''Oracle'' comes from the code-name of a [[Central Intelligence Agency|CIA]]-funded project Ellison had worked on while previously employed by [[Ampex]].<ref>[http://www.guardian.co.uk/g2/story/0,3604,215072,00.html Welcome to Larryland]</ref>
[edit] Physical and logical structures
An Oracle database system — identified by an alphanumeric system identifier or SID[3] — 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 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. 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.
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).
[edit] Disk files


== Physical and logical structures ==
This section requires expansion.

An Oracle database system — identified by an alphanumeric system identifier or SID<ref>
{{cite web
| url = http://download.oracle.com/docs/cd/B28359_01/install.111/b32077/glossary.htm?type=popup#BABEBJAG
| title = Glossary
| accessdate = 2008-11-17
| author =
| last = Bhakthavatsalam
| first = Namrata
| authorlink =
| coauthors =
| date =
| year = 2008
| month = August
| work = Oracle Database Client Installation Guide 11g Release 1 (11.1) for AIX Based Systems Part Number B32077-03
| publisher = Oracle
| location =
| pages =
| doi =
| archiveurl =
| archivedate =
| quote = The SID automatically defaults to the database name portion of the global database name (sales in the example sales.us.example.com) until you reach eight characters or enter a period. You can accept or change the default value.
}}
</ref> — comprises at least one [[Database|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 [[process (computing)|processes]] and [[Computer data storage|memory]]-structures that interact with the [[Computer data storage|storage]]. Typical processes include PMON (the process monitor) and SMON (the system monitor).

Users of 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 log]]s (or logs), which hold [[Database transaction|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 [[Replication (computer science)|data replication]].

If the Oracle [[database administrator]] has implemented [[Oracle RAC]] (Real Application Clusters), then multiple instances, usually on different [[Server (computing)|servers]], attach to a central [[Disk array|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) [[central processing unit|CPU]] resources from another node (computer) in the grid.

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

=== Storage ===

The Oracle RDBMS [[Data storage device|stores data logically]] in the form of [[tablespace]]s and physically in the form of data [[Computer file|files]]. Tablespaces can contain various types of [[Memory segmentation|memory segment]]s, such as Data Segments, Index Segments, etc. Segments in turn comprise one or more [[Extent (file systems) | extent]]s. Extents comprise groups of contiguous data blocks. Data blocks form the basic units of data storage.

Oracle database management tracks its [[computer data storage]] with the help of information stored in the <code>SYSTEM</code> tablespace. The <code>SYSTEM</code> tablespace contains the [[data dictionary]] — and often (by default) [[Index (database)|indexes]] and [[Cluster (computing)|cluster]]s. A data dictionary consists of a special collection of [[table (database)|tables]] that contains information about all user-[[object (computer science)|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 [[header]]s rather than in the <code>SYSTEM</code> tablespace (as happens with the default "dictionary-managed" tablespaces).

==== Disk files ====
{{sectstub}}
===== Data files =====
At the physical level, [[data file | datafile]]s comprise one or more [[Block (data storage) | data block]]s, where the [[Block (data storage)|block size]] can vary between datafiles.

Datafiles can occupy pre-allocated space in the file system of a computer server, utilize raw disk directly, or exist within [[Automatic Storage Management | ASM]] logical volumes.<ref>
{{cite web
|first = Bob
|last = Watkins
|authorlink =
|title = Look inside ASM disk groups with Oracle 10gR2's ASMCMD
|url = http://articles.techrepublic.com.com/5100-10878_11-6154262.html
|archiveurl =
|work = techrepublic.com
|publisher = ZDNet
|location =
|doi =
|date = 2007-01-30
|archivedate =
|accessdate = 2009-07-30
|quote = In 10g, Oracle introduced a new kind of storage for its database product. Automatic Storage Management (ASM) is a logical volume manager that takes physical disk partitions and manages their contents [...] Until ASM, there were only two choices: file system storage and raw disk storage.
}}
</ref>

===== Control files =====
One (or multiple multiplexed) control files (also known as "controlfiles") store overall system information and statuses.<ref>{{cite web
|first = René
|last = Nyffenegger
|title = Control files [Oracle]
|url = http://www.adp-gmbh.ch/ora/concepts/controlfiles.html
|archiveurl =
|work = René Nyffenegger's collection of things on the web
|publisher =
|location =
|doi =
|date =
|month =
|year =
|archivedate =
|accessdate = 2009-07-30
|quote = The control files of a database store the status of the physical structure of the database.
}}
</ref>

=== Database schema ===
Oracle database conventions refer to defined groups of object ownership (generally associated with a "username") as ''[[database schema|schema]]s''.

Most Oracle database installations traditionally came with a default schema called <code>SCOTT</code>. After the installation process has set up the sample tables, the user can log into the database with the username <code>scott</code> and the password <code>tiger</code>. The name of the <code>SCOTT</code> schema originated with Bruce Scott, one of the first employees at Oracle (then Software Development Laboratories), who had a cat named Tiger.<ref>[http://www.orafaq.com/faqora.htm#SCOTT Oracle FAQ]</ref>

The <code>SCOTT</code> schema has seen less use as it uses few of the features of the more recent releases of Oracle. Most {{as of | 2009 | alt = recent}} examples supplied by Oracle Corporation reference the default HR or OE schemas.

Other default schemas<ref>[http://www.adp-gmbh.ch/ora/misc/known_schemas.html Known schemas in Oracle]</ref> include:
* <code>SYS<code> (essential core database structures and utilities)
* <code>SYSTEM<code> (additional core database structures and utilities, and privileged account)
* <code>OUTLN</code> (utilized to store metadata for stored outlines for stable query-optimizer execution plans <ref>[http://www.adp-gmbh.ch/ora/tuning/cbo/plan_stability.html Optimizer plan stability definition]</ref>.
* <code>BI</code>, <code>IX</code>, <code>HR</code>, <code>OE</code>, <code>PM</code>, and <code>SH</code> (expanded sample schemas<ref>[http://www.adp-gmbh.ch/ora/misc/sample_schemas.html Oracle's sample schemas]</ref> containing more data and structures than the older <code>SCOTT</code> schema).1111

=== Memory architecture ===
==== System Global Area ====
{{main|System Global Area}}

Each Oracle instance uses a [[System Global Area]] or SGA &mdash; a [[shared memory|shared-memory]] area &mdash; to store its data and control-information. <ref>[http://www.world-class-programme.com/Oracle-Architecture-2.asp Oracle Architecture, System Global Area]</ref>


[edit] Data files
At the physical level, datafiles comprise one or more data blocks, where the block size can vary between datafiles.
Datafiles can occupy pre-allocated space in the file system of a computer server, utilize raw disk directly, or exist within ASM logical volumes.[4]
[edit] Control files
One (or multiple multiplexed) control files (also known as "controlfiles") store overall system information and statuses.[5]
[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.[6]
The SCOTT schema has seen less use 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[7] 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 [8].
• BI, IX, HR, OE, PM, and SH (expanded sample schemas[9] containing more data and structures than the older SCOTT schema).1111
[edit] Memory architecture
[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. [10]
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:
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 database buffer cache: this stores the most recently-used data blocks. These blocks can contain modified data not yet written to disk (sometimes known as "dirty blocks"), unmodified blocks, or blocks written to disk since modification (sometimes known as clean blocks). Because the buffer cache keeps blocks based on a most-recently-used algorithm, the most active buffers stay in memory to reduce I/O and to improve performance.
* the database buffer cache: this stores the most recently-used data blocks. These blocks can contain modified data not yet written to disk (sometimes known as "dirty blocks"), unmodified blocks, or blocks written to disk since modification (sometimes known as clean blocks). Because the buffer cache keeps blocks based on a most-recently-used algorithm, the most active buffers stay in memory to reduce I/O and to improve performance.
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 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.
* 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
==== Library cache ====
The library cache[11] stores shared SQL, caching the parse tree and the execution plan for every unique SQL statement.
The library cache<ref>[http://www.world-class-programme.com/Oracle-Architecture-2.asp Oracle architecture, the library cache section]</ref> 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.
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.
==== 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:
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
* user information, such as user privileges
integrity constraints defined for tables in the database
* integrity constraints defined for tables in the database
names and datatypes of all columns in database tables
* names and datatypes of all columns in database tables
information on space allocated and used for schema objects
* 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[12] 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.
The Oracle instance frequently accesses the data dictionary in order to [[parsing|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<ref>[http://www.world-class-programme.com/Oracle-Architecture-2.asp Oracle Architecture, data dictionary cache]</ref> 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[13][14] or PGA memory-area of an Oracle instance contains data and control-information for Oracle's server-processes.
==== Program Global Area ====
The Program Global Area<ref>[http://www.world-class-programme.com/Oracle-Architecture-2.asp Oracle architecture, Program Global Area section]</ref><ref>[http://download.oracle.com/docs/cd/B19306_01/mix.102/b14388/gloss-p.htm#index-PGA PGA Definition], Oracle Database Master Glossary</ref> 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:
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.
* 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.)
* 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.
* 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.
* sorting area: an area in the PGA which holds information on sorts, hash-joins, etc.

[edit] Process architectures
=== Process architectures ===
[edit] Oracle processes
==== 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 groups might include some of the following individual processes — (shown along with their abbreviated nomenclature):[15]

• archiver processes (ARCn)
The Oracle RDBMS typically relies on a group of processes running simultaneously in the [[Background process|background]] and interacting to monitor and expedite database operations. Typical operating groups might include some of the following individual processes — (shown along with their abbreviated nomenclature):<ref>
• checkpoint process (CKPT) *REQUIRED*
[http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/process.htm#i16977 Oracle Process architecture concepts]
• coordinator-of-job-queues process (CJQn): dynamically spawns slave processes for job-queues
</ref>
• database writer processes (DBWn) *REQUIRED*

• dispatcher processes (Dnnn): multiplex server-processes on behalf of users
* archiver processes (ARCn)
• memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management
• log-writer process (LGWR) *REQUIRED*
* checkpoint process (CKPT) *REQUIRED*
* coordinator-of-job-queues process (CJQn): dynamically spawns slave processes for job-queues
• log-write network-server (LNSn): transmits redo logs in Data Guard environments
* database writer processes (DBWn) *REQUIRED*
• logical standby coordinator process (LSP0): controls Data Guard log-application
* dispatcher processes (Dnnn): multiplex server-processes on behalf of users
• media-recovery process (MRP): detached recovery-server process
memory-monitor process (MMON): process for automatic problem-detection, self-tuning and statistics-gathering[16]
* memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management
* log-writer process (LGWR) *REQUIRED*
• memory-monitor light process (MMNL): gathers and stores Automatic Workload Repository (AWR) data
* log-write network-server (LNSn): transmits redo logs in Data Guard environments
• mmon slaves (Mnnnn — M0000, M0001, etc): background slaves of the MMON process[17]
* logical standby coordinator process (LSP0): controls [[Oracle Data Guard|Data Guard]] log-application
• process-monitor process (PMON) *REQUIRED*
* media-recovery process (MRP): detached recovery-server process
• process-spawner (PSP0): spawns Oracle processes
* memory-monitor process (MMON): process for automatic problem-detection, self-tuning and statistics-gathering<ref>
• queue-monitor processes (QMNn)
http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10
• recoverer process (RECO)
{{cite book
• remote file-server process (RFS)
|last= Niemiec
• shared server processes (Snnn): serve client-requests
|first= Richard
• system monitor process (SMON) *REQUIRED*
|authorlink=
[edit] User processes, connections and sessions
|coauthors=
|title= Oracle Database 10g Performance Tuning: Tips & Techniques
|url= http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10
|accessdate= 2009-08-12
|edition=
|series=
|volume=
|date= 2007-06-25
|origyear=
|year=
|month=
|publisher= Oracle Press
|location=
|isbn= 978-0-0722-6305-3
|oclc=
|doi=
|bibcode=
|id=
|page=
|pages= 967
|nopp=
|chapter= 1.30. New Background Processes in 10g
|chapterurl=
|quote= MMON Memory Monitor process is associated with the Automatic Workload Repository new features used for automatic problem detection and self-tuning. MMON writes out the required statistics for AWR on a scheduled basis.
|ref=
|laysummary=
|laydate=
|separator=
|postscript=
|lastauthoramp=
}}
</ref>
* 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<ref>
http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10
{{cite book
|last= Niemiec
|first= Richard
|authorlink=
|coauthors=
|title= Oracle Database 10g Performance Tuning: Tips & Techniques
|url= http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10
|accessdate= 2009-08-12
|edition=
|series=
|volume=
|date= 2007-06-25
|origyear=
|year=
|month=
|publisher= Oracle Press
|location=
|isbn= 978-0-0722-6305-3
|oclc=
|doi=
|bibcode=
|id=
|page=
|pages= 967
|nopp=
|chapter= 1.30. New Background Processes in 10g
|chapterurl=
|quote= M000 These are MMON background slave (m000) processes.
|ref=
|laysummary=
|laydate=
|separator=
|postscript=
|lastauthoramp=
}}
</ref>
* process-monitor process (PMON) *REQUIRED*
* process-spawner (PSP0): spawns Oracle processes
* queue-monitor processes (QMNn)
* recoverer process (RECO)
* remote file-server process (RFS)
* shared server processes (Snnn): serve client-requests
* system monitor process (SMON) *REQUIRED*

==== User processes, connections and sessions ====

Oracle Database terminology distinguishes different computer-science terms in describing how end-users interact with the database:
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[18]
• a connection refers to the pathway linking a user process to an Oracle instance[19]
• sessions consist of specific connections to an Oracle instance.[20] Each session within an instance has a session identifier or "SID"[21] (distinct from the system-identifier SID).
[edit] Concurrency and locking
Oracle databases control simultaneous access to data resources with locks (alternatively documented as "enqueues"[22] ). The databases also utilize "latches" -- low-level serialization mechanisms to protect shared data structures in the System Global Area.[23]
[edit] Configuration
Database administrators control many of the tunable variations in an Oracle instance by means of values in a parameter file.[24] 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)[25] defaults to the format spfile<SID-name>.ora. Within an SQL-based environment, the views V$PARAMETER[26] and V$SP_PARAMETER[27] give access to reading parameter values.
[edit] Internationalization
Oracle Database software comes in 63 language-versions (including regional variations such as American English and British English). Variations between versions cover the names of days and months, abbreviations, time-symbols such as A.M. and A.D., and sorting.[28]
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.[29]
Oracle Corporation provides database developers with tools and mechanisms for producing internationalized database applications: referred to internally as "Globalization".[30]
[edit] History
[edit] Corporate/technical timeline


* user [[Process (computing)|process]]es involve the invocation of application software<ref>{{cite web
This article may contain an inappropriate mixture of prose and timeline. Please help convert this timeline into prose or, if necessary, a list.
|url= http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#sthref1481
|title= Process Architecture
|accessdate= 2008-08-13
|last= Cyran
|first= Michele
|coauthors= Paul Lane
|date=
|year= 2005
|month=
|work= Oracle Database Concepts
|publisher= Oracle Corporation
|quote= When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application.
}}
</ref>
* a connection refers to the pathway linking a user process to an Oracle instance<ref>{{cite web
|url= http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#sthref1481
|title= Process Architecture
|accessdate= 2008-08-13
|last= Cyran
|first= Michele
|coauthors= Paul Lane
|date=
|year= 2005
|month=
|work= Oracle Database Concepts
|publisher= Oracle Corporation
|quote=A connection is a communication pathway between a user process and an Oracle instance.
}}
</ref>
* [[Session (computer science)|session]]s consist of specific connections to an Oracle instance.<ref>{{cite web
|url= http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#sthref1481
|title= Process Architecture
|accessdate= 2008-08-13
|last= Cyran
|first= Suraj
|first= Michele
|coauthors= Paul Lane
|date=
|year= 2005
|month=
|work= Oracle Database Concepts
|publisher= Oracle Corporation
|quote= A session is a specific connection of a user to an Oracle instance through a user process
}}
</ref> Each session within an instance has a session identifier or "SID"<ref>
{{cite web
| url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_3016.htm
| title = V$SESSION
| accessdate = 2008-11-17
| author =
| last = Morales
| first = Tony
| authorlink =
| coauthors =
| date =
| year = 2008
| month =
| work = Oracle Database Reference 11g Release 1(11.1)
| publisher = Oracle
| location =
| pages =
| doi =
| archiveurl =
| archivedate =
| quote =
}}
</ref> (distinct from the system-identifier SID).

=== Concurrency and locking ===

Oracle databases control simultaneous access to data resources with [[Lock (computer science) | lock]]s (alternatively documented as "enqueues"<ref>
{{cite web
| first = Immanuel
| last = Chan
| coauthors =
| title = Glossary
| url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/glossary.htm?type=popup#sthref1649
| archiveurl =
| work = Oracle Database Performance Tuning Guide 11g Release 1 (11.1)
| publisher = Oracle Corporation
| date =
| year = 2008
| month = July
| archivedate =
| accessdate = 2009-04-29
| quote = enqueue[:] This is another term for a lock.
}}
</ref>
). The databases also utilize "latches" -- low-level serialization mechanisms to protect shared data structures in the System Global Area.<ref>
{{cite web
| first =
| last =
| author =
| authorlink =
| coauthors =
| title = Oracle Database Master Glossary: 11g Release 1 (11.1)
| url = http://download.oracle.com/docs/cd/B28359_01/mix.111/b14388/gloss-l.htm
| archiveurl =
| work =
| publisher = Oracle Corporation
| location =
| doi =
| date =
| year =
| month =
| archivedate =
| accessdate = 2009-04-24
| quote = latch[:] A simple, low-level serialization mechanism to protect shared data structures in the System Global Area.
}}
</ref>

=== Configuration ===

Database administrators control many of the tunable variations in an Oracle instance by means of values in a parameter file.<ref>
{{cite web
|first = Richard
|last = Strohm
|author =
|authorlink =
|coauthors = et al.
|title = Parameter Files
|url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/intro.htm#sthref23
|archiveurl =
|work = Oracle Database Concepts 11g Release 1 (11.1)
|publisher = Oracle Corporation
|location =
|page =
|pages =
|doi =
|date =
|month = October
|year = 2008
|archivedate =
|accessdate = 2009-07-14
|quote = Parameter files contain a list of configuration parameters for that instance and database.
}}
</ref>
This file in its ASCII default form ("pfile") normally has a name of the format <code>init<SID-name>.ora</code>. The default binary equivalent server paramater file ("spfile") (dynamically reconfigurable to some extent)<ref>
{{cite web
|first = Richard
|last = Strohm
|author =
|authorlink =
|coauthors = et al.
|title = Initialization Parameter Files and Server Parameter Files
|url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/startup.htm#i9633
|archiveurl =
|work = Oracle Database Concepts 11g Release 1 (11.1)
|publisher = Oracle Corporation
|location =
|page =
|pages =
|doi =
|date =
|month = October
|year = 2008
|archivedate =
|accessdate = 2009-07-14
|quote =
}}
</ref>
defaults to the format <code>spfile<SID-name>.ora</code>. Within an SQL-based environment, the views <code>V$PARAMETER</code><ref>
{{cite web
|first = Tony
|last = Morales
|author =
|authorlink =
|coauthors = et al.
|title = V$PARAMETER
|url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_2.htm#insertedID85
|archiveurl =
|work = Oracle Database Reference 11g Release 1 (11.1)
|publisher = Oracle Corporation
|location =
|page =
|pages =
|doi =
|date =
|month = April
|year = 2009
|archivedate =
|accessdate = 2009-07-14
|quote = V$PARAMETER displays information about the initialization parameters that are currently in effect for the session.
}}
</ref>
and <code>V$SP_PARAMETER</code><ref>
{{cite web
|first = Tony
|last = Morales
|author =
|authorlink =
|coauthors = et al.
|title = V$SPPARAMETER
|url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28320/dynviews_3.htm#insertedID41
|archiveurl =
|work = Oracle Database Reference 11g Release 1 (11.1)
|publisher = Oracle Corporation
|location =
|page =
|pages =
|doi =
|date =
|month = April
|year = 2009
|archivedate =
|accessdate = 2009-07-14
|quote = V$SPPARAMETER displays information about the contents of the server parameter file.
}}
</ref>
give access to reading parameter values.

== Internationalization ==

Oracle Database software comes in 63 language-versions (including regional variations such as American English and British English). Variations between versions cover the names of days and months, abbreviations, time-symbols such as A.M. and A.D., and sorting.<ref name="titleLocale Data">{{cite web |url=http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#i634428 |title=Locale Languages |accessdate=2008-02-26 |}}</ref>

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.<ref name="titleMessages Data">{{cite web |url=http://download.oracle.com/docs/cd/B19306_01/server.102/b14225/applocaledata.htm#i634673
|title=Error Message languagues |accessdate=2008-02-26 |}}
</ref>
<!-- could not find list of documentation translations yet-->

Oracle Corporation provides database developers with tools and mechanisms for producing internationalized database applications: referred to internally as "Globalization".<ref>
{{cite web
| url = http://download.oracle.com/docs/cd/B28359_01/server.111/b28298/ch1overview.htm#sthref8
| title = Overview of Globalization Support
| accessdate = 2009-02-16
| author =
| last = Shea
| first = Cathy
| authorlink =
| coauthors = ''et al.''
| date =
| year = 2007
| month = September
| work = Oracle Database Globalization Support Guide 11g Release 1 (11.1)
| publisher = [[Oracle Corporation]]
| location =
| pages =
| doi =
| archiveurl =
| archivedate =
| dateformat =
| quote = In the past, Oracle referred to globalization support capabilities as National Language Support (NLS) features. NLS is actually a subset of globalization support. NLS is the ability to choose a national language and store data in a specific character set. Globalization support enables you to develop multilingual applications and software products that can be accessed and run from anywhere in the world simultaneously.
}}
</ref>

== History ==
=== Corporate/technical timeline ===
{{proseline}}
* 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 [[database transaction|transactions]], but implemented the basic [[SQL]] functionality of [[query|queries]] and [[join (SQL)|joins]]. (RSI never released a version 1 - instead calling the first version ''version 2'' as a [[Marketing strategy|marketing gimmick]].)<ref>As Larry Ellison said in an Oracle OpenWorld keynote [http://www.news.com/8301-10784_3-9814858-7.html presentation] on [[2007-11-11]]: "Who'd buy a version 1.0 from four guys in California?"</ref>
* 1982: RSI in its turn changed its name, becoming known as "[[Oracle Corporation]]",<ref name="autogenerated2">http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf</ref> 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)|C programming language]] and which supported <code>[[Commit (data management)|COMMIT]]</code> and <code>[[Rollback (data management)|ROLLBACK]]</code> functionality for transactions. Version 3 extended platform support from the existing [[Digital Equipment Corporation|Digital]] [[VAX/VMS]] systems to include [[Unix]] environments.<ref name="autogenerated2" />
* 1984: Oracle Corporation released Oracle version 4, which supported [[consistency model|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 computing|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 [[lock (computer science)|locking]] and hot [[backup]]s.<ref> Compare http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf </ref>
* 1989: Oracle Corporation entered the [[application software|application products]] market and developed its [[Enterprise resource planning|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<ref name="autogenerated2" />
* 1992: Oracle version 7 appeared with support for [[referential integrity]], [[stored procedure]]s and [[database trigger|triggers]].
* 1997: Oracle Corporation released version 8, which supported [[Object-oriented programming|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 Oracle 8i database incorporated a native [[Java Virtual Machine|Java virtual machine]] ([[Oracle JVM]]).
* 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software<ref name="autogenerated2" />
* 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|computer-cluster]] database, as a replacement for the [[Oracle Parallel Server]] (OPS) option.
* 2003: Oracle Corporation released Oracle Database 10g. (The ''g'' stands for "grid"; emphasizing a marketing thrust of presenting 10g as "grid-computing ready".)
* 2005: Oracle Database 10.2.0.1 &mdash; also known as Oracle Database 10g Release 2 (10gR2) &mdash; appeared.
* 2006: Oracle Corporation announces [[Unbreakable Linux]]<ref name="autogenerated2" />
* 2007: Oracle Database 10g release 2 sets a new [[World record| world record]] TPC-H 3000 GB [[benchmark]] result<ref>{{cite web |url=http://www.itmanagement.com/press-releases/oracle-tpc-h-record-060806/ |title=Oracle Database 10g Sets New Record for TPC-H Three TB Benchmark |accessdate=2008-01-31 |format= |work= }}</ref>
* 2007: Oracle Corporation released Oracle Database 11g for [[Linux]] and for [[Microsoft Windows]].
* 2008: Oracle Corporation acquires [[BEA Systems]].
* 2009: Oracle Corporation acquires [[Sun Microsystems]].

=== 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''. 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 [[software suite|suite]] of [[business]] applications;
* [[Oracle Developer Suite]] 10g (9.0.4);
* [[JDeveloper|Oracle JDeveloper]] 10g: a [[Java (programming language)|Java]] [[integrated development environment]];

Since version 7, Oracle's [[Relational database management system|RDBMS]] release numbering has used the following codes:

* 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 ([[Patch (computing)|patchset]] {{As of|2003|alt=as of December 2003}})
* Oracle9i Database Release 2: 9.2.0.1 — 9.2.0.8 (patchset {{As of|2007|alt=as of April 2007}})
* Oracle Database 10g Release 1: 10.1.0.2 — 10.1.0.5 (patchset {{As of|2006|alt=as of February 2006}})
* Oracle Database 10g Release 2: 10.2.0.1 — 10.2.0.4 (patchset {{As of|2008|alt=as of April 2008}})
* Oracle Database 11g Release 1: 11.1.0.6 — 11.1.0.7 (patchset {{As of|2008|alt=as of September 2008}})


• 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.)[31]
• 1982: RSI in its turn changed its name, becoming known as "Oracle Corporation",[32] 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.[32]
• 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.[33]
• 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[32]
• 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 Oracle 8i database incorporated a native Java virtual machine (Oracle JVM).
• 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software[32]
• 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. (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[32]
• 2007: Oracle Database 10g release 2 sets a new world record TPC-H 3000 GB benchmark result[34]
• 2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft Windows.
• 2008: Oracle Corporation acquires BEA Systems.
• 2009: 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. 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 7, Oracle's RDBMS release numbering has used the following codes:
• 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.4 (patchset as of April 2008)
• Oracle Database 11g Release 1: 11.1.0.6 — 11.1.0.7 (patchset as of September 2008)
The version-numbering syntax within each release follows the pattern: major.maintenance.application-server.component-specific.platform-specific.
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.
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. Oracle Corporation provides a table[35] showing the latest patch-set releases by major release, operating-system, and hardware-architecture.
[edit] List of claimed firsts


The ''Oracle Administrator's Guide'' offers further information on Oracle release numbers. Oracle Corporation provides a table<ref>[http://www.oracle.com/technology/support/patches.htm Oracle Database Patch Sets]</ref> showing the latest patch-set releases by major release, operating-system, and hardware-architecture.
This article needs additional citations for verification.

Please help improve this article by adding reliable references. Unsourced material may be challenged and removed. (December 2007)
=== List of claimed firsts ===
{{Refimprove|date=December 2007}}


Oracle Corporation claims to have provided:
Oracle Corporation claims to have provided:
the first commercially-available SQL-based database (1979)[36]
* the first commercially-available [[SQL]]-based database (1979)<ref name="autogenerated1">Greenwald, R., Stackowiak R., & Stern, J. (2001). Oracle Essentials: Oracle9i, Oracle8i & Oracle8 (2nd edition). Cambridge, MA: O'Reilly.</ref>
the first database to support symmetric multiprocessing (SMP) (1983)
* the first database to support [[symmetric multiprocessing]] (SMP) (1983)
the first distributed database (1986)
* the first [[distributed database]] (1986)
the first database product tested to comply with the ANSI SQL standard (1993)[36]
* the first database product tested to comply with the [[SQL#Standardization|ANSI SQL standard]] (1993)<ref name="autogenerated1" />
the first 64-bit database (1995)
* the first [[64-bit]] database (1995)
the first database to incorporate a native JRE (1998)
* the first database to incorporate a native [[Java Runtime Environment|JRE]] (1998)
* the first proprietary [[Relational database management system|RDBMS]] to become available on [[Linux]] (1998)<ref>http://www.oracle.com/technologies/open-source/docs/oracle-opensource-ds.pdf; but compare Informix's claim to priority: http://www.linuxjournal.com/article/3110, retrieved [[2008-02-13]] and that of [[Polyhedra DBMS|Polyhedra]]</ref>
• the first proprietary RDBMS to become available on Linux (1998)[37]
the first database to support XML (1999)
* the first database to support [[XML]] (1999)

[edit] Editions
== Editions ==
Over and above the different versions of the Oracle database management software, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and license-tracking reasons. In approximate order of decreasing scale, we find:
Over and above the different versions of the Oracle database management software, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and license-tracking reasons. In approximate order of decreasing scale, we find:

• Enterprise Edition[38] (EE) includes more features than the 'Standard Edition', especially in the areas of performance and security. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running 4 or more CPUs. EE has no memory limits, and can utilize clustering using Oracle RAC software.
• Standard Edition[39] (SE) contains base database functionality. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running from one to four CPUs. If the number of CPUs exceeds 4 CPUs, the user must convert to an Enterprise license. SE has no memory limits, and can utilize clustering with Oracle RAC at no additional charge.
* Enterprise Edition<ref>[http://www.oracle.com/database/enterprise_edition.html Enterprise Edition]</ref> (EE) includes more features than the 'Standard Edition', especially in the areas of performance and security. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running 4 or more CPUs. EE has no memory limits, and can utilize clustering using [[Oracle RAC]] software.
* Standard Edition<ref>[http://www.oracle.com/database/standard_edition.html Standard Edition]</ref> (SE) contains base database functionality. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running from one to four CPUs. If the number of CPUs exceeds 4 CPUs, the user must convert to an Enterprise license. SE has no memory limits, and can utilize clustering with [[Oracle RAC]] at no additional charge.
• Standard Edition One[40], introduced with Oracle 10g, has some additional feature-restrictions. Oracle Corporation markets it for use on systems with one or two CPUs. It has no memory limitations.
* Standard Edition One<ref>[http://www.oracle.com/database/std_one.html Standard Edition One]</ref>, introduced with Oracle 10g, has some additional feature-restrictions. Oracle Corporation markets it for use on systems with one or two CPUs. It has no memory limitations.
• Express Edition[41] ('Oracle Database XE'), introduced in 2005, offers Oracle 10g free to distribute on Windows and Linux platforms. It has a footprint of only 150 MB and is restricted to the use of a single CPU, a maximum of 4 GB of user data. Although it can be installed on a server with any amount of memory, it is limited to using 1 GB at most [42]. Support for this version comes exclusively through on-line forums and not through Oracle support.
* Express Edition<ref>[http://www.oracle.com/technology/products/database/xe/index.html Express Edition]</ref> ('Oracle Database XE'), introduced in 2005, offers Oracle 10g free to distribute on Windows and Linux platforms. It has a footprint of only 150 MB and is restricted to the use of a single CPU, a maximum of 4 GB of user data. Although it can be installed on a server with any amount of memory, it is limited to using 1 GB at most <ref>http://www.oracle.com/technology/products/database/xe/pdf/dbxe_faq.pdf FAQ on Express Edition]</ref>. Support for this version comes exclusively through on-line forums and not through Oracle support.
• Oracle Database Lite,[43] intended for running on mobile devices. The database located on the mobile device can synchronize with a server-based installation.
* Oracle Database Lite,<ref>
[edit] Host platforms
{{cite web
|first =
|last =
|author =
|authorlink =
|coauthors =
|title = Oracle Database Lite 10g
|url = http://www.oracle.com/database/lite_edition.html
|archiveurl =
|work = oracle.com
|publisher = Oracle Corporation
|location =
|page =
|pages =
|doi =
|date =
|month =
|year =
|archivedate =
|accessdate = 2009-06-23
|quote = [...] for developing, deploying and managing applications for mobile and embedded environments.
}}
</ref> intended for running on [[mobile device]]s. The [[database]] located on the mobile device can synchronize with a server-based installation.

== Host platforms ==
Prior to releasing Oracle9i in 2001, Oracle Corporation ported its database engine to a wide variety of platforms. More recently Oracle Corporation has consolidated on a smaller range of operating-system platforms.
Prior to releasing Oracle9i in 2001, Oracle Corporation ported its database engine to a wide variety of platforms. More recently Oracle Corporation has consolidated on a smaller range of operating-system platforms.

As of October 2006, Oracle Corporation supported the following operating systems and hardware platforms for Oracle Database 10g:
{{As of|2006|10}}, Oracle Corporation supported the following operating systems and hardware platforms for Oracle Database 10g:
• Apple Mac OS X Server: PowerPC
* [[Apple Computer|Apple]] [[Mac OS X Server]]: [[PowerPC]]
• HP HP-UX: PA-RISC, Itanium
* [[Hewlett-Packard|HP]] [[HP-UX]]: [[PA-RISC]], [[Itanium]]
• HP Tru64 UNIX: Alpha
* HP [[Tru64|Tru64 UNIX]]: [[DEC Alpha|Alpha]]
• HP OpenVMS: Alpha, Itanium
* HP [[OpenVMS]]: Alpha, Itanium
• IBM AIX5L: IBM POWER
* [[IBM]] [[IBM AIX (operating system)|AIX5L]]: [[IBM POWER]]
• IBM z/OS: zSeries
* IBM [[z/OS]]: [[IBM System z|zSeries]]
• Linux: x86, x86-64, PowerPC, zSeries, Itanium
• Microsoft Windows: x86, x86-64, Itanium
* [[Linux]]: [[x86]], [[x86-64]], PowerPC, zSeries, Itanium
• Sun Solaris: SPARC, x86, x86-64
* [[Microsoft]] [[Microsoft Windows|Windows]]: x86, x86-64, Itanium
* [[Sun Microsystems|Sun]] [[Solaris (operating system)|Solaris]]: [[SPARC]], x86, x86-64
[edit] Related software

For links to some of Oracle Corporation's software which integrates with Oracle databases, see the Oracle Corporation category and the Oracle software category pages.
== Related software ==
[edit] Database options
For links to some of Oracle Corporation's software which integrates with Oracle databases, see the [[:Category:Oracle Corporation|Oracle Corporation category]] and the [[:Category:Oracle software|Oracle software category]] pages.
Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options".[44] As of 2008 such options include:

• Active Data Guard (extends Oracle Data Guard physical standby functionality in 11g)
=== Database options ===
• Advanced Security (adds data encryption methods)
Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options".<ref>
• Content database (provides a centralized repository for unstructured information)
[http://www.oracle.com/database/database-options.html Oracle database options]
• Database Vault (enforces extra security on data access)
</ref>
• Data Mining (ODM) (mines for patterns in existing data)
{{As of|2008}} such options include:
• In-Memory Database Cache (utilizes TimesTen technology)
* [http://www.oracle.com/database/active-data-guard.html Active Data Guard] (extends [[Oracle Data Guard]] physical standby functionality in 11g)
• Label Security (enforces row-level security)
* [http://www.oracle.com/database/advanced-security.html Advanced Security] (adds data encryption methods)
• Management Packs (various)
* [http://www.oracle.com/database/contentdb.html Content database] (provides a centralized repository for unstructured information)
• Oracle Answers (for ad-hoc analysis and reporting)
* [http://www.oracle.com/database/database-vault.html Database Vault] (enforces extra security on data access)
• Oracle OLAP (adds analytical processing)
* [http://www.oracle.com/technology/products/bi/odm/index.html Data Mining] (ODM) (mines for patterns in existing data)
• Oracle Programmer (provides programmatic access to Oracle databases via precompilers, interfaces and bindings)[45]
* [http://www.oracle.com/database/in-memory-database-cache.html In-Memory Database Cache] (utilizes [[TimesTen]] technology)
• Partitioning (granularizes tables and indexes for efficiency)
* [http://www.oracle.com/database/label-security.html Label Security] (enforces row-level security)
• Real Application Clusters (RAC) (coordinates multiple database servers, together accessing the same database)
* [http://www.oracle.com/technology/products/oem/extensions/index.html Management Packs] (various)
• Oracle Real Application Testing (new at version 11g) — including Database Replay (for testing workloads) and SQL Performance Analyzer (SPA) (for preserving SQL efficiency in changing environments)[46]
* [http://www.oracle.com/appserver/business-intelligence/standard-edition-one.html Oracle Answers] (for ''ad-hoc'' analysis and reporting)
• Records database (a records management application)
* [http://www.oracle.com/solutions/business_intelligence/olap.html Oracle OLAP] (adds [[Online analytical processing|analytical processing]])
• Oracle Spatial (integrates relational data with geographic information systems (GIS))
* Oracle Programmer (provides programmatic access to Oracle databases via [[precompiler]]s, interfaces and [[Binding (computer science) | binding]]s)<ref>See download.oracle.com/docs/cd/B28359_01/license.111/b28287/options.htm#CIHBDGAD </ref>
• Transparent Gateway for connecting to non-Oracle systems. Offers optimized solution, with more functionality and better performance than Oracle Generic Connectivity.
* [http://www.oracle.com/technology/products/oracle9i/datasheets/partitioning.html Partitioning] (granularizes tables and indexes for efficiency)
• Total Recall (optimizes long-term storage of historical data)
* [[Oracle RAC|Real Application Clusters]] (RAC) (coordinates multiple database servers, together accessing the same database)
• Oracle Warehouse Builder (in various forms and sub-options)
* [[Oracle Real Application Testing]] (new at version 11g) — including Database Replay (for testing workloads) and SQL Performance Analyzer (SPA) (for preserving SQL efficiency in changing environments)<ref>
This list is incomplete; you can help by expanding it.
{{cite web
In most cases, using these options entails extra licensing costs.[47]
|url= http://www.oracle.com/technology/products/manageability/database/pdf/wp07/owp_real_application_testing_11g.pdf
[edit] Suites
|title= "Real Application Testing Overview"
In addition to its RDBMS, Oracle Corporation has released several related suites of tools and applications relating to implementations of Oracle databases. For example:
|accessdate= 2008-05-19
• Oracle Application Server, a J2EE-based application server, aids in developing and deploying applications which utilise Internet technologies and a browser.
|year= 2007
• Oracle Collaboration Suite contains messaging, groupware and collaboration applications.
|month= August
• Oracle Developer Suite contains software development tools, including JDeveloper.
|publisher= Oracle Corporation
• Oracle E-Business Suite collects together applications for enterprise resource planning (including Oracle Financials), customer relationship management and human resources management (Oracle HR).
}}</ref>
• Oracle Enterprise Manager (OEM) used by database administrators (DBAs) to manage the DBMS, and recently in version 10g, a web-based rewrite of OEM called "Oracle Enterprise Manager Database Control". Oracle Corporation has dubbed the super-Enterprise-Manager used to manage a grid of multiple DBMS and Application Servers "Oracle Enterprise Manager Grid Control".
* [http://www.oracle.com/database/recordsdb.html Records database]<!-- inaccessible as of 2008-07-10 Compare http://www.oracle.com/accessibility/templates/t997.html --> (a [[records management]] application)
• Oracle Programmer/2000, a bundling of interfaces for 3GL programming languages, marketed with Oracle7 and Oracle8.[48][49]
* [[Oracle Spatial]] (integrates relational data with [[geographic information systems]] (GIS))
[edit] Database "features"
* [http://www.oracle.com/technology/products/oracle9i/datasheets/gateways/gateway_rel2_ds.html Transparent Gateway] for connecting to non-Oracle systems. Offers optimized solution, with more functionality and better performance than Oracle Generic Connectivity.
Apart from the clearly-defined database options, Oracle databases may include many semi-autonomous software sub-systems, which Oracle Corporation sometimes refers to as "features" in a sense subtly different from the normal usage of the word.[50] Such "features" may include (for example):
* [http://www.oracle.com/database/total-recall.html Total Recall] (optimizes long-term storage of historical data)
• Active Session History (ASH), the collection of data for immediate monitoring of very recent database activity.[51]
* [[Oracle Warehouse Builder]] (in various forms and sub-options)
• Automatic Workload Repository (AWR), providing monitoring services to Oracle database installations from Oracle version 10. Prior to the release of Oracle version 10, the Statspack facility provided similar functionality.

• Clusterware
{{Expand list|date=August 2008}}
• Data Aggregation and Consolidation

• Data Guard for high availability
In most cases, using these options entails extra licensing costs.<ref>
• Generic Connectivity for connecting to non-Oracle systems.
See "Term licenses" at http://oraclestore.oracle.com/ for various markets/countries.
• Data Pump utilities, which aid in importing and exporting data and metadata between databases[52]
</ref>
• Database Resource Manager (DRM), which controls the use of computing resources.[53]

• Fine-grained auditing (FGA) (in Oracle Enterprise Edition[54]) supplements standard security-auditing features[55]
=== Suites ===
• Flashback for selective data recovery and reconstruction[56]
In addition to its [[Relational database management system|RDBMS]], Oracle Corporation has released several related suites of tools and applications relating to implementations of Oracle databases. For example:
• iSQL*Plus, a web-browser-based graphical user interface (GUI) for Oracle database data-manipulation (compare SQL*Plus)
* [[Oracle Application Server]], a J2EE-based [[application server]], aids in developing and deploying applications which utilise [[Internet]] technologies and a browser.
• Oracle Data Access Components (ODAC), tools which consist of:[57]
* [[Oracle Collaboration Suite]] contains messaging, groupware and collaboration applications.
o Oracle Data Provider for .NET (ODP.NET)[58]
o Oracle Developer Tools (ODT) for Visual Studio
* [[Oracle Developer Suite]] contains software development tools, including [[JDeveloper]].
* [[Oracle E-Business Suite]] collects together applications for [[enterprise resource planning]] (including [[Oracle Financials]]), [[customer relationship management]] and [[human resources]] management ([[Oracle HR]]).
o Oracle Providers for ASP.NET
* [[Oracle Enterprise Manager]] (OEM) used by [[database administrator]]s (DBAs) to manage the DBMS, and {{As of|2007|alt= recently}} in version 10g, a web-based rewrite of OEM called "Oracle Enterprise Manager Database Control". Oracle Corporation has dubbed the super-Enterprise-Manager used to manage a grid of multiple DBMS and Application Servers "Oracle Enterprise Manager Grid Control".
o Oracle Database Extensions for .NET
* Oracle Programmer/2000, a bundling of interfaces for [[Third-generation programming language | 3GL programming language]]s, marketed with Oracle7 and Oracle8.<ref>{{cite web
o Oracle Provider for OLE DB
| url = http://www.alise.lv/ALISE/mrktinfo.nsf/6022a43db1063796c22566de00392130/420e0389f8672386c225645e00344ecb/$FILE/Oracle%20Programmer%202000%20data%20sheet%20Feb97.pdf
o Oracle Objects for OLE
| title = Oracle Programmer/2000
o Oracle Services for Microsoft Transaction Server
| accessdate = 2009-02-25
• Oracle-managed files (OMF) -- a feature allowing automated naming, creation and deletion of datafiles at the operating-system level.
| author =
• Recovery Manager (rman) for database backup, restoration and recovery
| last =
• SQL*Plus, a program that allows users to interact with Oracle database(s) via SQL and PL/SQL commands on a command-line. Compare iSQL*Plus.
| first =
This list is incomplete; you can help by expanding it.
| authorlink =
[edit] Standalone tools
| coauthors =
Users can develop applications in Java and PL/SQL using tools such as Oracle JDeveloper, Oracle Forms, or Oracle Reports. Oracle Corporation has started[clarification needed] a drive toward 'wizard'-driven environments with a view to enabling non-programmers to produce simple data-driven applications.
| date =
Oracle SQL Developer, a free graphical tool for database development, allows developers to browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. It incorporates standard and customized reporting.
| year =
[edit] Other databases marketed by Oracle Corporation
| month =
| format = PDF
| work =
| publisher = Oracle Corporation
| location =
| pages =
| doi =
| archiveurl =
| archivedate =
| dateformat =
| quote = Oracle Programmer/2000 is a suite of programmatic interfaces that allows you to access and manipulate Oracle7 data and schemas. Programmer/2000 provides a rich set of interfaces and supports many programming languages, allowing the programmer to use the programming language and the programming paradigm of choice.
}}
</ref><ref>
{{cite web
| url = http://download.oracle.com/docs/cd/A58617_01/server.804/a53717/ch1.htm#index0015
| title = Other Ways of Working with Oracle
| accessdate = 2009-02-25
| author =
| last =
| first =
| authorlink =
| coauthors =
| date =
| year =
| month =
| format =
| work =
| publisher = Oracle Corporation
| location =
| doi =
| archiveurl =
| archivedate =
| dateformat =
| quote = Programmer/2000[:] a set of 3GL programming language interfaces
}}
</ref>

=== Database "features" ===

Apart from the clearly-defined database options, Oracle databases may include many semi-autonomous software sub-systems, which Oracle Corporation sometimes refers to as "features" in a sense subtly different from the normal usage of the word.<ref>
For example, [[Oracle Data Guard]] counts officially as a "feature", but the command-stack within SQL*Plus, though a usability feature, does not appear in the list of "features" in http://download.oracle.com/docs/cd/B19306_01/license.102/b14199/editions.htm#CJACGHEB
</ref>
Such "features" may include (for example):

* Active Session History (ASH), the collection of data for immediate monitoring of very recent database activity.<ref>
{{cite book
|last= Alapati
|first= Sam R.
|authorlink=
|title= Expert Oracle database 10g administration
|url= http://books.google.co.nz/books?id=xxx0KAwY_ZMC&pg=PA845&lpg=PA845&dq=ASH++Active+Session+History&source=bl&ots=4DmmvFmU7v&sig=vpOt0kvOidJo-iSC-EJ_kRTyDAI&hl=en&ei=b-EZSo3qBISIkAXKoyk&sa=X&oi=book_result&ct=result&resnum=8#PPA845,M1
|accessdate= 2009-05-25
|edition=
|series=
|volume=
|date=
|origyear=
|year= 2005
|month=
|publisher= Apress
|location=
|language=
|isbn= 9781590594513
|oclc=
|doi=
|bibcode=
|id=
|page= 845
|pages=
|nopp=
|chapter=
|chapterurl=
|quote= ... ASH records very recent session activity (within the last five or ten minutes).
|ref=
|laysummary=
|laydate=
|separator=
|postscript=
|lastauthoramp=
}}
</ref>
* [http://www.oracle.com/technology/pub/articles/10gdba/week6_10gdba.html Automatic Workload Repository (AWR)], providing monitoring services to Oracle database installations from Oracle version 10. Prior to the release of Oracle version 10, the Statspack facility provided similar functionality.
* Clusterware
* [http://www.oracle.com/solutions/business_intelligence/warehouse-builder.html Data Aggregation and Consolidation]
* [http://www.oracle.com/technology/deploy/availability/htdocs/DataGuardOverview.html Data Guard] for [[high availability]]
* [http://www.oracle.com/technology/products/oracle9i/datasheets/gateways/gateway_rel2_ds.html Generic Connectivity] for connecting to non-Oracle systems.
* Data Pump utilities, which aid in importing and exporting data and metadata between databases<ref>[http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/dp_overview.htm#SUTIL100 Overview of Oracle Data Pump<!-- Bot generated title -->]</ref>
* Database Resource Manager (DRM), which controls the use of computing resources.<ref>{{cite book
|last= Greenwald
|first= Rick
|authorlink=
|coauthors=Robert Stackowiak, Jonathan Stern
|editor=
|others=
|title=Oracle Essentials: Oracle Database 11g
|origdate=
|origyear=
|origmonth=
|url=
|format=
|accessdate=
|accessyear=
|accessmonth=
|edition=
|series=
|volume=
|date=
|year= 2007
|month= November
|publisher= O'Reilly
|location=
|language=
|isbn= 978-0596514549
|oclc=
|doi=
|id=
|page= 184
|pages=
|chapter=
|chapterurl=
|quote= The Database Resource Manager (DRM) was first introduced in Oracle8i [...] to place limits on the amount of computer resources that can be used [...]
|ref=
}}
</ref>
* Fine-grained auditing (FGA) (in Oracle Enterprise Edition<ref>
{{cite web
|url= http://download.oracle.com/docs/cd/B28359_01/license.111/b28287/editions.htm#CJACGHEB
|title= Feature Availability by Edition
|accessdate= 2008-08-19
|author=
|last=
|first=
|authorlink=
|coauthors=
|date=
|year= 2008
|month= May
|format=
|work= Oracle Database Licensing Information 11g Release 1 (11.1) Part Number B28287-08
|publisher= Oracle Corporation
|archiveurl=
|archivedate=
|quote=
}}
</ref>) supplements standard security-auditing features<ref>
{{cite web
|url= http://www.oracle.com/technology/pub/articles/10gdba/week10_10gdba.html
|title= Auditing Tells All
|accessdate= 2008-08-19
|last= Nanda
|first= Arup
|authorlink=
|coauthors=
|date=
|year=
|month=
|work= Oracle Database 10g: The Top 20 Features for DBAs
|publisher= Oracle Corporation
|archiveurl=
|archivedate=
|quote= ...the standard audit (available in all versions) and the fine-grained audit (available in Oracle9i and up ...
}}</ref>
* [[Oracle Flashback|Flashback]] for selective data recovery and reconstruction<ref>http://www.oracle.com/technology/deploy/availability/htdocs/Flashback_Overview.htm</ref>
* [http://www.oracle.com/technology/tech/sql_plus/index.html iSQL*Plus], a web-browser-based [[graphical user interface]] (GUI) for Oracle database [[Data Manipulation Language|data-manipulation]] (compare SQL*Plus)
* Oracle Data Access Components (ODAC), tools which consist of:<ref>
{{cite web
| title = Oracle Product Accessibility Status: Database Server Enterprise Edition
| url = http://www.oracle.com/accessibility/templates/t1286.html
| archiveurl =
| work =
| publisher = Oracle Corporation
| location =
| page =
| pages =
| doi =
| date = 2008-06-02
| year =
| month =
| archivedate =
| accessdate = 2009-04-14
}}
</ref>
** Oracle Data Provider for .NET (ODP.NET)<ref>
{{cite web
| title = Oracle Data Provider for .NET
| url = http://www.oracle.com/technology/tech/windows/odpnet/index.html
| archiveurl =
| work =
| publisher = Oracle Corporation
| location =
| doi =
| date =
| year =
| month =
| archivedate =
| accessdate = 2009-05-07
| quote = The Oracle Data Provider for .NET (ODP.NET) features optimized [[ADO.NET]] data access to the Oracle database.
}}
</ref>
** Oracle Developer Tools (ODT) for Visual Studio
** Oracle Providers for ASP.NET
** Oracle Database Extensions for .NET
** Oracle Provider for OLE DB
** Oracle Objects for OLE
** Oracle Services for Microsoft Transaction Server
* [http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/omf.htm#i1007206 Oracle-managed files] (OMF) -- a feature allowing automated naming, creation and deletion of datafiles at the operating-system level.
* [http://web.archive.org/web/20051208092120/http://www.oracle.com/technology/deploy/availability/htdocs/rman_overview.htm Recovery Manager] (rman) for [[database dump|database backup]], [[Data restoration|restoration]] and [[data recovery|recovery]]
* [[SQL*Plus]], a program that allows users to interact with Oracle database(s) via [[SQL]] and [[PL/SQL]] commands on a [[command line interface|command-line]]. Compare iSQL*Plus.
{{Expand list|date=August 2008}}

=== Standalone tools ===
Users can develop [[application]]s in [[Java]] and [[PL/SQL]] using tools such as [[Oracle JDeveloper]], [[Oracle Forms]], or [[Oracle Reports]]. Oracle Corporation has started{{Clarifyme|date=April 2008}} <!-- when ? --> a drive toward 'wizard'-driven environments with a view to enabling non-programmers to produce simple [[data-driven]] applications.

[[Oracle SQL Developer]], a free graphical tool for database development, allows developers to browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. It incorporates standard and customized reporting.

=== Other databases marketed by Oracle Corporation ===

By acquiring other technology in the database field, Oracle Corporation has taken over:
By acquiring other technology in the database field, Oracle Corporation has taken over:

• TimesTen, a memory-resident database that has the ability to cache transactions and synchronize data with a centralized Oracle database server. It functions as a real-time infrastructure software product intended for the management of low-latency, high-volume data, of events and of transactions.
* [[TimesTen]], a memory-resident database that has the ability to cache [[transaction]]s and synchronize data with a centralized Oracle database server. It functions as a [[real-time computing|real-time]] infrastructure software product intended for the management of low-[[lag|latency]], high-volume data, of events and of [[transaction]]s.
• BerkeleyDB, a simple, high-performance, embedded database
* [[BerkeleyDB]], a simple, high-performance, [[Embedded Database|embedded database]]
• Oracle Rdb, a legacy relational database for the OpenVMS operating system
• MySQL a relational database purchased as part of its immediate previous owner, Sun Microsystems
* [[Oracle Rdb]], a legacy relational database for the [[OpenVMS]] operating system
* [[MySQL]] a relational database purchased as part of its immediate previous owner, [[Sun Microsystems]]
[edit] Using Oracle Database software

Users of Oracle databases may access the online documentation, the Oracle Technology Network site, and the comp.databases.oracle Usenet discussion group. The Oracle Technet site offers downloads of full-featured evaluation software. Users can also check the Oracle FAQ site before posting questions to forums, mailing lists, etc. They can also log on to http://asktom.oracle.com/ to post questions to and get answers from Tom Kyte, a Vice-President of Oracle Corporation and the author of several Oracle books including Expert One-On-One Oracle (ISBN 1-59059-525-4).
== Using Oracle Database software ==
The Oracle RDBMS has had a reputation among novice users as difficult to install on Linux systems.[citation needed] Oracle Corporation has packaged recent versions for several popular Linux distributions in an attempt to minimize installation challenges beyond the level of technical expertise required to install a database server.[citation needed]
Users of Oracle databases may access the [http://www.oracle.com/technology/documentation online documentation], the Oracle Technology Network site, and the comp.databases.oracle [[Usenet]] discussion group. The Oracle [http://www.oracle.com/technology Technet] site offers downloads of full-featured evaluation software. Users can also check the [http://www.orafaq.com/ Oracle FAQ] site before posting questions to forums, mailing lists, etc. They can also log on to http://asktom.oracle.com/ to post questions to and get answers from [[Thomas Kyte|Tom Kyte]], a Vice-President of Oracle Corporation and the author of several Oracle books including ''Expert One-On-One Oracle'' (ISBN 1-59059-525-4).
[edit] Official support

Users who have Oracle support contracts should turn to Oracle's MetaLink web site (password required). MetaLink provides users of Oracle Corporation products with a repository of reported problems, diagnostic scripts and solutions. It also integrates with the provision of support tools, patches and upgrades.
The Oracle RDBMS has had a reputation among novice users as difficult to install on Linux systems.{{Fact|date=August 2008}} Oracle Corporation has packaged {{As of|2006|alt=recent}} versions for several popular Linux distributions in an attempt to minimize installation challenges beyond the level of technical expertise required to install a database server.{{Fact|date=February 2007}}
The Remote Diagnostic Agent or RDA[59] can operate as a command-line diagnostic tool executing a script. The data captured provides an overview of the Oracle Database environment intended for diagnostic and trouble-shooting. Within RDA, the HCVE (Health Check Validation Engine)[60] can verify and isolate host system environmental issues that may affect the performance of Oracle software.

[edit] Database-related guidelines
=== Official support ===

Users who have Oracle support contracts should turn to Oracle's [http://metalink.oracle.com/ '''MetaLink'''] web site (password required). MetaLink provides users of Oracle Corporation products with a repository of reported problems, diagnostic scripts and solutions. It also integrates with the provision of support tools, patches and upgrades.

The '''Remote Diagnostic Agent''' or '''RDA'''<ref>http://www.oracle.com/global/tr/support/051006_ADVANCEDMETALINK_CUSTOMER.pdf page 10, retrieved [[2008-05-08]]</ref> can operate as a command-line diagnostic tool executing a script. The data captured provides an overview of the Oracle Database environment intended for diagnostic and trouble-shooting. Within RDA, the '''HCVE''' (Health Check Validation Engine)<ref>
{{cite web
| first = Stephen
| last = Rea
| author =
| authorlink =
| title = Upgrading Oracle 9.2.0.6 to 10.2.0.3 on AIX 5.2
| url = http://www.uaex.edu/srea/10gR2_upgrade.txt
| archiveurl =
| work =
| publisher = University of Arkansas
| location =
| doi =
| date = 2008-09-16
| archivedate =
| accessdate = 2009-08-11
| quote = Run the PreInstall checklist for Oracle 10.2.0 (Metalink Note 250262.1: RDA 4 - Health Check / Validation Engine Guide):
The Health Check Validation Engine (HCVE) rule set for Oracle Database 10g R2 (10.2.0) PreInstall (AIX) is described in:
https://metalink.oracle.com/metalink/plsql/docs/HCVE_A201DB10R2_aix.htm
}}
</ref>
can verify and isolate host system environmental issues that may affect the performance of Oracle software.

=== Database-related guidelines ===
Oracle Corporation also endorses certain practices and conventions as enhancing the use of its database products. These include:
Oracle Corporation also endorses certain practices and conventions as enhancing the use of its database products. These include:
Oracle Maximum Availability Architecture (MAA), guidelines on developing high-availability systems
* [http://search.techrepublic.com.com/search/Oracle+Maximum+Availability+Architecture.html Oracle Maximum Availability Architecture (MAA)], guidelines on developing high-availability systems
Optimal Flexible Architecture (OFA), blueprints for mapping Oracle-database objects to file-systems
* [[Optimal Flexible Architecture]] (OFA), blueprints for mapping Oracle-database objects to file-systems

[edit] Oracle Certification Program
Main article: Oracle Certification Program
=== Oracle Certification Program ===
The Oracle Certification Program, a professional certification program, includes the administration of Oracle Databases as one of its main certification paths. It contains three levels:
{{main|Oracle Certification Program}}
The [[Oracle Certification Program]], a [[professional certification]] program, includes the administration of Oracle Databases as one of its main certification paths. It contains three levels:

1. Oracle Certified Associate (OCA)
2. Oracle Certified Professional (OCP)
# Oracle Certified Associate (OCA)
3. Oracle Certified Master (OCM)
# Oracle Certified Professional (OCP)
# Oracle Certified Master (OCM)

=== User groups ===
A variety of official (Oracle-sponsored)<ref>
See [[Oracle User Group]]
</ref>
and unofficial [[Users' group|user group]]s has grown up of users and developers of Oracle databases. They include:

* [[Oracle Technology Network]]
* [http://www.ioug.org Independent Oracle Users Group]
* Geographical/regional user groups
* Product-centric user groups
* Industry-centric user groups
* [http://oaktable.net/main.jsp The Oak Table Network]
* [[Usenet newsgroup|Usenet]] [http://groups.google.com/group/comp.databases.oracle/related?lnk=rgam comp.databases.oracle groups]

== Market position ==
=== Competition ===

In the market for relational databases, Oracle Database competes against commercial products such as IBM's [[IBM DB2|DB2]] UDB and [[Microsoft SQL Server]]. Oracle and IBM tend to battle for the mid-range database market on UNIX and Linux platforms, while Microsoft dominates the mid-range database market on [[Microsoft Windows]] platforms. However, since they share many of the same customers, Oracle and IBM tend to support each other's products in many middleware and application categories (for example: [[WebSphere]], [[PeopleSoft]], and [[Siebel Systems]] [[Customer relationship management|CRM]]), and IBM's hardware divisions work closely with Oracle on performance-optimizing server-technologies (for example, [[Linux on zSeries]]). The two companies have a relationship perhaps best described as "[[coopetition]]". Niche commercial competitors include [[Teradata]] (in data warehousing and business intelligence), Software AG's [[ADABAS]], [[Sybase]], and IBM's [[Informix]], among many others.

Increasingly, the Oracle database products compete against [[open source|open-source]] relational database systems, particularly [[PostgreSQL]], [[Firebird (database server)|Firebird]], and [[MySQL]]. Oracle acquired [[Innobase]], supplier of the [[InnoDB]] codebase to MySQL, in part to compete better in the open source market. Database products developed on the basis of the open-source model generally cost significantly less to acquire than Oracle systems.

In 2007, competition with [[SAP AG]] occasioned litigation from Oracle Corporation.<ref>[http://hirek.prim.hu/cikk/61917/ About the case] in Hungarian</ref>

=== Pricing ===
Oracle Corporation offers term licensing for all Oracle products. It bases the list price for a term-license on a specific percentage of the perpetual license price.<ref>See the published [http://www.oracle.com/corporate/pricing/technology-price-list.pdf price list].</ref>

; Enterprise Edition: {{As of|2006|alt=As of March 2006}}, the database that costs the most per machine-processor among Oracle database engines.
; Standard Edition: Cheaper: it can run on up to four processors but has fewer features than Enterprise Edition—it lacks proper parallelization<ref>Oracle Database Licensing Information [http://download.oracle.com/docs/cd/B28359_01/license.111/b28287/editions.htm#BABDJGGI Database Editions]</ref>, etc; but remains quite suitable for running medium-sized applications.
;Standard ONE: Sells even more cheaply, but remains limited to two CPUs. Standard Edition ONE sells on a per-seat basis with a five-user minimum. Oracle Corporation usually sells the licenses with an extra 22% cost for support and upgrades (access to MetaLink - Oracle Corporation's support site) which customers need to renew annually.
; Oracle Express Edition (Oracle XE): An addition to the Oracle database product family ([[development stage#Beta|beta]] version released in 2005, production version released in February 2006), offers a free version of the Oracle RDBMS, but one limited to 4 GB of user data and to 1 GB of RAM (SGA+PGA). XE will use no more than one CPU and lacks an internal [[Java Virtual Machine|JVM]]. XE runs only released on Windows and on Linux, not on AIX, Solaris, HP-UX and the other operating systems available for other editions.

As computers running Oracle often have eight or more processors, the software price can rise into the hundreds of thousands of dollars. The [[total cost of ownership]] often exceeds this, as large Oracle installations usually require experienced and trained [[database administrator]]s to do the set-up properly. Because of the product's large installed base and available training courses, Oracle specialists in some areas have become a more abundant resource than those for more exotic databases. Oracle frequently provides special training offers for database-administrators.

On Linux, Oracle's ''certified configurations'' include mostly commercial [[Linux distributions]] ([[Red Hat Enterprise Linux]] 3 and 4, [[SUSE Linux Enterprise Server|SuSE SLES8]] and 9, [[Asianux]]) which can cost in a range from a few hundred to a few thousand USD per year (depending on processor architecture and the support package purchased).

The Oracle database system can also install and run on freely-available Linux distributions such as the Red Hat-based Centos<ref>Installation centos; official Oracle Wiki [http://wiki.oracle.com/page/Installing+Oracle+on+CentOS]</ref>, or Debian-based systems <ref>Installation on Debian-based systems; official Oracle Wiki [http://wiki.oracle.com/page/Installing+Oracle+on+Debian+%2F+Kubuntu+%2F+Ubuntu]</ref>.

== See also ==
{{wikibooks|Oracle database}}
* [[List of relational database management systems]]
* [[Comparison of object-relational database management systems|List of object-relational database management systems]]
* [[Comparison of relational database management systems]]
* [[Comparison of object-relational database management systems]]
* [[Oracle Rdb]] for [[OpenVMS]]
* [[List of ERP software packages]]
* [[Run Book Automation]]

== References ==

{{refs|2}}

== External links ==
* [http://www.oracle.com/technology/software/products/database/oracle10g/ Oracle Database], a view provided by Oracle Corporation
* [http://www.sysdba.de/oracle-dokumentation/11.1/ Oracle Database Documentation]

{{Databases}}

[[Category:Proprietary database management systems]]
[[Category:Oracle software]]
[[Category:Cross-platform software]]

[[ca:Oracle Database]]
[[cs:Oracle]]
[[de:Oracle (Datenbanksystem)]]
[[es:Oracle]]
[[eo:Oracle]]
[[eu:Oracle]]
[[fa:پایگاه داده‌های اوراکل]]
[[fr:Oracle Database]]
[[ga:Oracle (bunachar sonraí)]]
[[ko:오라클 데이터베이스]]
[[id:Basis data Oracle]]
[[it:Oracle]]
[[he:אורקל (בסיס נתונים)]]
[[lv:Oracle datu bāze]]
[[lt:Oracle]]
[[hu:Oracle Database]]
[[cdo:Oracle]]
[[nl:Oracle (software)]]
[[ja:Oracle Database]]
[[pl:Oracle (baza danych)]]
[[pt:Oracle]]
[[ru:Oracle (СУБД)]]
[[sk:Oracle (databázový systém)]]
[[fi:Oracle]]
[[ta:ஆரக்கிள் தரவுத்தளம்]]
[[tr:Oracle Database]]
[[zh:Oracle Database]]

Revision as of 15:21, 24 August 2009

Oracle Database
Developer(s)Oracle Corporation
Stable release
11g / July 11, 2007 (2007-07-11)
Written inC
Operating systemCross-platform
Available inMultiple languages
TypeRDBMS
LicenseProprietary
Websitehttp://www.oracle.com/

The Oracle Database (commonly referred to as Oracle RDBMS or simply Oracle) consists of a relational database management system (RDBMS) produced and marketed by Oracle Corporation. As of 2009, Oracle remains a major presence in database computing.[1]

Larry Ellison and his friends and former co-workers Bob Miner and Ed Oates started the consultancy Software Development Laboratories (SDL) in 1977. SDL developed the original version of the Oracle software. The name Oracle comes from the code-name of a CIA-funded project Ellison had worked on while previously employed by Ampex.[2]

Physical and logical structures

An Oracle database system — identified by an alphanumeric system identifier or SID[3] — 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 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.

Storage

The Oracle RDBMS stores data logically in the form of tablespaces and physically in the form of data files. 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.

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).

Disk files

Data files

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

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

Control files

One (or multiple multiplexed) control files (also known as "controlfiles") store overall system information and statuses.[5]

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.[6]

The SCOTT schema has seen less use 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[7] 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 [8].
  • BI, IX, HR, OE, PM, and SH (expanded sample schemas[9] containing more data and structures than the older SCOTT schema).1111

Memory architecture

System Global Area

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

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 database buffer cache: this stores the most recently-used data blocks. These blocks can contain modified data not yet written to disk (sometimes known as "dirty blocks"), unmodified blocks, or blocks written to disk since modification (sometimes known as clean blocks). Because the buffer cache keeps blocks based on a most-recently-used algorithm, the most active buffers stay in memory to reduce I/O and to improve performance.
  • 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.

Library cache

The library cache[11] 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.

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[12] 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.

Program Global Area

The Program Global Area[13][14] 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.

Process architectures

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 groups might include some of the following individual processes — (shown along with their abbreviated nomenclature):[15]

  • 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
  • memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management
  • 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-monitor process (MMON): process for automatic problem-detection, self-tuning and statistics-gathering[16]
  • 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[17]
  • process-monitor process (PMON) *REQUIRED*
  • process-spawner (PSP0): spawns Oracle processes
  • queue-monitor processes (QMNn)
  • recoverer process (RECO)
  • remote file-server process (RFS)
  • shared server processes (Snnn): serve client-requests
  • system monitor process (SMON) *REQUIRED*

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[18]
  • a connection refers to the pathway linking a user process to an Oracle instance[19]
  • sessions consist of specific connections to an Oracle instance.[20] Each session within an instance has a session identifier or "SID"[21] (distinct from the system-identifier SID).

Concurrency and locking

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

Configuration

Database administrators control many of the tunable variations in an Oracle instance by means of values in a parameter file.[24] 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)[25] defaults to the format spfile<SID-name>.ora. Within an SQL-based environment, the views V$PARAMETER[26] and V$SP_PARAMETER[27] give access to reading parameter values.

Internationalization

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

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.[29]

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

History

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.)[31]
  • 1982: RSI in its turn changed its name, becoming known as "Oracle Corporation",[32] 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.[32]
  • 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.[33]
  • 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[32]
  • 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 Oracle 8i database incorporated a native Java virtual machine (Oracle JVM).
  • 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software[32]
  • 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. (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[32]
  • 2007: Oracle Database 10g release 2 sets a new world record TPC-H 3000 GB benchmark result[34]
  • 2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft Windows.
  • 2008: Oracle Corporation acquires BEA Systems.
  • 2009: Oracle Corporation acquires Sun Microsystems.

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. Major database-related products and some of their versions include:

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

  • 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.4 (patchset as of April 2008)
  • Oracle Database 11g Release 1: 11.1.0.6 — 11.1.0.7 (patchset as of September 2008)

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. Oracle Corporation provides a table[35] showing the latest patch-set releases by major release, operating-system, and hardware-architecture.

List of claimed firsts

Oracle Corporation claims to have provided:

Editions

Over and above the different versions of the Oracle database management software, Oracle Corporation subdivides its product into varying "editions" - apparently for marketing and license-tracking reasons. In approximate order of decreasing scale, we find:

  • Enterprise Edition[38] (EE) includes more features than the 'Standard Edition', especially in the areas of performance and security. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running 4 or more CPUs. EE has no memory limits, and can utilize clustering using Oracle RAC software.
  • Standard Edition[39] (SE) contains base database functionality. Oracle Corporation licenses this product on the basis of users or of processors, typically for servers running from one to four CPUs. If the number of CPUs exceeds 4 CPUs, the user must convert to an Enterprise license. SE has no memory limits, and can utilize clustering with Oracle RAC at no additional charge.
  • Standard Edition One[40], introduced with Oracle 10g, has some additional feature-restrictions. Oracle Corporation markets it for use on systems with one or two CPUs. It has no memory limitations.
  • Express Edition[41] ('Oracle Database XE'), introduced in 2005, offers Oracle 10g free to distribute on Windows and Linux platforms. It has a footprint of only 150 MB and is restricted to the use of a single CPU, a maximum of 4 GB of user data. Although it can be installed on a server with any amount of memory, it is limited to using 1 GB at most [42]. Support for this version comes exclusively through on-line forums and not through Oracle support.
  • Oracle Database Lite,[43] intended for running on mobile devices. The database located on the mobile device can synchronize with a server-based installation.

Host platforms

Prior to releasing Oracle9i in 2001, Oracle Corporation ported its database engine to a wide variety of platforms. More recently Oracle Corporation has consolidated on a smaller range of operating-system platforms.

As of October 2006, Oracle Corporation supported the following operating systems and hardware platforms for Oracle Database 10g:

For links to some of Oracle Corporation's software which integrates with Oracle databases, see the Oracle Corporation category and the Oracle software category pages.

Database options

Oracle Corporation refers to some extensions to the core functionality of the Oracle database as "database options".[44] As of 2008 such options include:

In most cases, using these options entails extra licensing costs.[47]

Suites

In addition to its RDBMS, Oracle Corporation has released several related suites of tools and applications relating to implementations of Oracle databases. For example:

Database "features"

Apart from the clearly-defined database options, Oracle databases may include many semi-autonomous software sub-systems, which Oracle Corporation sometimes refers to as "features" in a sense subtly different from the normal usage of the word.[50] Such "features" may include (for example):

  • Active Session History (ASH), the collection of data for immediate monitoring of very recent database activity.[51]
  • Automatic Workload Repository (AWR), providing monitoring services to Oracle database installations from Oracle version 10. Prior to the release of Oracle version 10, the Statspack facility provided similar functionality.
  • Clusterware
  • Data Aggregation and Consolidation
  • Data Guard for high availability
  • Generic Connectivity for connecting to non-Oracle systems.
  • Data Pump utilities, which aid in importing and exporting data and metadata between databases[52]
  • Database Resource Manager (DRM), which controls the use of computing resources.[53]
  • Fine-grained auditing (FGA) (in Oracle Enterprise Edition[54]) supplements standard security-auditing features[55]
  • Flashback for selective data recovery and reconstruction[56]
  • iSQL*Plus, a web-browser-based graphical user interface (GUI) for Oracle database data-manipulation (compare SQL*Plus)
  • Oracle Data Access Components (ODAC), tools which consist of:[57]
    • Oracle Data Provider for .NET (ODP.NET)[58]
    • Oracle Developer Tools (ODT) for Visual Studio
    • Oracle Providers for ASP.NET
    • Oracle Database Extensions for .NET
    • Oracle Provider for OLE DB
    • Oracle Objects for OLE
    • Oracle Services for Microsoft Transaction Server
  • Oracle-managed files (OMF) -- a feature allowing automated naming, creation and deletion of datafiles at the operating-system level.
  • Recovery Manager (rman) for database backup, restoration and recovery
  • SQL*Plus, a program that allows users to interact with Oracle database(s) via SQL and PL/SQL commands on a command-line. Compare iSQL*Plus.

Standalone tools

Users can develop applications in Java and PL/SQL using tools such as Oracle JDeveloper, Oracle Forms, or Oracle Reports. Oracle Corporation has started[clarification needed] a drive toward 'wizard'-driven environments with a view to enabling non-programmers to produce simple data-driven applications.

Oracle SQL Developer, a free graphical tool for database development, allows developers to browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. It incorporates standard and customized reporting.

Other databases marketed by Oracle Corporation

By acquiring other technology in the database field, Oracle Corporation has taken over:

Using Oracle Database software

Users of Oracle databases may access the online documentation, the Oracle Technology Network site, and the comp.databases.oracle Usenet discussion group. The Oracle Technet site offers downloads of full-featured evaluation software. Users can also check the Oracle FAQ site before posting questions to forums, mailing lists, etc. They can also log on to http://asktom.oracle.com/ to post questions to and get answers from Tom Kyte, a Vice-President of Oracle Corporation and the author of several Oracle books including Expert One-On-One Oracle (ISBN 1-59059-525-4).

The Oracle RDBMS has had a reputation among novice users as difficult to install on Linux systems.[citation needed] Oracle Corporation has packaged recent versions for several popular Linux distributions in an attempt to minimize installation challenges beyond the level of technical expertise required to install a database server.[citation needed]

Official support

Users who have Oracle support contracts should turn to Oracle's MetaLink web site (password required). MetaLink provides users of Oracle Corporation products with a repository of reported problems, diagnostic scripts and solutions. It also integrates with the provision of support tools, patches and upgrades.

The Remote Diagnostic Agent or RDA[59] can operate as a command-line diagnostic tool executing a script. The data captured provides an overview of the Oracle Database environment intended for diagnostic and trouble-shooting. Within RDA, the HCVE (Health Check Validation Engine)[60] can verify and isolate host system environmental issues that may affect the performance of Oracle software.

Oracle Corporation also endorses certain practices and conventions as enhancing the use of its database products. These include:

Oracle Certification Program

The Oracle Certification Program, a professional certification program, includes the administration of Oracle Databases as one of its main certification paths. It contains three levels:

  1. Oracle Certified Associate (OCA)
  2. Oracle Certified Professional (OCP)
  3. Oracle Certified Master (OCM)

User groups

A variety of official (Oracle-sponsored)[61] and unofficial user groups has grown up of users and developers of Oracle databases. They include:

Market position

Competition

In the market for relational databases, Oracle Database competes against commercial products such as IBM's DB2 UDB and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range database market on UNIX and Linux platforms, while Microsoft dominates the mid-range database market on Microsoft Windows platforms. However, since they share many of the same customers, Oracle and IBM tend to support each other's products in many middleware and application categories (for example: WebSphere, PeopleSoft, and Siebel Systems CRM), and IBM's hardware divisions work closely with Oracle on performance-optimizing server-technologies (for example, Linux on zSeries). The two companies have a relationship perhaps best described as "coopetition". Niche commercial competitors include Teradata (in data warehousing and business intelligence), Software AG's ADABAS, Sybase, and IBM's Informix, among many others.

Increasingly, the Oracle database products compete against open-source relational database systems, particularly PostgreSQL, Firebird, and MySQL. Oracle acquired Innobase, supplier of the InnoDB codebase to MySQL, in part to compete better in the open source market. Database products developed on the basis of the open-source model generally cost significantly less to acquire than Oracle systems.

In 2007, competition with SAP AG occasioned litigation from Oracle Corporation.[62]

Pricing

Oracle Corporation offers term licensing for all Oracle products. It bases the list price for a term-license on a specific percentage of the perpetual license price.[63]

Enterprise Edition
As of March 2006, the database that costs the most per machine-processor among Oracle database engines.
Standard Edition
Cheaper: it can run on up to four processors but has fewer features than Enterprise Edition—it lacks proper parallelization[64], etc; but remains quite suitable for running medium-sized applications.
Standard ONE
Sells even more cheaply, but remains limited to two CPUs. Standard Edition ONE sells on a per-seat basis with a five-user minimum. Oracle Corporation usually sells the licenses with an extra 22% cost for support and upgrades (access to MetaLink - Oracle Corporation's support site) which customers need to renew annually.
Oracle Express Edition (Oracle XE)
An addition to the Oracle database product family (beta version released in 2005, production version released in February 2006), offers a free version of the Oracle RDBMS, but one limited to 4 GB of user data and to 1 GB of RAM (SGA+PGA). XE will use no more than one CPU and lacks an internal JVM. XE runs only released on Windows and on Linux, not on AIX, Solaris, HP-UX and the other operating systems available for other editions.

As computers running Oracle often have eight or more processors, the software price can rise into the hundreds of thousands of dollars. The total cost of ownership often exceeds this, as large Oracle installations usually require experienced and trained database administrators to do the set-up properly. Because of the product's large installed base and available training courses, Oracle specialists in some areas have become a more abundant resource than those for more exotic databases. Oracle frequently provides special training offers for database-administrators.

On Linux, Oracle's certified configurations include mostly commercial Linux distributions (Red Hat Enterprise Linux 3 and 4, SuSE SLES8 and 9, Asianux) which can cost in a range from a few hundred to a few thousand USD per year (depending on processor architecture and the support package purchased).

The Oracle database system can also install and run on freely-available Linux distributions such as the Red Hat-based Centos[65], or Debian-based systems [66].

See also

References

  1. ^ IDC: Oracle Maintains Lead in Database Market
  2. ^ Welcome to Larryland
  3. ^ Bhakthavatsalam, Namrata (2008). "Glossary". Oracle Database Client Installation Guide 11g Release 1 (11.1) for AIX Based Systems Part Number B32077-03. Oracle. Retrieved 2008-11-17. The SID automatically defaults to the database name portion of the global database name (sales in the example sales.us.example.com) until you reach eight characters or enter a period. You can accept or change the default value. {{cite web}}: Cite has empty unknown parameter: |coauthors= (help); Unknown parameter |month= ignored (help)
  4. ^ Watkins, Bob (2007-01-30). "Look inside ASM disk groups with Oracle 10gR2's ASMCMD". techrepublic.com. ZDNet. Retrieved 2009-07-30. In 10g, Oracle introduced a new kind of storage for its database product. Automatic Storage Management (ASM) is a logical volume manager that takes physical disk partitions and manages their contents [...] Until ASM, there were only two choices: file system storage and raw disk storage.
  5. ^ Nyffenegger, René. "Control files [Oracle]". René Nyffenegger's collection of things on the web. Retrieved 2009-07-30. The control files of a database store the status of the physical structure of the database. {{cite web}}: Cite has empty unknown parameter: |month= (help)
  6. ^ Oracle FAQ
  7. ^ Known schemas in Oracle
  8. ^ Optimizer plan stability definition
  9. ^ Oracle's sample schemas
  10. ^ Oracle Architecture, System Global Area
  11. ^ Oracle architecture, the library cache section
  12. ^ Oracle Architecture, data dictionary cache
  13. ^ Oracle architecture, Program Global Area section
  14. ^ PGA Definition, Oracle Database Master Glossary
  15. ^ Oracle Process architecture concepts
  16. ^ http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10 Niemiec, Richard (2007-06-25). "1.30. New Background Processes in 10g". Oracle Database 10g Performance Tuning: Tips & Techniques. Oracle Press. p. 967. ISBN 978-0-0722-6305-3. Retrieved 2009-08-12. MMON Memory Monitor process is associated with the Automatic Workload Repository new features used for automatic problem detection and self-tuning. MMON writes out the required statistics for AWR on a scheduled basis. {{cite book}}: Cite has empty unknown parameters: |laydate=, |coauthors=, |nopp=, |month=, |chapterurl=, |separator=, |laysummary=, and |lastauthoramp= (help)
  17. ^ http://my.safaribooksonline.com/9780072263053/new_background_processes_in_10 Niemiec, Richard (2007-06-25). "1.30. New Background Processes in 10g". Oracle Database 10g Performance Tuning: Tips & Techniques. Oracle Press. p. 967. ISBN 978-0-0722-6305-3. Retrieved 2009-08-12. M000 These are MMON background slave (m000) processes. {{cite book}}: Cite has empty unknown parameters: |laydate=, |coauthors=, |nopp=, |month=, |chapterurl=, |separator=, |laysummary=, and |lastauthoramp= (help)
  18. ^ Cyran, Michele (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved 2008-08-13. When a user runs an application program (such as a Pro*C program) or an Oracle tool (such as Enterprise Manager or SQL*Plus), Oracle creates a user process to run the user's application. {{cite web}}: Cite has empty unknown parameter: |month= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  19. ^ Cyran, Michele (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved 2008-08-13. A connection is a communication pathway between a user process and an Oracle instance. {{cite web}}: Cite has empty unknown parameter: |month= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  20. ^ Cyran, Michele (2005). "Process Architecture". Oracle Database Concepts. Oracle Corporation. Retrieved 2008-08-13. A session is a specific connection of a user to an Oracle instance through a user process {{cite web}}: Cite has empty unknown parameter: |month= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help)
  21. ^ Morales, Tony (2008). "V$SESSION". Oracle Database Reference 11g Release 1(11.1). Oracle. Retrieved 2008-11-17. {{cite web}}: Cite has empty unknown parameters: |month= and |coauthors= (help)
  22. ^ Chan, Immanuel (2008). "Glossary". Oracle Database Performance Tuning Guide 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-04-29. enqueue[:] This is another term for a lock. {{cite web}}: Cite has empty unknown parameter: |coauthors= (help); Unknown parameter |month= ignored (help)
  23. ^ "Oracle Database Master Glossary: 11g Release 1 (11.1)". Oracle Corporation. Retrieved 2009-04-24. latch[:] A simple, low-level serialization mechanism to protect shared data structures in the System Global Area. {{cite web}}: Cite has empty unknown parameters: |month= and |coauthors= (help)
  24. ^ Strohm, Richard (2008). "Parameter Files". Oracle Database Concepts 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-07-14. Parameter files contain a list of configuration parameters for that instance and database. {{cite web}}: Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  25. ^ Strohm, Richard (2008). "Initialization Parameter Files and Server Parameter Files". Oracle Database Concepts 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-07-14. {{cite web}}: Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  26. ^ Morales, Tony (2009). "V$PARAMETER". Oracle Database Reference 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-07-14. V$PARAMETER displays information about the initialization parameters that are currently in effect for the session. {{cite web}}: Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  27. ^ Morales, Tony (2009). "V$SPPARAMETER". Oracle Database Reference 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-07-14. V$SPPARAMETER displays information about the contents of the server parameter file. {{cite web}}: Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  28. ^ "Locale Languages". Retrieved 2008-02-26. {{cite web}}: Cite has empty unknown parameter: |1= (help)
  29. ^ "Error Message languagues". Retrieved 2008-02-26. {{cite web}}: Cite has empty unknown parameter: |1= (help)
  30. ^ Shea, Cathy (2007). "Overview of Globalization Support". Oracle Database Globalization Support Guide 11g Release 1 (11.1). Oracle Corporation. Retrieved 2009-02-16. In the past, Oracle referred to globalization support capabilities as National Language Support (NLS) features. NLS is actually a subset of globalization support. NLS is the ability to choose a national language and store data in a specific character set. Globalization support enables you to develop multilingual applications and software products that can be accessed and run from anywhere in the world simultaneously. {{cite web}}: Cite has empty unknown parameter: |dateformat= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  31. ^ As Larry Ellison said in an Oracle OpenWorld keynote presentation on 2007-11-11: "Who'd buy a version 1.0 from four guys in California?"
  32. ^ a b c d e http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf
  33. ^ Compare http://www.oracle.com/oramag/profit/07-may/p27anniv_timeline.pdf
  34. ^ "Oracle Database 10g Sets New Record for TPC-H Three TB Benchmark". Retrieved 2008-01-31.
  35. ^ Oracle Database Patch Sets
  36. ^ a b Greenwald, R., Stackowiak R., & Stern, J. (2001). Oracle Essentials: Oracle9i, Oracle8i & Oracle8 (2nd edition). Cambridge, MA: O'Reilly.
  37. ^ http://www.oracle.com/technologies/open-source/docs/oracle-opensource-ds.pdf; but compare Informix's claim to priority: http://www.linuxjournal.com/article/3110, retrieved 2008-02-13 and that of Polyhedra
  38. ^ Enterprise Edition
  39. ^ Standard Edition
  40. ^ Standard Edition One
  41. ^ Express Edition
  42. ^ http://www.oracle.com/technology/products/database/xe/pdf/dbxe_faq.pdf FAQ on Express Edition]
  43. ^ "Oracle Database Lite 10g". oracle.com. Oracle Corporation. Retrieved 2009-06-23. [...] for developing, deploying and managing applications for mobile and embedded environments. {{cite web}}: Cite has empty unknown parameters: |month= and |coauthors= (help)
  44. ^ Oracle database options
  45. ^ See download.oracle.com/docs/cd/B28359_01/license.111/b28287/options.htm#CIHBDGAD
  46. ^ ""Real Application Testing Overview"" (PDF). Oracle Corporation. 2007. Retrieved 2008-05-19. {{cite web}}: Unknown parameter |month= ignored (help)
  47. ^ See "Term licenses" at http://oraclestore.oracle.com/ for various markets/countries.
  48. ^ "Oracle Programmer/2000" (PDF). Oracle Corporation. Retrieved 2009-02-25. Oracle Programmer/2000 is a suite of programmatic interfaces that allows you to access and manipulate Oracle7 data and schemas. Programmer/2000 provides a rich set of interfaces and supports many programming languages, allowing the programmer to use the programming language and the programming paradigm of choice. {{cite web}}: Cite has empty unknown parameters: |month=, |dateformat=, and |coauthors= (help)
  49. ^ "Other Ways of Working with Oracle". Oracle Corporation. Retrieved 2009-02-25. Programmer/2000[:] a set of 3GL programming language interfaces {{cite web}}: Cite has empty unknown parameters: |month=, |dateformat=, and |coauthors= (help)
  50. ^ For example, Oracle Data Guard counts officially as a "feature", but the command-stack within SQL*Plus, though a usability feature, does not appear in the list of "features" in http://download.oracle.com/docs/cd/B19306_01/license.102/b14199/editions.htm#CJACGHEB
  51. ^ Alapati, Sam R. (2005). Expert Oracle database 10g administration. Apress. p. 845. ISBN 9781590594513. Retrieved 2009-05-25. ... ASH records very recent session activity (within the last five or ten minutes). {{cite book}}: Cite has empty unknown parameters: |laydate=, |separator=, |nopp=, |chapterurl=, |month=, |laysummary=, and |lastauthoramp= (help)
  52. ^ Overview of Oracle Data Pump
  53. ^ Greenwald, Rick (2007). Oracle Essentials: Oracle Database 11g. O'Reilly. p. 184. ISBN 978-0596514549. The Database Resource Manager (DRM) was first introduced in Oracle8i [...] to place limits on the amount of computer resources that can be used [...] {{cite book}}: Cite has empty unknown parameters: |origmonth=, |accessmonth=, |origdate=, |chapterurl=, and |accessyear= (help); Unknown parameter |coauthors= ignored (|author= suggested) (help); Unknown parameter |month= ignored (help)
  54. ^ "Feature Availability by Edition". Oracle Database Licensing Information 11g Release 1 (11.1) Part Number B28287-08. Oracle Corporation. 2008. Retrieved 2008-08-19. {{cite web}}: Cite has empty unknown parameter: |coauthors= (help); Unknown parameter |month= ignored (help)
  55. ^ Nanda, Arup. "Auditing Tells All". Oracle Database 10g: The Top 20 Features for DBAs. Oracle Corporation. Retrieved 2008-08-19. ...the standard audit (available in all versions) and the fine-grained audit (available in Oracle9i and up ... {{cite web}}: Cite has empty unknown parameters: |month= and |coauthors= (help)
  56. ^ http://www.oracle.com/technology/deploy/availability/htdocs/Flashback_Overview.htm
  57. ^ "Oracle Product Accessibility Status: Database Server Enterprise Edition". Oracle Corporation. 2008-06-02. Retrieved 2009-04-14. {{cite web}}: Cite has empty unknown parameter: |month= (help)
  58. ^ "Oracle Data Provider for .NET". Oracle Corporation. Retrieved 2009-05-07. The Oracle Data Provider for .NET (ODP.NET) features optimized ADO.NET data access to the Oracle database. {{cite web}}: Cite has empty unknown parameter: |month= (help)
  59. ^ http://www.oracle.com/global/tr/support/051006_ADVANCEDMETALINK_CUSTOMER.pdf page 10, retrieved 2008-05-08
  60. ^ Rea, Stephen (2008-09-16). "Upgrading Oracle 9.2.0.6 to 10.2.0.3 on AIX 5.2". University of Arkansas. Retrieved 2009-08-11. Run the PreInstall checklist for Oracle 10.2.0 (Metalink Note 250262.1: RDA 4 - Health Check / Validation Engine Guide): The Health Check Validation Engine (HCVE) rule set for Oracle Database 10g R2 (10.2.0) PreInstall (AIX) is described in: https://metalink.oracle.com/metalink/plsql/docs/HCVE_A201DB10R2_aix.htm {{cite web}}: External link in |quote= (help); line feed character in |quote= at position 121 (help)
  61. ^ See Oracle User Group
  62. ^ About the case in Hungarian
  63. ^ See the published price list.
  64. ^ Oracle Database Licensing Information Database Editions
  65. ^ Installation centos; official Oracle Wiki [1]
  66. ^ Installation on Debian-based systems; official Oracle Wiki [2]