Best Practices for Database Administrators Presentation
Transcript of Best Practices for Database Administrators Presentation
![Page 1: Best Practices for Database Administrators Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/27.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/28.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/29.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/30.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/31.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022052516/577daea91a28ab223f90f0e2/html5/thumbnails/32.jpg)
8/14/2019 Best Practices for Database Administrators Presentation
http://slidepdf.com/reader/full/best-practices-for-database-administrators-presentation 32/32
Sheeri Cabral
www.sheeri.com