Available in Multilingual | Development status Active Type ORDBMS | |
Stable release 12c Release 2 (12.2.0.1) / 1 March 2017; 25 days ago (2017-03-01) Written in Assembly language, C, C++ |
Oracle Database (commonly referred to as Oracle RDBMS or simply as Oracle) is an object-relational database management system produced and marketed by Oracle Corporation.
Contents
- Physical and logical structures
- Storage
- Partitioning
- Monitoring
- Disk files
- Database schema
- System Global Area
- Library cache
- Data dictionary cache
- Program Global Area
- Dynamic performance views
- Oracle processes
- User processes connections and sessions
- Concurrency and locking
- Configuration
- Administration
- Logging and tracing
- Network access
- Internationalization
- Patch updates and security alerts
- Releases and versions
- Oracle Database product family
- Database editions
- Database options
- Supported platforms
- Database features
- Utilities
- Tools
- Testing
- External routines
- Use
- Official support
- Database related guidelines
- Oracle Certification Program
- User groups
- Market position
- Competition
- Pricing
- References
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.
Physical and logical structures
An Oracle database system—identified by an alphanumeric system identifier or SID—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".
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.
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"). 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.
Partitioning
The partitioning feature was introduced in Oracle 8. 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.
Disk files
Disk files primarily represent one of the following structures:
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.
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.
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 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.)BI
, IX
, HR
, OE
, PM
, and SH
(expanded sample schemas containing more data and structures than the older SCOTT
schema).System Global Area
Each Oracle instance uses a System Global Area or SGA—a shared-memory area—to store its data and control-information.
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:
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:
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.
When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory allocated for the SGA is displayed.
Library cache
The library cache 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:
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 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 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:
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) built on the basis of database memory. Database users can access the V$ views (named after the prefix of their synonyms) to obtain information on database structures and performance.
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):
User processes, connections and sessions
Oracle Database terminology distinguishes different computer-science terms in describing how end-users interact with the database:
Each session within an instance has a session identifier - a session ID or "SID" (distinct from the Oracle system-identifier SID), and may also have an associated SPID (operating-system process identifier).
Concurrency and locking
Oracle databases control simultaneous access to data resources with locks (alternatively documented as "enqueues"). The databases also use "latches" - low-level serialization mechanisms to protect shared data structures in the System Global Area.
Oracle locks fall into three categories:
Configuration
Database administrators control many of the tunable variations in an Oracle instance by means of values in a parameter file. 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) defaults to the format spfile<SID-name>.ora
. Within an SQL-based environment, the views V$PARAMETER
and V$SPPARAMETER
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".
Layers or modules in the kernel (depending on different releases) may include the following (given with their inferred meaning):
K: KernelKA: Kernel AccessKC: Kernel CacheKCB: Kernel Cache BufferKCBW: Kernel Cache Buffer WaitKCC: Kernel Cache Control fileKCCB: Kernel Cache Control file BackupKCCCF: Kernel Cache Copy Flash recovery areaKCCDC: Kernel cache Control file CopyKCP: Kernel Cache transPortable tablespaceKCR: Kernel Cache RedoKCT: Kernel Cache insTanceKD: Kernel DataKG: Kernel GenericKGL: Kernel Generic library cacheKGLJ: Kernel Generic library cache JavaKJ: Kernel LockingKK: Kernel CompilationKQ: Kernel QueryKS: Kernel Service(s)KSB: Kernel Service BackgroundKSM: Kernel Service MemoryKSR: Kernel Service Reliable messageKSU: Kernel Service UserKSUSE: Kernel Service User SEssionKSUSECON: Kernel Service User SEssion CONnectionKSUSEH: Kernel Service User SEssion HistoryKT: Kernel Transaction(s)KTU: Kernel Transaction UndoKX: Kernel ExecutionKXS: Kernel eXecution SqlKZ: Kernel SecurityK2: Kernel Distributed TransactionsAdministration
The "Scheduler" (DBMS_SCHEDULER package, available from Oracle 10g onwards) and the Job subsystem (DBMS_JOB package) permit the automation of predictable processing.
Oracle Resource Manager aims to allocate CPU resources between users and groups of users when such resources become scarce.
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. 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
Various file-system structures hold logs and trace files, which record different aspects of database activity. Configurable destinations for such records can include:
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.
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.
Oracle Corporation provides database developers with tools and mechanisms for producing internationalized database applications: referred to internally as "Globalization".
Patch updates and security alerts
Oracle Corporation releases Critical Patch Updates (CPUs) or Security Patch Updates (SPUs) 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. 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. 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". Oracle's RDBMS release numbering has used the following codes:
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:
Database editions
As of 2016 the latest Oracle Database version (12.1.0.2) comes in two editions:
Oracle Corporation also makes the following editions available:
Up to and including Oracle Database 12.1.0.1, Oracle also offered the following:
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. Industry journalists and some 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.
Database options
Oracle Corporation refers to a number of add-on database features as "database options". These aim to enhance and complement existing database functionality to meet customer-specific requirements. All Database Options are only available for Enterprise Edition and offered for an extra cost. 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.
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.
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. Such "features" may include (for example):
Utilities
Oracle Corporation classifies as "utilities" bundled software supporting data transfer, data maintenance and database administration.
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.
The Database Upgrade Assistant (DBUA) provides a GUI for the upgrading of an Oracle database.
JAccelerator (NCOMP) - a native-compilation Java "accelerator", integrates hardware-optimized Java code into an Oracle 10g database.
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, providing a REST-based interface to relational data.
Oracle's OPatch provides patch management for Oracle databases.
The SQLTXPLAIN tool (or SQLT) offers tuning assistance for Oracle SQL queries.
Testing
External routines
PL/SQL routines within Oracle databases can access external routines registered in operating-system shared libraries.
Use
The Oracle RDBMS has had a reputation among novice users as difficult to install on Linux systems. 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.
Official support
Users who have Oracle support contracts can use Oracle's "My Oracle Support" or "MOS" 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 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) 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 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:
- Oracle Certified Associate (OCA)
- Oracle Certified Professional (OCP)
- 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.
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 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").