Oracle DBAAS (Database As a Service) offers a good solution for on demand access to software and infrastructure. In this posting, I will describe the DBAAS implementation with Enterprise Manager Cloud 12c.

Why Database as a Service is interesting

When a developer team needs a new database, the system administrator has to configure the host, the storage administrator has to configure the storage, and the database administrator has to download the latest oracle database version and install it on a host. These configuration operations last at least two days. If we need to implement a high availability solution and to configure the backup operations correctly, the total implementation time can go up to one week.

All these operations have a cost and as organizations have more and more applications to maintain, the IT directors are starting to have a closer look at data management.

This is why Oracle DBAAS (Database As a Service) can be an interesting solution.

Installing Oracle Database as a Service (DBAAS)

First, you have to implement the following plugins, which are required to enable Database as a Service (DbaaS) in EM Cloud 12.1.0.3.0:

  • Enterprise Manager for Oracle Cloud
  • Enterprise Manager for Oracle Virtualization
  • Enterprise Manager for Oracle Consolidation Planning and Chargeback
  • Enterprise Manager for Oracle Database
  • Enterprise Manager for Storage Management

We have to deploy the plugin on the management server:
dbaas1
dbaas2
dbaas3
There will be a downtime during the plugin installation; the OMS server won’t be available during the configuration.
The following command will show us how the deployment is running on the OMS server:

oracle@vmtestoraem12c:/u01/app/oracle/MiddleWare_12103/oms/ [oms12c] emctl status oms -details
Oracle Enterprise Manager Cloud Control 12c Release 3
WebTier is Down
Unable to deploy or undeploy the plug-in. Oracle Management Server is down possibly because the following plug-ins are being deployed or undeployed from it. Try again after some time.
Plug-in Deployment/Undeployment Status
Plug-in Name         : Oracle Virtualization
Version              : 12.1.0.5.0
ID                   : oracle.sysman.vt
Content              : Plug-in
Action               : Deployment
Status               : Deploying
Steps Info:
Step                                     Start Time                End Time                  Status
Submit job for deployment                9/6/13 9:16:34 AM CEST    9/6/13 9:16:34 AM CEST    Success
Initialize                               9/6/13 9:16:37 AM CEST    9/6/13 9:16:43 AM CEST    Success
Install software                         9/6/13 9:16:44 AM CEST    9/6/13 9:16:45 AM CEST    Success
Validate plug-in home                    9/6/13 9:16:47 AM CEST    9/6/13 9:16:47 AM CEST    Success
Perform custom preconfiguration          9/6/13 9:16:47 AM CEST    9/6/13 9:16:47 AM CEST    Success
Check mandatory patches                  9/6/13 9:16:47 AM CEST    9/6/13 9:16:47 AM CEST    Success
Generate metadata SQL                    9/6/13 9:16:47 AM CEST    9/6/13 9:16:47 AM CEST    Success
Preconfigure Management Repository       9/6/13 9:16:47 AM CEST    9/6/13 9:16:47 AM CEST    Success
Stop management server                   9/6/13 9:16:51 AM CEST    9/6/13 9:17:44 AM CEST    Success
Register DLF                             9/6/13 9:17:44 AM CEST    N/A                       Running
Configure Management Repository          9/6/13 9:17:45 AM CEST    N/A                       Running
Configure middle tier                    9/6/13 9:17:45 AM CEST    N/A                       Running

 

After a few minutes, the Web Tier and the Oracle Management server are up and running and the needed plugins are correctly deployed.
We also have to install the Cloud plugin in the same way we deployed the previous plugins.
Finally, the setup menu has the new Cloud infrastructure menu:

dbaas4

We have to create roles and users via the setup security administrators menu with its own Cloud User privileges in the following way:
A user named cloud_admin with the EM_CLOUD_ADMINISTRATOR role allowing it to setup and deploy the cloud.

 

dbaas6

A user named dbaas_administrator who has the em_ssa_administrator role to define quotas and constraints for the self-service user and grant them access privileges:

 

dbaas5

And finally, a user named dbaas_exploit will be the self-service portal user:

 

dbaas7

Once all the plugins are installed, the first operation consists in creating a PaaS infrastructure zone. A Paas (Paltform As A Service) zone is a group of hosts discovered in Enterprise Manager Cloud 12c.
Connected as cloud_admin. From the Enterprise menu, Middleware and database Cloud, we select Create Paas Infrastructure Zone:

 

dbaas8

We define a development zone with members of type host and we define the maximum CPU and memory utilization:

 

dbaas9

We define credentials and we add hosts:

 

dbaas10

We select the roles that can access this Paas zone:

 

dbaas11

Finally, the Pass infrastructure zone is correctly created:

 

dbaas12

In the same way, we can create a Production zone made of production hosts:

dbaas13

A database pool is a set of resources that can be used to provision a database instance in a Paas infrastructure zone. We can define pools for databases and pool for schemas.
A pool for databases is a collection of servers with database software installed.
A pool for schemas is a collection of databases containing schemas.

From a practical point of view, the database administrator will create provisioning profiles which will be stored in the software library. A provisioning profile can be an Oracle database with or without the software, or can an extract of a database. Provisioning profiles can be created using rman backups, dbca templates, snapshots, or expdp dumps.

In the following example, I will show you how to create a database pool with a rman backup and a schema pool.
Connected as DBAAS_ADMINISTRATOR, we can create a database pool as follows:
From the setup menu, we select Cloud and Database:

 

dbaas14

We fill in the pool name, the credentials, the PaaS zone, the platform version, and the oracle software version.
You should then immediately test the credentials:

 

dbaas15

Concerning the “Request Settings”, I set everything on “No restriction”:

 

dbaas16

I define the following quotas: 4 Gb memory, 100 Gb storage, and 10 schema service requests:

 

dbaas17

It’s time now to define a database provisioning profile. In my example, I will chosse Structure only with a database template:

 

dbaas18

Or an RMAN backup:

 

dbaas19

We submit the Database Provisioning Profile creation; we can view the deployment in the Procedure Activity screen:

 

dbaas20

The next page shows that the Profile has been correctly created in the Procedure Activity page:

 

dbaas21

The next step consists in creating a service template: We give a name and a description, and choose the database type.
We also have to specify a prefix for the database to be created in the future, as well as a domain name:

 

dbaas22

We define the storage type (ASM or File System), administrator Credentials, and select “Next”:

 

dbaas23

We can also define specific initialization parameters:

 

dbaas24

We also have the possibility to define scripts to be run before and after the service instance creation:

dbaas25

Then we select a zone and assign a pool and define a role:

dbaas26
dbaas27

We can review our settings before submitting:

 

dbaas28

We can also define a schema pool. Let’s create a new database pool:

 

dbaas29

As before, we set the services requests to no restrictions and allow the same quotas.
Then we create a profile and select export Schema definition:

 

dbaas30

We select the schema name and the directory location:

 

dbaas31

Let’s review our settings before submitting:

 

dbaas32

Then we create a service template that will be available in the self-service portal:

 

dbaas33

We have the possibility to define the schemas details:

 

dbaas34

We select the zone and the resource pool the service template will provision:

 

dbaas35

We define the roles authorized to use this service template:

 

dbaas36

We review our settings:

 

dbaas37

Finally we have created two service templates: one for creating a 11.2.0.3 database and another containing a schema dump.

 

dbaas38

Notice that the provisioning profiles can be seen in the software library:

 

dbaas39

Now we have to access the self-service portal as a normal user. We will use the dbaas_exploit user and the Schema as a service.
From the Enterprise Menu, we select the Cloud and Self Service Portal:

 

dbaas40

Select My Database, and in the Request tab, select schema:

 

dbaas41

We select the Service Template named HR:

 

dbaas42

The original schema name HR will be created in the target database with the new name DBAAS_EXPLOIT_HR.
We fill in the password for this new schema and select submit:

 

dbaas43

The next screen shows the provisioning screen:

 

dbaas44

By selecting DBAAS_CREATE#63, we can follow the deployment:

 

dbaas45

In the target database, the dbass_exploit_hr schema is created and the data is successfully imported:

SQL> select username from dba_users where username like ‘DBAAS%’;

DBAAS_EXPLOIT_HR

DBAAS_EXPLOIT

DBAAS_ADMINISTRATOR

This way, non-privileged users have the possibility to acces specific Enterprise Manager Cloud 12c interface allowing them to use resources such as create database or import schemas.
The provisioning process creates a database service that is completely manageable by Oracle Enterprise Manager Cloud 12c:
Connected as DBAAS_ADMINISTRATOR.

 

dbaas46

Select Middleware and Database Home:

dbaas47

A new service template has been defined:

 

dbaas48

Conclusion

Database as a service presents a lot of advantages for the managing of huge infrastructures:

  • The DBAs can define a catalog in the software library containing multiple Oracle Software versions, different kind of database instances (RAC or Cluster instances), or a list of schema dumps that will be available to end-users for deployment.
  • Even if the DBAAS configuration and usage can be a hard and long work, in the end, it is a very efficient way to optimize and standardize the IT environment.
  • Adding the DBAAS functionality speeds up the application deployment – and, as a result, enables significant cost savings.
  • Obviously, the Oracle Cloud Management Pack and the Database Lifecycle Management Pack are necessary to use those features.