32
8/14/2019 Best Practices for Database Administrators Presentation http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 1/32  Best Practices for Database Administrators Sheeri K. Cabral Database Administrator The Pythian Group, www.pythian.com [email protected] 2008 MySQL User Conference & Expo

Best Practices for Database Administrators Presentation

  • Upload
    yejr

  • View
    219

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 1/32

 

Best Practices for Database Administrators

Sheeri K. CabralDatabase Administrator 

The Pythian Group, www.pythian.com

[email protected] MySQL User Conference & Expo

Page 2: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 2/32

 

MIRE

● Make It Really Easy

● Automate

● Document

● As for your brain......

Page 3: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 3/32

 

Use your brain for CPU, not storage!

(use a request tracking system!)

Page 4: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 4/32

 

Monitoring Basics

● Graph (Cacit)

● Alert (Nagios)

● Check your checks

Page 5: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 5/32

 

Tradeoffs

● Tradeoffs always exist

● Think about them

Page 6: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 6/32

 

Most Commonly Given Advice

● Backup

● Restore

● What do you use backups for?

Page 7: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 7/32

 

In Case of Failure.....

● Restore from backup

● Master/Slave

● Master/Master 

● Cluster 

Page 8: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 8/32

 

DR? HA!

● Test your DR/HA plans

● What scenarios do they cover?

● What scenarios do they NOT cover?

Page 9: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 9/32

 

Ounces of Prevention

● Configuration vs. reality

● Possible memory usage

● Disk space / tablespace size

Page 10: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 10/32

 

Pounds of Cure

● Error Logs

● Slow Query Logs

● Query Review

Page 11: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 11/32

 

Query Profile

● mk-query-profiler 

● mysqlreport

● SHOW STATUS before and after 

● Is every index being used?

Page 12: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 12/32

 

What Does This Query Do?

● SELECT amount, created FROM

payments where user='sheeri'

Page 13: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 13/32

 

What Does This Query Do?

● SELECT amount, created FROM

payments where user='sheeri'

vs

● SELECT /* find payments for

customer */ amount, created FROMpayments where user='sheeri'

Page 14: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 14/32

 

Data Profile

● PROCEDURE ANALYSE()

● What does each column, table do?

● What's in a name?

Page 15: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 15/32

 

Does It Make Sense?

● Can you “read” the data?

● Question “best practices”

● Then, make some!

Page 16: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 16/32

 

Schema Profile

● Start normal

● Denormalize if necessary

● Descriptive foreign keys can prevent denormalization

● Stored procedures for developers

Page 17: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 17/32

 

Replication

● Be careful of TRIGGERs – And any DML from SP or UDF

● Sync often with mk-table-sync

● Handle duplicates carefully

Page 18: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 18/32

 

Maintenance

● Partition

● Archive

● Purge

● Static data

Page 19: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 19/32

 

Manage User Expectations

● Constant report refreshes

● Aggregate data once every hour or 15 minutes

● Split off processing:

 – customer/non-customer 

 – internal/external

Page 20: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 20/32

 

Creative Suggestions – Forums

● COUNT(*) for paging

● LIMIT 0,n+1

● Cache each page of forum

 – First page can have up to n+5 entries

Page 21: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 21/32

 

Creative Suggestions – Calculations

● Limited set of calculations?

 – Distance between zip codes in the US

● Calculate the same thing more than once?

● Calculating easy constants?

Page 22: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 22/32

 

Foreign Keys

● Application still has to handle problems

Page 23: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 23/32

 

And that's just ACL's!

Summary

Page 24: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 24/32

 

When I Walk In the Door 

● alerting

● request tracking

● graphing

● documentation

Page 25: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 25/32

 

My Toolbox

● EXPLAIN

● Ma'atkit

● hackmysql.com (mysqlsla, mysqlreport)

● MySQL Manual

Page 26: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 26/32

 

Also Useful

● mytop

● innotop

Page 27: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 27/32

 

Testing, Testing...is this thing on?

● Functional

● Load

● Start now!

Page 28: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 28/32

 

Consider 

● master/master vs. read_only slave

● Learn the foundations

● Semi-dynamic data

Page 29: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 29/32

 

Redundancy

● Make everything replaceable

 – Kickstart

 – Automated config management

● Including yourself!

 – Don't you want a vacation?

Page 30: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 30/32

 

Be a Good DBA

● Prove your work to yourself 

● Be clear 

Page 31: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 31/32

 

Page 32: Best Practices for Database Administrators Presentation

8/14/2019 Best Practices for Database Administrators Presentation

http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 32/32

 

Sheeri Cabral

[email protected]

www.sheeri.com