Tuesday May 12, 2015

Data Clone and Refresh (part 1)

In mid January we released the latest version of Enterprise Manager Cloud Control 12c, the 12cR4 Plugin Update.  This release included many enhancements in the cloud management space, making it the complete DBaaS automation solution.  The main areas of enhancement are:

  • Self Service Portal and Service Catalog, including add and remove standby capabilities, externalized database size and improved customization
  • Cloud Framework, with an improved self service portal, role and service type based access across all pages, and improved administration capabilities
  • Data Clone and Refresh, including an improved self service experience, admin flows for non-cloud cloning and refreshes, and additional storage certification
  • Fleet Maintenance, such as the ability to subscribe to database and grid infrastructure images, deploying them automatically to servers

In this posting, I'll be focusing on the data clone enhancements.  My next post will focus on the refresh enhancements.

Improved Self Service Experience

Enterprise Manager ships with an out-of-box self-service portal that allows developers, testers, DBA's, and other self service users to log on and request various services. It also provides an administrative interface for DBA's to deliver one-off or special requests for services. These services include:

  • New single instance (SI) and Real Application Clusters (RAC) databases using pre-defined golden standards. This is ideal for developers asking for standard databases with or without data.
  • New SI and RAC databases along with Data Guard standby databases either within the same data-center or across different geographical regions. This is ideal for production and semi-production workloads that have high availability requirements. 
  • Schemas hosted in one or more databases, and provided as Schema-as-a-Service.
  • Pluggable databases that are hosted in one or more Oracle Database 12c Multitenant container databases provided as Pluggable Database as a Service. 
  • Database thin clones, using the Enterprise Manager 12c Snap Clone feature that leverages storage Copy-on-Write (CoW) technology on Oracle and non-Oracle storage. Snap Clone lets users, such as functional quality assurance testers, to create multiple copies of the database in minutes without consuming additional space, take private backups, and refresh data from the original source. Snap Clone supports cloning of databases on file and on Oracle Automatic Storage Management with block storage. 
  • Database full clones using RMAN backups or RMAN duplicates. This could be ideal for intense testing, such as database upgrades and performance testing on Exadata. 
  • All cloning services come integrated with masking, and ability to change configuration and software versions. 
  • Fleet maintenance allows administrators to patch and upgrade database software, with near zero or zero downtime. The subscription based model enables updates at scale, and across the entire cloud ecosystem thus significantly reducing the time required for maintenance activities. 
Additionally, self service users can perform lifecycle operations like starting and stopping, checking the status, health monitoring, etc. on the requested databases and schemas. Provisioning can be done on both physical infrastructure using Deployment Procedures and on an Oracle VM virtualized server infrastructure using Virtual Assemblies and Virtual Templates. The portal provides access to a Service Catalog which lists various published service templates for standardized database configuration and versions. Users can review their past and outstanding requests, resource quotas, and current utilization as well as chargeback information for the databases and services they own. The portal also allows users to automatically backup their databases on a scheduled basis or take on demand backups. Users can restore the database to any of these backups. The self-service portal is the user's view into the cloud, thus it is designed to be easy to use and yet useful. The portal is also backed by both a command line interface and an API that can be used to request and manage cloud resources via scripts in lieu of the user interface.

Admin Flows for Non-Cloud Cloning and Refreshes

Often, people think of cloning as only important as a cloud operation, but  that’s not the only place that cloning can be important.  It’s ideal, for example, as a way to build environments for proofs of concept, test master creation, or indeed anywhere that you may need a one-off clone. With the Clone and Refresh functionality, you can clone from an existing snapshot of a database, or you can choose to clone to a particular point in time or SCN.  Not only that, you can integrate both masking and patching (for PSU’s) in this flow as well.  Once you have created a clone, you can then refresh it from the source later with a few clicks. And finally, once you’ve done cloning through the user interface, you might then decide to clone and refresh in a scripted manner, using the EM CLI verbs or REST API's that are provided for this.  You can even schedule the cloning through EM CLI to occur at a time that suits you.

Now let’s look at the details of what can happen as part of this clone and refresh flow, based on the environment you can see in the image below:

On the left hand side you can see our Production database.  In this example, this is an database running in a 3 node RAC environment, with some RMAN backups already taken.  So what can I do with this database when I clone it?

Firstly, I can mask sensitive data.  Generally, when you take a copy of your Production database to another environment, you want to mask some of the data in that database, such as credit card numbers, salary details and so on.  The admin flow allows you to apply a pre-defined masking format to your data as it is cloned, or indeed execute your own custom SQL scripts to change the data as you need to.

Secondly, I can actually test patching as part of the flow.  In the example I’m showing here, I’m cloning my Production database to an test environment.

Thirdly, I can change the configuration as part of the admin flow as well.  Again, in the example shown here we're moving from a 3 node RAC environment in Production to a single instance test environment.

Finally, if my underlying storage supports copy on write technology, I can also take advantage of that and take a snap or thin clone of my Production environment, where blocks are only written to my test environment as they are changed in Production.  That means I can build a lot more snap clones and still require only a very small percentage of the storage of my Production environment.

Additional Storage Certifications

Earlier releases of the Enterprise Manager Snap Clone functionality provided two different solutions from a storage perspective.  If you already had either Oracle's Sun ZFS Storage Appliance or NetApp, you could create a vendor specific hardware solution.  If not, you could use either the Solaris ZFS File System or the CloneDB functionality provided sine Oracle Database 11g release   More details on the EM12cR4 Snap Clone functionality is provided here.

In the January plugin release, we added additional storage certification, so you can now also use an EMC SAN with ASM to create snap clones.  If you want more details on the Snap Clone and EMC solution, you can find details about it here.

Further Information

You can find more information on the material I've just covered in Part VII of the Cloud Administration Guide in the online documentation here.  You can also watch the screenwatch we recorded to show you the cloning process in action here.

Stay Connected:
Twitter |
Facebook | YouTube | Linkedin | Newsletter
Download the Oracle Enterprise Manager 12c Mobile app

Monday Jan 05, 2015

Enterprise Manager Ops Center - OS provisioning across secondary network interfaces


One of Enterprise Manager Ops Center's core functionalities is to be able to provision the OS to bare metal servers. If the network you are provisioning across is connected to one of the onboard ports (on the first onboard network chip), all is well and provisioning will work as expected. This would be the case for 95% plus of all customers, but if you are trying to provision across a network that is connected to a port on a card in an expansion slot (or a second onboard network chip), your provisioning job will fail due to the incorrect MAC address being set in the JET/AI/Kickstart server. If you are one of the people who has hit this issue, please read on. If you are provisioning over an onboard NIC port, stop reading now and happy OS provisioning.

The Cause

When Ops Center discovers the ILOM (ALOM/XSCF and all the other various LOMs) of a server, there are only certain pieces of information that can be collected from the LOM while the OS is running. We maintain a policy of creating as little impact as possible during discovery, so we do not force you to shutdown the OS during discovery. 

Information we can collect:

  • the number of network interfaces
  • the MAC address of the first network interface (port)

Information we can NOT collect:

  • the MAC address of all the other network interfaces (ports)

Since the LOM only provides the first MAC address, Ops Center must calculate the MAC addresses of the remaining network interfaces. Ops Center will get the MAC addresses for the onboard NICs correct but its calculated MAC addresses will be wrong for any NICs not on the first onboard network chip.

If we have an example system that has 4 onboard network ports (on the motherboard) and an expansion network card in the PCI-E/X slot with an additional 4 network ports, Ops Center's view of that server, based on the information from the LOM, would not match the physical server.

Interfaces Name Ops Center's Mac Address - Calculated ( from LOM) Actual Mac Adress Correct
Number of Network interfaces 8 8 YES
Mac Address for interface 0 (onboard) net0 00:21:28:17:72:b2 00:21:28:17:72:b2 YES
Mac Address for interface 1 (onboard) net1 00:21:28:17:72:b3 00:21:28:17:72:b3 YES
Mac Address for interface 2 (onboard net2 00:21:28:17:72:b4 00:21:28:17:72:b4 YES
Mac Address for interface 3 (onboard net3 00:21:28:17:72:b5 00:21:28:17:72:b5 YES
Mac Address for interface 4 (PCI-E/X card) net4 00:21:28:17:72:b6 00:14:4f:6b:fd:28 NO
Mac Address for interface 5 (PCI-E/X card) net5 00:21:28:17:72:b7 00:14:4f:6b:fd:29 NO
Mac Address for interface 6 (PCI-E/X card) net6 00:21:28:17:72:b8 00:14:4f:6b:fd:30 NO
Mac Address for interface 7 (PCI-E/X card) net7 00:21:28:17:72:b9 00:14:4f:6b:fd:31 NO

 You can confirm that the Mac addresses for an expansion network card has been calculated, by looking at the Network tab in the BUI for the LOM object.

You can see the displayed MAC addresses for GB_4 and GB_5 are just a simple increment of 1 from that of GB_3 which should not be the case as GB_4 and GB_5 are on a PCI-E/X expansion card. While most Oracle(Sun) servers have 4 on-board network interfaces of the same type, some servers may have 2 x 1GBit interfaces and 2 x 10Gbit interfaces. In this case, only the first on-board network interfaces will display the correct MAC addresses.

It should be noted that if you have discovered the LOM and discovered the running operation system, Ops Center will have been able to identify the correct MAC addresses for all the network interfaces as it combines the information gathered from the LOM and the Operating System to display the full picture (correct values). Unfortunately, you can not rely on these when re-provisioning, as part of the OSP job will delete the OS object (we are re-provisioning it after all) and the cached values for the MAC address may expire before the JET/AI/Kickstart server is configured.

The Impact

If you were to provision across net0, net1, net2, or net3 all would work well, but if you selected net4 or above for provisioning, the job would fail due to a timeout in the "Monitor OS Installation" task as the Jet/AI/Kickstart server would have been configured with the wrong MAC address and so it would have not responded to the OSP request. Please note that a misidentified MAC address is not the only possible cause of a timeout in the "Monitor OS Installation" task. This error only indicates that some step of the OS provisioning has failed and can be caused by a number of different issues.

The Solution

There are 2 ways of provisioning to secondary network interfaces

1) Use the MAC address method (simplest method - only available in 12.2.0+)

In Ops Center 12.2.0, we introduced an option to specify the MAC address to provision across directly in the BUI. When running the "Install Server" Action/Wizard, the "Boot Interface Resource Assignments" page has a check-box [Identify Network Interface by MAC Address]. Selecting this check-box will change the wizard from using netX interface names that rely on the discovered MAC address, to letting you manually enter the MAC address. This entered MAC address is used to setup the JET/AI/Kickstart server and is used to interrogate the OBP of the server to workout the netX interface that is required for wanboot.

It is as easy as that and your provisioning job will progress as normal.

2) Overload the MAC address before provisioning (the way we did it before we had method #1)

Assuming you have already discovered and managed the systems LOM, you can overload (update) the discovered/calulated network interface MAC addresses.

In the BUI, select "Assets" ==> "All Assets" ==> "Add Assets"

then choose "Manually declared server to be a target of OS provisioning"

While this could declare multiple servers using an XML file, in this example, we will just be doing a single server. This wizard normally lets us declare a server network interfaces but as some of the MAC addresses we will be declaring are already part of an existing discovered server LOM, Ops Center will identify the overlaping MAC address and merge this data with the existing server. The matching interfaces will stay the same but the new MAC addresses will overload (replace) the incorrect addresses.

Select Declare a single server, then click the [Green Plus] icon

Enter the port name [GB_X] and the actual MAC address.

Repeat this for all the interfaces, up to and including the one you want to provision across. 

Do not skip any interfaces as the interface numbering is based on the order the entries are stored in the database.

When you have entered all required interfaces, you then have to fill in the server details.

Once completed, click the [Declare Asset] button and wait for the job to complete. Normally, this will just take a few seconds. 

You can check in the BUI that the updated MAC addresses have been applied.

Now, just run your provisioning job as per normal and the correct MAC address will be configured in the JET/AI/Kickstart server.

As you can see, if you have updated your Enterprise Controller to Ops Center 12.2.0 or higher, option #1 is the simpler method.

All the best with your OS provisioning,


Tuesday Aug 05, 2014

EM12c Release 4: Using Repository-Side Metric Extensions

A few weeks ago, someone asked on the OTN forums how to alert on some of the JVM metrics such as ‘JVM Threads – Threads Started (since startup)’ using Enterprise Manager 12c (EM).    This is one of those few metrics that EM collects, but does not allow custom thresholds.    Let’s take a look at the metrics that EM collects on the WebLogic Server target.

Read more... 

Friday Aug 01, 2014

Organizing Your Enterprise Manager Targets

If you’re monitoring more than a handful of servers or databases in your Enterprise Manager 12c (EM), you have probably started creating groups to manage many targets together.   If you haven’t, this is one of the most critical aspects of setting up your EM to properly monitor and manage targets.  There are several use cases where you will want to perform a single action on multiple targets.

  • Setting monitoring thresholds
  • Granting privileges
  • Sending notifications
  • Applying compliance rules
  • Viewing dashboards
  • Running jobs, upgrades, backups
  • Creating reports

The easiest way to perform a single action against multiple targets is to use groups.  Oracle Enterprise Manager (EM) 12c has 4 types of groups that we can take advantage of.  


Wednesday Jul 23, 2014

Enterprise Manager Ops Center 12c R2 U1 Released

We are happy and excited to announce that on July 20, 2014, Oracle Enterprise Manager Ops Center 12c Release 2 Update 1 was released for all platforms including Oracle Solaris SPARC/x86 and Linux.

Ops Center 12cR2 PSU1 is an update release containing improvements and enhancements in the following areas: performance, new hardware support and general quality improvements.

In the performance area we have made improvements in core Ops Center components such as the Enterprise Controller, Proxy Controller and Virtualization Agent. We have reduced the Enterprise Controller memory footprint and enhanced start up times for the Enterprise Controller and agents. We have looked at areas such as deployment wizards and the management of LUN's and made improvements in the performance of these areas.

For new hardware we support the discovery, monitoring and provisioning of both OS and Firmware for: X4-4, X4-8, M4000 and M10. We also made improvements for firmware management of the X4-2 and introduced enhanced support for add / modify hardware configurations for Oracle SuperCluster. 

In the general quality area we improved security, refined logging, made improvements to OS provisioning and enhanced areas such as LDAP and the UI.

For customers with a support contract historically any new updates to the Ops Center components would automatically appear in the Download window of the UI. However, we have noticed a bug which prevents this new version appearing. A fix / IDR is in place and is described in the release notes for this version available here. There is also a MOS note 1908726.1 which describes the IDR and procedure to enable the download.

Software downloads outside of this automatic process will be available on the OTN and edelivery in the coming days.

Before upgrading your Enterprise Controller please check the upgrade guide available here.

There is also an excellent blog which gives advice on pre upgrade tasks to ensure a smooth and successful upgrade experience here.

Tuesday Jun 10, 2014

EM12c: Using the LIST verb in emcli

Many of us who use EM CLI to write scripts and automate our daily tasks should not miss out on the new list verb released with Oracle Enterprise Manager The combination of list and Jython based scripting support in EM CLI makes it easier to achieve automation for complex tasks with just a few lines of code. Before I jump into a script, let me highlight the key attributes of the list verb and why it’s simply excellent!

1. Multiple resources under a single verb:
A resource can be set of users or targets, etc. Using the list verb, you can retrieve information about a resource from the repository database.

Here is an example which retrieves the list of administrators within EM.
Standard mode
$ emcli list -resource="Administrators"

Interactive mode
The output will be the same as standard mode.

Standard mode
$ emcli @myAdmin.py
Enter password :  ******

The output will be the same as standard mode.

Contents of myAdmin.py script
print list(resource="Administrators",jsonout=False).out()

To get a list of all available resources use
$ emcli list -help

With every release of EM, more resources are being added to the list verb. If you have a resource which you feel would be valuable then go ahead and contact Oracle Support to log an enhancement request with product development. Be sure to say how the resource is going to help improve your daily tasks.

2. Consistent Formatting:
It is possible to format the output of any resource consistently using these options:


  This option is used to specify which columns should be shown in the output.

Here is an example which shows the list of administrators and their account status
$ emcli list -resource="Administrators" -columns="USER_NAME,REPOS_ACCOUNT_STATUS"

To get a list of columns in a resource use:
$ emcli list -resource="Administrators" -help

You can also specify the width of the each column. For example, here the column width of user_type is set to 20 and department to 30.
$ emcli list -resource=Administrators -columns="USER_NAME,USER_TYPE:20,COST_CENTER,CONTACT,DEPARTMENT:30"

This is useful if your terminal is too small or you need to fine tune a list of specific columns for your quick use or improved readability.

  This option is used to resize column widths.
Here is the same example as above, but using -colsize to define the width of user_type to 20 and department to 30.
$ emcli list -resource=Administrators -columns="USER_NAME,USER_TYPE,COST_CENTER,CONTACT,DEPARTMENT" -colsize="USER_TYPE:20,DEPARTMENT:30"

The existing standard EMCLI formatting options are also available in list verb. They are:
-format="name:pretty" | -format="name:script” | -format="name:csv" | -noheader | -script

There are so many uses depending on your needs. Have a look at the resources and columns in each resource. Refer to the EMCLI book in EM documentation for more information.

3. Search:
Using the -search option in the list verb makes it is possible to search for a specific row in a specific column within a resource. This is similar to the sqlplus where clause. The following operators are supported:
           is (Must be followed by null or not null)

Here is an example which searches for all EM administrators in the marketing department located in the USA.
$emcli list -resource="Administrators" -search="DEPARTMENT ='Marketing'" -search="LOCATION='USA'"

Here is another example which shows all the named credentials created since a specific date. 
$emcli list -resource=NamedCredentials -search="CredCreatedDate > '11-Nov-2013 12:37:20 PM'"
Note that the timestamp has to be in the format DD-MON-YYYY HH:MI:SS AM/PM

Some resources need a bind variable to be passed to get output. A bind variable is created in the resource and then referenced in the command. For example, this command will list all the default preferred credentials for target type oracle_database.

Here is an example
$ emcli list -resource="PreferredCredentialsDefault" -bind="TargetType='oracle_database'" -colsize="SetName:15,TargetType:15"

You can provide multiple bind variables.

To verify if a column is searchable or requires a bind variable, use the –help option. Here is an example:
$ emcli list -resource="PreferredCredentialsDefault" -help

4. Secure access
When list verb collects the data, it only displays content for which the administrator currently logged into emcli, has access.

For example consider this usecase:
AdminA has access only to TargetA.
AdminA logs into EM CLI
Executing the list verb to get the list of all targets will only show TargetA.

5. User defined SQL
Using the –sql option, user defined sql can be executed. The SQL provided in the -sql option is executed as the EM user MGMT_VIEW, which has read-only access to the EM published MGMT$ database views in the SYSMAN schema.

To get the list of EM published MGMT$ database views, go to the Extensibility Programmer's Reference book in EM documentation. There is a chapter about Using Management Repository Views. It’s always recommended to reference the documentation for the supported MGMT$ database views.  Consider you are using the MGMT$ABC view which is not in the chapter. During upgrade, it is possible, since the view was not in the book and not supported, it is likely the view might undergo a change in its structure or the data in it. Using a supported view ensures that your scripts using -sql will continue working after upgrade.

Here’s an example
  $ emcli list -sql='select * from mgmt$target'

6. JSON output support   
JSON (JavaScript Object Notation) enables data to be displayed in a collection of name/value pairs. There is lot of reading material about JSON on line for more information.

As an example, we had a requirement where an EM administrator had many 11.2 databases in their test environment and the developers had requested an Administrator to change the lifecycle status from Test to Production which meant the admin had to go to the EM “All targets” page and identify the set of 11.2 databases and then to go into each target database page and manually changes the property to Production. Sounds easy to say, but this Administrator had numerous targets and this task is repeated for every release cycle.

We told him there is an easier way to do this with a script and he can reuse the script whenever anyone wanted to change a set of targets to a different Lifecycle status.

Here is a jython script which uses list and JSON to change all 11.2 database target’s LifeCycle Property value.

If you are new to scripting and Jython, I would suggest visiting the basic chapters in any Jython tutorials. Understanding Jython is important to write the logic depending on your usecase.
If you are already writing scripts like perl or shell or know a programming language like java, then you can easily understand the logic.

Disclaimer: The scripts in this post are subject to the Oracle Terms of Use located here.

 1 from emcli import *
search_list = ['PROPERTY_NAME=\'DBVersion\'','TARGET_TYPE=
 \'oracle_database\'','PROPERTY_VALUE LIKE \'11.2%\'']
 3 if len(sys.argv) == 2:
 4    print login(username=sys.argv[0])
 5    l_prop_val_to_set = sys.argv[1]
   l_targets = list(resource="TargetProperties", search=search_list,
 7    for target in l_targets.out()['data']:
 8       t_pn = 'LifeCycle Status'
 9      print "INFO: Setting Property name " + t_pn + " to value " +
      l_prop_val_to_set + " for " + target['TARGET_NAME']
 10      print  set_target_property_value(property_records=
 12   print "\n ERROR: Property value argument is missing"
  print "\n INFO: Format to run this file is filename.py <username>
  <Database Target LifeCycle Status Property Value>"

You can download the script from here. I could not upload the file with .py extension so you need to rename the file to myScript.py before executing it using emcli.

A line by line explanation for beginners:

 1 Imports the emcli verbs as functions
 2 search_list is a variable to pass to the search option in list verb. I am using escape character for the single quotes. In list verb to pass more than one value for the same option, you should define as above comma separated values, surrounded by square brackets.
 3 This is an “if” condition to ensure the user does provide two arguments with the script, else in line #15, it prints an error message.
 4 Logging into EM. You can remove this if you have setup emcli with autologin. For more details about setup and autologin, please go the EM CLI book in EM documentation.
 5 l_prop_val_to_set is another variable. This is the property value to be set. Remember we are changing the value from Test to Production. The benefit of this variable is you can reuse the script to change the property value from and to any other values.
 6 Here the output of the list verb is stored in l_targets. In the list verb I am passing the resource as TargetProperties, search as the search_list variable and I only need these three columns – target_name, target_type and property_name. I don’t need the other columns for my task.
 7 This is a for loop. The data in l_targets is available in JSON format. Using the for loop, each pair will now be available in the ‘target’ variable.
 8 t_pn is the “LifeCycle Status” variable. If required, I can have this also as an input and then use my script to change any target property. In this example, I just wanted to change the “LifeCycle Status”.
 9 This a message informing the user the script is setting the property value for dbxyz.
 10 This line shows the set_target_property_value verb which sets the value using the property_records option. Once it is set for a target pair, it moves to the next one. In my example, I am just showing three dbs, but the real use is when you have 20 or 50 targets.

The script is executed as:
$ emcli @myScript.py subin Production

The recommendation is to first test the scripts before running it on a production system. We tested on a small set of targets and optimizing the script for fewer lines of code and better messaging.

For your quick reference, the resources available in Enterprise Manager with list verb are:
$ emcli list -help

Watch this space for more blog posts using the list verb and EM CLI Scripting use cases. I hope you enjoyed reading this blog post and it has helped you gain more information about the list verb. Happy Scripting!!

Disclaimer: The scripts in this post are subject to the Oracle Terms of Use located here.

Stay Connected:
Twitter |
Facebook | YouTube | Linkedin | Newsletter
mt=8">Download the Oracle Enterprise Manager 12c Mobile app

Tuesday Jun 25, 2013

Planning Database as a Service Implementation Project

People, process and planning are the three key elements to success in a private cloud journey. Some common questions i hear from field/customers often relates to tasks involved in setting up Database-as-a-Service(DBaaS) using Oracle Enterprise Manager 12c from scratch and how these tasks are mapped to current IT roles and responsibilities - overall list of activities that needs to be performed to setup and achieve DBaaS and who does what during the implementation process.

In terms of roles, responsibilities and users, you will map to these categories

  • Project Manager is responsible for working with all stakeholders, project team and coordinating in planning and delivering DBaaS implementation project
  • EM Admin sets ups Cloud management infrastructure and is responsible for overall EM 12c installation/configuration and Administration
  • Cloud Admins are responsible for managing the Cloud infrastructure(Servers, Network, Storage) and related Administration
  • SSA Admins or Cloud DBAs are responsible for Self Service portal setup, managing quotas, policies, target DBs S/W provisioning/ongoing Administration
  • SSA Users or End users of Cloud who actually requests for DB instances to be rapidly provisioned on-demand from Self Service portal

Here is a sample Work-breakdown structure(WBS) listing down tasks involved and with individual owners mapped. Note - we have all type of use cases covered in the plan (DBCA, RMAN, Schema as a Service, Snap Clone) and you can pick up any or mix or all of these tasks in your plan depending on your use cases and requirements for implementing DBaaS -

 Activity Description
A. Initiation and Startup

Determine scope of implementation
Determine and document scope of DBaaS Cloud implementation together with customer and end users. Determine requirements and goals. Introduction meeting implementation team. Project Manager
Coordination and quality management Coordination and quality management on throughout all phases of the implementation Project Manager
Define High availability Needs
Determine the level of High availability required Project Manager
Technical intake Technical intake meeting; Infrastructure requirements (Hardware, OS, network/firewall, s/w requirement) for cloud setup Project Manager
Functional intake Functional intake meeting; Monitoring /Reporting/Alerting requirement. User/Roles/Groups/Rules model Project Manager
Deliver implementation plan Document requirements and goals. Document required functional and technical configuration. Build architecture Diagram. Update estimate planning based on implementation plan. Project Manager
B. Infrastructure Setup

Install hardware systems Plan EM12c compatible hardware systems EM Admin
Operating system installation
Installation of certified OS platform [Refer Certify on MOS] EM Admin
Network configuration of hardware systems General network configuration of hardware systems I.e. TCP/IP, routing, NTP, firewall access, SSH, HTTP and HTTPS access. Set up network access between systems and work place of end users. Optionally implementation of remote access EM Admin
C. Production EM 12c Cloud Control Installation

Install of Oracle Database 11gR2 Installation of Oracle Database 11gR2 for Repository EM Admin
Installation of EM 12c Cloud Control Release 2 Update 1 and latest PSU Installation of EM 12c Cloud Control OMS/Agents EM Admin
Review HA, Security, Sizing Best practices Setup as per EM 12c Admin guide EM Admin
Review recommended patches Review latest PSU and DBaaS patches as per MOS Note 1549855.1 EM Admin
D. Setting up High Availability

Configure Repository For High Availability Enable Repository as per database high availability best practices.
Configure Standby database @ DR site for EM cloud control repository.
Configure repository database as RAC database with 2 or more nodes
Configure OMS for RAC/standby repository
EM Admin
Configure OMS for High Availability See Enterprise Manager Cloud Control Administrator's Guide for Configuring OMS for high availability EM Admin
Configure Agents for High availability See Enterprise Manager Cloud Control Administrator's Guide for Configuring Agents for high availability EM Admin