SlideShare a Scribd company logo
The Proper Care and Feeding of a
MySQL Server for Busy
Linux Admins
Dave Stokes
MySQL Community Manager
Email: David.Stokes@Oracle.com
Twiter: @Stoker
Slides: slideshare.net/davidmstokes
Safe Harbor Agreement
The following is intended to outline our general product
direction. It is intended for information purposes only, and
may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality,
and should not be relied upon in making purchasing
decision. The development, release, and timing of any
features or functionality described for Oracle’s products
remains at the sole discretion of Oracle.
So take anything on future
products with a grain of
Happy Birthday to MySQL
Dave Stokes
● MySQL Community Manager
– Former MySQL Certification Manager
● System Admin/Systems Programmer
– TOPS-10, Vax/VMS, UNIX → Linux
● Worked for companies ranging
alphabetically from the American Heart
Association to Xerox
You, yes, you!
● Linux Admin
– Many responsibilities
– Many systems
● Real, Virtual, Containers, …
– Also have DBA duties
● But no DBA training
Databases are
● Selfish
● Want entire system to self
● Messy
● Suck up memory, disk space, bandwidth, sanity
● Growing all the time
● Needs updates
● Suck up a good part of your life
Databases are
nasty toddlers!!
The previous opinions are
● The views of most admins (and developers)
who also have DBA duties added to all their
other regular tasks to help fill all their lavish
spare time*
Happy MySQL Databases
● Hardware
● Software
● Backups & Replication
● Tools to make life easier
● Configuration suggestions
● Q&A
Hardware Happiness
● Databases LOVE memory
– Spend money on good memory
– Lots of it
– More important than cores
Why memory?
● Reading from memory is 100,000 faster
than reading from disk
– 100K miles if four times plus around the world
– At one situp a second, it would take 27.78
hours to do 100K
Disks or Disk Like Things
●
Move data to separate controller/disk from logs
●
Do not log on slow devices
● RAID to your favorite level – RAID 10 Minimum
● DO NOT USE Consumer Grade Disks
– Use disks that are designed for 7/24/365 operation not a price point
●
CACHES – disk and controller
– Write through or write back caches
● Both lie
● Make sure they don't auto tune during production hours
● FusionIO cards
● Atomic rites = No Double buffering , therefor SPEED!!
Network
● Never expose your instances to outside world
● SCRUB rigorously all user data
● Keep separate net for replication and/or backup
● MySQL authentications uses host, user & Password
– Boss@Home May not equal Boss@Work
– Overly enthusiastic, first match in table gets in!!!
– Configure server to use IP addresses instead of names
● Bad DNS zone transfers should not bring down database access
Slave Servers
● Slaves need to have bigger/badder
hardware than master
– Do more work
– Use MySQL Utilities to clone masters, set up
slaves
– Dedicated network to avoid network contention
Software
● Run the latest greatest version of MySQL you can
– Performance
– Bug fixes
– Features
● Keep MySQL by itself
– Databases do not play well with other services
– Contention for resources
– Swapping
– Maybe a caching layer but watch memory use!!
Backups & Replication
● Thou shalt make backups!!!
– Make sure you backup your data so frequently it
verges on being painful and then look for ways to
increase that!
– Know how to restore entire instances, entire
databases, or a table. Save views, functions, etc. And
others on staff need to be able to do this too (cross
train)
– Keep off site backups off site and test randomly
● Make sure multiple people can get to off site backups
● Nobody ever got fired for doing too many backups
– Paranoia should be your friend!!!!
Replication
● MySQL replications is easy to set up and
misunderstand
– Two types of replications
● Async – slave grabs copy of changes from master and applies
them to own set of data, master unaware of what slave is doing
● Semi-sync – master waits for acknowledgment from at least one
slave before proceeding
– Three forms – Statement, Row, and Mixed
● Single threaded before 5.6, multi threaded for different
databases in 5,6, multi infra databases threaded for 5.7
Replication Filters
● Do not need to replicate everything
– Check churn of data, maybe 1x day backup
● Filter tables
● Can change filters on the fly with 5.7
– “Something going on in manufacturing, can we
get ALL of their data copied someplace?'
Global Transaction IDs
● Each transaction has unique GTID starting
5.6
– Easy for slaves to get caught up to master
– No longer have to look at file offsets on master
and slave to get start position
● Saves time and $ and sanity
● Storing replication data in InnoDB tables
plus adding check sums make crash safe
● Row based can exploit only sending key
and changed items, not entire row of data
Multimaster and
Multisource
● Multimaster
– Not recommended but many do it
– System A auto_increment odd numbers and
System B auto_increment even numbers
● Needs to be watched
● Multi source – MySQL 5.7
– Multiple masters send data to one slave for
master backup
● Make sure sharded data does not overlap
Group Replication MySQL 5.7
Oracle Database Shops!
IF you also have a big Oracle DB shop:
● You can backup to the big Oracle STB backup
devices
– Great if you are in an Oracle shop
● MySQL can use oracle Database Firewall &
Audit Vault
● Enterprise Customers
– Audit Vault, Database Firewall, and more
Replication for backup
● Replication uses three threads
– Master to slave
– Slave to log
– Log to data
● Shut down log to data thread, run backup,
then restart log to data
– Data from master still stored but not written
during backup but applied when backup is done
Replication for backup
Turn off SQL
thread on
Slave for
backups for a
point in time
snapshot of
your data
Tools to make life easier
● There are lots of tools to make life easier for
DBA chores
– Monitoring
● Yes, you need to monitor
– Administration
● Yes, you can type everything by hand on the
command line but don't you have better things to
do!?
● Documentation of instances
● Backup
Monitoring
● Active
– Watches instances and send alerts
● MySQL Enterprise Monitor (supported customers, free trial)
● SolarWinds Database Performance Manager (free trial)
● Nagios, cacti, etc.
– Percona has plugins
● Vivid Cortex
● Your favorite that is not mentioned
● Helps to be able to comb historical data
● Semi-active
– MySQL Workbench
● Dashboard & SYS Schema
● PhpMyAdmin
● Your favorite tool that is not mentioned
You can't the full size of a
problem at first glance!!
MySQL Workbench
● Query tool
– Visual Explain to aid in optimization
●
Admin tool
– Users, backup, imports, change settings
– No more fat finger 'UPDATE user set 'SELECT_PRIV='Y',....
●
Dashboard and System Monitoring
– Sys Schema
●
Entity Relationship Mapper
– Great tool for investigating new schemas
– Print schema for documentation
●
Migration tool
●
And more!
MySQL Utilities
● Written in Python, easy to extend
● Setup replication and automatic fail over
● Copy user settings
● Copy data
● Look for bad processed and kill 'em
● Move binary logs
● Grep for a column name in a schema
● And much more
And more
● Percona tool kit
● Toad for MySQL from Dell
● Your favorite tool that is not mentioned
Config Suggestions
● Turn off DNS lookups – zone transfer dies
– Use skip-name-resolve
● Save/Load statistics
– Use innodb_stats_persistent
– See 14.13.16.1 Configuring Persistent
Optimizer Statistics Parameters in the MySQL
Manual
– innodb_buffer_pool_dump=ON
– innodb_buffer_pool_dump_at_shutdown=ON &
innodb_buffer_pool_load_at_startup=ON
Config continued
● Tune log level (5.7)
– log_error_verbosity – errors, errors & warnings, E&W +
notes
– Send to SYSLOG
● Turn off query cache (5.7 Default)
– Single threaded, use memcached/redis
– Free up memory
● InnoDB buffer pool size
– 75-80% of RAM
Big Hint #1
● BE DAMN STINGY with permissions &
grants
– Easier to say no than to constantly be restoring
– --safe-updates or –i-am-a-dummy
● No more 'opps, I forgot the where clause' and
deleting the entire table instead of 'WHERE
customer_id = 12345'
Big Hint #2
● Sys_schema – please use
– Views, functions, and procedures on top of the
Performance_schema and Information_schema
● Who is hogging resources
● Indexes not being used
● Problematic queries
● Other routine PITAs
● MySQL Workbench
– Second most popular database
– Makes DBA work MUCH easier – please use
Big Hint #3
● 5.7 Security
– Secure install becomes the default
● Forced root password
● No anonymous account, no test DB
– Password rotation
– Configure rules
● Length, characters
– mysql_config_editor (5.6.6)
● Store encrypted auth credentials (no clear text)
● Use mysql --login-path=finance
MySQL User Groups
● https://community.oracle.com/docs/DOC-91
7215
– APAC, EMEA, NA, and LA
– Not one near you? Start one!
● Contact me at David.Stokes@Oracle.com
– Network, Learning, Certification study groups,
find a mentor
Q&A
● Slides: slideshare.net/davidmstokes
● Twitter: @Stoker
● Email: David.Stokes@Oracle.com
● Blog: OpenSourceDBA.wordpress.com

More Related Content

PDF
Proper Care and Feeding of a MySQL Database for Busy Linux Administrators
PDF
The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...
PDF
The Peoper Care and Feeding of a MySQL Server for Busy Linux Admin
PDF
MySQL Performance Tuning Variables
PDF
MySQL 5.6 Performance
PDF
The Proper Care and Feeding of MySQL Databases
PDF
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
PDF
Upgrade to MySQL 5.6 without downtime
Proper Care and Feeding of a MySQL Database for Busy Linux Administrators
The Proper Care and Feeding of a MySQL Database for Busy Linux Admins -- SCaL...
The Peoper Care and Feeding of a MySQL Server for Busy Linux Admin
MySQL Performance Tuning Variables
MySQL 5.6 Performance
The Proper Care and Feeding of MySQL Databases
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
Upgrade to MySQL 5.6 without downtime

What's hot (20)

PDF
MySQL Performance Metrics that Matter
PDF
Performance Tuning Best Practices
PDF
InnoDB Performance Optimisation
KEY
Perf Tuning Short
PDF
Percona Xtrabackup - Highly Efficient Backups
PDF
MySQL Tuning
PDF
MySQL 5.7 in a Nutshell
PPTX
PostgreSQL Hangout Parameter Tuning
PPT
MySQL Performance Tuning at COSCUP 2014
PDF
Why new hardware may not make Oracle databases faster
PDF
MySQL For Oracle DBA's and Developers
PDF
MySQL Server Backup, Restoration, and Disaster Recovery Planning
PDF
MySql's NoSQL -- best of both worlds on the same disks
PDF
Online MySQL Backups with Percona XtraBackup
PDF
Discard inport exchange table & tablespace
PDF
How to configure SQL Server for SSDs and VMs
PDF
Ohio Linux Fest -- MySQL's NoSQL
PPT
Postgres Presentation
PDF
My sql 5.6&MySQL Cluster 7.3
PDF
MySQL Performance Best Practices
MySQL Performance Metrics that Matter
Performance Tuning Best Practices
InnoDB Performance Optimisation
Perf Tuning Short
Percona Xtrabackup - Highly Efficient Backups
MySQL Tuning
MySQL 5.7 in a Nutshell
PostgreSQL Hangout Parameter Tuning
MySQL Performance Tuning at COSCUP 2014
Why new hardware may not make Oracle databases faster
MySQL For Oracle DBA's and Developers
MySQL Server Backup, Restoration, and Disaster Recovery Planning
MySql's NoSQL -- best of both worlds on the same disks
Online MySQL Backups with Percona XtraBackup
Discard inport exchange table & tablespace
How to configure SQL Server for SSDs and VMs
Ohio Linux Fest -- MySQL's NoSQL
Postgres Presentation
My sql 5.6&MySQL Cluster 7.3
MySQL Performance Best Practices
Ad

Viewers also liked (15)

PDF
MySQL快速入门与提高
PPT
Developing Information Schema Plugins
ODP
Introduction to MySQL Enterprise Monitor
PDF
Extending MySQL Enterprise Monitor
ODP
Getting to Know MySQL Enterprise Monitor
ODP
Performance schema and_ps_helper
ODP
MySQL Monitoring Mechanisms
PDF
Mysql tech day_paris_ps_and_sys
PDF
MySQL for Oracle DBAs
ODP
MySQL Administration and Monitoring
PPT
MySQL 5.7: Performance Schema Improvements
PDF
"Новые возможности MySQL 5.7"
PDF
How to Monitor MySQL
PDF
An Overview to MySQL SYS Schema
PDF
Performance schema and sys schema
MySQL快速入门与提高
Developing Information Schema Plugins
Introduction to MySQL Enterprise Monitor
Extending MySQL Enterprise Monitor
Getting to Know MySQL Enterprise Monitor
Performance schema and_ps_helper
MySQL Monitoring Mechanisms
Mysql tech day_paris_ps_and_sys
MySQL for Oracle DBAs
MySQL Administration and Monitoring
MySQL 5.7: Performance Schema Improvements
"Новые возможности MySQL 5.7"
How to Monitor MySQL
An Overview to MySQL SYS Schema
Performance schema and sys schema
Ad

Similar to Linuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux Admins (20)

ODP
The care and feeding of a MySQL database
PDF
PhpTek Ten Things to do to make your MySQL servers Happier and Healthier
PPTX
MySQL Tech Tour 2015 - Manage & Tune
PDF
Tx lf propercareandfeedmysql
PDF
Congratsyourthedbatoo
PDF
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
PDF
MySQL for Oracle DBAs
PDF
MySQL For Linux Sysadmins
PDF
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
ODP
MySQL for Oracle DBAs
PDF
My sql susecon_crashcourse_2012
PPTX
MySQL database
PDF
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
PDF
01 demystifying mysq-lfororacledbaanddeveloperv1
PDF
MySQL Backup and Security Best Practices
PDF
Posscon my sql56
PPTX
Manage MySQL with open source
ODP
MySQL Scaling Presentation
PDF
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG
PDF
MySQL Technology Overview
The care and feeding of a MySQL database
PhpTek Ten Things to do to make your MySQL servers Happier and Healthier
MySQL Tech Tour 2015 - Manage & Tune
Tx lf propercareandfeedmysql
Congratsyourthedbatoo
MySQL for Oracle DBA -- Rocky Mountain Oracle User Group Training Days '15
MySQL for Oracle DBAs
MySQL For Linux Sysadmins
MySQL 20 años: pasado, presente y futuro; conoce las nuevas características d...
MySQL for Oracle DBAs
My sql susecon_crashcourse_2012
MySQL database
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
01 demystifying mysq-lfororacledbaanddeveloperv1
MySQL Backup and Security Best Practices
Posscon my sql56
Manage MySQL with open source
MySQL Scaling Presentation
Embracing Database Diversity: The New Oracle / MySQL DBA - UKOUG
MySQL Technology Overview

More from Dave Stokes (20)

PDF
Valkey 101 - SCaLE 22x March 2025 Stokes.pdf
PPTX
Locking Down Your MySQL Database.pptx
PPTX
Linuxfest Northwest 2022 - MySQL 8.0 Nre Features
PDF
MySQL Indexes and Histograms - RMOUG Training Days 2022
PDF
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
PDF
Windowing Functions - Little Rock Tech fest 2019
PDF
MySQL Baics - Texas Linxufest beginners tutorial May 31st, 2019
PPTX
Develop PHP Applications with MySQL X DevAPI
PDF
MySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
PDF
MySQL without the SQL -- Cascadia PHP
PDF
MySQL 8 Server Optimization Swanseacon 2018
PDF
MySQL Without The SQL -- Oh My! PHP[Tek] June 2018
PDF
Presentation Skills for Open Source Folks
PPTX
MySQL Without the SQL -- Oh My! Longhorn PHP Conference
PPTX
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
PPTX
ConFoo MySQL Replication Evolution : From Simple to Group Replication
PDF
Advanced MySQL Query Optimizations
PPTX
Making MySQL Agile-ish
PPTX
PHP Database Programming Basics -- Northeast PHP
ODP
MySQL 101 PHPTek 2017
Valkey 101 - SCaLE 22x March 2025 Stokes.pdf
Locking Down Your MySQL Database.pptx
Linuxfest Northwest 2022 - MySQL 8.0 Nre Features
MySQL Indexes and Histograms - RMOUG Training Days 2022
MySQL 8.0 Features -- Oracle CodeOne 2019, All Things Open 2019
Windowing Functions - Little Rock Tech fest 2019
MySQL Baics - Texas Linxufest beginners tutorial May 31st, 2019
Develop PHP Applications with MySQL X DevAPI
MySQL 8 Tips and Tricks from Symfony USA 2018, San Francisco
MySQL without the SQL -- Cascadia PHP
MySQL 8 Server Optimization Swanseacon 2018
MySQL Without The SQL -- Oh My! PHP[Tek] June 2018
Presentation Skills for Open Source Folks
MySQL Without the SQL -- Oh My! Longhorn PHP Conference
MySQL 8 -- A new beginning : Sunshine PHP/PHP UK (updated)
ConFoo MySQL Replication Evolution : From Simple to Group Replication
Advanced MySQL Query Optimizations
Making MySQL Agile-ish
PHP Database Programming Basics -- Northeast PHP
MySQL 101 PHPTek 2017

Recently uploaded (20)

PPTX
innovation process that make everything different.pptx
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
E -tech empowerment technologies PowerPoint
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PDF
An introduction to the IFRS (ISSB) Stndards.pdf
PPTX
Introuction about ICD -10 and ICD-11 PPT.pptx
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PDF
Slides PDF The World Game (s) Eco Economic Epochs.pdf
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Introduction to the IoT system, how the IoT system works
PPTX
Digital Literacy And Online Safety on internet
PDF
The Internet -By the Numbers, Sri Lanka Edition
PDF
SASE Traffic Flow - ZTNA Connector-1.pdf
PDF
WebRTC in SignalWire - troubleshooting media negotiation
PPTX
presentation_pfe-universite-molay-seltan.pptx
PPT
tcp ip networks nd ip layering assotred slides
PDF
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
PPTX
Funds Management Learning Material for Beg
innovation process that make everything different.pptx
Design_with_Watersergyerge45hrbgre4top (1).ppt
E -tech empowerment technologies PowerPoint
Unit-1 introduction to cyber security discuss about how to secure a system
An introduction to the IFRS (ISSB) Stndards.pdf
Introuction about ICD -10 and ICD-11 PPT.pptx
Slides PPTX World Game (s) Eco Economic Epochs.pptx
Slides PDF The World Game (s) Eco Economic Epochs.pdf
Tenda Login Guide: Access Your Router in 5 Easy Steps
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
Module 1 - Cyber Law and Ethics 101.pptx
Introduction to the IoT system, how the IoT system works
Digital Literacy And Online Safety on internet
The Internet -By the Numbers, Sri Lanka Edition
SASE Traffic Flow - ZTNA Connector-1.pdf
WebRTC in SignalWire - troubleshooting media negotiation
presentation_pfe-universite-molay-seltan.pptx
tcp ip networks nd ip layering assotred slides
Automated vs Manual WooCommerce to Shopify Migration_ Pros & Cons.pdf
Funds Management Learning Material for Beg

Linuxfest Northwest Proper Care and Feeding Of a MySQL for Busy Linux Admins

  • 1. The Proper Care and Feeding of a MySQL Server for Busy Linux Admins Dave Stokes MySQL Community Manager Email: David.Stokes@Oracle.com Twiter: @Stoker Slides: slideshare.net/davidmstokes
  • 2. Safe Harbor Agreement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decision. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 3. So take anything on future products with a grain of
  • 5. Dave Stokes ● MySQL Community Manager – Former MySQL Certification Manager ● System Admin/Systems Programmer – TOPS-10, Vax/VMS, UNIX → Linux ● Worked for companies ranging alphabetically from the American Heart Association to Xerox
  • 6. You, yes, you! ● Linux Admin – Many responsibilities – Many systems ● Real, Virtual, Containers, … – Also have DBA duties ● But no DBA training
  • 7. Databases are ● Selfish ● Want entire system to self ● Messy ● Suck up memory, disk space, bandwidth, sanity ● Growing all the time ● Needs updates ● Suck up a good part of your life
  • 9. The previous opinions are ● The views of most admins (and developers) who also have DBA duties added to all their other regular tasks to help fill all their lavish spare time*
  • 10. Happy MySQL Databases ● Hardware ● Software ● Backups & Replication ● Tools to make life easier ● Configuration suggestions ● Q&A
  • 11. Hardware Happiness ● Databases LOVE memory – Spend money on good memory – Lots of it – More important than cores
  • 12. Why memory? ● Reading from memory is 100,000 faster than reading from disk – 100K miles if four times plus around the world – At one situp a second, it would take 27.78 hours to do 100K
  • 13. Disks or Disk Like Things ● Move data to separate controller/disk from logs ● Do not log on slow devices ● RAID to your favorite level – RAID 10 Minimum ● DO NOT USE Consumer Grade Disks – Use disks that are designed for 7/24/365 operation not a price point ● CACHES – disk and controller – Write through or write back caches ● Both lie ● Make sure they don't auto tune during production hours ● FusionIO cards ● Atomic rites = No Double buffering , therefor SPEED!!
  • 14. Network ● Never expose your instances to outside world ● SCRUB rigorously all user data ● Keep separate net for replication and/or backup ● MySQL authentications uses host, user & Password – Boss@Home May not equal Boss@Work – Overly enthusiastic, first match in table gets in!!! – Configure server to use IP addresses instead of names ● Bad DNS zone transfers should not bring down database access
  • 15. Slave Servers ● Slaves need to have bigger/badder hardware than master – Do more work – Use MySQL Utilities to clone masters, set up slaves – Dedicated network to avoid network contention
  • 16. Software ● Run the latest greatest version of MySQL you can – Performance – Bug fixes – Features ● Keep MySQL by itself – Databases do not play well with other services – Contention for resources – Swapping – Maybe a caching layer but watch memory use!!
  • 17. Backups & Replication ● Thou shalt make backups!!! – Make sure you backup your data so frequently it verges on being painful and then look for ways to increase that! – Know how to restore entire instances, entire databases, or a table. Save views, functions, etc. And others on staff need to be able to do this too (cross train) – Keep off site backups off site and test randomly ● Make sure multiple people can get to off site backups ● Nobody ever got fired for doing too many backups – Paranoia should be your friend!!!!
  • 18. Replication ● MySQL replications is easy to set up and misunderstand – Two types of replications ● Async – slave grabs copy of changes from master and applies them to own set of data, master unaware of what slave is doing ● Semi-sync – master waits for acknowledgment from at least one slave before proceeding – Three forms – Statement, Row, and Mixed ● Single threaded before 5.6, multi threaded for different databases in 5,6, multi infra databases threaded for 5.7
  • 19. Replication Filters ● Do not need to replicate everything – Check churn of data, maybe 1x day backup ● Filter tables ● Can change filters on the fly with 5.7 – “Something going on in manufacturing, can we get ALL of their data copied someplace?'
  • 20. Global Transaction IDs ● Each transaction has unique GTID starting 5.6 – Easy for slaves to get caught up to master – No longer have to look at file offsets on master and slave to get start position ● Saves time and $ and sanity ● Storing replication data in InnoDB tables plus adding check sums make crash safe ● Row based can exploit only sending key and changed items, not entire row of data
  • 21. Multimaster and Multisource ● Multimaster – Not recommended but many do it – System A auto_increment odd numbers and System B auto_increment even numbers ● Needs to be watched ● Multi source – MySQL 5.7 – Multiple masters send data to one slave for master backup ● Make sure sharded data does not overlap
  • 23. Oracle Database Shops! IF you also have a big Oracle DB shop: ● You can backup to the big Oracle STB backup devices – Great if you are in an Oracle shop ● MySQL can use oracle Database Firewall & Audit Vault ● Enterprise Customers – Audit Vault, Database Firewall, and more
  • 24. Replication for backup ● Replication uses three threads – Master to slave – Slave to log – Log to data ● Shut down log to data thread, run backup, then restart log to data – Data from master still stored but not written during backup but applied when backup is done
  • 25. Replication for backup Turn off SQL thread on Slave for backups for a point in time snapshot of your data
  • 26. Tools to make life easier ● There are lots of tools to make life easier for DBA chores – Monitoring ● Yes, you need to monitor – Administration ● Yes, you can type everything by hand on the command line but don't you have better things to do!? ● Documentation of instances ● Backup
  • 27. Monitoring ● Active – Watches instances and send alerts ● MySQL Enterprise Monitor (supported customers, free trial) ● SolarWinds Database Performance Manager (free trial) ● Nagios, cacti, etc. – Percona has plugins ● Vivid Cortex ● Your favorite that is not mentioned ● Helps to be able to comb historical data ● Semi-active – MySQL Workbench ● Dashboard & SYS Schema ● PhpMyAdmin ● Your favorite tool that is not mentioned
  • 28. You can't the full size of a problem at first glance!!
  • 29. MySQL Workbench ● Query tool – Visual Explain to aid in optimization ● Admin tool – Users, backup, imports, change settings – No more fat finger 'UPDATE user set 'SELECT_PRIV='Y',.... ● Dashboard and System Monitoring – Sys Schema ● Entity Relationship Mapper – Great tool for investigating new schemas – Print schema for documentation ● Migration tool ● And more!
  • 30. MySQL Utilities ● Written in Python, easy to extend ● Setup replication and automatic fail over ● Copy user settings ● Copy data ● Look for bad processed and kill 'em ● Move binary logs ● Grep for a column name in a schema ● And much more
  • 31. And more ● Percona tool kit ● Toad for MySQL from Dell ● Your favorite tool that is not mentioned
  • 32. Config Suggestions ● Turn off DNS lookups – zone transfer dies – Use skip-name-resolve ● Save/Load statistics – Use innodb_stats_persistent – See 14.13.16.1 Configuring Persistent Optimizer Statistics Parameters in the MySQL Manual – innodb_buffer_pool_dump=ON – innodb_buffer_pool_dump_at_shutdown=ON & innodb_buffer_pool_load_at_startup=ON
  • 33. Config continued ● Tune log level (5.7) – log_error_verbosity – errors, errors & warnings, E&W + notes – Send to SYSLOG ● Turn off query cache (5.7 Default) – Single threaded, use memcached/redis – Free up memory ● InnoDB buffer pool size – 75-80% of RAM
  • 34. Big Hint #1 ● BE DAMN STINGY with permissions & grants – Easier to say no than to constantly be restoring – --safe-updates or –i-am-a-dummy ● No more 'opps, I forgot the where clause' and deleting the entire table instead of 'WHERE customer_id = 12345'
  • 35. Big Hint #2 ● Sys_schema – please use – Views, functions, and procedures on top of the Performance_schema and Information_schema ● Who is hogging resources ● Indexes not being used ● Problematic queries ● Other routine PITAs ● MySQL Workbench – Second most popular database – Makes DBA work MUCH easier – please use
  • 36. Big Hint #3 ● 5.7 Security – Secure install becomes the default ● Forced root password ● No anonymous account, no test DB – Password rotation – Configure rules ● Length, characters – mysql_config_editor (5.6.6) ● Store encrypted auth credentials (no clear text) ● Use mysql --login-path=finance
  • 37. MySQL User Groups ● https://community.oracle.com/docs/DOC-91 7215 – APAC, EMEA, NA, and LA – Not one near you? Start one! ● Contact me at David.Stokes@Oracle.com – Network, Learning, Certification study groups, find a mentor
  • 38. Q&A ● Slides: slideshare.net/davidmstokes ● Twitter: @Stoker ● Email: David.Stokes@Oracle.com ● Blog: OpenSourceDBA.wordpress.com