DB Glossary

 

Table of Contents:

 

Exadata

Real Application Cluster

Smart Scan

Infiniband Scale-Out

Database Aware Smart Flash Cache

Storage Indexes

Hybrid Columnar Data

I/O Priorities

Offloading

Network Resource Mgmt

Prioritized File Recovery

Direct-to-wire Protocol

Instant failure detection

In-Memory Columnar in Flash

Smart Fusion Block Transfer

Exadata Cloud Service

 

ADB

Automatic Query Rewrite

Automatic Undo Management

Automatic Memory Management

Automatic Segment Space Mgmt

Automatic Statistics Gathering

Automatic Storage Management

Automatic Workload Repository

Automatic Diagnostic Monitor

Automatic SQL Tuning

Automatic Workload Capture/Replay

Automatic SQL Plan Management

Automatic Capture of SQL Monitor

Automatic Data Optimization

Active Stand By/Data Guard

Autonomous Health Framework

Automatic Diagnostic Framework

Automatic Refresh of Clones

Sharding

Multitenancy

Automatic Columnar Flash

Automatic IM population

Automatic Application Continuity

Fast ingest support for IoT type workloads

Stats Only Queries

DataGuard DML Redirect

Automatic Indexing

Partitioned Hybrid Tables

 

 


 

Exadata (https://www.oracle.com/technetwork/database/exadata/exadata-dbmachine-x4-twp-2076451.pdf)

 

·      Real Application Cluster (https://logicalread.com/oracle-12c-rac-mc05/#.W_XWE5NKjUo) (https://www.oracle.com/technetwork/database/options/clustering/overview/index-086583.html)

o   Oracle Real Application Clusters (RAC) provides a database environment that is highly available as well as scalable. If a server in the cluster fails, the database instance will continue to run on the remaining servers or nodes in the cluster. With Oracle Clusterware, implementing a new cluster node is made simple. RAC provides possibilities for scaling applications further than the resources of a single server, which means that the environment can start with what is currently needed and then servers can be added as necessary. 

o   A typical RAC environment has a set of disks that are shared by all servers; each server has at least two network ports: one for outside connections and one for the interconnect (the private network between nodes and a cluster manager). 

o   The shared disk for the clusterware comprises two components: a voting disk for recording disk membership and an Oracle Cluster Registry (OCR), which contains the cluster configurations. The voting disk needs to be shared and can be raw devices, Oracle Cluster File System files, ASM, or NTFS partitions. The Oracle Clusterware is the key piece that allows all of the servers to operate together.

o   ig7-1

 

·      Smart Scan (https://www.oracle.com/technetwork/testcontent/o31exadata-354069.html)

o   A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure.

o   Database indexes are used to quickly locate data without having to search every row in a database table every time a database table is accessed. It can be created using one or more columns of a database table, providing the basis for both rapid random lookups and efficient access of ordered records. It is a copy of selected columns of data from a table that can be searched very efficiently that also includes a low-level disk block address or direct link to the complete row of data it was copied from.

o   A storage index is an in-memory structure that holds some information about the data inside specified regions of physical storage. This information tells the storage cell which areas of the disk do not contain the values the query is interested in, so those areas are not accessed during a scan.

o   Storage indexes in Oracle Exadata know the distribution of data in storage cells and help eliminate physical I/O within storage cells during a smart scan. This significant reduction in I/O results in even faster processing of data within the Oracle Exadata Database Machine. You can check to see whether storage indexes are being used in Oracle Exadata queries, and you can measure the I/O savings in a specific query

o   Storage in Oracle Exadata changes query processing so that not all blocks have to go to the database server for that server to determine which rows might satisfy a query. Oracle Exadatas Smart Scan feature enables certain types of query processing to be done in the storage cell. With Smart Scan technology, the database nodes send query details to the storage cells via a protocol known as iDB (Intelligent Database). With this information, the storage cells can take over a large portion of the data-intensive query processing. Oracle Exadata storage cells can search storage disks with added intelligence about the query and send only the relevant bytes, not all the database blocks, to the database nodeshence the term smart scan

o   31exadata figure 1

 

·      Infiniband Scale-Out (https://centroid.com/infiniband-oracle-engineered-systems-exalogic-and-exadata/)

o   InfiniBand is a type of communications link for data flow between processors and I/O devices that offers throughput of up to 2.5 gigabytes per second and support for up to 64,000 addressable devices. Because it is also scalable and supports quality of service (QoS) and failover, InfiniBand is often used as a server connect in high-performance computing (HPC) environments. (https://searchstorage.techtarget.com/definition/InfiniBand)

o   Oracle made changes to Oracle Enterprise Linux UEK kernel and Oracle binaries to utilize RDS protocol over IB instead of traditional TCP/IP or UDP over Ethernet. This enabled them to avoid unnecessary CPU overhead of processing Ethernet TCP/IP or UDP packets in Kernel and achieve the ubiquitous holy grail of RDMA on low-latency high-bandwidth IB fabric, which is still faster than newer technologies being built around Ethernet infrastructure like RoCE (http://blog.infinibandta.org/2012/02/13/roce-and-infiniband-which-should-i-choose/). In engineered systems, presenting the entire Rack whether one-eight/quarter or half/full, totally encapsulated with compute, storage and IB network backplane, has made it easier for Datacenter managers to adopt IB based solution by just plug-n-play.

o   In a typical datacenter, compute nodes will be bundled together on standard network backbones like 10GigE or Fiber Chanel Fabric for Storage. They typically suffer when they have to scale out to accommodate ever-increasing demands of applications. In large compute intensive systems, network I/O ends up being a huge bottleneck for application performance and is a major impediment in horizontal scaling using technologies like application clustering. Exalogic was designed specially to answer this shortcoming. Similar to utilization of RDS in Exadata, in Exalogic some of the software components (OS and applications) make use of a protocol known as Sockets Direct Protocol, which enables kernel bypass, eliminates buffer copies and uses larger 64bytes packets that reduces network overhead. In general, Infiniband provides over three times the throughput of 10 GigE and get 50% less latency using native SDP.

o   Exalogic configured with Exadata is complete high-performance compute and storage solution wholly encapsulated in Racks. By utilizing high bandwidth low-latency IB backplane for internal communication between components in a Rack and exposing 10GigE NICs which can be easily be plugged into existing an Datacenter network infrastructure, Oracle has made it easier for customers to adopt all the benefits that IB has to offer without having to worry about setting separate IB fabric in their Datacenter.

 

·      Database Aware Smart Flash Cache (http://www.informit.com/articles/article.aspx?p=2418151&seqNum=3) (more here https://www.oracle.com/technetwork/database/availability/databaseawareflash-2030367.pdf)

o   The Database Flash Cache serves as a secondary cache to the Oracle buffer cache. Oracle manages data blocks in the buffer cache using a modified least recently used (LRU) algorithm. Simplistically speaking, blocks age out of the buffer cache if they have not been accessed recently. When the DBFC is present, blocks that age out of the data cache are not discarded but are instead written (by the Database Writer, DBWR) to the Flash device. Should the blocks be required in the future, they can be read from the Flash Cache instead of from slower magnetic-disk-based database files.

o   The ESFC is managed by the Exadata Storage Cell Server software CELLSRV. In general, when a Database Node requests a block of data from an ASM disk, the CELLSRV software issues asynchronous requests to the ESFC and to the grid disks that underlie the ASM disk group. If the data is in the Flash Cache, this is satisfied from the cache, and if not, from the grid disk. After forwarding the block to the Database Node, CELLSRV then stores any blocks retrieved from the grid disks into the Flash Cache—provided that the blocks are “eligible.”

o   Eligibility for caching is determined by metadata sent to the Storage Cell by the database server. This includes the size and type of I/O, as well as the segment’s CELL_FLASH_CACHE storage clause.

o   SSD provides far greater I/O capacity and far lower I/O latencies than traditional magnetic disk.

o   The default configuration for Exadata Flash SSD is as in the Exadata Smart Flash Cache. The primary purpose of the Exadata Smart Flash Cache is to accelerate read I/O for database files by configuring Flash as a cache over the grid disks that service data file read I/O. By default the Exadata Smart Flash Cache does not accelerate Smart or full table scans, but you can configure CELL_FLASH_CACHE KEEP to alter this behavior.

o   Exadata Smart Flash Logging allows the Flash Cache to participate in redo log write operations. This helps alleviate the occasional very high redo write “outliers.”

o   The Exadata Smart Flash Cache can also operate as a write-back cache, allowing it to satisfy write requests as well as read requests; this can improve performance on systems that are experiencing data file write I/O bottlenecks—as -evidenced by free buffer waits.

 

·      Storage Indexes (refer to Smart Scan link) (https://centroid.com/exadata-storage-indexes/)

o   A storage index is a memory-based structure that reduces the amount of physical IO required by the cell. A storage index keeps track of minimum and maximum values from query predicates and builds storage index regions based on usage.

o   https://www.centroid.com/wp-content/uploads/2018/06/BP_EXADATA_SI1_html_89f1309_1.png

 

·      Hybrid Columnar Data (https://logicalread.com/oracle-11g-hybrid-columnar-compression-mc02/#.W_SQYZNKjUo) (more on https://www.oracle.com/technetwork/database/features/availability/311358-132337.pdf)

o   Hybrid Columnar Compression (HCC), also known as Exadata Hybrid Columnar Compression (EHCC), is data that is organized by a hybrid of columns/rows and compressed versus data organized by basic row format. A performance gain anywhere from 10×to 30× is common. The tables are organized in compression units (CU), which contain around 1000 rows (more or less depending on the amount of data in the rows). CUs span many blocks. HCC is very good for bulk-loaded data, but is not built for OLTP or single block read operations. It is primarily built for data warehouses and queried data, not for frequently updated data.

 

·      I/O Priorities(https://docs.oracle.com/en/engineered-systems/exadata-database-machine/sagug/exadata-storage-server-iorm.html#GUID-CF1C0C2A-7E10-4DB6-8A2B-F217BD1FEC21)

o   Storage is often shared by multiple types of workloads and databases. Shared storage has several benefits over dedicated storage. One benefit is that sharing lowers administration costs by reducing the number of storage systems that need to be maintained. Another benefit is that sharing leads to much more efficient use of storage, both from a space and a bandwidth standpoint. When a storage system is dedicated to a single database, the administrator must size the storage system based on the database's peak anticipated load and size. This practice leads to unused I/O bandwidth and space for some databases and, if the estimate was not large enough, then there is insufficient bandwidth and space for other databases. The correct balance of storage resources across the multiple databases is seldom achieved because real world workloads are very dynamic.

o   On the other hand, running multiple types of workloads and databases on shared storage often leads to performance problems. For example, large parallel queries on one production data warehouse can impact the performance of critical queries on another production data warehouse. Also, a data load on a data warehouse can impact the performance of critical queries also running on it. You can mitigate these problems by over-provisioning the storage system, but this diminishes the cost-savings benefit of shared storage. You can also schedule non-critical tasks at off-peak hours, but this manual process is laborious. It becomes impossible when databases have different administrators who do not coordinate their activities.

o   I/O Resource Management allows workloads and databases to share Oracle Exadata Storage Servers according to user-defined policies. To manage workloads within a database, you can define database resource plans, using Database Resource Manager which has been enhanced to manage Oracle Exadata Storage Server I/O resources. To manage workloads in a container database (CDB), define a CDB resource plan that allows management for the various pluggable databases. To manage multiple databases, you can define interdatabase plans.

o   Flash I/O Resource Management protects the latency of critical OLTP I/O requests in flash cache. When table scans are running on flash concurrently with OLTP I/O requests, the OLTP latency is impacted significantly. Flash IORM queues and throttles the table scan, and other low priority I/O requests. The critical OLTP I/O requests are never queued. When the flash disks are not busy serving critical OLTP I/O requests, the queued I/O requests are issued based on the resource allocations in the interdatabase plan.

 

·      Offloading (http://kerryosborne.oracle-guy.com/papers/Understanding%20Exadata%20Offloading.pdf)

o   Data Mining Offload (https://www.oracle.com/technetwork/database/options/odm/data-mining-overview-demo11gr2-160023.pdf)

§  Data mining scoring executed in Exadata:

·      select cust_id from customers where region = ‘US’ and prediction_probability(churnmod, ‘Y’ using *) > 0.8;

§  All scoring functions offloaded to Exadata

§  Benefits

·      Reduces data returned from Exadata to Database server

·      Reduces CPU utilization on Database Server

·      Up to 10x performance gains

 

o   Offload Decryption (Oracle Essentials: Oracle Database 12c)

§  Faster querying of fully encrypted databases is possible because decryption processing is moved into the processors in the Exadata Storage Server cells

§  Transparent Data Encryption: data sent to the database is encrypted by Oracle, and data requested from the database is decrypted.

o   JSON and XML offload (https://odieweblog.wordpress.com/)

§  Done in storage server

 

·      Network Resource Mgmt (refer to top link)

o   Exadata also implements unique database network resource management to ensure that network intensive workloads such as reporting, batch, and backups don’t stall response time sensitive interactive workloads. Latency sensitive network operations such as RAC Cache Fusion communication and Log File Writes are automatically moved to the head of the message queue in server and storage network cards as well as InfiniBand network switches, bypassing any nonlatency sensitive messages. Latency critical messages even jump ahead of non-latency critical messages that have already been partially sent across the network, ensuring low response times even in the presence of large network DMA operations.

 

·      Prioritized File Recovery (https://docs.sdbor.edu/oracle/db12cr2/oracle-database_12.2_20180511/content/haovw/ha-features.html#GUID-314F15CE-BD8F-45B0-911E-B7FCC2B8006A)

o   Database optimized availability allows for prioritized recovery of critical database files

o   Oracle Automatic Storage Management: For optimal performance, Oracle ASM spreads files across all available storage. To protect against data loss, Oracle ASM extends the concept of SAME (stripe and mirror everything) and adds more flexibility because it can mirror at the database file level rather than at the entire disk level.

More important, Oracle ASM simplifies the processes of setting up mirroring, adding disks, and removing disks. Instead of managing hundreds or possibly thousands of files (as in a large data warehouse), database administrators using Oracle ASM create and administer a larger-grained object called a disk group. The disk group identifies the set of disks that are managed as a logical unit. Automation of file naming and placement of the underlying database files save administrators time and ensure adherence to standard best practices.

The Oracle ASM native mirroring mechanism (two-way or three-way) protects against storage failures. With Oracle ASM mirroring, you can provide an additional level of data protection with the use of failure groups. A failure group is a set of disks sharing a common resource (disk controller or an entire disk array) whose failure can be tolerated. After it is defined, an Oracle ASM failure group intelligently places redundant copies of the data in separate failure groups. This ensures that the data is available and transparently protected against the failure of any component in the storage subsystem.

o   Fast Recovery Area: the fast recovery area is a unified storage location for all recovery-related files and activities in Oracle Database. After this feature is enabled, all RMAN backups, archived redo log files, control file autobackups, flashback logs, and data file copies are automatically written to a specified file system or Oracle ASM disk group, and the management of this disk space is handled by RMAN and the database server.

Performing a backup to disk is faster because using the fast recovery area eliminates the bottleneck of writing to tape. More important, if database media recovery is required, then data file backups are readily available. Restoration and recovery time is reduced because you do not need to find a tape and a free tape device to restore the needed data files and archived redo log files.

 

·      Direct-to-wire Protocol (https://www.linkedin.com/pulse/what-exafusion-direct-wire-oltp-protocol-lukasz-feldman/) (http://nnawaz.blogspot.com/2016/03/exadata-exafusion.html)

o   ExaFusion Direct to Wire OLTP Protocol reimplements the RAC Cache Fusion with the bypass of the networking software stack, interrupts and scheduling. 

o   ExaFusion allows database processes to read and send Oracle Real Applications Cluster (Oracle RAC) messages directly over the Infiniband network bypassing the overhead of entering the OS kernel, and running the normal networking software stack. This improves the response time and scalability of the Oracle RAC environment on Oracle Exadata Database Machine.  Data is transferred directly from user space to the Infiniband network, leading to reduced CPU utilization and better scale-out performance. Exafusion is especially useful for OLTP applications because per message overhead is particularly apparent in small OLTP messages. Exafusion helps small messages by bypassing OS network layer overhead and is ideal for this purpose.

 

·      Instant failure detection (https://www.oracle.com/technetwork/database/availability/exadata-maa-3605537.pdf)

o   Unique Brownout Reduction Features: If a server disappears from both InfiniBand switches, declare it dead in less than two seconds

o   No waiting for long heartbeat timeouts – Reduces application brownouts from 30+ seconds to < 2 seconds

 

·      In-Memory Columnar in Flash (https://blogs.oracle.com/in-memory/columnar-formats-in-exadata-flash-cache)

o   It is the ability to transform Hybrid Columnar Compressed (HCC) data into a pure columnar format in the flash cache. The process to accomplish this rearranges 1 MB worth of HCC data into a true columnar form and stores the page mapping in the flash cache's hash table to tell us where the columns are. It is not uncommon to see a savings of 50-80% disk I/O from the columnar cache and significant improvements to the wall clock for queries which are cell CPU bound.

o   Depending on the configuration of environment, the data from eligible scans will be automatically cached in the flash cache in one of the columnar formats.

 

·      Smart Fusion Block Transfer (http://blog.umairmansoob.com/tag/exadata-smart-fusion-block-transfer/)

o   If you have an OLTP application running on Exadata and frequently updating to adding rows to tables from multiple database blocks, you can take advantage of Smart Fusion Block Transfer capability which uniquely improves performance of a RAC configuration by eliminating the impact of redo log write latency. Especially DML queries running from multiple instances, can lead to hot blocks transfer between Oracle RAC Nodes. This feature can transfer hots blocks as soon as the I/O to the redo log is issued at the sending node, without waiting for it to complete. As per Oracle “It has been observed that Smart Block Transfer increases throughput (about 40% higher) and decreases response times (about 33% less) for communication intensive workloads”.

o   Without Exadata’s Smart Fusion Block Transfer feature, a hot block can be transferred from a sending node to a receiver node only after the sending node has made changes in its redo log buffer durable in its redo log. With Smart Fusion Block Transfer, this latency of redo log write at the sending node is eliminated.

 

·      Exadata Cloud Service (https://cloud.oracle.com/en_US/database/exadata/features)


 

Autonomous DB

 

*9i

·      Automatic Query Rewrite (https://docs.oracle.com/cd/B10501_01/server.920/a96520/qr.htm)

o   Automatic query rewriting solutions allow you to significantly shorten the execution time of complex queries in complex systems, data warehouses and analytical environments.

o   One of the major benefits of creating and maintaining materialized views is the ability to take advantage of query rewrite, which transforms a SQL statement expressed in terms of tables or views into a statement accessing one or more materialized views that are defined on the detail tables. The transformation is transparent to the end user or application, requiring no intervention and no reference to the materialized view in the SQL statement. Because query rewrite is transparent, materialized views can be added or dropped just like indexes without invalidating the SQL in the application code.

o   Before the query is rewritten, it is subjected to several checks to determine whether it is a candidate for query rewrite. If the query fails any of the checks, then the query is applied to the detail tables rather than the materialized view. This can be costly in terms of response time and processing power.

o   The Oracle optimizer uses two different methods to recognize when to rewrite a query in terms of one or more materialized views. The first method is based on matching the SQL text of the query with the SQL text of the materialized view definition. If the first method fails, the optimizer uses the more general method in which it compares joins, selections, data columns, grouping columns, and aggregate functions between the query and a materialized view.

 

·      Automatic Undo Management (https://docs.oracle.com/cd/B28359_01/server.111/b28310/undo002.htm#ADMIN11461)

o   With automatic undo management, the database manages undo segments in an undo tablespace. Beginning with Release 11g, automatic undo management is the default mode for a newly installed database. An auto-extending undo tablespace named UNDOTBS1 is automatically created when you create the database with Database Configuration Assistant (DBCA).

 

*10g

·      Automatic Memory Management (https://docs.oracle.com/cd/B28359_01/server.111/b28310/memory003.htm#ADMIN11011 )

o   The simplest way to manage instance memory is to allow the Oracle Database instance to automatically manage and tune it for you. To do so (on most platforms), you set only a target memory size initialization parameter (MEMORY_TARGET) and optionally a maximum memory size initialization parameter (MEMORY_MAX_TARGET). The instance then tunes to the target memory size, redistributing memory as needed between the system global area (SGA) and the instance program global area (instance PGA). Because the target memory initialization parameter is dynamic, you can change the target memory size at any time without restarting the database. The maximum memory size serves as an upper limit so that you cannot accidentally set the target memory size too high, and so that enough memory is set aside for the Oracle Database instance in case you do want to increase total instance memory in the future. Because certain SGA components either cannot easily shrink or must remain at a minimum size, the instance also prevents you from setting the target memory size too low.

 

·      Automatic Segment Space Mgmt (http://www.orafaq.com/wiki/ASSM) (https://oracle-base.com/articles/9i/automatic-segment-free-space-management)

o   It removes the need for managing freelists and freelist groups by using bitmaps to describe the space usage of each block is within a segment. The bitmap is stored in separate blocks known as bitmapped blocks (BMBS). This relieves the contention on the segment header that occurs with freelists.

o   Prior to Oracle 9i, each block had to be read so the freelist could be checked to see if there was room in the block. In 9i, the bitmap can be checked reducing the number of blocks read unnecessarily. The bitmap is constantly kept up to date with changes to the block making freespace management easier and reducing wasted space as blocks can be kept fuller since the overhead of freelist processing has been reduced.

o   The BMBs contain Root, Branch and Leaf blocks. This organization allows index-like searches for free blocks. Since free blocks are no longer stored in a list it cannot be guaranteed that contiguous blocks will be used within the segment. For this reason the High Water Mark has been split in two:

§  Low High Water Mark (LHWM) - Like the old High Water Mark, all blocks below this point have already been formatted for use.

§  High High Water Mark (HHWM) - Indicates the point above which no blocks have been formatted.

o   The LHWM and the HHWM may not be the same value depending on how the bitmap tree was traversed. If different the blocks between them may or may not be formatted for use. The HHWM is necessary so that direct load operation can guarantee contiguous unformatted blocks.

 

·      Automatic Statistics Gathering (https://docs.oracle.com/cd/B14117_01/server.101/b10752/stats.htm#40674)

o   Oracle gathers statistics on all database objects automatically and maintains those statistics in a regularly-scheduled maintenance job. Automated statistics collection eliminates many of the manual tasks associated with managing the query optimizer, and significantly reduces the chances of getting poor execution plans because of missing or stale statistics.

 

·      Automatic Storage Management (refer to Prioritized File Recovery) (https://docs.oracle.com/cd/B28359_01/server.111/b31107/asmcon.htm#OSTMG03601)

o   ASM is a volume manager and a file system for Oracle database files that supports single-instance Oracle Database and Oracle Real Application Clusters (Oracle RAC) configurations. ASM is Oracle's recommended storage management solution that provides an alternative to conventional volume managers, file systems, and raw devices.

o   ASM uses disk groups to store datafiles; an ASM disk group is a collection of disks that ASM manages as a unit. Within a disk group, ASM exposes a file system interface for Oracle database files. The content of files that are stored in a disk group are evenly distributed, or striped, to eliminate hot spots and to provide uniform performance across the disks. The performance is comparable to the performance of raw devices.

o   You can add or remove disks from a disk group while a database continues to access files from the disk group. When you add or remove disks from a disk group, ASM automatically redistributes the file contents and eliminates the need for downtime when redistributing the content.

o   The ASM volume manager functionality provides flexible server-based mirroring options. The ASM normal and high redundancy disk groups enable two-way and three-way mirroring respectively. You can use external redundancy to enable a Redundant Array of Inexpensive Disks (RAID) storage subsystem to perform the mirroring protection function.

o   ASM also uses the Oracle Managed Files (OMF) feature to simplify database file management. OMF automatically creates files in designated locations. OMF also names files and removes them while relinquishing space when tablespaces or files are deleted.

o   ASM reduces the administrative overhead for managing database storage by consolidating data storage into a small number of disk groups. This enables you to consolidate the storage for multiple databases and to provide for improved I/O performance.

o   ASM files can coexist with other storage management options such as raw disks and third-party file systems. This capability simplifies the integration of ASM into pre-existing environments.

o   escription of Figure 1-2 follows

o   escription of Figure 1-3 follows

 

·      Automatic Workload Repository (https://oracle-base.com/articles/10g/automatic-workload-repository-10g) (https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951)

o   The Automatic Workload Repository (AWR) collects, processes, and maintains performance statistics for the database. The gathered data can be displayed in both reports and views. If you use services with your database, then AWR tracks metrics at the service level.

o   Metrics can be measured against a variety of units, including time, transactions, or database calls. For example, the number of database calls per second is a metric. Server generated alerts can be placed on these metrics when they exceed or fail to meet user-specified thresholds. The database or system administrator can then respond, for example, by:

o   Using the Oracle Database Resource Manager to configure the service level for one service to have priorities relative to other services

o   Stopping overloaded processes

o   Modifying a service level requirement

o   Implementing recovery scenarios in response to service quality changes

o   Using AWR metrics and performance alerts enables you to maintain continued service availability despite service level changes. It also enables you to measure the quality of service provided by the database services.

o   The AWR ensures that the Oracle Clusterware workload management framework and the database resource manager have persistent and global representations of performance data. This information helps Oracle Database schedule job classes by service and to assign priorities to consumer groups. If necessary, you can rebalance workloads manually with either Oracle Enterprise Manager or SRVCTL. You can also disconnect a series of sessions, but leave the service running.

 

·      Automatic Diagnostic Monitor (https://oracle-base.com/articles/10g/automatic-database-diagnostic-monitor-10g) (https://docs.oracle.com/cd/B19306_01/server.102/b14211/diagnsis.htm#g41683)

o   The Automatic Database Diagnostic Monitor (ADDM) analyzes data in the Automatic Workload Repository (AWR) to identify potential performance bottlenecks. For each of the identified issues it locates the root cause and provides recommendations for correcting the problem. An ADDM analysis task is performed and its findings and recommendations stored in the database every time an AWR snapshot is taken provided the STATISTICS_LEVEL parameter is set to TYPICAL or ALL. The ADDM analysis includes the following:

§  CPU load

§  Memory usage

§  I/O usage

§  Resource intensive SQL

§  Resource intensive PL/SQL and Java

§  RAC issues

§  Application issues

§  Database configuration issues

§  Concurrency issues

§  Object contention

o   The Automatic Database Diagnostic Monitor (ADDM) analyzes the AWR data on a regular basis, then locates the root causes of performance problems, provides recommendations for correcting any problems, and identifies non-problem areas of the system. Because AWR is a repository of historical performance data, ADDM can be used to analyze performance issues after the event, often saving time and resources reproducing a problem.

o   An ADDM analysis is performed every time an AWR snapshot is taken and the results are saved in the database. You can view the results of the analysis using Oracle Enterprise Manager or by viewing a report in a SQL*Plus session.

o   In most cases, ADDM output should be the first place that a DBA looks when notified of a performance problem. ADDM provides the following benefits:

§  Automatic performance diagnostic report every hour by default

§  Problem diagnosis based on decades of tuning expertise

§  Time-based quantification of problem impacts and recommendation benefits

§  Identification of root cause, not symptoms

§  Recommendations for treating the root causes of problems

§  Identification of non-problem areas of the system

§  Minimal overhead to the system during the diagnostic process

o   It is important to realize that tuning is an iterative process and fixing one problem can cause the bottleneck to shift to another part of the system. Even with the benefit of ADDM analysis, it can take multiple tuning cycles to reach acceptable system performance. ADDM benefits apply beyond production systems; on development and test systems ADDM can provide an early warning of performance issues.

 

*11g

·      Automatic SQL Tuning (https://docs.oracle.com/cd/B28359_01/server.111/b28274/sql_tune.htm#PFGRF028)

o   Automatic SQL Tuning Advisor: Oracle Database automatically runs the SQL Tuning Advisor on selected high-load SQL statements from the Automatic Workload Repository (AWR) that qualify as tuning candidates. This task, called Automatic SQL Tuning, runs in the default maintenance windows on a nightly basis. You can customize attributes of the maintenance windows, including start and end time, frequency, and days of the week.

o   escription of Figure 17-1 follows

 

·      Automatic Workload Capture/Replay (https://docs.oracle.com/cd/B28359_01/server.111/e12253/dbr_intro.htm#BABBDGIB)

o   You can use Database Replay to capture a workload on the production system and replay it on a test system with the exact timing, concurrency, and transaction characteristics of the original workload. This enables you to test the effects of a system change without affecting the production system.

o   escription of Figure 2-1 follows

o   When workload capture is enabled, all external client requests directed to Oracle Database are tracked and stored in binary files—called capture files—on the file system. You can specify the location where the capture files will be stored. Once workload capture begins, all external database calls are written to the capture files. The capture files contain all relevant information about the client request, such as SQL text, bind values, and transaction information. Background activities and database scheduler jobs are not captured. These capture files are platform independent and can be transported to another system.

o   After a captured workload has been preprocessed, it can be replayed on a test system. During the workload replay phase, Oracle Database performs the actions recorded during the workload capture phase on the test system by re-creating all captured external client requests with the same timing, concurrency, and transaction dependencies of the production system.

o   Database Replay uses a client program called the replay client to re-create all external client requests recorded during workload capture. Depending on the captured workload, you may need one or more replay clients to properly replay the workload. A calibration tool is provided to help determine the number of replay clients needed for a particular workload. Because the entire workload is replayed—including DML and SQL queries—the data in the replay system should be as logically similar to the data in the capture system as possible. This will minimize data divergence and enable a more reliable analysis of the replay.

 

·      Automatic SQL Plan Management (https://www.oracle.com/technetwork/database/bi-datawarehousing/twp-sql-plan-management-11gr2-133099.pdf )

o   SQL Plan Management (SPM) provides a framework for completely transparent controlled execution plan evolution. With SPM the optimizer automatically manages execution plans and ensures only known or verified plans are used. When a new plan is found for a SQL statement it will not be used until it has been verified by the database to have comparable or better performance than the current plan.

o   SQL plan management (SPM) ensures that runtime performance will never degrade due to the change of an execution plan. To guarantee this, only accepted (trusted) execution plans will be used; any plan evolution will be tracked and evaluated at a later point in time and only be accepted as verified if the new plan causes no runtime change or an improvement of the runtime.

o   The SQL Plan Management has three main components:

§  1. SQL plan baseline capture: Create SQL plan baselines that represents accepted (trusted) execution plans for all relevant SQL statements. The SQL plan baselines are stored in a plan history in the SQL Management Base in the SYSAUX tablespace.

§  2. SQL plan baseline selection: Ensure that only accepted execution plans are used for statements with a SQL plan baseline and track all new execution plans in the plan history for a statement. The plan history consists of accepted and unaccepted plans. An unaccepted plan can be unverified (newly found but not verified) or rejected (verified but not found to performant).

§  3. SQL plan baseline evolution: Evaluate all unverified execution plans for a given statement in the plan history to become either accepted or rejected.

o   With automatic plan capture enabled, the SPM repository will be automatically populated for any repeatable SQL statement.

 

·      Automatic Capture of SQL Monitor (https://docs.oracle.com/database/121/TGSQL/tgsql_monit.htm#TGSQL790)

o   Real-Time SQL Monitoring, which was introduced in Oracle Database 11g, enables you to monitor a single SQL statement or PL/SQL procedure. Starting in Oracle Database 12c, Real-Time Database Operations provides the ability to monitor composite operations automatically. The database automatically monitors parallel queries, DML, and DDL statements as soon as execution begins. By default, Real-Time SQL Monitoring automatically starts when a SQL statement runs in parallel, or when it has consumed at least 5 seconds of CPU or I/O time in a single execution.

o   By default, AWR automatically captures SQL monitoring reports in XML format. The reports capture only SQL statements that are not executing or queued and have finished execution since the last capture cycle. AWR captures reports only for the most expensive statements according to elapsed execution time.

o   The Monitored SQL Executions page in Enterprise Manager Cloud Control (Cloud Control) summarizes the activity for monitored statements. You can use this page to drill down and obtain additional details about particular statements.

 

·      Automatic Data Optimization (https://docs.oracle.com/database/121/VLDBG/GUID-59C132D6-D36B-4B5E-B0CA-948C1B0E6836.htm#VLDBG14117)

o   To implement your ILM strategy, you can use Automatic Data Optimization (ADO) to automate the compression and movement of data between different tiers of storage within the database. The functionality includes the ability to create policies that specify different compression levels for each tier, and to control when the data movement takes place.

o   You can specify policies for ADO at the row, segment, and tablespace level when creating and altering tables with SQL statements. By specifying policies for ADO, you can automate data movement between different tiers of storage within the database. These policies also enable you to specify different compression levels for each tier, and to control when the data movement takes place.

·      Active Stand By/Data Guard(https://oracle-base.com/articles/11g/data-guard-setup-11gr2) (https://www.oracle.com/database/technologies/high-availability/dataguard.html)

o   Data Guard is the name for Oracle's standby database solution, used for disaster recovery and high availability.

 

*12c

·      Autonomous Health Framework (https://www.oracle.com/database/technologies/rac/ahf.html) (https://www.oracle.com/technetwork/database/options/clustering/ahf/learnmore/oracle-ahf-faqs-4392561.pdf)

o   Oracle Autonomous Health Framework (AHF) presents the next generation of tools as components, which work together autonomously 24x7 to keep database systems healthy and running while minimizing human reaction time. Utilizing applied machine-learning technologies, Oracle AHF provides early warnings or automatically solves operational runtime issues faced by Database and System administrators in the areas of availability and performance.

o   Oracle AHF preserves availability of your database system during both software (DB, GI, OS) and hardware (CPU, network, memory, storage) issues by:

§  Providing early warnings for potential availability issues

§  Identifying underlying cause and recommended actions for quick resolution

§  Gathering relevant and complete diagnostics for efficient triage by Oracle Support Services

o   Availability issues include those due to memory stress, runaway queries, hangs, DoS attacks, rogue workloads, software bugs, software configuration and file permission changes.

o   Oracle AHF maintains performance during both software issues (bugs, configuration, contention, etc.) and client issues (demand, queries, connection management, etc.) by:

§  Providing early warnings for potential performance degradation issues

§  Detecting hung sessions and automatically resolving them

§  Identifying bottlenecked resources (storage, global cache, CPU or SQL)

§  Re-allocating resources to maintain SLAs and performance objectives

o   Performance issues include those due to deviations from best practices, misconfigured parameters, software bugs, oversubscribed resources, and excessive demand relative to server or database capacity.

o   The Oracle RAC Family of Solutions refers to the collection of products and features that licensed Oracle RAC or Oracle RAC One Node customers can use free of additional charge. Each solution either enhances or complements the core Oracle RAC offering by ensuring better high availability and scalability or by automating and simplifying day-to-day operation

o   Autonomous in Oracle Autonomous Health Framework refers to the fact that the components in the framework require minimal human intervention to do their work. They run 24x7 in their daemon mode to resolve the operational runtime issues in the database system in the space of availability and performance. These components of Oracle AHF include Cluster Health Monitor (CHM), ORAchk, Cluster Verification Utility (CVU), Cluster Health Advisor (CHA), Trace File Analyzer (TFA), Quality of Service Management (QoSM), Hang Manager, and Memory Guard.

 

·      Automatic Diagnostic Framework (https://docs.oracle.com/cd/E17904_01/core.1111/e10105/diagnostics.htm#ASADM11143)

o   The problems that are targeted in particular are critical errors such as those caused by code bugs, metadata corruption, customer data corruption, deadlocked threads, and inconsistent state.

o   When a critical error occurs, it is assigned an incident number, and diagnostic data for the error (such as log files) are immediately captured and tagged with this number. The data is then stored in the Automatic Diagnostic Repository (ADR), where it can later be retrieved by incident number and analyzed.

o   The goals of the Diagnostic Framework are:

§  First-failure diagnosis

§  Limiting damage and interruptions after a problem is detected

§  Reducing problem diagnostic time

§  Reducing problem resolution time

§  Simplifying customer interaction with Oracle Support

o   Automatic capture of diagnostic data upon first failure, Standardized log formats, Diagnostic rules, Incident detection log filter, Incident packaging service(IPS) and incident packages, Integration with WebLogic Diagnostics Framework (WLDF)

o   The Automatic Diagnostic Repository (ADR) is a file-based hierarchical repository for Oracle Fusion Middleware diagnostic data, such as traces and dumps. The Oracle Fusion Middleware components store all incident data in the ADR. Each Oracle WebLogic Server stores diagnostic data in subdirectories of its own home directory within the ADR. For example, each Managed Server and Administration Server has an ADR home directory.

 

·      Automatic Refresh of Clones (https://oracle-base.com/articles/12c/multitenant-pdb-refresh-12cr2)

o   A database clone is a complete and separate copy of a database system that includes the business data, the DBMS software and any other application tiers that make up the environment. Cloning is a different kind of operation to replication and backups in that the cloned environment is both fully functional and separate in its own right. Additionally, the cloned environment may be modified at its inception due to configuration changes or data subsetting.

o   From Oracle Database 12.2 onward it is possible to refresh the contents of a remotely hot cloned PDB provided it is created as a refreshable PDB and has only ever been opened in read only mode. The read-only PDB can be used for reporting purposes, or as the source for other clones, to minimise the impact on a production system when multiple up-to-date clones are required on a regular basis.

o   ultitenant : Refresh

o   Automatic Refresh Mode

 

·      Sharding (https://docs.oracle.com/en/database/oracle/oracle-database/12.2/admin/sharding-overview.html#GUID-0F39B1FB-DCF9-4C8A-A2EA-88705B90C5BF) (https://www.oracle.com/database/technologies/high-availability/sharding.html)

o   Sharding is a data tier architecture in which data is horizontally partitioned across independent databases.

o   Each database is hosted on dedicated server with its own local resources - CPU, memory, flash, or disk. Each database in such configuration is called a shard. All of the shards together make up a single logical database, which is referred to as a sharded database (SDB).

o   Horizontal partitioning involves splitting a database table across shards so that each shard contains the table with the same columns but a different subset of rows. A table split up in this manner is also known as a sharded table.

o   escription of Figure 49-1 follows

o   Sharding is based on shared-nothing hardware infrastructure and it eliminates single points of failure because shards do not share physical resources such as CPU, memory, or storage devices. Shards are also loosely coupled in terms of software; they do not run clusterware.

o   Shards are typically hosted on dedicated servers. These servers can be commodity hardware or engineered systems. The shards can run on single instance or Oracle RAC databases. They can be placed on-premises, in a cloud, or in a hybrid on-premises and cloud configuration.

o   From the perspective of a database administrator, an SDB consists of multiple databases that can be managed either collectively or individually. However, from the perspective of the application, an SDB looks like a single database: the number of shards and distribution of data across those shards are completely transparent to database applications.

o   Sharding is intended for custom OLTP applications that are suitable for a sharded database architecture. Applications that use sharding must have a well-defined data model and data distribution strategy (consistent hash, range, list, or composite) that primarily accesses data using a sharding key. Examples of a sharding key include customer_idaccount_no, or country_id.

 

·      Multitenancy (https://www.oracle.com/database/technologies/multitenant.html) (https://docs.oracle.com/database/121/CNCPT/cdbovrvw.htm#CNCPT89234)

o   The multitenant architecture enables an Oracle database to function as a multitenant container database (CDB).

o   CDB includes zero, one, or many customer-created pluggable databases (PDBs). A PDB is a portable collection of schemas, schema objects, and nonschema objects that appears to an Oracle Net client as a non-CDB. All Oracle databases before Oracle Database 12c were non-CDBs.

o   escription of Figure 17-1 follows

o   escription of Figure 17-3 follows

 

 

*18c

·      Automatic Columnar Flash (refer to In-Memory Columnar in Flash) (https://static.rainfocus.com/oracle/oow18/sess/1523720875201001bowD/PF/Exadata%20OOW%202018_1540521672709001DFBX.pdf)

o   Exadata Brings In-Memory Analytics to Storage:

§  With Exadata Flash throughput approaching memory throughput, SQL bottleneck moves from I/O to CPU

§  Exadata automatically transforms table data into In-Memory DB columnar formats in Exadata Flash cache – Enables fast vector processing for storage server queries

§  Uniquely optimizes next generation Flash as memory – Now works for both row format OLTP databases, and Hybrid Columnar Compressed Analytics databases

 

·      Automatic IM population (https://blogs.oracle.com/in-memory/automatic-in-memory)

o   Automatic In-Memory (AIM) was introduced as part of Database In-Memory in Oracle Database 18c and allows automatic management of the contents of the IM column store. This feature builds on the underlying data of Heat Map, a feature introduced with Automatic Data Optimization (ADO) in Oracle Database 12.1.

o   When AIM is enabled, if the size of the objects that have been enabled for in-memory exceeds the size of the IM column store then the least active populated object(s) will be evicted to make room for more frequently accessed in-memory enabled objects. The really cool part of this is that AIM uses access tracking, column and other relevant statistics to determine which are the least active objects. No guessing required!

o   Key to the function of AIM is the concept of "memory pressure". AIM will only kick in when there is not enough space to populate the object. Prior to AIM, it is possible to run out of IM column store space when populating an object. The great thing about Database In-Memory is that even if an object is only partially populated, queries that access the object in the IM column store won't fail. They will access the portion of data that is populated and then get the rest of the column data from the row-store. Obviously, this is not going to provide the best performance and that's where AIM kicks in.

o   With AIM enabled that object can be fully populated because one or more objects with the least activity will be evicted to make room.

 

·      Automatic Application Continuity (https://docs.oracle.com/en/database/oracle/oracle-database/18/racad/ensuring-application-continuity.html#GUID-C1EF6BDA-5F90-448F-A1E2-DC15AD5CFE75)

o   Application Continuity masks many recoverable database outages (when replay is successful) from applications and users by restoring the database session: the full session, including all states, cursors, variables, and the last transaction if there is one.

o   Application Continuity addresses the problem that arises when an application is trying to access the database and the database instance becomes unavailable due to an unplanned or planned outage (timeout, network outage, instance failure, repair, configuration change, patch apply, and so on). Without Application Continuity in place, database recovery does not mask outages to applications and end users. In such scenarios, developers and users must cope with exception conditions, and users can be left not knowing what happened to their funds transfers, time sheets, orders, bill payments, and so on. Users might lose screens of uncommitted data, and must log in again and reenter that data. In the worst cases, the administrator might be forced to restart the middle tier to recover from an overwhelming number of logins.

o   With Application Continuity, if the database instance became unavailable, then Application Continuity attempts to rebuild the session and any open transactions using the correct states; and if the transaction committed and need not be resubmitted, then the successful return status is returned to the application. If replay is successful, then the request can continue safely without risk of duplication. If replay cannot restore data that the application has already processed and potentially made decisions on, then the database rejects the replay and the application receives the original error.

o   Application Continuity performs the recovery of in-flight transactions and database session state, while ensuring the transaction idempotence provided by Transaction Guard. Each database session is tagged with a logical transaction ID (LTXID), so the database recognizes whether each replay committed any transactions, and if it did commit any transactions, whether the work also ran to completion. While Application Continuity attempts to replay, the replay appears to the application as a delayed execution, or the application receives the commit response for the original transaction (if the last transaction had completed before the outage).

 

*19c

·      Fast ingest support for IoT type workloads

·      Stats Only Queries

·      Improvements for count distinct and group by queries

·      DataGuard DML Redirect

·      Automatic Indexing

·      Sharding now supports multiple PDB shards in a CDB

·      SQL JSON Enhancements

·      Partial JSON Update support

·      Partitioned Hybrid Tables

o  

·      RAT and ADDM at PDB level