Oracle has leap forwarded the middleware
technologies especially the database technology into the cloud. So far Oracle
has been the traditional RDBMS database suitable for the private enterprise
data centers within corporate walls. In Oracle Open World 2012 held in San
Francisco, Larry Ellison announced that oracle database also be cloud enabled
by introducing pluggable databases for multi-tenancy and easy database movement
between systems, platforms or releases. When the database is a cloud ready, it
should be hardware agnostic, platform agnostic and release agnostic so that it
gives all the characteristics to be in Platform as a Service (PaaS) for
middleware. It is a brand new capability insider a single container database.
So the DBAs and developer community should be familiar with “Container
Databases” or CDB and “Pluggable Database” or PDB. I will refer PDB and CDB to
refer pluggable database and container database respectively.
Before we delve into deeper details about CDB
and PDB, let us get some basic details about multi-tenancy. 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. But managing the security
has lot of caveats including auditing as Larry Ellison & Andrew Mendelsohn
mentioned on their respective keynote addresses. 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. I really think this new feature has lot
of advantages from small customers to large scale enterprise customers no
matter how we look at it. It is going to make the enterprises to become smarter
in terms of utilizing the compute capacity what they have.
DB is an acronym for “Container Database” and PDB is an acronym
for “Pluggable Database”. I think it will be easier to explain with a metaphor
for DBAs. Think of a freight train with many cars up to 250. Each container
could be having different contents, with delivery target for different
customers and completely packed/sealed independently with customer options but
the entire freight is carried by a single engine or carrier at the front. It
will be stupid enough to run 250 freight trucks but rather it is efficient to
consolidate them into a single freight train. When running independently we
will spend on gas, drivers’ expenses and much more complicated to manage them.
The freight train is basically the CDB and each car is the PDB.
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. All home-grown or third party applications typically will
have connectivity defined out of the application so it is easier to just change
the service name outside of the application code. So all database connectivity
should use “database service” rather than using the legacy approach of ORACLE_SID
based connectivity. ORACLE_SID ties the application connectivity to a specific
database instance and does not give the scalability or high availability. You
can have many pluggable databases in 12.1.
you can have up to 250 pluggable
databases or PDBs within one container database or CDB. It is clear that there
is one-to-many relationship between CDB and PDBS
databases or PDBs within one container database or CDB. It is clear that there
is one-to-many relationship between CDB and PDBS
I'll show some feature about pluggable database, the first is how do we convert from non-cdb to pdb ?
Convert Non-CDB to PDB
We can convert a non-CDB database to a PDB into a container.
There are few steps involved as listed below.
· Ensure
the non-cdb can be opened in the 12.1 release
· Close
the non-cdb
· Open
the non-cdb in restricted mode
· Set
the container to itself (as initial container would be itself)
· Run
an oracle script to convert
SQL>
alter pluggable database noncdbp open;
Pluggable
database altered.
SQL>
alter pluggable database noncdbp close;
Pluggable
database altered.
SQL>
alter pluggable database noncdbp open restricted;
Pluggable
database altered.
SQL>
alter session set container = noncdbp;
Session
altered.
SQL>
@?/rdbms/admin/noncdb_to_pdb.sql
STATUS COUNT(*)
----------
----------
5 9968
6 39793
COUNT(*)
----------
6416
COUNT(*)
----------
6271
COUNT(*)
----------
3821
COUNT(*)
----------
3785
COUNT(*)
----------
12
COUNT(*)
----------
6
TIMESTAMP
--------------------------------------------------------------------------------
COMP_TIMESTAMP
UTLRP_BGN 2012-10-03 19:27:56
Credit : Michael Rajendran
Hope this help :D
Chatchai
ไม่มีความคิดเห็น:
แสดงความคิดเห็น