10 percona toolkit tools every mysql dba should know about · 10 percona toolkit tools every mysql...

60
10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, December 19, 12

Upload: others

Post on 25-Jun-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

10 Percona Toolkit tools every MySQL DBA should know about

Fernando Ipar - Percona Webinar Dec/2012

Wednesday, December 19, 12

Page 2: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

About me

• Fernando Ipar• Consultant @ Percona• [email protected]

2

Wednesday, December 19, 12

Page 3: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

About this presentation

• Introductory level• Tool selection based on frequency of use• Presented by category

– Replication management– Performance optimization– Operations– Root cause analysis

• Q/A at the end

3

Wednesday, December 19, 12

Page 4: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

About Percona Toolkit

• Actual customers problems• Extensive test coverage• Works with every version since 5.0

– Some tools with 4.1 too

• Good community• Covered by our Support services

4

Wednesday, December 19, 12

Page 5: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Before we begin5

Knowing your DSNs

Wednesday, December 19, 12

Page 6: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

6

(This includes all of today's tools except pt-stalk and pt-sift)

Wednesday, December 19, 12

Page 7: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

DSNs in a nutshell

• comma separated K/V list• h=localhost,u=root,p=s3cr3t• For multiple hosts, specific DSN inherit from

others– So your life will be easier if you keep your credentials

consistent across hosts

• Full story: http://bit.ly/percona-toolkit-dsn-spec

7

Wednesday, December 19, 12

Page 8: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Before running a tool

• Read the manual carefully• Test• Have a tested backup available.

8

Wednesday, December 19, 12

Page 9: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Replication management tools

Wednesday, December 19, 12

Page 10: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-table-checksum

Determines if a master and its replicas have a consistent copy of the dataset

10

Wednesday, December 19, 12

Page 11: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Why would a replica not be consistent?

11

Wednesday, December 19, 12

Page 12: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

• Writing directly to it• Using SBR• Bad coordinates after server crash• 36 subsections to the ‘Features and Issues’

section of the Manual• <your reason here>

12

Wednesday, December 19, 12

Page 13: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

How does it work?

• Uses STATEMENT based replication– Does not change other sessions

• Runs checksum queries against master– Waits for them to replicate to slaves– Checks for differences in the results

13

Wednesday, December 19, 12

Page 14: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

The scenario 14

Master A, replicas B and C

Wednesday, December 19, 12

Page 15: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

15

pt-­‐table-­‐checksum  -­‐-­‐replicate  percona.checksums  h=A

Wednesday, December 19, 12

Page 16: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Yes, it’s that simple!Some considerations:

• Schema differences may break replication• Will self-throttle checking replica lag

– But don’t leave unattended

16

Wednesday, December 19, 12

Page 17: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-table-sync 17

If pt-table-checksum gives you the bad news, pt-table-sync helps you go back to

a sane state.

Wednesday, December 19, 12

Page 18: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

The scenario 18

Master A, replicas B and Cpt-table-checksum found differences on

C.

Wednesday, December 19, 12

Page 19: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

19

pt-­‐table-­‐sync  -­‐-­‐replicate  percona.checksums  -­‐-­‐print  h=A

Wednesday, December 19, 12

Page 20: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

20

Happy  with  what  you  see?  Then  use/add  -­‐-­‐execute

Wednesday, December 19, 12

Page 21: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 22: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-slave-delay 22

Intentionally keep a slave behind

Wednesday, December 19, 12

Page 23: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

(http://xkcd.com/327/ is one reason why a slave is not a backup)

Wednesday, December 19, 12

Page 24: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

24

pt-­‐slave-­‐delay  -­‐-­‐delay  2h  h=slave

Wednesday, December 19, 12

Page 25: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-slave-restart

• Automatically skip replication errors• Only as a last resort!

– Or when you know what you’re doing

25

Wednesday, December 19, 12

Page 26: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

26

pt-­‐table-­‐restart  h=slave

Wednesday, December 19, 12

Page 27: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 28: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Important

Wednesday, December 19, 12

Page 29: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

When using SBR, skipping errors will usually make a bad situation worse.

29

Wednesday, December 19, 12

Page 30: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-heartbeat

• Reliably measure replication lag• Works with Percona Monitoring Plugins

– http://www.percona.com/software/percona-monitoring-plugins

30

Wednesday, December 19, 12

Page 31: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 32: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

On the master32

pt-­‐heartbeat  -­‐D  percona  -­‐-­‐create-­‐table  -­‐-­‐update  h=mater

Wednesday, December 19, 12

Page 33: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

From nagios/etc33

pt-­‐heartbeat  -­‐D  percona  -­‐-­‐check  h=replica

Wednesday, December 19, 12

Page 34: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Performance optimization tools

Wednesday, December 19, 12

Page 35: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-query-digest

• Analyze MySQL queries• Discover optimization opportunities• Prevent scalability bottlenecks

35

Wednesday, December 19, 12

Page 36: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

36

pt-­‐query-­‐digest  <path-­‐to-­‐log>

Wednesday, December 19, 12

Page 37: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 38: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 39: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Filtering

pt-­‐query-­‐digest  -­‐-­‐filter  filter.pl  <path-­‐to-­‐log>

filter.pl:

return  ($event-­‐>{fingerprint}  =~  m/users/)

39

Wednesday, December 19, 12

Page 40: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Reviews

pt-­‐query-­‐digest  -­‐-­‐create-­‐review-­‐table  -­‐-­‐review  D=percona,t=reviews    <path-­‐to-­‐log>

http://github.com/box/Anemometer makes good use of this feature

40

Wednesday, December 19, 12

Page 41: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 42: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Operations tools

Wednesday, December 19, 12

Page 43: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-upgrade

• Compare query results & run time against different instances

• Part of proper version upgrade testing

43

Wednesday, December 19, 12

Page 44: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐upgrade  h=host1  h=host2  queries.txt

44

Wednesday, December 19, 12

Page 45: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 46: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-online-schema-change

• Minimize impact of ALTERing tables• Be careful with foreign keys!

– They are handled, but do read the manual first

46

Wednesday, December 19, 12

Page 47: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐online-­‐schema-­‐change  -­‐-­‐alter-­‐foreign-­‐keys-­‐method  auto  -­‐-­‐alter  "add  key  actor_last_update  (last_update)"  -­‐-­‐execute  h=localhost,D=sakila,t=actor

47

Wednesday, December 19, 12

Page 48: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 49: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Root cause analysis tools

Wednesday, December 19, 12

Page 50: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-stalk

• Helps diagnose hard-to-catch problems• 'Random' stalls

50

Wednesday, December 19, 12

Page 51: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐stalk  -­‐-­‐function  processlist  \        -­‐-­‐variable  State  \        -­‐-­‐match  statistics  -­‐-­‐threshold  10

51

Wednesday, December 19, 12

Page 52: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐stalk  -­‐-­‐function  processlist  \        -­‐-­‐variable  Command  \        -­‐-­‐match  Sleep  -­‐-­‐threshold  155  \        -­‐-­‐cycles  0

52

Wednesday, December 19, 12

Page 53: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐stalk  -­‐-­‐threshold  40  \        -­‐-­‐cycles  6

53

Wednesday, December 19, 12

Page 54: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐stalk  -­‐-­‐function  custom-­‐check.sh  \                  -­‐-­‐threshold  12

custom-­‐check.sh  has to provide a  trg_plugin  function, which must output a number.

54

Wednesday, December 19, 12

Page 55: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-­‐stalk  -­‐-­‐no-­‐stalk

55

Wednesday, December 19, 12

Page 56: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

pt-sift

• High level overview of pt-stalk data

56

Wednesday, December 19, 12

Page 57: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Wednesday, December 19, 12

Page 58: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

The take home message

• Don’t reinvent the wheel• We’ve been burned, so you don’t have to

58

Wednesday, December 19, 12

Page 59: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Webinars

Thank you!

59

Wednesday, December 19, 12

Page 60: 10 Percona Toolkit tools every MySQL DBA should know about · 10 Percona Toolkit tools every MySQL DBA should know about Fernando Ipar - Percona Webinar Dec/2012 Wednesday, ... pt-slave-delay

Percona Live

Percona Live MySQL Conference & ExpoApril 22-25, 2013

Santa Clara Convention Center & Hyatt Regency Santa Clara

Join the MySQL community for 4 days of breakout sessions, tutorials, and keynotes

Mingle with the MySQL community at the Welcome Reception and the Community Networking Reception

Visit www.percona.com/live for more information

60

Wednesday, December 19, 12