Oracle Database

From Infogalactic: the planetary knowledge core
(Redirected from Oracle database)
Jump to: navigation, search
Oracle Database
Oracle logo.svg
Developer(s) Oracle Corporation
Stable release 12c Release 2 (12.2.0.1)[1] / 1 March 2017; 7 years ago (2017-03-01)
Development status Active
Written in Assembly language, C, C++[2]
Available in Multilingual
Type ORDBMS
License Proprietary OTN Standard License
Website Oracle RDBMS

Oracle Database (commonly referred to as Oracle RDBMS or simply as Oracle) is an object-relational database management system[3] produced and marketed by Oracle Corporation.

Larry Ellison and his two friends and former co-workers, Bob Miner and Ed Oates, started a consultancy called 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 formerly employed by Ampex.[4]

Physical and logical structures

An Oracle database system—identified by an alphanumeric system identifier or SID[5]—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). Oracle documentation can refer to an active database instance as a "shared memory realm".[6]

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 for data recovery and for the physical-standby forms of data replication using Oracle Data Guard.

The Oracle RAC (Real Application Clusters) option uses multiple instances attached to a central storage array. In version 10g, grid computing introduced shared resources where an instance can use CPU resources from another node in the grid. The advantage of Oracle RAC is that the resources on both nodes are used by the database, and each node uses its own memory and CPU. Information is shared between nodes through the interconnect—the virtual private network.[7]

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 ("datafiles").[8] 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.

A DBA can impose maximum quotas on storage per user within each tablespace.[9]

Partitioning

The partitioning feature was introduced in Oracle 8.[10] This allows the partitioning of tables based on different set of keys. Specific partitions can then be added or dropped to help manage large data sets.

Monitoring

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, 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 that store space management information in bitmaps in their own headers rather than in the SYSTEM tablespace (as happens with the default "dictionary-managed" tablespaces). Version 10g and later introduced the SYSAUX tablespace, which contains some of the tables formerly stored in the SYSTEM tablespace, along with objects for other tools such as OEM, which previously required its own tablespace.[11]

Disk files

Lua error in package.lua at line 80: module 'strict' not found.

Disk files primarily represent one of the following structures:

  • Data and index files: These files provide the physical storage of data, which can consist of the data-dictionary data (associated to the tablespace SYSTEM), user data, or index data. These files can be managed manually or managed by Oracle itself. Note that a datafile has to belong to exactly one tablespace, whereas a tablespace can consist of multiple datafiles.
  • Redo log files, consisting of all changes to the database, used to recover from an instance failure. Often, a database stores these files multiple times for extra security in case of disk failure. The identical redo log files are said to belong to the same group.
  • Undo files: These special datafiles, which can only contain undo information, aid in recovery, rollbacks, and read-consistency.
  • Archive log files: These files, copies of the redo log files, are usually stored at different locations. They are necessary (for example) when applying changes to a standby database, or when performing recovery after a media failure. It is possible to archive to multiple locations.
  • Tempfiles: These special datafiles serve exclusively for temporary storage data (used for example for large sorts or for global temporary tables)
  • Control file, necessary for database startup. "A binary file that records the physical structure of a database and contains the names and locations of redo log files, the time stamp of the database creation, the current log sequence number, checkpoint information, and so on."[12]

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

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

Database schema

Most Oracle database installations come with a default schema called SCOTT. After the installation process sets up sample tables, the user logs 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.[14]

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

Other default schemas[15][16] include:

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

System Global Area

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

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

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:

  • Datafiles

Every Oracle database has one or more physical datafiles, which contain all the database data. The data of logical database structures, such as tables and indexes, is physically stored in the datafiles allocated for a database.

Datafiles have the following characteristics:

  • One or more datafiles form a logical unit of database storage called a tablespace.
  • A datafile can be associated with only one tablespace.
  • Datafiles can be defined to extend automatically when they are full.

Data in a datafile is read, as needed, during normal database operation and stored in the memory cache of Oracle Database. For example, if a user wants to access some data in a table of a database, and if the requested information is not already in the memory cache for the database, then it is read from the appropriate datafiles and stored in memory.

Modified or new data is not necessarily written to a datafile immediately. To reduce the amount of disk access and to increase performance, data is pooled in memory and written to the appropriate datafiles all at once.

  • 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 Large pool Optional area that provides large memory allocations for certain large processes, such as Oracle backup and recovery operations, and I/O server processes
  • Database buffer cache: Caches blocks of data retrieved from the database
  • KEEP buffer pool: A specialized type of database buffer cache that is tuned to retain blocks of data in memory for long periods of time
  • RECYCLE buffer pool: A specialized type of database buffer cache that is tuned to recycle or remove block from memory quickly
  • nK buffer cache: One of several specialized database buffer caches designed to hold block sizes different from the default database block size
  • Java pool:Used for all session-specific Java code and data in the Java Virtual Machine (JVM)
  • Streams pool: Used by Oracle Streams to store information required by capture and apply

When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory allocated for the SGA is displayed.[20]

Library cache

The library cache[21] 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 to parse SQL statements. Oracle operation depends on ready access to the data dictionary—performance bottlenecks in the data dictionary affect all Oracle users. Because of this, database administrators must make sure that the data dictionary cache[22] 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 this particular performance problem.

Program Global Area

The Program Global Area[23][24] or PGA memory-area of an Oracle instance contains data and control-information for Oracle's server-processes or background process. Every server or background process has its own PGA, the total of PGA elements is call Instance PGA.

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 that holds information such as bind-variables and runtime-buffers
  • sorting area: an area in the PGA that holds information on sorts, hash-joins, etc.

DBAs can monitor PGA usage via the system view.

Dynamic performance views

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

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 environments might include - temporarily or permanently - some of the following individual processes (shown along with their abbreviated nomenclature):[27]

  • advanced queueing processes (Qnnn)[28]
  • 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*
  • Data Pump master process (DMnn)[29]
  • Data Pump worker processes (DWnn)[29]
  • dispatcher processes (Dnnn): multiplex server-processes on behalf of users
  • main Data Guard Broker monitor process (DMON)[30]
  • job-queue slave processes (Jnnn)[31]
  • log-writer process (LGWR) *REQUIRED*
  • log-write network-server (LNSn):[32] transmits redo logs in Data Guard environments
  • logical standby coordinator process (LSP0): controls Data Guard log-application
  • media-recovery process (MRP): detached recovery-server process
  • memory-manager process (MMAN): used for internal database tasks such as Automatic Shared Memory Management (ASMM)
  • memory-monitor process (MMON): process for automatic problem-detection, self-tuning and statistics-gathering[33]
  • 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[34]
  • netslave processes (NSVn): Data Guard Broker inter-database communication processes[35]
  • parallel query execution servers (Pnnn)[36]
  • process-monitor process (PMON) *REQUIRED*
  • process-spawner process (PSP0): spawns Oracle background processes after initial instance startup[37]
  • queue-monitor coordinator process (QMNC): dynamically spawns queue monitor slaves[38]
  • queue-monitor processes (QMNn)
  • recoverer process (RECO)
  • remote file-server process (RFS): in Oracle Data Guard, a standby recipient of primary redo-logs[39]
  • monitor for Data Guard management (RSM0): Data Guard Broker Worker process[40]
  • shared server processes (Snnn): serve client-requests
  • space-management coordinator process (SMCO): coordinates space management (from release 11g)[41]
  • 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[42]
  • a connection refers to the pathway linking a user process to an Oracle instance[43]
  • sessions consist of specific established groups of interactions, with each group involving a client process and an Oracle instance.[44]

Each session within an instance has a session identifier - a session ID or "SID"[45][46] (distinct from the Oracle system-identifier SID), and may also have an associated SPID (operating-system process identifier).[47]

Concurrency and locking

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

Oracle locks fall into three categories:[50]

  • DML locks (or data locks) protect data
  • DDL locks (or data dictionary locks) protect the structure of schema objects
  • System locks (including latches, mutexes and internal locks) protect internal database structures like data files.

Configuration

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

Implementation

The Oracle DBMS kernel code depends on C programming. Database administrators have limited access to Oracle-internal C structures via V$ views and their underlying X$ "tables".[55]

Layers or modules in the kernel (depending on different releases) may include the following (given with their inferred meaning):[56][57][58]

K:  Kernel
KA: Kernel Access
KC: Kernel Cache
KCB: Kernel Cache Buffer
KCBW: Kernel Cache Buffer Wait
KCC: Kernel Cache Control file
KCCB: Kernel Cache Control file Backup
KCCCF: Kernel Cache Copy Flash recovery area
KCCDC: Kernel cache Control file Copy
KCP: Kernel Cache transPortable tablespace
KCR: Kernel Cache Redo
KCT: Kernel Cache insTance
KD: Kernel Data
KG: Kernel Generic
KGL: Kernel Generic library cache
KGLJ: Kernel Generic library cache Java
KJ: Kernel Locking
KK: Kernel Compilation
KQ: Kernel Query
KS: Kernel Service(s)
KSB: Kernel Service Background
KSM: Kernel Service Memory
KSR: Kernel Service Reliable message
KSU: Kernel Service User
KSUSE: Kernel Service User SEssion
KSUSECON: Kernel Service User SEssion CONnection
KSUSEH: Kernel Service User SEssion History
KT: Kernel Transaction(s)
KTU: Kernel Transaction Undo
KX: Kernel Execution
KXS: Kernel eXecution Sql
KZ: Kernel Security
K2: Kernel Distributed Transactions

Administration

The "Scheduler" (DBMS_SCHEDULER package, available from Oracle 10g onwards) and the Job subsystem (DBMS_JOB package) permit the automation of predictable processing.[59]

Oracle Resource Manager aims to allocate CPU resources between users and groups of users when such resources become scarce.[60]

Oracle Corporation has stated in product announcements that manageability for DBAs had improved from Oracle9i to 10g. Lungu and Vătuiu (2008) assessed relative manageability by performing common DBA tasks and measuring timings. [61] They performed their tests on a single Pentium CPU (1.7 GHz) with 512 MB RAM,running Windows Server 2000. From Oracle9i to 10g, installation improved 36%, day-to-day administration 63%, backup and recovery 63%, and performance diagnostics and tuning 74%, for a weighted total improvement of 56%. The researchers concluded that "Oracle10g represents a giant step forward from Oracle9i in making the database easier to use and manage".

Logging and tracing

Lua error in package.lua at line 80: module 'strict' not found. Various file-system structures hold logs and trace files, which record different aspects of database activity. Configurable destinations for such records can include:

  • background dump (bdump) destination: contains files generated when an Oracle process experiences unexpected problems.[62] Also holds the "alert log".[63]
  • core dump (cdump) destination
  • user dump (udump) destination

Network access

Oracle Net Services allow client or remote applications to access Oracle databases via network sessions using various protocols.

Internationalization

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

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

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

History

Patch updates and security alerts

Oracle Corporation releases Critical Patch Updates (CPUs) or Security Patch Updates (SPUs)[67] and Security Alerts to close security holes that could be used for data theft. Critical Patch Updates (CPUs) and Security Alerts come out quarterly on the Tuesday closest to 17th day of the month.

Releases and versions

Oracle products follow a custom release-numbering and -naming convention. With the Oracle RDBMS 10g release, Oracle Corporation began using the "10g" label in all versions of its major products, although some sources refer to Oracle Applications Release 11i as Oracle 11i.[clarification needed] The suffixes "i", "g" and "c" do not actually represent a low-order part of the version number, as letters typically represent in software industry version numbering; that is, there is no predecessor version of Oracle 10g called Oracle 10f. Instead, the letters "i", "g" and "c" stand for "internet", "grid" and "cloud" respectively.[68] Consequently, many simply drop the marketing "g" or "i" suffixes when referring to specific versions of an Oracle product.

Major database-related products and some of their versions include:

There was no v1, as Ellison, "knew no one would want to buy version 1".[69] Oracle's RDBMS release numbering has used the following codes:

  • Oracle v2 : 2.3
  • Oracle v3 : 3.1.3
  • Oracle v4 : 4.1.4.0-4.1.4.4
  • Oracle v5 : 5.0.22, 5.1.17, 5.1.22
  • Oracle v6 : 6.0.17-6.0.36 (no OPS code), 6.0.37 (with OPS)
  • Oracle7: 7.0.12–7.3.4
  • Oracle8 Database: 8.0.3–8.0.6
  • Oracle8i Database Release 1: 8.1.5.0–8.1.5.1
  • Oracle8i Database Release 2: 8.1.6.0–8.1.6.3
  • Oracle8i Database Release 3: 8.1.7.0–8.1.7.4
  • Oracle9i Database Release 1: 9.0.1.0–9.0.1.5 ( patchset as of December 2003)
  • Oracle9i Database Release 2: 9.2.0.1–9.2.0.8 (patchset as of April 2007)
  • Oracle Database 10g Release 1: 10.1.0.2–10.1.0.5 (patchset as of February 2006)
  • Oracle Database 10g Release 2: 10.2.0.1–10.2.0.5 (patchset as of April 2010)[70]
  • Oracle Database 11g Release 1: 11.1.0.6–11.1.0.7 (patchset as of September 2008)
  • Oracle Database 11g Release 2: 11.2.0.1–11.2.0.4 (patchset as of August 2013)
  • Oracle Database 12c Release 1: 12.1.0.1 (patchset as of June 2013)
  • Oracle Database 12c Release 1: 12.1.0.2 (patchset as of July 2014)
  • Oracle Database 12c Release 2: 12.2.0.1 (patchset as of March 2016[71])

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 Database Administrator's Guide offers further information on Oracle Database release numbers.

Oracle Database product family

Based on licensing and pricing, Oracle Corporation groups its Oracle Database-related product portfolio into the Oracle Database product family, which consists of the following:[72]

  • Oracle Database editions: variations of the software designed for different scenarios.
  • Database options: extra cost offers providing additional database functionality.
  • Oracle data models: database schemas, offering pre-built data models with database analytics and business intelligence capabilities for specific industries.
  • Management packs: integrated set of Oracle Enterprise Manager tools for maintaining various aspects of Oracle Database.
  • Some of Oracle engineered systems, either specifically built for Oracle Database deployment or supporting such capability.
  • Other related products intended for use with Oracle Database.

Database editions

As of 2016 the latest Oracle Database version (12.1.0.2) comes in two editions:[72]

  • Oracle Database 12c Enterprise Edition (EE): Oracle Corporation's flagship database product. A fully featured edition of Oracle Database, it also allows purchase of add-on features in the form of Database Options and Management packs and imposes no limitation on server resources available to the database.[73]
  • Oracle Database 12c Standard Edition 2 (SE2): intended for small- to medium-sized implementations, this edition comes with Real Application Clusters option included, a reduced set of database features, and the licensing restriction to run on servers or clusters with a maximum of 2 sockets total and capped to use a maximum of 16 concurrent user threads.[74] Oracle positions SE2 as a starter edition, stressing complete upward compatibility and ease of upgrade to the more costly Enterprise Edition.[72][75]

Oracle Corporation also makes the following editions available:[76]

  • Oracle Database Express Edition 11gR2 (Oracle Database XE), a free-to-use entry-level version of Oracle Database 11gR2 available for Windows and Linux platforms limited to using only one CPU, up to 1 GB of RAM and storing up to 11 GB of user data. Oracle Database XE is a separate product from the rest of Oracle Database product family. It provides a subset of Standard Edition functionality (lacking features such as Java Virtual Machine, managed backup and recovery and high availability), is community-supported and comes with its own license terms.[77] Express Edition was first introduced in 2005 with Oracle 10g release with a limitation to a maximum of 4 GB of user data.[78] Oracle 11g Express Edition, released on 24 September 2011,[79] increased user data cap to 11 GB.[80]
  • Oracle Database Personal Edition, a single-user, single-machine development and deployment license, allows use of all database features and extra-cost database options (with the exception of the Oracle RAC option). It is available for purchase for Windows and Linux platforms only and does not include management packs.[76]

Up to and including Oracle Database 12.1.0.1, Oracle also offered the following:[81]

  • Standard Edition (SE) ran on single or clustered servers with a maximum capacity of 4 CPU sockets. It was largely the same as the current SE2 offer, including Real Application Clusters option at no additional cost, however allowing twice as much CPU sockets in a server or a cluster.
  • Standard Edition One (SE1), introduced with Oracle 10g, offered the same features as SE and was licensed to run on single servers with a maximum of two CPU sockets.

Oracle Corporation discontinued SE and SE1 with the 12.1.0.2 release and stopped offering new licenses for these editions on December 1, 2015.[82] Industry journalists and some[quantify] ISVs perceived Oracle's desupport of affordable SE1 and restrictive updates to SE in the form of SE2 (specifically, the introduction of thread throttling and halving the number of licensable CPU sockets without changing price-per-socket) as an attempt to repress customers' efforts to scale SE/SE1 installations up to "enterprise" class by means of virtualization, while at the same time pushing them towards the more expensive Enterprise Edition or to Oracle Cloud Database as a service.[83][84]

Database options

Oracle Corporation refers to a number of add-on database features as "database options".[72] These aim to enhance and complement existing database functionality to meet customer-specific requirements.[85] All Database Options are only available for Enterprise Edition and offered for an extra cost.[72][86] An exception to these two rules is Oracle Real Application Clusters option, which comes included with Oracle Database 12c Standard Edition 2 at no additional cost.[76]

  • Oracle Active Data Guard extends Oracle Data Guard functionality with advanced features, allowing read-only access to data in a physical standby database to offload primary of such tasks as reporting, ad-hoc queries, data extraction and backup, offloading redo transport and minimizing standby impact on commit response times (using Far Sync feature), providing option for rolling upgrades for non-RAC customers, managing clients workload across replicated database and improving automated service failover (using Global Data Services), etc.
  • Oracle Advanced Analytics allows access to in-database data mining algorithms and use of Oracle R Enterprise functionality, an integration with open-source R statistical programming language and environment.
  • Oracle Advanced Compression complements Enterprise Edition basic table compression feature with comprehensive data compression and Information Lifecycle Management capabilities, including those specifically tailored to Oracle's engineered systems, like Oracle Exadata.
  • Oracle Advanced Security provides Transparent Data Encryption and Data Redaction security features, the former allowing encryption of data stored in a database (all or a subset of it), exported using Data Pump, or backed up using Oracle Recovery Manager, and the latter allowing redaction of sensitive database data (e.g., credit card or social security numbers) returned to database applications.
  • Oracle Database In-Memory, an in-memory, column-oriented data store, has been seamlessly integrated[citation needed] into the Oracle Database. This technology aims to improve the performance of analytic workloads without impacting the performance of transactions that continue to use Oracle's traditional row format in memory. Note: data is persisted on disk only in a row format, so no additional storage is required. The product's performance comes through the in-memory columnar format and through the use of SIMD vector processing (Single Instruction processing Multiple Data values). Database In-Memory features include:
    • An In-Memory column store, a new[when?] component of the SGA called the In-Memory Area. One can allocate a little or a lot of memory to the In-Memory Area. The larger the In-Memory Area, the greater the number of objects that can be brought into memory in the In-Memory columnar format. Unlike in a pure in-memory database not all of the data in the Oracle Database requires populating into memory in the columnar format.
    • Only objects with the INMEMORY attribute get populated into the In-Memory column store. The INMEMORY attribute can be specified on a tablespace, table, (sub)partition, or materialized view. If it is enabled at the tablespace level, then all tables and materialized views in the tablespace are enabled for In-Memory by default.
    • Data is populated into a new In-Memory column store by a set of background processes referred to as worker processes (ora_w001_orcl). Each worker process receives a subset of database blocks from the object to populate into the In-Memory column store. Population is a streaming mechanism, simultaneously columnizing and compressing the data.
    • Oracle takes advantage of SIMD vector processing to scan the data in the columnar format. Instead of evaluating each entry in the column one at a time, SIMD vector processing lets a set of column values be evaluated together in a single CPU instruction. The column format used in the IM column store has been specifically designed[by whom?] to maximize the number of column entries that can be loaded into the vector registers on the CPU and evaluated in a single CPU instruction.
    • Fault tolerance for In-Memory Column Store runs on Oracle Engineered Systems (Oracle Exadata, Oracle Database Appliance and Oracle Supercluster), mirroring the data in memory across RAC nodes. If one RAC node fails, the database simply reads from the other side of the mirror.
    • In-Memory Aggregation improves performance of typical analytic queries using efficient in-memory arrays for joins and aggregation.[87][need quotation to verify]
  • Oracle Database Vault enforces segregation of duties, principle of least privilege and other data access controls, allowing protection of application data from access by privileged database users.
  • Oracle Label Security is a sophisticated and flexible framework for a fine-grained label based access control (LBAC) implementation.
  • Oracle Multitenant is the capability that allows database consolidation and provides additional abstraction layer. In a Multitenant configuration, one Oracle database instance known as "container database" (CDB) acts as a federated database system for a collection of up to 252 distinct portable collections of database objects, referred to as "pluggable databases" (PDB), each appearing to an outside client as a regular non-CDB Oracle database.
  • Oracle On-Line Analytical Processing (OLAP) is Oracle implementation of online analytical processing.
  • Oracle Partitioning allows partitioning of tables and indices, where large objects are stored in database as a collection of individual smaller pieces at the same time appearing on application level as a uniform data object.
  • Oracle RAC One Node is a one-node version of Oracle Real Application Clusters, providing capabilities for database failover and high availability in the form of rolling upgrades, online instance migration, application continuity and automated quality of service management.
  • Oracle Real Application Clusters (RAC) is the computer cluster version of Oracle Database.
  • Oracle Real Application Testing enable testing of system changes in a simulation of production-level workload and use.
  • Oracle Spatial and Graph[88] complements the Oracle Locator feature (available in all editions of Oracle Database[89]) with advanced spatial capabilities enabling the development of complex geographic information systems and includes network data model and RDF/OWL Semantic graphs.
  • Oracle TimesTen Application-Tier Database Cache allows caching subsets of a database in the application tier for improved response time. It is built using Oracle TimesTen In-Memory Database.

Supported platforms

Oracle Database 12c is supported on the following OS and architecture combinations:

In 2011, Oracle Corporation announced the availability of Oracle Database Appliance, a pre-built, pre-tuned, highly available clustered database server built using two SunFire X86 servers and direct attached storage.

Some Oracle Enterprise edition databases running on certain Oracle-supplied hardware can use Hybrid Columnar Compression for more efficient storage.[91]

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 use of the word. 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 Oracle's list.[original research?] Such "features" may include (for example):

  • Active Session History (ASH), the collection of data for immediate monitoring of very recent database activity.[92]
  • Automatic Workload Repository (AWR)],[93][94] providing monitoring and statistical services to Oracle database installations from Oracle version 10. Prior to the release of Oracle version 10, the Statspack facility[95] 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[96]
  • SQL*Loader, utility that facilitates high performance data loading.
  • Database Resource Manager (DRM), which controls the use of computing resources.[97]
  • Fast-start parallel rollback[98]
  • Fine-grained auditing (FGA) (in Oracle Enterprise Edition)[99] supplements standard security-auditing features[100]
  • Flashback for selective data recovery and reconstruction[101]
  • iSQL*Plus, a web-browser-based graphical user interface (GUI) for Oracle database data-manipulation (compare SQL*Plus)
  • Oracle Data Access Components (ODAC), tools that consist of:[102]
    • Oracle Data Provider for .NET (ODP.NET)[103]
    • 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.
  • Oracle Multimedia (known as "Oracle interMedia" before Oracle 11g) for storing and integrating multimedia data within a database[104]
  • Oracle Spatial and Graph
  • 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.
  • SQLcl, a command-line interface for queries, developed on the basis of Oracle SQL Developer[105]
  • Oracle GoldenGate 11g (distributed real-time data acquisition)
  • Oracle Text uses standard SQL to index, search, and analyze text and documents stored in the Oracle database.


Utilities

Oracle Corporation classifies as "utilities" bundled software supporting data transfer, data maintenance and database administration.[112]

Utilities included in Oracle database distributions include:

Tools

Users can develop their own applications in Java and in PL/SQL, using tools such as:

As of 2007 Oracle Corporation had started a drive toward "wizard"-driven environments with a view to enabling non-programmers to produce simple data-driven applications.[114]

The Database Upgrade Assistant (DBUA)[115] provides a GUI for the upgrading of an Oracle database.[116]

JAccelerator (NCOMP) - a native-compilation Java "accelerator", integrates hardware-optimized Java code into an Oracle 10g database.[117]

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

Oracle REST Data Services (ORDS) function as a Java EE-based alternative to Oracle HTTP Server,[118] providing a REST-based interface to relational data.[119]

Oracle's OPatch provides patch management for Oracle databases.[120]

The SQLTXPLAIN tool (or SQLT) offers tuning assistance for Oracle SQL queries.[121]

Testing

  • Oracle Live SQL makes available a test environment for Oracle Database users.[122]

External routines

PL/SQL routines within Oracle databases can access external routines registered in operating-system shared libraries.[123][124]

Use

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 can use Oracle's "My Oracle Support" or "MOS"[125] web site - known as "MetaLink" until a re-branding exercise completed in October 2010. The support site 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[126] 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)[127] 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 Maximum Availability Architecture (MAA)[128] guidelines on developing high-availability systems
  • Optimal Flexible Architecture (OFA), blueprints for mapping Oracle-database objects to file-systems

Oracle Certification Program

<templatestyles src="Module:Hatnote/styles.css"></templatestyles>

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) and unofficial Oracle User Groups has grown up of users and developers of Oracle databases. They include:

Market position

As of 2013 Oracle holds #1 DBMS market share worldwide based on the revenue share ahead of its four closest competitors - IBM , Microsoft, SAP and Teradata.[130]

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[citation needed] with Oracle on performance-optimizing server-technologies (for example, Linux on z Systems). 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 such open-source software relational database systems as PostgreSQL, Firebird, and MySQL. Oracle acquired Innobase, supplier of the InnoDB codebase to MySQL, in part to compete better against open source alternatives, and acquired Sun Microsystems, owner of MySQL, in 2010. Database products licensed as open source are, by the legal terms of the Open Source Definition, free to distribute and free of royalty or other licensing fees.

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. Prospective purchasers can obtain licenses based either on the number of processors in their target machines or on the number of potential seats ("named users").[131]

Enterprise Edition (DB EE)
As of July 2010, the database that costs the most per machine-processor among Oracle database editions, at $47,500 per processor. The term "per processor" for Enterprise Edition is defined with respect to physical cores and a processor core multiplier (common processors = 0.5*cores). e.g. An 8-processor, 32-core server using Intel Xeon 56XX CPUs would require 16 processor licenses.[132][133]
Standard Edition (DB SE)
Cheaper: it can run on up to four processors but has fewer features than Enterprise Edition—it lacks proper parallelization,[134] etc.; but remains quite suitable for running medium-sized applications. There are not additional cost for Oracle RAC on the latest Oracle 11g R2 standard edition release.
Standard ONE (DB SE1 or DB SEO)
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 My Oracle Support—Oracle Corporation's support site), which customers must renew annually.
Oracle Express Edition (DB XE)[135] (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 11 GB of user data and to 1 GB of memory used by the database (SGA+PGA).[136] XE uses no more than one CPU and lacks an internal JVM. XE runs on 32-bit and 64-bit Windows and 64-bit Linux, but not on AIX, Solaris, HP-UX and the other operating systems available for other editions. Support is via a free Oracle Discussion Forum only.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. "A Guide to Oracle RAC"
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Oracle Corporation, Oracle Database Concepts 11g Release 1 (11.2), http://download.oracle.com/docs/cd/E11882_01/server.112/e25789/glossary.htm#CHDDFGEC, 2011
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Oracle FAQ
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Karlsson André."Oracle DB Architecture - The Basics"
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. PGA Definition, Oracle Database Master Glossary
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. 29.0 29.1 Lua error in package.lua at line 80: module 'strict' not found.
  30. Lua error in package.lua at line 80: module 'strict' not found.
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.
  33. Safaribooksonline.com Lua error in package.lua at line 80: module 'strict' not found.
  34. Safaribooksonline.comLua error in package.lua at line 80: module 'strict' not found.
  35. Lua error in package.lua at line 80: module 'strict' not found.
  36. Lua error in package.lua at line 80: module 'strict' not found.
  37. Lua error in package.lua at line 80: module 'strict' not found.
  38. Lua error in package.lua at line 80: module 'strict' not found.
  39. Lua error in package.lua at line 80: module 'strict' not found.
  40. Lua error in package.lua at line 80: module 'strict' not found.
  41. Lua error in package.lua at line 80: module 'strict' not found.
  42. Lua error in package.lua at line 80: module 'strict' not found.
  43. Lua error in package.lua at line 80: module 'strict' not found.
  44. Lua error in package.lua at line 80: module 'strict' not found.
  45. Lua error in package.lua at line 80: module 'strict' not found.
  46. Lua error in package.lua at line 80: module 'strict' not found.
  47. Lua error in package.lua at line 80: module 'strict' not found.
  48. Lua error in package.lua at line 80: module 'strict' not found.
  49. Lua error in package.lua at line 80: module 'strict' not found.
  50. Lua error in package.lua at line 80: module 'strict' not found.
  51. Lua error in package.lua at line 80: module 'strict' not found.
  52. Lua error in package.lua at line 80: module 'strict' not found.
  53. Lua error in package.lua at line 80: module 'strict' not found.
  54. Lua error in package.lua at line 80: module 'strict' not found.
  55. Lua error in package.lua at line 80: module 'strict' not found.
  56. Lua error in package.lua at line 80: module 'strict' not found.
  57. Lua error in package.lua at line 80: module 'strict' not found.
  58. Lua error in package.lua at line 80: module 'strict' not found.
  59. Lua error in package.lua at line 80: module 'strict' not found.
  60. Lua error in package.lua at line 80: module 'strict' not found.
  61. Lua error in package.lua at line 80: module 'strict' not found.
  62. Lua error in package.lua at line 80: module 'strict' not found.
  63. Lua error in package.lua at line 80: module 'strict' not found.
  64. Lua error in package.lua at line 80: module 'strict' not found.
  65. Lua error in package.lua at line 80: module 'strict' not found.
  66. Lua error in package.lua at line 80: module 'strict' not found.
  67. Lua error in package.lua at line 80: module 'strict' not found.
  68. theregister.co.uk: Oracle gears up for infrastructure cloud and 12c database launches • The Register
  69. Lua error in package.lua at line 80: module 'strict' not found.
  70. http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
  71. Compare: Lua error in package.lua at line 80: module 'strict' not found.
  72. 72.0 72.1 72.2 72.3 72.4 Lua error in package.lua at line 80: module 'strict' not found.
  73. Oracle Database 12c Enterprise Edition
  74. Lua error in package.lua at line 80: module 'strict' not found.
  75. Oracle Database 12c Standard Edition 2
  76. 76.0 76.1 76.2 Oracle Database Editions
  77. Oracle Technology Network Developer License Terms for Oracle Database Express Edition
  78. Lua error in package.lua at line 80: module 'strict' not found.
  79. Lua error in package.lua at line 80: module 'strict' not found.
  80. Lua error in package.lua at line 80: module 'strict' not found.
  81. Lua error in package.lua at line 80: module 'strict' not found.
  82. Lua error in package.lua at line 80: module 'strict' not found.
  83. Lua error in package.lua at line 80: module 'strict' not found.
  84. Lua error in package.lua at line 80: module 'strict' not found.
  85. Lua error in package.lua at line 80: module 'strict' not found.
  86. Lua error in package.lua at line 80: module 'strict' not found.
  87. Lua error in package.lua at line 80: module 'strict' not found.
  88. Lua error in package.lua at line 80: module 'strict' not found.
  89. Lua error in package.lua at line 80: module 'strict' not found.
  90. Operating System Requirements for x86-64 Linux Platforms
  91. Lua error in package.lua at line 80: module 'strict' not found.
  92. Lua error in package.lua at line 80: module 'strict' not found.
  93. Lua error in package.lua at line 80: module 'strict' not found.
  94. Lua error in package.lua at line 80: module 'strict' not found.
  95. Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  96. Lua error in package.lua at line 80: module 'strict' not found.
  97. Lua error in package.lua at line 80: module 'strict' not found.
  98. Lua error in package.lua at line 80: module 'strict' not found.
  99. Lua error in package.lua at line 80: module 'strict' not found.
  100. Lua error in package.lua at line 80: module 'strict' not found.
  101. Oracle.com
  102. Lua error in package.lua at line 80: module 'strict' not found.[dead link]
  103. Lua error in package.lua at line 80: module 'strict' not found.
  104. Lua error in package.lua at line 80: module 'strict' not found.
  105. Lua error in package.lua at line 80: module 'strict' not found.
  106. Lua error in package.lua at line 80: module 'strict' not found.
  107. "Virtual Private Database" appears listed as a feature available as part of Oracle Enterprise Edition in: Lua error in package.lua at line 80: module 'strict' not found.
  108. Lua error in package.lua at line 80: module 'strict' not found.
  109. Lua error in package.lua at line 80: module 'strict' not found.
  110. Lua error in package.lua at line 80: module 'strict' not found.
  111. Lua error in package.lua at line 80: module 'strict' not found.
  112. Lua error in package.lua at line 80: module 'strict' not found.
  113. For example: Lua error in package.lua at line 80: module 'strict' not found.
  114. Lua error in package.lua at line 80: module 'strict' not found.
  115. Lua error in package.lua at line 80: module 'strict' not found.
  116. Lua error in package.lua at line 80: module 'strict' not found.
  117. Lua error in package.lua at line 80: module 'strict' not found.
  118. Lua error in package.lua at line 80: module 'strict' not found.
  119. Compare: Lua error in package.lua at line 80: module 'strict' not found.
  120. Lua error in package.lua at line 80: module 'strict' not found.
  121. Lua error in package.lua at line 80: module 'strict' not found.
  122. Lua error in package.lua at line 80: module 'strict' not found.
  123. Lua error in package.lua at line 80: module 'strict' not found.
  124. Lua error in package.lua at line 80: module 'strict' not found.
  125. Lua error in package.lua at line 80: module 'strict' not found.
  126. Lua error in package.lua at line 80: module 'strict' not found.
  127. Lua error in package.lua at line 80: module 'strict' not found.
  128. Lua error in package.lua at line 80: module 'strict' not found.
  129. Lua error in package.lua at line 80: module 'strict' not found.
  130. Lua error in package.lua at line 80: module 'strict' not found. ("Oracle Market Share")
  131. Lua error in package.lua at line 80: module 'strict' not found.
  132. Lua error in package.lua at line 80: module 'strict' not found.
  133. Lua error in package.lua at line 80: module 'strict' not found.
  134. Oracle Database Licensing Information Database Editions
  135. Lua error in package.lua at line 80: module 'strict' not found.
  136. Licensing Restrictions

Bibliography

  • Lua error in package.lua at line 80: module 'strict' not found.

External links