Oracle DBA Best Practices
Dennis Williams Senior Database Administrator Lifetouch, Inc.
About Me ■ ■ ■
■ ■ ■
TCOUG member since 1990 8 years only DBA at Lifetouch, Inc. Lawson Software Database Research Engineer Consultant - Fingerhut Control Data Contact me at
[email protected]
Audience ■ ■ ■
Those considering DBA career DBAs who want to improve Those forced to tolerate DBAs
There’s no asset more important than a company’s data. You can’t give that responsibility to someone who doesn’t know how to handle it. Malcom Fields, CIO Hon Industries
Agenda ■ ■ ■ ■
Time - Until lunch is ready Left-brain portion - tech. Issues Right-brain portion - softer issues Database audit form
75,610 DBAs ■
■ ■
■
■
U.S. Bureau of Labor Statistics in 2003 began tracking the IT workforce. 6.46% unemployed There are 797,445 Software Engineers (5.3% unemployed) DBA supports about 10 developers. 66% DBA growth by 2010
Where do DBAs come from? ■ ■ ■
Schools don’t offer a degree. Developer DB developer System Administrator
DBA is a role ■ ■
■
Like a policeman or teacher Unstated responsibilities, expectations Most people don’t know what a DBA does.
DBA time breakdown ■ ■ ■ ■ ■ ■ ■
22% Fire Fighting 33% Monitoring 12% Perf. Tuning / Change Mgt. 33% Development Support 0% Planning for growth 0% Backup & Recovery Planning 0% Learning Koopman
Assignment ■ ■ ■ ■
Keep a personal time log - 1 week Learn your time distribution Target improvements Study time management
Levels of Oracle DBA Rookie
Veteran Expert
TCOUG
No time
Studies
Member, On the attends reg. board Concepts Architecture
Admin. Commands No time Reads manuals Takes OCP, books classes
Manuals Learning
Online No time forums New Oracle Uses any features feature
Very familiar OCM, author, conferences Lurks, asks Answers questions Wary of Creates new feature tests to find problems
OCP ■ ■
■ ■ ■
Misconception: you are an expert Multiple choice, so simple questions Broad, not deep Career benefit - can’t hurt Can help you go deeper in Oracle
Types of DBAs: Development DBA ■ ■ ■ ■
May carry developer title Develop code ( PL/SQL ) “Hunter” personality (find/fix/forget) Best practices: Code Complete by McConnell
Production Support DBA ■ ■ ■
■
Keep it running “shepherd / farmer” personality Where best practices really make a difference The hero isn’t the DBA that battles problems through the weekend, but the one that avoided the problem
Application DBA ■
■ ■
■ ■
Supports a business critical app. like Oracle Financials, SAP, Peoplesoft, Lawson Production support, some dev. Key skill: understands how the app. Interacts with Oracle Can’t self-study Caution: Vendor doesn’t operate databases in production
Consultant DBA ■ ■ ■
Fastest way to get expertise Varied work opportunities Understand economic cycles
Backup is Job #1 ■ ■
■
■
■ ■
Ensuring data is never lost Don’t trust an untested backup configuration Be ready to perform any type of recovery at any time Communicate vulnerabilities, recovery times to management Archivelog mode by default Cold or Hot backups, which best fits your environment
Export: the DBAs friend ■ ■
■ ■
■
Enhance recoverability Easy to recover a single table, avoid full recovery Checks block corruption Teach your developers to request special exports Validate, no errors, Unix strings command, last line should be EXIT
Security is Job #2 ■
■
■ ■ ■
DBA is responsible for making data available to authorized users Keeping data inaccessible to unauthorized Role: policy, implementation Know security options, implications Know how application affects security, data sensitivity
Making it work Dev to Prod ■ ■ ■ ■
■ ■ ■
ITIL 3 environments - test/stage/prod Clone DB from backup Developers provide scripts to change production Simple application login test Always have a backout plan Is this change worth the possible consequences?
Oracle Performance Tuning - Types ■
■
■
SQL Statements - explain plan, tkprof, 10053 events Application disasters - 10046 trace, Cary Millsap (TCOUG Hotsos seminar) Proactive tuning and hanging STATSPACK, utlestat/utlbstat
Server statistics ■
■
■ ■
If you have a performance problem, either your database is working too hard, or it’s not being allowed to work. - Jonathan Lewis You must know what your server is doing. You must know the O.S. Unix Admin. - your best friend
Bind variables ■
■ ■ ■
■
Ensure developers use bind variables Audit v$sql in test to verify In Java, PreparedStatement In .net, CommandText, CreateParameter, Append Connection pooling
Not your Dad’s Oracle tuning ■
■
■
■
Rules of thumb, ratios to mathematical foundations Counts to measured times in microseconds Aggregate by instance to process details V$ tables are either too summarized or point-in-time
Goal of tuning ■ ■ ■ ■
What matters to the business user Good chance to sell value End-to-end analysis DBA must prove innocence
Monitoring ■
■
■ ■
There is nothing so useless as doing efficiently that which shouldn’t be done at all Peter F. Drucker Use LMT, uniform extents, vs. rebuild Use autoextend vs. monitoring Email exceptional conditions
Oracle Versions ■
■ ■ ■ ■ ■ ■ ■
Be not the first by whom the new are tried, nor yet the last to lay the old aside - Alexander Pope Good choice saves downtime Support by appl, O.S. Rule of 4’s - 7.3.4, 8.1.7.4, 9.2.0.4 Timing - can I skip versions? Appl. quality requirements What are others saying? Metalink Only change one major component
Oracle Patches ■
Two philosophies: Only when bug arises ◆ Immediately (security) ◆
■
Vendor testing hierarchy: Version ◆ Patch set ◆ Individual patch ◆
Oracle Licensing ■
■ ■
■
Install defaults to all - know what costs extra Consider Standard Version Understand the organization budget mechanisms Knowledgeable if not authorized
Troubleshooting ■ ■
■
Never worked? Check installation Worked earlier, doesn’t work now? What changed? Intermittent? (worst kind) How does it vary? With time, system load, hardware?
From Oracle Networking 101 by Marlene Theriault
Documentation ■ ■
■
■
■
Key: What is essential? Don’t document what can easily be figured out Keeping up-to-date is the crucial aspect. Obsolete documentation is treacherous Self-documenting where possible
Data Modeling ■
■
■
■
■
O-O Developer: Database is just a means to persist classes DBA: Good data modeling can ensure the data is usable across the enterprise Data architect is a DBA career path Participate in initial design where your leverage is large Learn data modeling software
Tech. Learning List ■
■ ■
■
Application interface methods Microsoft, Java, OCBC Server tuning Storage methods and options, strengths and weaknesses Effective communication proceeds from shared knowledge
Self-Study ■ ■ ■ ■ ■
■
■
When you can’t get experience Be aware of the limits Well-defined area? (books?) Can earn credentials? Area where you can gain significant knowledge with a reasonable effort? Average experience of competitors is short Enjoy after doing 10 years?
Know your learning style ■ ■
Left-brain vs. right-brain Four primary learning styles: Visual (diagrams) ◆ Auditory (reading) ◆ Tactile (hands-on) ◆ Kinesthetic (body) ◆
■
Your manager’s learning style
People Skills ■
■
■
■
Few people besides a DBA understand what a DBA does This makes it hard to communicate your value to the organization People don’t mind paying for what they value, but resist paying for what they don’t consider valuable If your manager is a DBA, less people skills are required, but this is career-limiting
Respect ■
■
■ ■
■
Do you respect someone who doesn’t respect you? The root of much conflict is a mutual lack of respect Smartness paradox We are the hero of our own movie, we justify ourselves, never the bad guy Really care about the people you work with
How to avoid problems ■
■
■
■ ■
Many bad reactions stem from a lack of warning Emotions play a large role in decision-making Work hard to warn people ahead of time of what will be coming Don’t know why? Assume stupidity A DBA appreciates a heads-up, why shouldn’t others?
When you’re wrong, admit it, quickly ■
Any man worth his salt will stick up for what he believes right, but it takes a slightly better man to acknowledge instantly and without reservation that he is in error - Andrew Jackson
Stress ■ ■ ■
■
■
■
Feeling no control Constant interruptions DBA syndrome - responsible for everything, control nothing, nobody understands You hear yourself saying “nobody appreciates me” Antidote: study stress control, exercise visit clients, future changes
That Problem Person Sandwich / Oreo approach by ■
■ ■ ■
■
■
Rachel Carmichael 1-on-1 outside the office Begin with a complement Make statements addressing the problem, starting with “I” - “I feel”, “I think”, “what I see is”. Listen Wrap with team-building “we can work together on this”, “I need your help” End with a nice complement
Simple Explanations ■
■
■
The most valuable people are those who can understand complex issues and explain them simply to others Makes other feel good about themselves Albert Einstein, Steve Hawking, Carl Sagan, Richard Feynman
Database Audit Form ■ ■ ■
Periodically audit each database Checklist for problems Form is terse, so I included a sheet describing the purpose of each check