Oracle announced Oracle Enterprise Manager 12c Release 3 back in November 2013, which features new capabilities for managing Oracle Multitenant, an Oracle Database 12c enterprise edition option. The announcement was supported by a live webcast, titled “Delivering Pluggable Database as a Service,” and was well-received by the community, with over 300 attendees participating. During the event, many audience members asked engaging and deep technical questions around managing pluggable databases (PDBs), and more specifically; pluggable database as a service (PDBaaS). In this article, we provide answers to some of the common questions from the webcast.
What qualifies a database to be pluggable?
A pluggable database must be a current Oracle Database 12c database, configured for multitenant through a new enterprise edition option called Oracle Multitenant. It delivers a new architecture that allows a multitenant container database (CDB) to hold many pluggable databases (PDBs). An Oracle Database in the old architecture (a “non-CDB”) may be upgraded to the multitenant architecture via a simple process known as “adopting the non-CDB as a PDB.” A PDB is a self-contained, fully-functional Oracle Database, and includes its own system, sysaux and user tablespaces.
Can the pluggable databases be plugged and unplugged across multiple platforms such as Solaris, AIX, and Linux?
The pluggable database must be endian compatible. Cross endian operations require OGG, Data pump or restore from backup.
In terms of database consolidation, what are the differences between using VMs, dedicated schemas and pluggable databases?
To describe the advantages of using pluggable database vs. other consolidation methods, it can be best illustrated in a simple comparison table.
Easy to Involved
Based on required
Implementation & On-boarding
Requires app validation
A pluggable database combines the best of all the other models and offers excellent consolidation, isolation, manageability and is suitable for any application that is certified to run on Oracle Database 12c. With the other models, we see certain shortcomings. For example, server virtualization offers good isolation but creates compliance and administrative headaches. Schema based consolidation offers ease of management and patching, but limited isolation.
How do you track configuration drift with a pluggable database? I certainly understand drift in the container database, but in what ways would a pluggable database drift from its standard baseline?
This pertains to Configuration Drift Tracking via Oracle Enterprise Manager 12c. One can compare any two Enterprise Manager targets or a complete system such as an Oracle Exadata Database Machine. When you compare at the PDB level, they can differ in the tablespace names, the storage settings of tablespace with same name, or users, etc. Using Oracle Enterprise Manager to track drift, it is particularly useful in comparing difference in your development, testing, and production environments. It is even useful for comparing your standby systems to set standards for compliance requirements.
What is a zone? Is it physical? Regional?
The Oracle Enterprise Manager 12c Cloud resource model involves pooling the same target types where it’s combining similar hosts, databases, hardware or other similar resources in to a zone. Zones can therefore be defined by the boundary of the Cloud and exposed through Oracle Enterprise Manager 12c’s self-service portal. In terms of the pluggable database as a service model, you can create Oracle Multitenant container databases and group them to form a database pool that users can then draw from. When the self-service user provisions a pluggable database, they need to simply specify the Zone where they want to deploy. Internally, Oracle Enterprise Manager uses load or configuration driven algorithms to place the PDB in the right CDB.
What will be the DBA and SYSADMIN role in the pluggable DBaaS environment?
With pluggable databases you have common users and local users as well as common roles and associated privileges and local roles and associated privileges. You can isolate user/role/privilege to the PDB by defining only local user/role/privilege. To leverage the manage many as one, you would define common user/role/privilege to act on all PDBs or a subset of PDBs where the common user has create session privileges within the PDB. You would define DBA roles and SYSADMIN roles based on common and/or local user roles.
What if you need custom configurations on a pluggable database? Once the database is deployed via self-service how do you make changes?
Some parameters are modifiable at the PDB level. You would check v$parameter ISPDB_MODIFIABLE value to determine what can be changed. Some customization can be done at the CDB level; however, they would affect all PDBs for that CDB. Oracle Enterprise Manager’s self-service provides a TNS Connect string to connect to the PDB with the right privilege and execute “ALTER SYSTEM” for the parameters that are permissible to change.
If I'm an application developer and I request a database with a certain pre-defined service level, what level of permissions should I expect with that database? Am I getting DBA or SYSDBA privileges with that request?
It depends on what was negotiated as part of the service definition and associated user/role/privileges defined for that service.
Are the pluggable database as a service capabilities for Oracle Database 12c included in Oracle Enterprise Manager 12c? Do we need a plug-in? Do we need to license Oracle Enterprise Manager 12c Database Management Packs?
You need the Oracle Enterprise Manager 12c database and cloud plug-ins. License-wise; the self-service provisioning from Oracle Enterprise Manager is licensed as part of Cloud Management Pack for Database.
The Oracle Multitenant Option must be licensed if two or more PDBs are plugged into a single CDB.
Watch this short demo called “Using Pluggable Database as a Service (PDBaaS) Self-Service Portal” for a better understanding of deploying PDBaaS using Oracle Enterprise Manager 12c.
What Oracle Enterprise Manager 12c Management Packs are required to be able to provide DBaaS?
You need the Oracle Enterprise Manager 12c Cloud Management Pack for Database.
If you have shared memory and background processes in the container database, how do you allocate server resources to a particular pluggable database? Can you assign specific amount of CPU cycles, RAM and IOPS for a given pluggable database?
SQL execution is scoped to the PDB as identified by the con_id created during session create. In Oracle Database 12c, Resource Manager (RM) has been extended to include support for Oracle Multitenant. Policies may be defined at the PDB level in terms of the simple-yet-powerful concepts of “caps” and “shares” to determine the allocation of resources between PDBs. In this way, resource manager can control allocation of CPU, sessions and parallel execution servers. Additionally, on Oracle Exadata, Resource Manager can also manage IO and network. Memory management currently is implicitly managed through SGA LRU algorithms and CPU share management.
What is the largest number of pluggable databases you can deploy on Oracle Exadata?
Currently, the PDB limit per CDB is 252 PDBs. In Oracle Real Application Clusters environments such as Oracle Exadata, the density of PDB consolidation greatly increases as you may have multiple CDBs per physical server and 252 PDBs per CDB. The maximum limit would be bound by compute resource constraints/limits. And as mentioned in the question on Zone, Oracle Enterprise Manager gives an ability to combine multiple CDBs into a Pool and handle transparent placement. The Oracle Enterprise Manager self-service user therefore won’t be exposed to the underlying limit.
Can I use pluggable database as a service if the target database is 9i or 10g?
You would need to migrate the Oracle Database 9i, 10g and 11g databases to Oracle Database 12c non-CDB and convert them into pluggable databases. The architectural changes within Oracle Database 12c are not backward-compatible.
Can Active Data Guard be configured for selective pluggable databases from a container database? I do not want all pluggable databases to have a standby.
In the current release, Oracle Active Data Guard operates at the container level, however, PDB annotations are tagged in the redo stream, so PDB operations on the primary are reflected on the standby.
Does RMAN support pluggable databases?
Scheduled backups are at the CDB layer and include all PDBs. Adhoc backups can be executed on individual PDBs. Individual PDBs can be restored from backup.