You are on page 1of 8

Page 16 1st Qtr 2014

Oracle starts with the same set of software packages and source code that
Red Hat does. From a technical perspective, both Red Hat and Oracle start
with the same base. All of the open source software is freely available on the
Internet. In fact, Oracle and Red Hat collaborate on many of the same sets
of source code alongside thousands of commercial and independent
developers following GNU standards. From this base, Oracle and Red Hat
then add their own trademark logos and adjust a few things concerning
distribution such as Internet servers, directory paths, etc. They then add any
commercial software to the distribution. The distribution is then tested,
following the vendors internal standards. Oracle includes a litany of tests
on the OS utilizing their enterprise database product, as well. Based on
testing, patches are applied to resolve issues identied during testing. Some
patches are already available from the Linux community, or the vendors
author their own patches. These internally generated patches must also be
submitted back to the public Linux source code repositories. Once nal
testing is successfully completed, the distribution is then released. In
general, Oracle Linux and Red Hat Enterprise Linux release dates are very
close to each other.
Oracle Linux has an emphasis on patches for scale, performance and
reliability as tested through nightly builds of their database product. This
testing often leads to Oracle Linux having a few additional Linux patches.
These Linux patches will eventually show up in all distributions, but Oracle
chooses to test them and distribute them sooner based on criticality. All of
this can be seen in the readme les for a given release.
The RELEASE-NOTES le provides
Oracle Linux 5 Release Notes
https://oss.oracle.com/el5/docs/
Oracle Linux 6 Release Notes
https://oss.oracle.com/el6/docs/

details of all the changes that are
done for the distribution. For Oracle
Linux 6 RELEASE-NOTES-GA-en le,
you will see this verbiage:
The following packages are
modied from the upstream release. All changes are Trademark and look/feel
related unless otherwise noted below under the specic package.
Following this statement is a list of about 50 packages, two of which have the
comment, ocfs2-related x, and one that has the comment, updated for
ULN support. There is also a list of packages that have been removed that
contain Red Hat specic logos and release notes. Next is a short list of
packages added including Oracle release notes and logos. That is the primary
technical differences between Red Hat and Oracle Linux. Finally there is a
section detailing the two kernel options available for Oracle Linux: the Red
Hat compatible kernel and the Unbreakable Enterprise Kernel (UEK).
The UEK has been available for only about two years, and is an added feature
Oracle chooses to distribute. The Red Hat compatible kernel matches the
patches and release process that Red Hat follows. Outside of Oracle possibly
adding Linux patches to address data corruption or critical server crashing
issues, this kernel will follow Red Hats lead for changes. The UEK, on the
other hand, allows Oracle to take more control over what is added to the
kernel. This includes changes for stability, performance and scaling (think
large database platforms). Often the Linux patches to the kernel are already
in newer versions of the kernel if you built your own from source code. Oracle
chooses to make these features available in current pre-compiled releases
such as Oracle Linux 5 as opposed to forcing upgrades to version 6 or, soon, 7.
A good example is the ability to grow to extreme amounts of memory (TBs)
and CPU (100s) on a single server when utilizing the UEK. Oracle will support
both the Red Hat compatible kernel and the UEK, but recommends the UEK
for enterprise workloads.
ExecPC, telnet to the Earth server and then reach out to the Internet in text
mode to maybe nd something in a forum or gopher server that might help.
Getting SLS running meant checking if you had copied all the les off the
disks correctly, and put them in the right directories. Fighting to get
X-Windows GUI to work meant verifying that fonts were all installed and
coding complex conguration les from scratch.
The complexity of setting up SLS was too difcult for the uninitiated, so a
company called Red Hat started up (along with a number of others) to
help make this process easier. Companies like Red Hat, along with lots of
individual contributors, produced installation tools, administration tools,
OS conguration tools and even printed manuals. Something like Red Hat
Package Management (RPM) that we take for granted today was a huge
improvement at the time.
In the mid-1990s, this was all very open and especially very free. I used to
purchase my Red Hat CDs at computer shows for between $5 and $15. This
covered mainly the cost of printing the CDs, packaging and printing costs
for a little booklet that may have been included. Support was limited, but
the Internet was expanding, and this distribution thing was getting easier.
I was still manually coding X11 conguration les, but at least I knew all
of the required application les are there now. Obviously, the writing was
on the wall. Red Hat, as well as other distribution companies needed to
make money to continue their work, and eventually grow their company,
but they mainly worked in free software. They could not charge for the
programs; in fact, the license under which Linux and GNU utilities exist
forbid it. The answer was support. Big enterprises that run big data centers
like to call other big companies to get their problems solved. Heck, even
small companies like to call other companies to get their problems solved.
Thus, we enter the world of supported distributions. What does that mean?
Back in my SLS days, I could change anything I wanted: hand code
conguration les, replace source code and recompile the kernel. I could
do whatever I wanted since I was the only contact for xing it. As the
saying goes, physician heal thyself. However, if you are a large enterprise
running a multi-million dollar software product (like E-Business Suite),
then you want reassurances that it will run well and stay running. When
it breaks, you want to call someone and know it can be xed. You want a
complete OS that is tested with your application, and supported by the
hardware and business application vendors you are using. Which brings
us back to our question. Are Red Hat and Oracle Linux the same?
The Differences
When I call my business application vendor or my hardware vendor, can I tell
them that Im running Red Hat if Iam in fact running Oracle Linux, or can Isay
Im running Oracle Linux when I am in fact running Red Hat? Unfortunately,
the answer is no. This is where the distributions are not the same.
So what kinds of differences are there? We have established that a
distribution is a collection of programs. In modern distributions, not
allthe programs are free. The distribution owner must decide what is
included. The vendor cannot charge for the free software, but they can
provide additional commercial software as a benet of paying for their
support. A good example of this kind of software would be the Red Hat
Global File System (GFS). Also, most distributions will contain logos and
graphics to help you identify their origin. These are often trademarked
items that cannot be freely distributed. Note how the Fedora project
(RedHats free release) uses different logos than the main Red Hat
Enterprise product.
Are Oracle Linux and Red Hat Linux the Same? continued from page 15
1st Qtr 2014 Page 17
About the Author
Gary Gordhamer is currently at GE Power & Water as a senior DBA,
having worked with Oracle Database and related technology for the past
22 years. He is an active member of IOUG for the past seven years (an
inactive member for about ve previous to that). He is currently serving
as a contributing editor for SELECT Journal and has been presenting at
COLLABORATE for seven years, delivering more than 15 sessions.
Gordhamer also presented at Oracle OpenWorld in 2012. He previously
severed on the COLLABORATE Conference Committee for two years and
published two articles in SELECT, including receiving the SELECT
Journal Editors Award in 2010.
Conclusion
We have visited some of my personal history with Linux, discussed the
background of a Linux distribution, and hopefully emphasized the open
and shared nature of Linux. But have we answered the question, are Oracle
and Red Hat the same? Linux applications based on public Linux and
related software will run the same on either Red Hat or Oracle Linux.
Applications that require proprietary, non-free components of a distribution
will require a specic distribution. From a non-technical perspective,
support organizations within application vendors will probably not
consider the distributions to be the same. Certication on one platform will
not be equal to another from a support standpoint. You may be able to ask
your application vendor for an exception to allow support. But you should
not assume that vendors would support both platforms equally without that
information in writing.
When asked if Red Hat and Oracle Linux are the same, consider the
source of the question, and what the information will be used for. Is this
truly a technical question, will a given application run on Linux A and
Linux B? Or is it more of a support question? Will vendor X support me
the same if I run my application on Linux A as opposed to Linux B. The
rst question is almost always yes, the second question is much more
difcult. As you ponder, Im going to get a VM going and see if I can still
boot my SLS disks, nd out what wisdom Oracle Linuxs great, great
grandparent can teach me.
Submit an Article to IOUG
SELECT Journal is IOUGs Quarterly Publication
We are always looking for new authors and articles for 2014.
Interested in submitting an article? Visit www.ioug.org and click on
Publications > SELECT Journal for more information. Questions? Contact
SELECT Journal Managing Editor Alexa Schlosser at (312) 673-5791,
or email her at aschlosser@ioug.org.
IOUG Is Looking for New Materials for
the 2014 Best Practices Booklet
Submissions should be 500-1,000 words long; due to space constraints,
we ask that your submission have a specic focus as opposed to any
overarching database principles. Tips can range from beginning- to
advanced-level skills and should include the actual code and queries
used (screenshots and other small graphics are also acceptable).
If you have any questions about this project, please contact our Best Practices
Booklet Managing Editor Alexa Schlosser, at (312) 673-5791, or email
her ataschlosser@ioug.org.
P
ra
c
tic
e
s
T
ip
s &
B
e
st
Booklet
IOUG
ilation of Technical Tips from
l Users Group
S
SE
W
In
P
S
us
If
u
s
T
ip
s
&
B
e
st IOU
IOUGG
For t he Compl et e Technol ogy & Dat abase Prof essi onal
E X
PA
N
D
YO
U
R
H
O
R
I Z O
N
S
Vim and Regular
Expressions
Maintain &
Manage
Oracle Database
Appliance
Big Data
for Oracle
Technologists
2013 IOUG
Anniversary
Sponsors
Volume 20 | Number 3
Third Quarter 2013
www.ioug.org
3
3
g
a new and improved
www.ioug.org
Caing in
caber
1st Qtr 2014 Page 29
about their challenges as well as their success stories. You can even nd
people to form study groups for certication testing.
IOUG: Do you have any advice for IOUG members for their
owncareers?
Bizzaro: Take advantage of every opportunity to learn new things. Never stop
learning and asking questions. Challenge what people tell you, do the research
and test things out for yourself. If you learn something that isnt well
documented or well known, write it up, blog it or present it at your local user
group meeting. Dont be afraid to put yourself out there and share your
knowledge. Once you get over being nervous about presenting, it can be fun.
Having a line on your rsum that says youve presented a topic at a user
group meeting or a conference has a huge impact. It lets prospective
employers know that you are knowledgeable, condent, a leader and are
willing to take risks.
IOUG: Are there any extra bits of knowledge youd like to add?
Bizzaro: Make sure you are getting your technology information from a
reliable source, or verify the information from another source. There is a lot
of information available to you on the Internet and not all of it is accurate, or
the most current. Articles or blogs written by Oracle ACEs are good places to
look for reliable information. The people in the program take pride in being
recognized as experts and take great care to provide accurate information.
A lot of people are talking these days about women in technology. More
specically, they are talking about the disparity between the number of men
and the number of women in IT engineering and leadership roles. Im glad to
see this conversation occurring. Even though progress has been made in the
20-plus years that I have been in IT, I believe we still have a long way to go.
Raising awareness is the rst step. Encouraging and teaching our young
people that women can be just as good at tech as men is the next step. If you
have an opportunity, mentor someone. There are many organizations to be
found online that offer mentor opportunities around the United States, from
the Girl Scouts of America to local Women in Technology groups.
Advertisers Index
The Indepedent Oracle Users Group and SELECT Journal would like to thank the following members of the
community for their support. For more information about their products and services, visit their websites. And
be sure to let them know you saw them in SELECT Journal!
Advertiser . . . . . . . . . . . . . . .Web Address . . . . . . . . . . . . . . . . Page Number
Cisco. . . . . . . . . . . . . . . . . . . . . . . .www.cisco.com . . . . . . . . . . . . . . . . . . . .Inside Front Cover
Dell SharePlex . . . . . . . . . . . . . . . . .software.dell.com/shareplextoolset . . . . . . . . . . . . . . . . . 3
Dell Stat . . . . . . . . . . . . . . . . . . . . .quest.com/simplifywithstat . . . . . . . . . . . . . . . . . . . . . . . 6
EMC . . . . . . . . . . . . . . . . . . . . . . . .www.emc.com. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Kaminario . . . . . . . . . . . . . . . . . . . .www.kaminario.com. . . . . . . . . . . . . . . . . . . . . . . . . . . 18
COLLABORATE 14
Mobile App is Available
for Download
Search through
COLLABORATE 14
sessions and start building
your personal conference
agenda today!
The COLLABORATE 14
app allows you to:
View schedules and explore sessions.
Create your own personal schedule and access
location and speaker information.
Check in to sessions, meetings, keynotes and
exhibitor booths to locate peers and offer
comments and questions.
View an entire feed of the event activity, including
attendee check-ins, photos and more.
Expand your professional network through in-app
communication and scheduling.
Share your conference activity with your social
networks, like Facebook and Twitter.
Getting Started
1. Click here to create an account online and click
on the blue Sign Up button located on the top
right of the screen. (You will need the email and
password you enter on this web page to access
the mobile app on your mobile device.)
2. Using your preferred mobile device, choose the
appropriate mobile app type.
3. Enter your login information on the mobile app.
4. Create a prole, view
the agenda, add
sessions of interest to
your agenda and more!
Need more help? Visit our
COLLABORATE 14 mobile
app information page.
g
sessions.
Page 28 1st Qtr 2014
Oracle ACE
Ask an Oracle ACE
Featuring Bonnie J. Bizzaro


The Oracle ACE program recognizes excellence in the
Oracle technology and applications communities,
and rewards individuals who generously share their
technical knowledge and experiences. Learnmore
about the Oracle ACE Program.
IOUG: When did you become an Oracle ACE?
Bizzaro: I was accepted into the Oracle ACE program in September 2013.
IOUG: Has your status as an Oracle ACE helped you in your career?
Bizzaro: I only achieved ACE status a few months ago. Therefore, it has not
directly affected my career at this point. Currently, Im doing very advanced
Oracle DBA work at my company, and Im very happy with the technologic
challenges I encounter. If I decide to make a change in future, Im condent
my ACE status will be very benecial.
What helped my career tremendously are the things that I have done in the
past that I believe qualied me for the ACE award. For example, being
president of the Ohio Oracle Users group, and giving presentations at the
IOUG COLLABORATE and Oracle OpenWorld conferences. That exposure has
been wonderful. Ive walked into job interviews and had people say that they
had attended a session of mine.
This experience adds a lot of credibility to a rsum. Lets face it; I dont look
like what people expect a technical person to look like. Im a woman, and
Im blonde. Early in my career, it was difcult at times for people to take me
seriously and to trust that I knew what I was doing. So, I put myself out
there and it has made a huge difference.
IOUG: In your current role, what has been your biggest achievement?
What has been your biggest regret?
Bizzaro: Ive been an Oracle DBA for a long time, so I really had to think
about these questions for a while. I have to say that one of the things Im most
proud of is nding a way to restore a database from an RMAN backup without
having a Recovery Catalog or a controlle.
That was several years ago after a vendor accidentally erased one entire
SANat a company where I was working. As I started working on restoring
everything, I discovered that we had no backup of our RMAN catalog
(thatis another story for another day). Anyway, at this time in my career,
Ihad almost no experience with RMAN or with our newest version (9i)
ofthe database. What I did have were the log les from the backups and
thedatabase backups themselves on tape. A friend of mine brought over
hiscopy of the Oracle 9i RMAN Backup & Recovery book from Oracle
Press. The book contained a reference to the dbms_backup_restore
package. Itlooked promising, so I found the sql script le that created the
dbms_backup_restore package ($ORACLE_HOME/rdbms/admin/dbmsbkrs.sql)
and read through it.
By trial and error, I found that if I had the backup piece handle (name) I
could use the dbms_backup_restore package to recover the controlles and
datales from the tape backup. Using this method, I was able to restore
many 8i and 9i test and production databases that I thought were lost for
good. It was a huge success.
Restoring les using dbms_backup_restore hadnt been documented, so
Itook the initiative to write it up. I then had the honor of presenting it at
COLLABORATE 2004 and OOW 2004. It has been extremely gratifying to have
people come up to me and say that my documentation has saved them
when they were in a similar situation.
Another project that I am quite proud of is one where I was the DBA on a
team that moved two data centers with only 30 minutes of production
downtime. The DR data center was moved across town, and the production
data center was moved from one state to another. It was very rewarding to
leverage so much of my knowledge, experience and training to make that
happen. That was also one of the best teams of IT professionals that I ever
had the pleasure to work with.
When it comes to my DBA career, I actually have very few regrets. Ive never
regretted taking on challenging projects or learning new things. If things
didnt work out, I learned from it and moved on. But, I can say that I regret
staying in one particular job that was not a good t for me. The DBA team was
understaffed, I had no time for a personal life and I missed some important
events in my daughters life. Looking back, I realize that I should have moved
on sooner.
IOUG: What Oracle technology/application are you most looking
forward to?
Bizzaro: Like a lot of folks, Im pretty excited about Oracle 12c. The
multitenant architecture will be great for consolidating small databases.
The new in-memory column-oriented data store should give us new
opportunities for performance improvements, and thats always fun. But,
my favorite areas to focus on are Data Guard and RMAN.
Data Guard in Oracle 12c allows for resumable switchover operations.
Ican think of a few occasions where this feature would have been very
benecial, so Im looking forward to checking it out. The new ability to
update global temporary tables in Active Data Guard 12c will add some
much needed exibility when it comes to running reporting operations
ona standby database.
In RMAN, I think the new table level recovery should, hopefully, eliminate
the need for some nightly exports. That would save time and storage. I like
how it is implemented where it restores the physical les and then deletes
them after the table has been extracted. Another 12c RMAN feature Im
looking forward to using is the NOOPEN parameter for the RMAN duplicate
command. I certainly could have used that last year.
IOUG: Do you have any advice for novices in this industry?
Bizzaro: If you love what you do and are passionate about it, you will be
successful. You will want to put in the time to read, to learn, and to play with
the technology. Never stop challenging yourself, and dont be afraid to fail.
Trying and failing and trying again is how we learn and grow.
I highly recommend joining a local or regional user group. There, you can
nd mentors and build a network of contacts. You can talk to people to learn
how they are implementing Oracle technology at their companies and hear
1st Qtr 2014 Page 19
ODSM: Oracle Directory
Services Manager for
NamesResolution
By Ray Smith
Gary Gordhamer, Editor
O
racle Net database names resolution is a highly
scalable, centralized alternative to tnsnames.ora
les. Many companies have older versions, but
the installation of the current supported version, Oracle
Directory Services Manager can be frustrating, daunting
and almost impossible with the limited documentation
available.
The Paradox of Choice
Plenty of Oracle documents describe how to install and congure ODSM,
Identity Manager, SOA and SSO, but many of the documents cover such
abroad range of options that its incredibly easy to get side-tracked
orfooled.
Chapter 8 of Oracle

Fusion Middleware Installation Guide for Oracle


Identity Management 11g Release 1 (11.1.1.7.0) document E12002-12
describes the installation and conguration process for each option. This
article boils it down to what you need for this ODSM on a new server.
Licensing
Unlike many of the other Oracle Identity Management (OIM) capabilities
are separately licensed products. Oracle Directory Services is not separately
licensed if you use it exclusively for names resolution. Check with your
Oracle sales representative for conrmation.
Support
ODSM is a supported product with Oracle. Take advantage of the Oracle
product experts with your questions by utilizing the support communities
hosted by Oracle: https://communities.oracle.com/portal/server.pt/
community/identity_management/433.
Your company pays for the support communities as part of your support
license use it.
Component Downloads
The complete installation of ODSM for Linux consists of only
threedownloads:
Java Runtime Environment (JRE) 1.6.0 or later
WebLogic Server (WLS) 10.3.6
Oracle Identity Manager (OIM) 11g Patch Set 6,
Oracle part #V37386-04
This installation does not require the extra schemas built by Repository
Creation Utility. An installer for the single schema well need for names
resolution is included in the OIM installer, so dont bother with RCU.
Java Installation
Although the WLS server and database both contain their own complete
installations of Java, you should still install a standalone Java copy for your
ODSM server. JRE 1.6.0 is required to install the WLS server, so download
and install Java from OTN prior to installing WebLogic.
Repository Database
Each ODSM installation requires a separate Oracle 11g database
repository for the LDAP data. Build the database before you start the
ODSM installation.
There are no extraordinary parameters required for the database, and
the overhead can be quite small. As a result, this is one case where you
should consider installing the database and ODSM application on the
same host. In our environment, we stood up a cluster of ODSM servers
on a handful of independent virtual machines. LDAP replication within
the ODSM application server precludes the need for database backups,
high availability and dedicated DR instances. This design is simple
androbust.
Note: The ODSM installation connects to the repository database as the
SYS user with SYSDBA role, so you must have a working password le
(orapwd) for the repository database, even if the database and ODSM
server are on the same machine.
WebLogic Server
After the repository database is ready, install WLS 10.3.6. WLS is possibly the
simplest installation in the Oracle catalog, just call the installation jar le to
start the installer. Like all the Oracle installer products, youll need a running
X-server (such as cygwinX or Xming) on your Windows workstation.
Move into the directory containing the WLS 10.3.6 jar le.
Ensure that your standalone JRE installation is working.
Create your Middleware home directory, typically located under
$ORACLE_BASE\Middleware.
Invoke the installer using the stand alone JRE:
java -jar wls1036_generic.jar.
Follow the prompts.
continued on page 20
Page 20 1st Qtr 2014
Installation Summary Example
Type: Install and Congure
Location: /obase/Middleware/Oracle_IDM1
Disk Space
Required: 2200 MB
Available: 90024 MB
Free After Install: 87764 MB
Applications Selected For Install
Oracle Internet Directory
Oracle Directory Integration Platform
Oracle Virtual Directory
Oracle Identity Federation
Oracle HTTP Server
Oracle Directory Service Manager
Enterprise Manager
Applications Selected For Conguration
Oracle Internet Directory
Enterprise Manager
Oracle Directory Service Manager
Middleware Home Location : /obase/Middleware
Oracle Instance Location : /obase/Middleware/asinst_1
Oracle Instance : asinst_1
Domain Option : Create Domain
Domain Name : IDMDomain
Domain Home : /obase/Middleware/user_projects/domains/IDMDomain
Domain Host Name : <yours>
Domain Port : 7001
Weblogic Console : http://<yourhostname>:7001/console
Weblogic User Name : weblogic
Automatic Port Detection : true
Enterprise Manager :
http://<yourhostname>:7001/em
Enterprise Manager Agent
http://<yourhostname>:5162/emd/main
Oracle Internet Directory
SSL Port : 3131
Non SSL Port : 3060
Database : <Your connect string>
Oracle Directory Services Manager :
http://<yourhostname>:7005/odsm/faces/odsm.jspx
Finally, test all of the URLs on the summary and then do some backups.
ODSM Backups
Any WLS installation consists of large number of cascading subdirectories
where conguration les are stored. I rely on le system backups and server
redundancy to prevent disaster. We have four production LDAP servers at two
data centers, so it is unlikely that we would see an issue across all of them.
Beyond that, I created a script that does nightly backups of every conguration
le I could nd under my WLS home. After running some nd commands
Install and Congure ODSM
ODSM server installation and conguration both run as a single OUI
event. Instantiate OUI from Disk 1 of the installation media with a
simplerunInstaller. JRE paths and 64-bit ags are not required for the
Linuxinstallation.
Screen Field Action
Welcome Next button Click-through
Install Software Updates Radio button Select Skip Software Updates
Select Installation Type Radio button Select Install and Congure
Prerequisite Checks No issues should be reported
Select Domain Radio button Select Create New Domain
Username & password Weblogic username and
password
Domain Name IDMDomain (default)
Specify Installation Location Accept all defaults
Oracle Home Directory Accept default Oracle_IDM1
Weblogic Server WLS in wlserver_10.3
Instance location asinst_1
Security Update Your MOS credentials
Congure Components This is the most important step
of all:
Un-check everything except
Oracle Inventory Directory
Management Components
are required
Congure Ports Auto Port Conguration
Specify Schema Database Create SchemaConnect string =
hostname:port:SID
Login as sys; installer adds
sysdba internally
Enter OID Passwords Password used by OID
super-user account
cn=orcladmin
LDAP conguration Accept default settings for LDAP
settings
Installation Summary Radio button Review and then press Finish
Manual tasks during
installation
Another terminal Partway through installation
you are required to execute a
root script. Open a second
terminal to watch the
conguration log. The GUI
doesnt provide much feedback
during conguration but a lot
happens
Save the installation
summaryle
Table 1
ODSM: Oracle Directory Services Manager for NamesResolution continued from page 19
1st Qtr 2014 Page 27
Troubleshooting
There is minimal documentation available on trace and troubleshooting
options or on examining data captured in the repository, but it is a good start.
A useful command if you are having any issues, or even simply to check your
setup, is
GDSCTL>validate catalog -gsm <gsmname>
You can increase the trace level on the GSM listener, and in test environments
I would recommend leaving it at 16 (SUPPORT).
GDSCTL> set trace level gsm <gsmname> USER|ADMIN|SUPPORT|OFF
Trace dumps to
<oracle_base>/diag/gsm/<host>/<gsmname>/trace/
There is also an alert_gsm.log in the same location.
Conclusion
Oracle 12c Global Data Services is a major evolution in Oracles service
management strategy. It delivers true enterprise-wide management of services
and allows DBAs to manage services in the cloud by abstracting database
connection strings. The creation of region-aware services supports the growing
need for management of services across databases that may be physically
widely separated, and smart integration with the Data Guard broker simplies
leveraging Active Data Guard congurations. In addition, the connection and
runtime load balancing offer new choices in smoothing quality of service.
Although global services require a 12c database, the Global Data Services can
also support pre-12c local services and client connections, letting it integrate
smoothly into a mixed-version environment. Overall, it is a product worth
serious consideration for implementation in almost any enterprise.
References
1. Oracle

Global Data Services Concepts and Administration Guide 12c Release 1


(12.1) E22100-07 (12.1.0.1): June 2013
2. Oracle Open World, October 2012: CON8397 - Integrate Your Globally Distributed
Databases for Key Cloud Computing Benets (Battula, Pedregal-Martin, Brydon)
s
About the Author
Sarah Brydon is an accomplished technologist with more than two
decades of experience with Oracle and UNIX-based applications. An
Oracle DBA since 1996, Brydon has worked with all versions of Oracle
from 7.1 and is an Oracle Certied Master. She has extensive experience
in system design and support for 24/7 environments, in Oracle RAC
deployments and in security and audit considerations for Oracle
databases. Previously, Brydon was a senior Oracle specialist for
Blackrock, the largest global nancial services company with $3trillion
in assets under management. She is currently a database engineer
for PayPal.
will spread client connections across all databases where the requested service
is available.
It is critical to understand that all client requests go rst to a GSM to be
directed to a database. The client has to have all the local region GSM
endpoints in its tnsnames.ora entry.
Each GSM has an Oracle notication service running alongside it, providing
FAN events and workload information to clients.
Special note: for pre-12c clients, the ONS nodes need to be specied in the
connection string:
nodes=host1:port1,host2:port2,
Runtime Load Balancing
Global Data Services supports balancing of work requests at runtime to a
global service. Client requests are spread across connections to instances in
multiple databases.
Conditions that may impact runtime load balancing recommendations
include:
An increase or decrease in network latency. The GSMs in each region
regularly exchange messages to measure inter-region latency.
Load being placed on a specic database or database host. The GSM is
capable of detecting performance impacts caused by loads external to
Oracle.
Variable host capacity; in a conguration with asymmetrical database
hosts, GSM will direct trafc so as to even out service quality.
The goal dened for the service (SERVICE_TIME or THROUGHPUT).
The service goal settings affect what GSM considers in routing the client.
Service_time tries to minimize response time, and considers latency as well as
instance performance; throughput considers instance performance data only.
Figure 2: Standalone Identical Database Servers Simple External Load
Figure created by Srinagesh Battula for OOW 2012. Reprinted with permission.
Notice in this gure how, as load was applied to CPUd (top graph time
period 0:15 to 0:31), the runtime advisor reduced trafc to that node (middle
graph) and the elapsed time for the service remained consistent on all three
hosts (bottom graph).
Page 26 1st Qtr 2014
Local afnity always directs a client to the local region and will not cross
regions ever. If the global service has failed on all local region databases,
the connection request fails.
Local afnity with inter-region failover will send the client to the other region
only when the request cannot be met in the local region (i.e., if the service is
not started locally, it will cross regions, but it wont cross merely for poor
performance). This is probably a good choice for many production
environments.
Using Global Data Services in Your Enterprise
Reader Farms
An obvious use case for Global Data Services is any enterprise running a
reader farm. It is increasingly common for businesses to divide their
application ows into read versus read-write streams. If you have invested the
effort to split the application, it becomes very easy to leverage Active Data
Guard copies to take all the read trafc while directing writes to the primary.
In the reader farm scenario, Global Data Services lets you dene the entire
pool of read-only databases as a single virtual read server. You can dene a
SRV_READ as preferred_all on any standby and set an acceptable lag
tolerance. GDS will automatically open up the service on all standby
databases, and close it on any that exceed the dened lag tolerance.
Since any enterprise big enough to be running a reader farm is probably also
spread across multiple data centers, it also makes sense to think carefully
about region afnity. If you are condent your clients will always be better
served out of the local region, use local afnity; add interregion failover if you
want to allow for a total disaster taking down all databases in the region.
GDSCTL> add service LOCALITY LOCAL_ONLY region_failover
Data Guard Congurations
It is already possible to dene role-based services: setting services to start only
when the database is primary for instance. If you have Active Data Guard
copies even if you dont have enough to call it a reader farm there are
still advantages to Global Data Services ability to dene and manage the
services centrally and to dene lag tolerance.
If, however, you are not using Active Data Guard and your standby databases
are closed to trafc, the use case for Global Data Services is less obvious. In
this scenario, without Active Data Guard, the biggest benet may be the
simplied client conguration: You can dene the service name, and the GSM
location, and never have to update the client conguration les, even in the
event of a switchover or host replacement.
Generally, you can set client navigation either by listing all possible hosts/
clusters a service may be on, or by setting a DNS alias and repointing it as part
of the switchover. One requires you to update client les as you replace
hardware (scan names reduce, but dont eliminate this); the other makes
client switchover dependent on DNS changes. Global Data Services puts
navigation entirely in the hands of the DBA team, and makes your (many)
databases appear as one. This is the greatest advantage of this new feature.
Smoothing Quality of Service
Connection Load Balancing
Clients connecting to RAC databases can take advantage of the load-balancing
features in the listener conguration to be directed to the most appropriate
instance. Global Data Services does the same thing but at the database level. It
Client Conguration
Here is an example of a minimal client conguration:

(DESCRIPTION=
(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(GSM_protocol_address_information))
(ADDRESS=(GSM_protocol_address_information)))
(CONNECT_DATA=(SERVICE_NAME=global_service_name)
(REGION=region_name)))

The Global Service Managers in this example belong to the same region
where the client is running (the local region). To provide high availability
in case all the global service managers in the local region are unavailable,
you can specify global service managers in another region in a second list.
For example:

(DESCRIPTION=
(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(GSM_protocol_address_information))
(ADDRESS=(GSM_protocol_address_information)))
(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(GSM_second region_address_information))
(ADDRESS=(GSM_second region_address_information)))
(CONNECT_DATA=(SERVICE_NAME=global_service_name)
(REGION=region_name)))

Note that all knowledge of the specic databases, hosts, etc., in the GDS pool
has been removed from the tnsnames.ora. For any given service, the client
only needs to know the service name and the location of a Global Service
Manager endpoint that will provide navigation information.
Dening Global Services
Global services are dened with three new attributes:
Preferred or available databases
Replication lag tolerance
Region afnity
All the other standard service attributes still apply.
Preferred or Available Databases
This is straightforward. You can list preferred databases, or set preferred_all,
in which case any database in the pool can run the service.
Replication Lag Tolerance
This feature is interesting because it provides a way to guarantee service
level agreements for data lag are met. Oracle will shut the service down on
a particular database when the lag exceeds the dened tolerance. So if, for
instance, your batch service can tolerate up to eight hours lag, that service might
run on any database in the pool. If you set tolerance to zero, the service will
either run only on the primary or on replicas in real time apply with zero lag.
Region Afnity (any-region, local, local with failover)
The default behavior (any-region) routes a client to the best performing
database in the cloud, regardless of region. In practice, the calculation is
done on performance plus network latency, so generally the local region is
preferred, but it will cross regions if performance of the local replica is
worse than the effect of the network latency,
Optimize Availability and Performance with Oracle 12c Global Data Services continued from page 25
1st Qtr 2014 Page 21
Starting the ODSM Processes
In order to use all the features of ODSM, including replication through
WLS, all the processes need to be started, most of them as a nohup
(session-less) process.
WebLogic username and password have to be stored in conguration les deep
within the WLS home to enable automatic startup. WLS will build encrypted
boot.properties les for you as you run each start-up command listed below
prior to invoking WLS or the managed server as services.
cd $DOMAIN_HOME/bin
startWebLogic.sh
startManagedWebLogic.sh wls_ods1 t3://${HOSTNAME}:7001/
stopManagedWebLogic.sh wls_ods1 t3://${HOSTNAME}:7001/
stopWeblogic.sh
Start the Services
After the boot.properties les are created and secured, start each of these services
in the order shown below. Notice the nohup and subshell calls. Substitute your
host name for ${HOSTNAME} when starting the managed server.
nohup $DOMAIN_HOME/bin/startWebLogic.sh &
nohup $DOMAIN_HOME/bin/startManagedWebLogic.sh wls_ods1
t3://${HOSTNAME}:7001/ &
${ORACLE_INSTANCE}/bin/opmnctl startall
${ORACLE_INSTANCE}/bin/opmnctl status
Directory Services Manager Site
After youve built the site, you can begin exploring and conguring it in
yourbrowser.
Figure 1
Click the Connect to a directory icon near the top right-hand corner of the
screen to congure a new connection or to connect to a saved connection
LDAP directory.
from the WLS and ODSN homes, I assembled a list of directories and les to
backup. The following code snippets include three functions. All three
functions should run against each directory for the les you discover.
continued on page 22
Page 22 1st Qtr 2014
The server and port combination in this conguration form the connection
string for your ldap.ora le:
DEFAULT_ADMIN_CONTEXT = dc=oracle,dc=com
DIRECTORY_SERVERS= (selectodsm.sample.com : 3060)
DIRECTORY_SERVER_TYPE = OID
Then tell Oracle database clients to use LDAP for name resolution by placing
LDAP in the names.directory_path inside your sqlnet.ora le:
NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, EZCONNECT)
Chapter 34 of Oracle document Oracle

Fusion Middleware Administrators


Guide for Oracle Internet Directory 11g Release 1 (11.1.1) Part Number
E10029-06 describes LDAP realms and the Oracle Context youll encounter.
Directory Maintenance
There is not currently a convenient way to manage the LDAP entries directly
through the OEM 12c console. (Target type Oracle Internet Directory contains
typical OEM target screens.) Several third-party tools are available for
managing LDAP entries within the Oracle context domain.
Next Steps
Conguration beyond this point depends on your situation and local
requirements. Conguration, replication and deployment information is
available in Oracle Document E10029-04 Oracle Fusion Middleware
Administrator Guide for Oracle Internet Directory.
s
About the Author
Ray Smith is actively engaged as a volunteer for IOUG. He has spoken
at COLLABORATE, Oracle OpenWorld and several regional user group
conferences. He currently works as a senior DBA/Oracle technologist for
Portland General Electric in Portland, Ore. Ray is an Oracle ACE and
the executive editor for SELECT Journal.

Figure 2
Figure 3
Field Example Suggestion
Directory type OID Names resolution: Leave it set to
OID
Name OID_SELECT_Site Give this connection a unique name
for your own use on this site
Server selectodsm.sample.com Host name as it appears in the URL
Port 3060 Name server port; default port
3060 is
shown in the conguration
example earlier in this article
SSL Enabled Blank Based on your preference; default
SSL port number is 3131
User Name cn=orcladmin Oracle Internet Directory superuser
Password Super_53cret Superuser password given for OID
Passwords during conguration
Table 2
Oracle clients will then need to be congured to look into LDAP for names
resolution. This is done by conguring the client through the ldap.ora and
sqlnet.ora les in the TNS_ADMIN directory under the database client install,
such as:
$ORACLE_HOME/network/config
ODSM: Oracle Directory Services Manager for NamesResolution continued from page 21
1st Qtr 2014 Page 25
You can load databases and watch as clients are redirected to a less-loaded
databases offering the same service.
Heres a sample Java connection string; note how it species the client region,
allowing GSM to prefer services in the local region for requests from that client:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
(ADDRESS=(PROTOCOL=TCP)(Host=labgsm.scflab.paypal.com)(PORT=1571)))(CONNECT_
DATA=(SERVICE_NAME=srv_labrolong.lab.oradbcloud)(REGION=scfb)))

As you start and stop global services from GDSCTL, you can see them come
and go in the database with
SQL> select name, global from v$active_services;
Production Best Practices for Deploying a GDS Framework
The key thing to understand about the Global Data Services framework is that
every client connection receives its navigation information from the regional
Global Service Manager. Therefore, it is critical that the client be able to reach
at least one GSM. For those of you who may have worked with Oracle Names
in the past, its a roughly similar concept as having to be able to reach the
Names server.
Oracle requires a minimum of one GSM per region and recommends three for
maximum robustness. In addition, it is possible to send clients preferentially to
GSMs in their own region, but list GSMs in other regions as fallback targets
and directly to local listeners if all GSMs in all regions are unresponsive, although
that reintroduces the specic host information that GSM abstracts away.
In addition, it is important to protect the GDS catalog with at least one
Data Guard copy. Although GSMs will continue if the catalog goes down,
and you can still stop, start and relocate existing global services, you cannot
edit your global conguration without a catalog and, at least in the beta
release, there is no easy way to dump the global conguration in a way
that can be reloaded easily.
Figure 1: A Highly Available GDS Deployment.
Copyright Oracle Corporation. Reproduced with permission.
Registered instances:
lab%9
Database: lablnxc Registered: Y State: Ok ONS: N. Role: PH_STNDBY Instances:
1 Region: scfc
Registered instances:
lab%17

Add services.

GDSCTL>add service -service srv_labrw -gdspool lab -preferred lablnxa -available
lablnxb,lablnxc -loadbalance LONG -role PRIMARY
GDSCTL>start service -service srv_labrw -gdspool lab

GDSCTL>add service -service srv_labro -gdspool lab -preferred lablnxb,lablnxc
-available lablnxa -loadbalance LONG -role PHYSICAL_STANDBY
GDSCTL>start service -service srv_labro -gdspool lab

add service -service srv_lablag15 -gdspool lab -preferred lablnxb,lablnxc
-available lablnxa -role PHYSICAL_STANDBY -lag 15 -loadbalance LONG

add service -service srv_roregion -gdspool lab -preferred lablnxb,lablnxc
-available lablnxa -role PHYSICAL_STANDBY -loadbalance LONG -locality LOCAL_ONLY
-region_failover

Review conguration.
At this point you can see the entire conguration with the cong command.

GDSCTL>config
Regions
------------------------
Name Buddy
---- -----
regionora
scfb
scfc

GSMs
------------------------
gsmlab1

GDS pools
------------------------
dbpoolora
lab

Databases
------------------------
lablnxb
lablnxc
lablnxa

Services
------------------------
srv_lablag15
srv_labro
srv_labrw
srv_roregion


Global properties
------------------------
Name: oradbcloud
Master GSM: gsmlab1

At this point, you can start the services and then test how GDS will redeploy
them as you impact the databases.
Switchover relocates role based services.
srv_lablag15 relocates if the standby it is on lags by more than 15 seconds.
continued on page 26
Page 24 1st Qtr 2014
SQL> create user mygdsadmin identified by mygdsadmin default tablespace gds_
data;
SQL> alter user gsmcatuser default tablespace gds_data;
SQL> alter user gsmuser default tablespace gds_data;
SQL> alter user mygdsadmin quota unlimited on gds_data;
SQL> alter user gsmcatuser quota unlimited on gds_data;
SQL> alter user gsmuser quota unlimited on gds_data;
SQL> grant connect, GSMADMIN_ROLE,GSM_POOLADMIN_ROLE,GSMUSER_ROLE to MYGDSADMIN;

Create the GDS catalog.

-- catalog database is GDSCAT
GDSCTL>create catalog -database scfb01lab09:1521:GDSCAT -user mygdsadmin/
mygdsadmin
Catalog is created

Register and start the GSM.

GDSCTL>add gsm -gsm gsmlab1 -listener 1571 -catalog scfb01lab09:1521:GDSCAT
-trace_level 16
gsmcatuser password:
Create credential oracle.security.client.connect_string1
GSM successfully added
GDSCTL>start gsm -gsm gsmlab1
GSM is started successfully

Dene regions and a pool.

GDSCTL>add region -region scfb
GDSCTL>add region -region scfc
GDSCTL>add gdspool -gdspool lab

Add a dataguard broker conguration.
It is simplest to dene a broker conguration, then add all the databases as
once via the conguration. You also need to use a broker conguration if you
want to be able to take advantage of role based services.

DGMGRL> show configuration
Configuration - lablnxdr
Protection Mode: MaxPerformance
Databases:
lablnxa - Primary database
lablnxb - Physical standby database
lablnxc - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status:
SUCCESS

Now add the databases to GDS by referencing the broker conguration. We are
placing all of them into the lab pool that we just dened:

GDSCTL>add brokerconfig -gdspool lab -region scfb -connect
scfb01lab10:1521:LABLNXA
gsmuser password:
DB Unique Name: lablnxa

GDSCTL>modify database -database lablnxb -region scfb -gdspool lab
GDSCTL>modify database -database lablnxc -region scfc -gdspool lab

GDSCTL>databases
Database: lablnxa Registered: N State: Ok ONS: N. Role: PRIMARY Instances: 0
Region: scfb
Database: lablnxb Registered: Y State: Ok ONS: N. Role: PH_STNDBY Instances:
1 Region: scfb
GDS Catalog
Stores all metadata, enables centralized global monitoring and management.
The Global Service Managers will continue running and supporting trafc
even if the catalog goes down, but certain administrative functions become
unavailable. The catalog database must be based on Oracle Database 12c.
GDSCTL
Command-line interface to administer GDS.
Note that the installation of global services requires an Oracle 12c database.
While Global Data Services can also support pre-12c local services and client
connections, you will not be able to create a global service (dened below) in
pre-12c databases. This backward compatibility, however, lets GDS integrate
smoothly into a mixed-version environment. You can start with GDS managing
all services both local and global, and as your Oracle Database 12c footprint
grows, you can migrate more and more services into the new GDS cloud
andfully leverage these features to provide a truly global data service that
understands locality, service management and workload balancing across
thewhole GDS based database infrastructure.
Conguring a Simple Global Data Services Test Scenario
At this point, having introduced Global Data Services features and having
provided some conguration terms, its probably useful to take a look at some
basic syntax and a high-level look at the steps to setting up GDS. This should
give some context to the recommendations and usage examples described later.
This test sets up a single GSM, adds a simple three-database conguration (one
primary and two physical standbys) and congures a single pool spread across
two regions.
Steps for a Basic GDS Installation
Details are available in the manuals noted in the references, and a high-level
ow described below:
1. Install Global Services Manager into a dedicated Oracle home. Each GSM
needs its own home, even if they are on the same host. Do not try and start
the GSM yet.
2. Unlock users required for GDS in the database that will hold the catalog
and assign a tablespace.
3. Create the GDS catalog. This must be in an Oracle Database 12c database
that uses a sple.
4. Register the GSM into the catalog and start the GSM.
5. Connect to the catalog and dene regions and a pool.
6. Add databases (or a dataguard broker conguration).
7. Add services.
8. Review conguration.
Install Global Services Manager.
File gsm_12_1.zip contains the usual runinstaller.sh. It installs into a home
with the default name gsm_1.
Unlock GSM users, assign passwords and tablespace quotas.

SQL> alter user gsmuser account unlock;
SQL> alter user gsmuser identified by gsmuser;
SQL> alter user gsmcatuser account unlock;
SQL> alter user gsmcatuser identified by gsmcatuser;
SQL> create tablespace GDS_DATA datafile size 500M;
Optimize Availability and Performance with Oracle 12c Global Data Services continued from page 23
1st Qtr 2014 Page 23
Optimize Availability and
Performance with Oracle 12c
Global Data Services
By Sarah Brydon
John Kanagaraj, Editor
H
ow many databases do you and your team manage?
How many of them are standbys or replicas of some
sort? Where are those databases located, and where are
your customer connections coming from? How do you make
sure that every application connection is served by the right
database and by right, I mean not just the database with
the correct data, but the database that has the correct data
and also the best performance possible for that client?
Introduction to Oracle 12c Global Data Services
Managing databases across an enterprise is a lot more complicated than it
used to be. Years ago, you could fairly reliably assume that the bulk of your
trafc would go to one, singular primary database. The advent of technologies
such as Oracle Active Data Guard and Oracle GoldenGate changed all that by
providing a robust solution for enterprise disaster recovery and replication
needs and also an opportunity to leverage all those replica databases to
accept application trafc.
Distributing workload over multiple databases can bring data closer to clients,
improve performance and scalability, and help you get more value out of IT
assets. However, when applications are spread across multiple databases and
potentially also across data centers, it can be challenging to efciently use all
of your databases in a way that provides the best performance and availability.
Overview of Product Features
Oracle 12c Global Data Services (GDS) is a new product building on the
tried-and-true listener and workload management features to support service
failover and load balancing across replicated databases for local or global
deployments.
Basically, before Global Data Services, you could dene a service only at the
database level. On a RAC database, you could specify which instances a service
could run on (or all of them). If a service was offered by multiple databases,
you had to dene the service on each database and develop a method to spread
trafc across all possible choices; for instance, by setting multiple hosts in the
client tnsnames entry.
Now, with Global Data Services, you are literally dening the service just once,
at a global (enterprise) level. You can set which databases it runs on one,
or more than one and preferences about where it fails to if that database
goes down. Not only that, GDS is tracking workload and automatically
directing trafc to the database with the best performance for that service. Its
a new approach that groups your collections of primary and replicated
databases into one private database cloud offering multiple global services and
abstracting all navigation information away from the client tnsnames entry.
Before we proceed, lets dene some terms used in the Global Data Services
framework. This will help us understand this new feature better.
GDS Cloud
All the databases integrated by the Global Data Services framework into a
private database cloud that offers one or more global services.
GDS Pool
A set of databases within a GDS cloud that provides a unique set of global
services (e.g., HR, sales). A database can be in only one pool. Most commonly,
a pool consists of a primary and all its Active Data Guard standbys and/or
other related replica databases.
GDS Region
A group of databases and clients that are in close network proximity to one
another. Databases in one pool are often spread across regions; for instance,
your primary database and one replica in east, and two physical standbys in
west, reecting the locations of your data centers. GDS is region-aware and
can direct clients preferentially to databases in their local region.
Global Service
Database service provided by multiple databases synchronized with replicated
data (e.g., in your sales pool, all databases might offer the ORDER_LOOKUP
service). A global service can be offered by only one pool; internally, the fully
qualied name is service.pool.cloud. Note that a global service can be dened
either at the CDB or the pluggable database level in Oracle Database 12c.
Global Singleton Service
Service restricted to run on only one database of a pool at a time. This is useful
if, for some reason, an application (or part of it) cannot support spreading
trafc across the pool. If you simply want to direct all write trafc to the
primary, its usually more appropriate to use a role-based service for that.
Local Service
The pre-12c style service dened at the database level. GDS can support both
global and local services for databases.
Global Service Manager (GSM)
Provides main GDS functionality: service management and load balancing
There is a GSM listener listening for all incoming database connections
At least one GSM per region or multiple GSMs for high availability
All databases/services register to all GSM listeners
An Oracle notication server runs with each GSM providing FAN events
and workload information to clients
continued on page 24