Please see my other blog for Oracle EBusiness Suite Posts - EBMentors

Search This Blog

Note: All the posts are based on practical approach avoiding lengthy theory. All have been tested on some development servers. Please don’t test any post on production servers until you are sure.

Sunday, December 30, 2012

Oracle Database 12c: Are you ready?

What is 12c Database?
Oracle Database 12c is the next release of Oracle’s flagship database product, expected to be launched in calendar Q1, 2013. Because it is  not yet officially launched to general availability , information about it, is limited. following are the information I could manage to gather from various sources, 100% authenticity is not guaranteed until the product is released officially.

Oracle made much of a significant architecture of the database to optimize it for use in cloud environments. The core principle for this is the introduction of database containers into which individual databases can be “plugged”. This can be thought of as database
virtualization, and means that resource allocation and administration of the database environment can be done at the container level to improve efficiency, while still maintaining the isolation of individual databases. This will reduce overall management costs, reduce time for provisioning, and increase the opportunity for consolidation, but does not require changes to existing applications.

For cloud environments, this will in effect mean that multitenancy can take place at the database level, rather than at the application level, which Oracle asserts will provide improved scalability and resilience.

Some interesting facts:
- Over 500 new features
- Over 5 years in development
- Over 2,500 person years of development
- Over 3 million lines of new code
- Over 3,000 systems used in testing
- Over 15 million hours of testing
- Beta2 release is running in production today at Oracle


Most of the organizations use the multi-tenancy with application level logic i.e. multiple customer or different entities data within the same database. They can be setup with many different schemas or even within a schema.

It has been an administrative nightmare when multiple databases are running in one machine. The backups need to be run separately. Each database has memory footprint and each database has background processes. This increases the capacity of the server on what it can handle in terms of the loads. By consolidating into one container database and at the same time keeping all of them as separate databases are a great thing from consolidation, performance, capacity and operational perspective.

This is going to help in a very big way for consolidation on many enterprises and at the same time it will reduce the server footprint significantly giving the maximum Return on Investments (ROI) on the middleware database technologies.

PDB is fully backward compatible to pre-12.1 database releases. There is nothing different from a developer or application connectivity perspective. Everything stays the same but the PDB will belong to a single CDB.
When application connects to the PDB, it will specify the destination PDB via a database service.
Benefits of Pluggable Databases
- With pluggable databases (PDB), you will get the strong isolation for your applications. Each application will have its own PDB thus providing the high level of consolidation having fewest OS and managing only one database (ie; CDB).
- you will get the excellent performance as there will be fewer database instances.
- NO application validation required
- Fast Provisioning (creation of empty PDB, clone of a PDB for testing, plug PDB for migrations & upgrades)
New Features
  • The new admin role“CDB Administrator” is added . CDB administrator will login into the new concept of “CDB root” namespace. 
  • You can plug out (unplug) a database from one container database and then plug in into another container database
  • Default value of column can use a sequence.nextval.
  • Identity columns : Multiple levels of control of how it is used. Can use simple or more complex syntax. 
  •  VARCHAR2(32767) in the database. Less than 4K is stored inline. More than 4K is stored out of line, similar to LOB, but simpler.
  •  Top-N now using Row limiting clause eg. “OFFSET 10 ROWS FETCH FIRST 10 ROWS ONLY”.
  • Security - A new step has been taken to continue on "least privileges", meaning that the user only gets the privileges that are absolutely necessary. A Role can be granted to a PL/SQL unit.
  • Improved programmer usability - The ability to inspecting the callstack has been improved by the introduction of a new package: UTL_CALL_STACK. The package contains numerous functions to help in this area, such as current_edition and lexical_depth. White listing of program units: restrict which program unit can be called by other program units.
  • Get the performance of SQL with the clarity and reusability of PL/SQL by adding a pragma UDF to a schema level PL/SQL function - almost as fast as pure SQL;
  • You can declare a PL/SQL function in the WITH clause of a subquery: with function x(param) end x; select x(p) from t;
  • You can have up to 250 pluggable databases or PDBs within one container database or CDB.
  • Oracle Flex ASM - This feature of Oracle Clusterware 12c claims to reduce per-node overhead of using ASM instance. Now the instances can use remote node ASM for any planned/unplanned downtime.
  •  ASM Disk Scrubbing - feature so that logical corruptions can be discovered, Also Oracle 12c ASM can automatically correct this in normal or high redundancy diskgroups.
  •  IPv6 Support - Oracle RAC 12c now supports IPv6 for Client connectivity, Interconnect is still on IPv4.
  •  Each RAC instance opens the Container Database (CDB) as a whole so that versions would be same for CDB as well as for all of the Pluggable Databases
  • Oracle installer will run script across nodes. We don't have to run the scripts manually on all RAC nodes.
  •  new "ghctl" command for patching.
Note: If you are a DBA with years of experience still you MUST read the docs, Not doing so is not an option for 12c.

No comments: