Vous êtes sur la page 1sur 70

ATTENTION AUDIO Options

Option 1: Voice Streaming Audio Broadcast Option 2: Teleconference (Dial In)


No need to dial in on a telephone Requires telephone to dial in
Questions can be asked over the phone or in the
Questions can be asked via WebEx Chat box WebEx Chat
Details
If you are listening via voice streaming and it Conference ID: 36898967
stops, go to Communicate -> Audio Broadcast to International dial in:
restart the streaming audio US Free call: +18558230291
List with national toll free numbers is available
in Doc ID: 1148600.1
View anytime during the conference using
Communicate > Teleconference > Join
Teleconference from your WebEx menu

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 2


Upcoming Advisor Webcast Schedule
Check out Document ID 740966.1

Select your area of interest

Scan through the list of Current Topics

Register for the session of your interest

For upcoming Database Advisor Webcasts &


archived recordings, see Document ID 1456176.1

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 3


Oracle Advisor Webcast
12c: Best Practices and Patching Oracle
Database in GI
Rajesh Kumar Bhardwaj
Senior Software Engineer

January 18, 2017

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 4


Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracles products remains at the sole discretion of Oracle.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 5


Oracle Advisor Webcast
12c: Best Practices and Patching Oracle
Database in GI
Rajesh Kumar Bhardwaj
Senior Software Engineer

January 18, 2017

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 6


Objectives
Introduction of Types of Patching Methods

Patch GI using opatchauto

Manual Patching Steps

Difference Between Manual Patching and opatchauto

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Program Agenda
1 Patch Delivery Methods
2 Opatch New Behavior
3 Methods To Patch
4 Patch Conflict Detection
5 Using opatchauto to Apply Patch
6 Manual Patching Steps
7 Top Issues in GI Patching

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Delivery Methods

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Delivery Method
Reactive Patches:

Are usually delivered as Interim Patches

Are historically known as one-off patches

Are provided on demand for a given defect, version, platform combination

Go through basic sanity tests

Fixes will usually be included in the next relevant Patch Set Release

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Delivery Method

Proactive Patches

Address high impact bugs that affect a given configuration

Contain proven low risk fixes

Go through extra levels of testing, determined by the feature(s) affected

Are available on "My Oracle Support" by clicking on the "Patches & Updates" tab

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Types of Proactive Patch in 12c

There are different types of pro-active patch available.

Database Proactive Bundle Patch (DBBP)

Patch Set Update (PSU)

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Configuration and Database Bundle Patch Mapping
Databas OPatch
GI
Configuration e Patch Comman Comments
Version
Versions d
Databa
GI Home in conjunction se GI Home and all the
with RAC, RACOne, or 12.1.0.2 12.1.0.2 Proacti opatchauto Database Homes will be
Single Instance home ve patched
Patch

Databa GI Home and Database


GI Home in conjunction 12.1.0.2 se Home at 12.1.0.2 version
with RAC, RACOne, or 12.1.0.2 and prior Proacti opatchauto will be patched.
Single Instance home versions ve
Patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Configuration and Database Bundle Patch Mapping
GI Database OPatch
Configuration Patch Comments
Version Versions Command
GI Home alone is
patched.
For Database home,
apply the appropriate
Database
GI Home in conjunction Versions prior Database PSU for that
Proactive opatchauto
with RAC, RACOne, or 12.1.0.2 to 12.1.0.2 version. For example,
Patch
Single Instance home apply 12.1.0.2.x PSU to
Database version
12.1.0.2.0.

Database GI Home and all the


Oracle Restart Home 12.1.0.2 12.1.0.2 Proactive opatchauto Database Homes will
Patch be patched.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patches Installed as Part of Bundle Patch 23273686

Patch Number Description Applicable Homes


Only DB Home for non-Oracle RAC setup. Both
23144544 DB BP 12.1.0.2.160719 DB Homes and Grid Home for Oracle RAC
setup.
OCW PSU
23520664 Both DB Homes and Grid Home
12.1.0.2.160719

ACFS PSU Only Grid Home


23054341
12.1.0.2.160719

21436941 DBWLM PSU 12.1.0.2.5 Only Grid Home

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Configuration and PSU Mapping
GI Database OPatch
Configuration Patch Comments
Version Versions Command
GI Home in conjunction GI Home and all the
with RAC, RACOne, or 12.1.0.2 12.1.0.2 GI System Patch opatchauto Database Homes will
Single Instance home be patched

GI Home and Database


GI Home in conjunction 12.1.0.2 and Home at 12.1.0.2
with RAC, RACOne, or 12.1.0.2 prior GI System Patch opatchauto version will be
Single Instance home versions patched.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Configuration and PSU Mapping
GI Database OPatch
Configuration Patch Comments
Version Versions Command
GI Home alone is
patched.
For Database home,
apply the appropriate
Versions Database PSU for
GI Home in conjunction GI System
prior to opatchauto that version. For
with RAC, RACOne, or 12.1.0.2 Patch
12.1.0.2 example, apply
Single Instance home 12.1.0.2.x PSU to
Database version
12.1.0.2.0.

GI Home and all the


GI System
Oracle Restart Home 12.1.0.2 12.1.0.2 opatchauto Database Homes will
Patch
be patched.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patches Installed as Part of GI PSU Patch 23273629

Patch Number Description Applicable Homes


DB PSU 12.1.0.2.160719
23054246 Both DB Homes and Grid Home
(JUL2016)
OCW PSU
23054327 Both DB Homes and Grid Home
12.1.0.2.160719

ACFS PSU Only Grid Home


23054341
12.1.0.2.160719
21436941 DBWLM PSU 12.1.0.2.5 Only Grid Home

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Which Patching Method to Use
Every customer should at least install PSUs
12.1.0.2 Customers wanting a more comprehensive set of fixes should
install the Database Proactive Bundle patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patching Method to Use
PLATFORM
Exadata
RELEASE
All non-
(when patching All non-Exadata
Exadata
Exadata just Database (Grid Windows
(Single
and Grid Infrastructure)
Instance)
Infrastructure)
Database Proactive Database Proactive Database Proactive
12.1.0.2
Bundle Patch Bundle Patch Bundle Patch
Quarterly Full
Database Grid
Stack Database Grid Windows
12.1.0.1 Infrastructure PSU Database PSU
Download Infrastructure PSU Database
(GI PSU)
Patch for Bundle Patch
Exadata Database Grid
11.2.0.4 Database Patch for
Infrastructure PSU Database PSU
and earlier Exadata
(GI PSU)

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Changing Patching Method in Use

Fully rollback the current patching method

Cannot mix BP and DB PSU patching methods in the same ORACLE_HOME

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Opatch New Behavior

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Whats new with Opatch?
OCM is no longer packaged with OPatch
The command "emocmrsp" is used to create the response file for the option -
ocmrf. This no longer is needed since the -ocmrf is not required
opatchauto apply <UNZIPPED_PATCH_LOCATION>/23273686
This enhancement to OPatch exists in 12.2.0.1.5 and 11.2.0.3.14 releases and later
If -ocmrf is included in the command line, the following ignorable warning will be
returned
You are calling OPatch with -ocmrf option while this OPatch is generic, not being
bundled with OCM. The -ocmrf option is being deprecated. Please remove it
while calling OPatch.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Whats new with Opatch?

Enhanced to handle superset/subset patch more efficiently


New option for "opatch lsinv" / "opatch lsinventory

opatch lsinv inactive

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


How to Check Patch Level

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patchlevel on GI Home

12c Grid Infrastructure introduces software patch level and active patch
level
Ensure GI home has identical patches on all nodes
At the end of a patching to GI home, the software patch level will be
updated on each node
The software patch level gets updated only after the postpatch is run

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


How to check Patchlevel

The software patch level gets updated only after the postpatch is run
The postpatch is last step that opatchauto executes
Oracle Clusterware Control (CRSCTL) Utility can be used

crsctl query crs softwarepatch


crsctl query crs activeversion -f

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Methods To Patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Methods to Patch

All Node Patching

Rolling Patch

Minimal Downtime Patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


All Node Patching - An Overview

All Oracle RAC nodes are initially brought down


Patch is applied on all the nodes
all the nodes are brought back up
This mode is normally used for very critical patches
It leads to maximum downtime.
OPatch uses this mode as the default for patch
applications

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Rolling Patching
Each node is shutdown
Patch is applied
Each node is brought back up
This is done node by node separately
until all nodes in Oracle RAC are patched
. The type is generally specified in the
patch metadata
opatch query -is_rolling_patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Rolling Real Application Cluster Patching

Zero Downtime Rolling Patch Orchestration


across RACs
Patch support for GI (or Clusterware) to both
GI and RAC OH in a Node in a rolling fashion

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Minimum Downtime Patching
The nodes are divided into sets Patch is applied
The first set is shut down
The patch is applied to first set
The second set is shut down
The first set is brought up
Patch is applied to the second set
The second set is brought up now
This mode is executed by using -
minimize_downtime command line option.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Conflict Detection

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Conflict Detection

The following commands check for conflicts in both the 12.1 GI home
and the 12.1 DB homes.
In case you are applying the patch, run this command:
#GRID_HOME/OPatch/opatchauto apply <UNZIPPED_PATCH_LOCATION>/23273629 analyze

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patch Conflict Detection
For information about resolving patch conflicts see the following
documents:

Document:1941934.1 My Oracle Support Patch Conflict Checker


Overview [Video]
Document:1091294.1 How to Use the My Oracle Support Conflict
Checker Tool for Patches Installed with OPatch [Video]
Document:1321267.1 Database Patch Conflict Resolution

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Using opatchauto to Apply
Patch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Opatchauto Introduction
opatchauto utility introduced in 12c
Java based in 12c
Automates all tasks for GI patching
Can patch GI home even when CRS service is down
Recommended for GI patching
Performs patching only on local node

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


OPatchauto Commands
OPatchauto consists of three primary commands:
apply
Resume (/u01/app/oracle/opatchauto)
Rollback

If opatchauto apply is run and encounters an individual patch within a


patch set that cannot be installed, that patch will be skipped and
OPatchauto will continue with the installation of the next patch in the
sequence.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


OPatchauto Commands
This analyze option simulates an OPatchauto apply session by running all
prerequisite checks, when possible, without making changes to the
system (either bits or configurations).
Because the analyze command does not modify the system, it will
perform the following checks:

Run SQL sync in analyze mode.


Validate all pre and post processing steps making sure the command is present and
executable.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Supported Configurations
Normal RAC cluster
RAC One node
Oracle Restart
RAC cluster with shared GI home
RAC cluster with shared RDBMS home

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Patching Targets
Both GI and RDBMS home
Only GI home
Only RDBMS home

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Flow of opatchauto

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Difference with Manual Method
opatchauto
Easy and user friendly
Eliminates requirement for manually identifying exact commands/steps for patching
Less steps
Eliminates possibility of missed steps or human errors

Manual method
Long
Need to have all detailed steps
More steps

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Demonstration
Opatchauto

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 45


Manual Patching

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching - An Overview
A long process
Stop the CRS managed resources running from DB homes
Run the pre root script
Patch GI home
Patch DB home
Run the post script
Start the CRS managed resources that were earlier running from DB homes
For each database instance running on the Oracle home being patched, run the
datapatch
Has chance of some step being missed.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for GI Home
As the database home owner execute

<ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location> -n


<node name>

Run the pre root script as root user execute:

<GI_HOME>/crs/install/rootcrs.pl -prepatch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for GI Home

Patch GI home as GI home owner

$ <GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local


<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING BUG%
$<GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%ACFS TRACKING BUG%
$ <GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%DBWLM TRACKING BUG%
$<GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%RDBMS PSU TRACKING BUG%

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for GI Home
Patch DB home as DB home owner

$ <UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING
BUG%/custom/scripts/prepatch.sh -dbhome <ORACLE_HOME>
$<ORACLE_HOME>/OPatch/opatch apply -oh <ORACLE_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING BUG%
$ <ORACLE_HOME>/OPatch/opatch apply -oh <ORACLE_HOME> -local
UNZIPPED_PATCH_LOCATION>/%BUGNO%/%RDBMS PSU TRACKING BUG%
$ <UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING
BUG%/custom/scripts/postpatch.sh -dbhome <ORACLE_HOME>

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for GI Home
Run the post script as the root user
<GI_HOME>/rdbms/install/rootadd_rdbms.sh
<GI_HOME>/crs/install/rootcrs.pl -postpatch

Start the CRS managed resources that were earlier running from DB homes

<ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location> -n


<node name>

For each database instance running on the Oracle home being patched, run the
datapatch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for Restart Home
As the database home owner execute

<ORACLE_HOME>/bin/srvctl stop home -o <ORACLE_HOME> -s <status file location>

Run the pre root script as root user execute:

<GI_HOME>/crs/install/roothas.pl -prepatch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for Restart Home

Patch GI home as GI home owner

$ <GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local


<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING BUG%
$<GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%ACFS TRACKING BUG%
$ <GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%DBWLM TRACKING BUG%
$<GI_HOME>/OPatch/opatch apply -oh <GI_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%RDBMS PSU TRACKING BUG%

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for Restart Home
Patch DB home as DB home owner

$ <UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING
BUG%/custom/scripts/prepatch.sh -dbhome <ORACLE_HOME>
$<ORACLE_HOME>/OPatch/opatch apply -oh <ORACLE_HOME> -local
<UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING BUG%
$ <ORACLE_HOME>/OPatch/opatch apply -oh <ORACLE_HOME> -local
UNZIPPED_PATCH_LOCATION>/%BUGNO%/%RDBMS PSU TRACKING BUG%
$ <UNZIPPED_PATCH_LOCATION>/%BUGNO%/%OCW TRACKING
BUG%/custom/scripts/postpatch.sh -dbhome <ORACLE_HOME>

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Manual Patching Steps for Restart Home
Run the post script as the root user

<GI_HOME>/rdbms/install/rootadd_rdbms.sh
<GI_HOME>/crs/install/roothas.pl -postpatch

Start the CRS managed resources that were earlier running from DB homes

<ORACLE_HOME>/bin/srvctl start home -o <ORACLE_HOME> -s <status file location>

For each database instance running on the Oracle home being patched, run the datapatch

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Troubleshooting
Use debug option to get extensive logging

export OPATCH_DEBUG=true
<Oracle_home>/Opatch/opatchauto <options> <Bundle Patch>

Log files are created in directories

<GI_HOME>/cfgtoollogs
<GI_HOME>/cfgtoollogs/opatchauto

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


TOP issues in GI Patching
Issue #1: Opatchauto fails with "The opatch Component check
failed

Solution : Check Document 1169036.1 and Document 1580746.1


Issue #2: OPATCH CheckSystemSpace Failed with Error Code 73 while
Applying GI PSU

Solution: Check Document 1088455.1 and Document 550522.1


Issue #3: Error: 'CRS is not installed on any of the nodes
Solution: Check Document 1053393.1
Copyright 2017, Oracle and/or its affiliates. All rights reserved. |
TOP issues in GI Patching
Issue #4: Opatch Error "UtilSession failed: Patch nnn requires
component(s) that are not installed

Check Document 763680.1


Issue #5: Opatch: version check failed

Solution: Check Document 274526.1

Copyright 2017, Oracle and/or its affiliates. All rights reserved. |


Summary
What we covered today
Patching With opatchauto
Manual Patching
Patching Methods

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 59


Top Articles and Community Links
Rolling Patch - OPatch Support for RAC [ID
244241.1]

Composite Patches for Oracle Products


[Video] [ID 1376691.1]

Supplemental Readme - Patch Installation


and Deinstallation for 12.1.0.x.x GI PSU and
Database Proactive Bundle Patch [ID
1591616.1]

Oracle Database - Overview of Database


Patch Delivery Methods 1962125.1)]
Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 60
Stay Connected
Database Support Social Media Channels
My Oracle Support Database Community:
https://community.oracle.com/community/support/oracle_database/database_install_upgrade_opatch

My Oracle Support Blogs:


https://community.oracle.com/community/support/support-blogs/database-support-blog

Twitter:
https://twitter.com/OracleDBsupport

Facebook
https://www.facebook.com/OracleDatabaseSupport

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 61


Learn More - Resources and References on Support Portals

Help Documentation Oracle Support My Oracle Support Oracle Support


at your fingertips Essentials Webcasts How To Series Accreditation
learning
My Oracle Support and Live instruction, Q&A on Detailed training videos,
Cloud Support Portal how to best use the documentation. Latest Leverage the Oracle
documentation. Find it Support Portals. The How how-to content, Support Accreditation
from the Help link in the To Series covers content webcasts, self-paced portfolio of portal and
top right corner of most similar to Help in a step- replay. Select a feature or product accreditations.
pages in both portals. by-step approach. Doc role to get started. Doc Get accredited today.
553747.1 603505.1 Doc 1583898.1

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 62


Learn More - Resources and References to Get Proactive
Get Proactive Portfolio for your products
Check out the Get Proactive Portfolio for your products. Get familiar with the top
proactive tools. Doc 432.1
Ask the Get Proactive Team get-proactive_ww@oracle.com

Get Proactive Events Calendar


Automatically updated to include latest Advisor Webcasts, MOS Essentials
trainings, user group sessions, and more

Stay Informed about Upcoming Events. Doc 125716.1

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 63


Q&A
To ask a question on the phone
line, select *1 on your phone.
To ask a question online, use the
Q&A area at the top.
Your question will be read aloud in
the order received.
Question can also be asked on the
My Oracle Support Communities

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 64


Oracle Advisor Webcast Series
Locating Current Schedule & Archived Recordings

Review the current schedule


and archived recording for your
product from Doc 740966.1

Select your Product Area

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 65


Oracle Advisor Webcast Program
Locating Current Schedule & Archived Recordings

Access the Database directly via


Document ID 1456176.1

Drill down to your area of


interest

Recordings available within 48


hours

Use Questions? Link to ask


webcast related questions

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 66


Session Related Community Links

Questions? For follow up questions on


topics covered in this webcast connect
via this Database Community thread:
https://community.oracle.com/thread
/3998223

This thread will link to a copy of the


presentation, the webcast recording
and will include the Q&A from the
webcast.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 67


Safe Harbor Statement
The preceding is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracles products remains at the sole discretion of Oracle.

Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 68


Copyright 2017, Oracle and/or its affiliates. All rights reserved. | 69

Vous aimerez peut-être aussi