SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
MySQL Server Backup, Restoration,
and Disaster Recovery Planning
Colin Charles <byte@sun.com>
Lenz Grimmer <lenz@sun.com>
MySQL Conference 2009, Santa Clara, CA
2009-04-23


Sun Microsystems
                                         1
Disclaimer
• Covering Linux / Unix only
• MySQL Cluster (NDB) has its own backup
  method




                                           2
Backing up MySQL data
•   When do you need backups?
•   What needs to be backed up?
•   When should backups be performed?
•   Where will the backups be stored?
•   How can backups be performed?




                                        3
When Do You Need Backups?
• Hardware failure
  > A system crash may cause some of the data in
    the databases to be lost
  > A hard­disk failure will most certainly lead to lost
    data
• User/Application failure
  > Accidental DROP TABLE or malformed DELETE
    FROM statements
  > Editing the table files with text editors, usually
    leading to corrupt tables



                                                           4
What needs to be backed up?
• Database content
  > for full backups
  > logical or physical backup
• Log files
  > for incremental backups
  > point­in­time recovery
• Configuration information
  > /etc/my.cnf
  > Cron jobs
• Consider using an SCM (bzr, git, hg) for
  config files
                                             5
When should backups be performed?
• On a regular basis
• Not during high usage peaks (off hours)
• Static data can be backed up less
  frequently




                                            6
Where to store backups?
• On the database server
 > At least on a separate file system/volume or hard disk
   drive
• Copied to another server
 > On or off site
 > Cloud storage (using encryption)
• Backed up to tape/disk
 > Stored on or off site
• Choose multiple locations



                                                            7
The Data Directory
• Databases and most log and status files are
  stored in the data directory by default
• Default directory compiled into the server
  > /usr/local/mysql/data/ (tarball installation)
  > /var/lib/mysql (RPM packages)
• Data directory location can be specified during
  server startup with
  ­­datadir=/path/to/datadir/
• Find out the location by asking the server
  mysql> SHOW VARIABLES like 'data%';



                                                    8
The Binary Log
• Contains all SQL commands that change data
  (statement based) or the actual data that was modified
  (row­based)
• Also contains additional information about each query
  (e.g. query execution time)
• Binary log is stored in an efficient binary format
• Use mysqlbinlog to decipher the log contents
• Log turned on with ­­log­bin[=file_name]
• Update logs are created in sequence
  e.g. file_name­bin.001, file_name­bin.002, etc.
• Binary log is transaction­compatible
• mysqld creates binary log index file which contains
  names of the binary log files used

                                                           9
Managing The Binary Log
   Purpose of the Binary Log:
     Enable replication
     Ease crash recovery


 SHOW MASTER LOGS shows all binary log files
  residing on the server
 FLUSH LOGS or restarting the server creates a

  new file
 RESET MASTER deletes all binary log files

 PURGE MASTER deletes all binary log files up to

  a certain point
 Don't delete logs that slaves still need



                                                    10
mysqldump
 Dumps table structure and data into SQL statements
  $ mysqldump mydb > mydb.20090413.sql
 Dumps individual tables or whole databases

 Default output from mysqldump consists of SQL

  statements:
  – CREATE TABLE statements for table structure
  – INSERT statements for the data
 Can also be used directly as input into another mysqld

  server (without creating any files)
   $ mysqldump ­­opt world | mysql ­

    hwork.mysql.com world



                                                           11
mysqldump hints
• Use ­­single­transaction when
  backing up InnoDB tables
• ­­lock­all­tables is useful for
  performing consistent MyISAM backups
 > But locks all DML statements until backup is
   done
• ­­flush­logs flushes the binary log file
  (checkpointing)



                                                  12
Recovering from Backups
• Restoring tables to the state before a crash requires
    both the backup files and the binary log
  > Restore the tables to the state they were at the time
    of the backup from the backup files
  > Extract the queries issued between the backup and
    now from synchronised binary logs
• If you are recovering data lost due to unwise
  queries, remember not to issue them again

       DB Recovery = Last full backup & binlogs



                                                            13
Example SQL level restore
• Restore the last full backup
  mysql < backup.sql

• Apply all incremental changes done after
  the last full backup
  mysqlbinlog hostname­bin.000001 | mysql




                                             14
MySQL table files backup
• Also called “physical” backup
• MyISAM Database files can simply be
  copied after issuing FLUSH TABLES
  WITH READ LOCK;
• The mysqlhotcopy Perl script automates
  this process
• Locking all tables for consistency can be
  expensive, if the file backup operation
  takes a long time


                                              15
OSS backup tools
• The usual suspects: cp, tar, cpio, gzip,
  zip called in a shell script via a cron job
• rsync or unison for bandwidth­friendly,
  remote backups
• Don't use these on live tables!
  (Remember ma.gnolia.com?)
• Complete network­based backup solutions
  like afbackup, Amanda or Bacula provide
  more sophisticated features (e.g. catalogs)


                                                16
XtraBackup / Maatkit
• http://percona.com/percona­lab.html
• Online backup for InnoDB (and XtraDB)
• Does not work with the InnoDB plugin
• Add this to my.cnf:
  > [xtrabackup]
    target_dir = /home/backups
• To backup:
  > xtrabackup –backup
• http://maatkit.org/
• mk­parallel­dump / mk­parallel­restore
  > Multithreaded Perl wrapper scripts
                                           17
Linux backup support
• File system snapshots
  > LVM
  > Zumastor
  > btrfs
  > R1Soft Linux Hot Copy
• DRBD (“RAID1 over the network”)
• Distributed file systems
 >   OpenAFS
 >   GFS
 >   Lustre
 >   Novell iFolder
                                    18
Backup using file system snapshots
• File system snapshots provide a very
  convenient and fast backup solution for
  backing up entire databases without
  disruption
• Snapshot volume size does not need to be
  very large (10­15% are sufficient in a
  typical scenario)
• Backup of files from a snapshot volume
  can be performed with any tool


                                             19
Linux LVM snapshot creation
 Basic principle:
 mysql> FLUSH TABLES WITH READ LOCK
 $ lvcreate ­s –­size=<size> ­­name=backup
 <LV>
 mysql> UNLOCK TABLES
 $ mount /dev/<VG>/backup /mnt
 $ tar czvf backup.tar.gz /mnt/*
 $ umount /mnt
 $ lvremove /dev/<VG>/backup




                                             20
Benefits of MySQL Snapshot Backups
•   “Almost hot” (no downtime)
•   Supports all storage engines
•   Fast, low overhead
•   Easy integration
•   Can be combined with log recovery
•   Fast recovery
•   (Usually) Free


                                        21
Snapshot Backup Caveats
• Not incremental
• InnoDB ignores FLUSH TABLES WITH
  READ LOCK
• FLUSH TABLES performance impact
• Possible I/O performance impact while
  snapshot is active (Linux LVM)
• Handling data spread on multiple volumes
  (DB logs on separate LV or DBs spread
  across multiple LVs)

                                             22
Linux LVM Snapshots
• Atomic, instant & exact copy of another LV
• Low disk space requirements (COW)
• LVM2 provides read & write access on
  snapshots
 > Useful for testing purposes (e.g. software
   updates)
 > Or cloning Xen DomU instances
 > Or starting another MySQL instance




                                                23
Linux LVM Overview




                     24
ZFS
• 128bit File System
• Solaris/OpenSolaris, FreeBSD, Linux (zfs­
  fuse), Mac OS X
• Simple administration
• Pooled storage (no partitions/volumes)
• Copy­on­write transactions




                                              25
ZFS (2)
• Checksums, self­healing (no silent data
  corruption)
• Striping / mirroring / RAID / Compression
• ZFS Volumes (iSCSI)
• CIFS / NFS




                                              26
ZFS Snapshots
• Read­only, point­in­time copy of the
  filesystem
• Instantaneous creation
• (Virtually) unlimited number of snapshots
• Initially, no additional space used
• Writable copies (Clones)
• Incremental replication (zfs send/receive)
• Snapshots are simple & cheap to create!
 zfs snapshot fsname@snapname

                                               27
The mylvmbackup script
• A Perl script for quickly creating MySQL backups
  using LVM snapshots
• Snapshots are mounted to a temporary directory
  and all data is backed up using tar,rsync or
  rsnap
• Timestamped archive names allow running
  mylvmbackup many times without risking to
  overwrite old archives
• Can perform InnoDB log recovery on the
  snapshot prior to backup (LVM2)
• Requires Perl, DBI and DBD::mysql
• http://www.lenzg.net/mylvmbackup/
                                                     28
MySQL replication
• Backing up a replication slave is less time­critical
  (Master is not blocked for updates)
• A slave can use different storage engines
• One Master can replicate to many slaves
• Keep the limitations of MySQL replication in
  mind
• Make sure to back up the master.info and
  relay-log.info files as well as any
  SQL_LOAD-* files (if LOAD DATA INFILE is
  replicated)


                                                         29
Commercial backup solutions
•   Acronis True Image
•   ARCServe
•   Arkeia
•   InnoDB HotBackup
•   SEP sesam
•   Veritas vxfs snapshots
•   R1Soft CDP
•   Zmanda Recovery Manager (ZRM)




                                    30
Backup Method Comparison
• Output from mysqldump is portable to any other
  DBMS (without the ­­opt option) whereas
  copied files only work with MySQL
• Full backups are expensive
• Restoring from logs can be tricky
• The file copying methods are much faster than
  mysqldump
• So it comes down to your preferences:
  – Which tool do you prefer to use
  – Speed vs. portability


                                                   31
Backup Principles
• Perform backups regularly
• Turn on the binary update log
  > Update logs are needed to restore the database without
    losing any data
• Synchronise update logs with the backup files
  > Use FLUSH LOGS
• Name your backups consistently and understandably
  > Include the date in the file name mydb.20090414.sql
• Store your backups on a different file system than where
  your databases are




                                                             32
General backup notes
• Putting the binary logs on a different file system
  (or even a different drive) than the data directory
  is recommended (increases performance and
  avoids data loss)
• Verify the backup is consistent and complete!
• Define backup schedules and policies as well
  as recovery procedures
• Test that these actually work!




                                                        33
The MySQL Online Backup API
• An API to perform a streaming MySQL online
  backup, independent of the Storage Engine
• Transactional tables will contain data only from
  committed transactions
• Non­transactional tables will contain data only
  from completed statements
• Referential integrity will be maintained between
  all tables backed up with a specific backup
  command
• Now available on MySQL Forge:
  http://forge.mysql.com/wiki/OnlineBackup


                                                     34
Online Backup example
• Future (MySQL 6)
• Commands
 > BACKUP DATABASE sakila TO 'sakila­
   backup.sql';
 > Metadata: SELECT * FROM
   mysql.online_backup WHERE
   backup_id = 1 G
 > RESTORE FROM 'sakila­backup.sql';
 > Metadata: SELECT * FROM
   mysql.online_backup WHERE
   backup_id = 2 G

                                        35
Disaster Recovery
• Business continuity planning
 > 1. Minimize financial loss
 > 2. Reduce time to restore operations
 > 3. Increase sense of security
• Emergency planning
 > People involved
 > Steps to perform
 > Location of offsite backups?




                                          36
Discussion


             Thank you!

    Lenz Grimmer <lenz@sun.com>
            http://lenzg.net/
    Colin Charles <byte@sun.com>
           http://bytebot.net/


                                   37
The Error Log
• When started with mysqld_safe, all error
  messages are directed to the error log
• The log contains info on when mysqld was started
  and stopped as well as errors found when running
  $ cat /var/log/mysql.err
  000929 15:29:45 mysqld started
  /usr/sbin/mysqld: ready for connections
  000929 15:31:15 Aborted connection 1 to db: 'unconnected'
  user: 'root' host: `localhost' (Got an error writing communication
      packets)
  000929 15:31:15 /usr/local/mysql/bin/mysqld: Normal shutdown

  000929 15:31:15   /usr/local/mysql/bin/mysqld: Shutdown Complete

  000929 15:31:54 mysqld started
  /usr/sbin/mysqld: ready for connections




                                                                       38
Backing Up InnoDB Databases
•   Use mysqldump ­­single transaction to make an
    on­line backup
•   InnoDB Hot Backup (commercial)
•   To take a ’binary’ backup, do the following:
    1. Shutdown the MySQL server
    2. Copy your data files, InnoDB log files, .frm files and
       my.cnf file(s) to a safe location
    3. Restart the server
•   It is a good idea to backup with mysqldump also, since
    an error might occur in a binary file without you noticing
    it



                                                                 39

Más contenido relacionado

La actualidad más candente

Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningRUDDER
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBMydbops
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBMike Dirolf
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL AdministrationEDB
 
RocksDB detail
RocksDB detailRocksDB detail
RocksDB detailMIJIN AN
 
High Availability With DRBD & Heartbeat
High Availability With DRBD & HeartbeatHigh Availability With DRBD & Heartbeat
High Availability With DRBD & HeartbeatChris Barber
 
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutOpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutSaju Madhavan
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바NeoClova
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookThe Hive
 
Thousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OGeorge Cao
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index CookbookMYXPLAIN
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseenissoz
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesYoshinori Matsunobu
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm Chandler Huang
 

La actualidad más candente (20)

Apache ZooKeeper
Apache ZooKeeperApache ZooKeeper
Apache ZooKeeper
 
Cobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioningCobbler - Fast and reliable multi-OS provisioning
Cobbler - Fast and reliable multi-OS provisioning
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDB
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Mastering PostgreSQL Administration
Mastering PostgreSQL AdministrationMastering PostgreSQL Administration
Mastering PostgreSQL Administration
 
RocksDB detail
RocksDB detailRocksDB detail
RocksDB detail
 
High Availability With DRBD & Heartbeat
High Availability With DRBD & HeartbeatHigh Availability With DRBD & Heartbeat
High Availability With DRBD & Heartbeat
 
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutOpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
 
MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바MySQL Administrator 2021 - 네오클로바
MySQL Administrator 2021 - 네오클로바
 
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of FacebookTech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
 
Thousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/OThousands of Threads and Blocking I/O
Thousands of Threads and Blocking I/O
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 
MySQL Index Cookbook
MySQL Index CookbookMySQL Index Cookbook
MySQL Index Cookbook
 
CockroachDB
CockroachDBCockroachDB
CockroachDB
 
HBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBaseHBase and HDFS: Understanding FileSystem Usage in HBase
HBase and HDFS: Understanding FileSystem Usage in HBase
 
MyRocks Deep Dive
MyRocks Deep DiveMyRocks Deep Dive
MyRocks Deep Dive
 
Intro to HBase
Intro to HBaseIntro to HBase
Intro to HBase
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
 

Destacado

Deep Dive on Amazon Relational Database Service
Deep Dive on Amazon Relational Database ServiceDeep Dive on Amazon Relational Database Service
Deep Dive on Amazon Relational Database ServiceAmazon Web Services
 
AWS Blackbelt NINJA Dojo – Dean Samuels
AWS Blackbelt NINJA Dojo – Dean SamuelsAWS Blackbelt NINJA Dojo – Dean Samuels
AWS Blackbelt NINJA Dojo – Dean SamuelsAmazon Web Services
 
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014Amazon Web Services
 
Disaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsDisaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsHarish Ganesan
 
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)Amazon Web Services
 

Destacado (6)

Deep Dive on Amazon RDS
Deep Dive on Amazon RDSDeep Dive on Amazon RDS
Deep Dive on Amazon RDS
 
Deep Dive on Amazon Relational Database Service
Deep Dive on Amazon Relational Database ServiceDeep Dive on Amazon Relational Database Service
Deep Dive on Amazon Relational Database Service
 
AWS Blackbelt NINJA Dojo – Dean Samuels
AWS Blackbelt NINJA Dojo – Dean SamuelsAWS Blackbelt NINJA Dojo – Dean Samuels
AWS Blackbelt NINJA Dojo – Dean Samuels
 
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
(SDD403) Amazon RDS for MySQL Deep Dive | AWS re:Invent 2014
 
Disaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprintsDisaster Recovery using AWS -Architecture blueprints
Disaster Recovery using AWS -Architecture blueprints
 
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)
AWS re:Invent 2016: Deep Dive on Amazon Relational Database Service (DAT305)
 

Similar a MySQL Server Backup, Restoration, And Disaster Recovery Planning Presentation

MySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningMySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningLenz Grimmer
 
Collaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAsCollaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAsNelson Calero
 
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest Lenz Grimmer
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsMark Leith
 
MYSQLDUMP & ZRM COMMUNITY (EN)
MYSQLDUMP & ZRM COMMUNITY (EN)MYSQLDUMP & ZRM COMMUNITY (EN)
MYSQLDUMP & ZRM COMMUNITY (EN)Cédric P
 
MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)Mydbops
 
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's ToolchestMaking MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's ToolchestLenz Grimmer
 
Rman Presentation
Rman PresentationRman Presentation
Rman PresentationRick van Ek
 
A Backup Today Saves Tomorrow
A Backup Today Saves TomorrowA Backup Today Saves Tomorrow
A Backup Today Saves TomorrowAndrew Moore
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)MongoDB
 
My sql introduction for Bestcom
My sql introduction for BestcomMy sql introduction for Bestcom
My sql introduction for BestcomIvan Tu
 
My S Q L Introduction for 1 day training
My S Q L  Introduction for 1 day trainingMy S Q L  Introduction for 1 day training
My S Q L Introduction for 1 day trainingIvan Tu
 
Infrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxInfrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxMiklos Szel
 
My sql with enterprise storage
My sql with enterprise storageMy sql with enterprise storage
My sql with enterprise storageCaroline_Rose
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsMydbops
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!WordCamp Cape Town
 
Training Slides: 203 - Backup & Recovery
Training Slides: 203 - Backup & RecoveryTraining Slides: 203 - Backup & Recovery
Training Slides: 203 - Backup & RecoveryContinuent
 

Similar a MySQL Server Backup, Restoration, And Disaster Recovery Planning Presentation (20)

MySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery PlanningMySQL Server Backup, Restoration, and Disaster Recovery Planning
MySQL Server Backup, Restoration, and Disaster Recovery Planning
 
Collaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAsCollaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAs
 
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
Making MySQL Administration a Breeze - A look into a MySQL DBA's toolchest
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
Running MySQL on Linux
Running MySQL on LinuxRunning MySQL on Linux
Running MySQL on Linux
 
MySQL database
MySQL databaseMySQL database
MySQL database
 
MYSQLDUMP & ZRM COMMUNITY (EN)
MYSQLDUMP & ZRM COMMUNITY (EN)MYSQLDUMP & ZRM COMMUNITY (EN)
MYSQLDUMP & ZRM COMMUNITY (EN)
 
MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)MySQL Enterprise Backup (MEB)
MySQL Enterprise Backup (MEB)
 
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's ToolchestMaking MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest
Making MySQL Administration a Breeze - A Look Into a MySQL DBA's Toolchest
 
Rman Presentation
Rman PresentationRman Presentation
Rman Presentation
 
A Backup Today Saves Tomorrow
A Backup Today Saves TomorrowA Backup Today Saves Tomorrow
A Backup Today Saves Tomorrow
 
Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)Deployment Strategies (Mongo Austin)
Deployment Strategies (Mongo Austin)
 
My sql introduction for Bestcom
My sql introduction for BestcomMy sql introduction for Bestcom
My sql introduction for Bestcom
 
My S Q L Introduction for 1 day training
My S Q L  Introduction for 1 day trainingMy S Q L  Introduction for 1 day training
My S Q L Introduction for 1 day training
 
Infrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black BoxInfrastructure review - Shining a light on the Black Box
Infrastructure review - Shining a light on the Black Box
 
My sql with enterprise storage
My sql with enterprise storageMy sql with enterprise storage
My sql with enterprise storage
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!Anthony Somerset - Site Speed = Success!
Anthony Somerset - Site Speed = Success!
 
Tuning Linux for MongoDB
Tuning Linux for MongoDBTuning Linux for MongoDB
Tuning Linux for MongoDB
 
Training Slides: 203 - Backup & Recovery
Training Slides: 203 - Backup & RecoveryTraining Slides: 203 - Backup & Recovery
Training Slides: 203 - Backup & Recovery
 

Más de Colin Charles

Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Colin Charles
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?Colin Charles
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud Colin Charles
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerColin Charles
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! Colin Charles
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted CloudColin Charles
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialColin Charles
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Colin Charles
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data storesColin Charles
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleColin Charles
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesColin Charles
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Colin Charles
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLColin Charles
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataColin Charles
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016Colin Charles
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialColin Charles
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityColin Charles
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures Colin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failuresColin Charles
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failuresColin Charles
 

Más de Colin Charles (20)

Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0Differences between MariaDB 10.3 & MySQL 8.0
Differences between MariaDB 10.3 & MySQL 8.0
 
What is MariaDB Server 10.3?
What is MariaDB Server 10.3?What is MariaDB Server 10.3?
What is MariaDB Server 10.3?
 
Databases in the hosted cloud
Databases in the hosted cloud Databases in the hosted cloud
Databases in the hosted cloud
 
MySQL features missing in MariaDB Server
MySQL features missing in MariaDB ServerMySQL features missing in MariaDB Server
MySQL features missing in MariaDB Server
 
The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it! The MySQL ecosystem - understanding it, not running away from it!
The MySQL ecosystem - understanding it, not running away from it!
 
Databases in the Hosted Cloud
Databases in the Hosted CloudDatabases in the Hosted Cloud
Databases in the Hosted Cloud
 
Best practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability TutorialBest practices for MySQL High Availability Tutorial
Best practices for MySQL High Availability Tutorial
 
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
Percona ServerをMySQL 5.6と5.7用に作るエンジニアリング(そしてMongoDBのヒント)
 
Capacity planning for your data stores
Capacity planning for your data storesCapacity planning for your data stores
Capacity planning for your data stores
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
Lessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companiesLessons from {distributed,remote,virtual} communities and companies
Lessons from {distributed,remote,virtual} communities and companies
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
 
MariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQLMariaDB Server Compatibility with MySQL
MariaDB Server Compatibility with MySQL
 
Securing your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server dataSecuring your MySQL / MariaDB Server data
Securing your MySQL / MariaDB Server data
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
 
The Complete MariaDB Server tutorial
The Complete MariaDB Server tutorialThe Complete MariaDB Server tutorial
The Complete MariaDB Server tutorial
 
Best practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High AvailabilityBest practices for MySQL/MariaDB Server/Percona Server High Availability
Best practices for MySQL/MariaDB Server/Percona Server High Availability
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 

Último

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

MySQL Server Backup, Restoration, And Disaster Recovery Planning Presentation

  • 1. MySQL Server Backup, Restoration, and Disaster Recovery Planning Colin Charles <byte@sun.com> Lenz Grimmer <lenz@sun.com> MySQL Conference 2009, Santa Clara, CA 2009-04-23 Sun Microsystems 1
  • 2. Disclaimer • Covering Linux / Unix only • MySQL Cluster (NDB) has its own backup method 2
  • 3. Backing up MySQL data • When do you need backups? • What needs to be backed up? • When should backups be performed? • Where will the backups be stored? • How can backups be performed? 3
  • 4. When Do You Need Backups? • Hardware failure > A system crash may cause some of the data in the databases to be lost > A hard­disk failure will most certainly lead to lost data • User/Application failure > Accidental DROP TABLE or malformed DELETE FROM statements > Editing the table files with text editors, usually leading to corrupt tables 4
  • 5. What needs to be backed up? • Database content > for full backups > logical or physical backup • Log files > for incremental backups > point­in­time recovery • Configuration information > /etc/my.cnf > Cron jobs • Consider using an SCM (bzr, git, hg) for config files 5
  • 6. When should backups be performed? • On a regular basis • Not during high usage peaks (off hours) • Static data can be backed up less frequently 6
  • 7. Where to store backups? • On the database server > At least on a separate file system/volume or hard disk drive • Copied to another server > On or off site > Cloud storage (using encryption) • Backed up to tape/disk > Stored on or off site • Choose multiple locations 7
  • 8. The Data Directory • Databases and most log and status files are stored in the data directory by default • Default directory compiled into the server > /usr/local/mysql/data/ (tarball installation) > /var/lib/mysql (RPM packages) • Data directory location can be specified during server startup with ­­datadir=/path/to/datadir/ • Find out the location by asking the server mysql> SHOW VARIABLES like 'data%'; 8
  • 9. The Binary Log • Contains all SQL commands that change data (statement based) or the actual data that was modified (row­based) • Also contains additional information about each query (e.g. query execution time) • Binary log is stored in an efficient binary format • Use mysqlbinlog to decipher the log contents • Log turned on with ­­log­bin[=file_name] • Update logs are created in sequence e.g. file_name­bin.001, file_name­bin.002, etc. • Binary log is transaction­compatible • mysqld creates binary log index file which contains names of the binary log files used 9
  • 10. Managing The Binary Log  Purpose of the Binary Log:  Enable replication  Ease crash recovery  SHOW MASTER LOGS shows all binary log files residing on the server  FLUSH LOGS or restarting the server creates a new file  RESET MASTER deletes all binary log files  PURGE MASTER deletes all binary log files up to a certain point  Don't delete logs that slaves still need 10
  • 11. mysqldump  Dumps table structure and data into SQL statements $ mysqldump mydb > mydb.20090413.sql  Dumps individual tables or whole databases  Default output from mysqldump consists of SQL statements: – CREATE TABLE statements for table structure – INSERT statements for the data  Can also be used directly as input into another mysqld server (without creating any files)  $ mysqldump ­­opt world | mysql ­ hwork.mysql.com world 11
  • 12. mysqldump hints • Use ­­single­transaction when backing up InnoDB tables • ­­lock­all­tables is useful for performing consistent MyISAM backups > But locks all DML statements until backup is done • ­­flush­logs flushes the binary log file (checkpointing) 12
  • 13. Recovering from Backups • Restoring tables to the state before a crash requires both the backup files and the binary log > Restore the tables to the state they were at the time of the backup from the backup files > Extract the queries issued between the backup and now from synchronised binary logs • If you are recovering data lost due to unwise queries, remember not to issue them again DB Recovery = Last full backup & binlogs 13
  • 14. Example SQL level restore • Restore the last full backup mysql < backup.sql • Apply all incremental changes done after the last full backup mysqlbinlog hostname­bin.000001 | mysql 14
  • 15. MySQL table files backup • Also called “physical” backup • MyISAM Database files can simply be copied after issuing FLUSH TABLES WITH READ LOCK; • The mysqlhotcopy Perl script automates this process • Locking all tables for consistency can be expensive, if the file backup operation takes a long time 15
  • 16. OSS backup tools • The usual suspects: cp, tar, cpio, gzip, zip called in a shell script via a cron job • rsync or unison for bandwidth­friendly, remote backups • Don't use these on live tables! (Remember ma.gnolia.com?) • Complete network­based backup solutions like afbackup, Amanda or Bacula provide more sophisticated features (e.g. catalogs) 16
  • 17. XtraBackup / Maatkit • http://percona.com/percona­lab.html • Online backup for InnoDB (and XtraDB) • Does not work with the InnoDB plugin • Add this to my.cnf: > [xtrabackup] target_dir = /home/backups • To backup: > xtrabackup –backup • http://maatkit.org/ • mk­parallel­dump / mk­parallel­restore > Multithreaded Perl wrapper scripts 17
  • 18. Linux backup support • File system snapshots > LVM > Zumastor > btrfs > R1Soft Linux Hot Copy • DRBD (“RAID1 over the network”) • Distributed file systems > OpenAFS > GFS > Lustre > Novell iFolder 18
  • 19. Backup using file system snapshots • File system snapshots provide a very convenient and fast backup solution for backing up entire databases without disruption • Snapshot volume size does not need to be very large (10­15% are sufficient in a typical scenario) • Backup of files from a snapshot volume can be performed with any tool 19
  • 20. Linux LVM snapshot creation Basic principle: mysql> FLUSH TABLES WITH READ LOCK $ lvcreate ­s –­size=<size> ­­name=backup <LV> mysql> UNLOCK TABLES $ mount /dev/<VG>/backup /mnt $ tar czvf backup.tar.gz /mnt/* $ umount /mnt $ lvremove /dev/<VG>/backup 20
  • 21. Benefits of MySQL Snapshot Backups • “Almost hot” (no downtime) • Supports all storage engines • Fast, low overhead • Easy integration • Can be combined with log recovery • Fast recovery • (Usually) Free 21
  • 22. Snapshot Backup Caveats • Not incremental • InnoDB ignores FLUSH TABLES WITH READ LOCK • FLUSH TABLES performance impact • Possible I/O performance impact while snapshot is active (Linux LVM) • Handling data spread on multiple volumes (DB logs on separate LV or DBs spread across multiple LVs) 22
  • 23. Linux LVM Snapshots • Atomic, instant & exact copy of another LV • Low disk space requirements (COW) • LVM2 provides read & write access on snapshots > Useful for testing purposes (e.g. software updates) > Or cloning Xen DomU instances > Or starting another MySQL instance 23
  • 25. ZFS • 128bit File System • Solaris/OpenSolaris, FreeBSD, Linux (zfs­ fuse), Mac OS X • Simple administration • Pooled storage (no partitions/volumes) • Copy­on­write transactions 25
  • 26. ZFS (2) • Checksums, self­healing (no silent data corruption) • Striping / mirroring / RAID / Compression • ZFS Volumes (iSCSI) • CIFS / NFS 26
  • 27. ZFS Snapshots • Read­only, point­in­time copy of the filesystem • Instantaneous creation • (Virtually) unlimited number of snapshots • Initially, no additional space used • Writable copies (Clones) • Incremental replication (zfs send/receive) • Snapshots are simple & cheap to create! zfs snapshot fsname@snapname 27
  • 28. The mylvmbackup script • A Perl script for quickly creating MySQL backups using LVM snapshots • Snapshots are mounted to a temporary directory and all data is backed up using tar,rsync or rsnap • Timestamped archive names allow running mylvmbackup many times without risking to overwrite old archives • Can perform InnoDB log recovery on the snapshot prior to backup (LVM2) • Requires Perl, DBI and DBD::mysql • http://www.lenzg.net/mylvmbackup/ 28
  • 29. MySQL replication • Backing up a replication slave is less time­critical (Master is not blocked for updates) • A slave can use different storage engines • One Master can replicate to many slaves • Keep the limitations of MySQL replication in mind • Make sure to back up the master.info and relay-log.info files as well as any SQL_LOAD-* files (if LOAD DATA INFILE is replicated) 29
  • 30. Commercial backup solutions • Acronis True Image • ARCServe • Arkeia • InnoDB HotBackup • SEP sesam • Veritas vxfs snapshots • R1Soft CDP • Zmanda Recovery Manager (ZRM) 30
  • 31. Backup Method Comparison • Output from mysqldump is portable to any other DBMS (without the ­­opt option) whereas copied files only work with MySQL • Full backups are expensive • Restoring from logs can be tricky • The file copying methods are much faster than mysqldump • So it comes down to your preferences: – Which tool do you prefer to use – Speed vs. portability 31
  • 32. Backup Principles • Perform backups regularly • Turn on the binary update log > Update logs are needed to restore the database without losing any data • Synchronise update logs with the backup files > Use FLUSH LOGS • Name your backups consistently and understandably > Include the date in the file name mydb.20090414.sql • Store your backups on a different file system than where your databases are 32
  • 33. General backup notes • Putting the binary logs on a different file system (or even a different drive) than the data directory is recommended (increases performance and avoids data loss) • Verify the backup is consistent and complete! • Define backup schedules and policies as well as recovery procedures • Test that these actually work! 33
  • 34. The MySQL Online Backup API • An API to perform a streaming MySQL online backup, independent of the Storage Engine • Transactional tables will contain data only from committed transactions • Non­transactional tables will contain data only from completed statements • Referential integrity will be maintained between all tables backed up with a specific backup command • Now available on MySQL Forge: http://forge.mysql.com/wiki/OnlineBackup 34
  • 35. Online Backup example • Future (MySQL 6) • Commands > BACKUP DATABASE sakila TO 'sakila­ backup.sql'; > Metadata: SELECT * FROM mysql.online_backup WHERE backup_id = 1 G > RESTORE FROM 'sakila­backup.sql'; > Metadata: SELECT * FROM mysql.online_backup WHERE backup_id = 2 G 35
  • 36. Disaster Recovery • Business continuity planning > 1. Minimize financial loss > 2. Reduce time to restore operations > 3. Increase sense of security • Emergency planning > People involved > Steps to perform > Location of offsite backups? 36
  • 37. Discussion Thank you! Lenz Grimmer <lenz@sun.com> http://lenzg.net/ Colin Charles <byte@sun.com> http://bytebot.net/ 37
  • 38. The Error Log • When started with mysqld_safe, all error messages are directed to the error log • The log contains info on when mysqld was started and stopped as well as errors found when running $ cat /var/log/mysql.err 000929 15:29:45 mysqld started /usr/sbin/mysqld: ready for connections 000929 15:31:15 Aborted connection 1 to db: 'unconnected' user: 'root' host: `localhost' (Got an error writing communication packets) 000929 15:31:15 /usr/local/mysql/bin/mysqld: Normal shutdown 000929 15:31:15 /usr/local/mysql/bin/mysqld: Shutdown Complete 000929 15:31:54 mysqld started /usr/sbin/mysqld: ready for connections 38
  • 39. Backing Up InnoDB Databases • Use mysqldump ­­single transaction to make an on­line backup • InnoDB Hot Backup (commercial) • To take a ’binary’ backup, do the following: 1. Shutdown the MySQL server 2. Copy your data files, InnoDB log files, .frm files and my.cnf file(s) to a safe location 3. Restart the server • It is a good idea to backup with mysqldump also, since an error might occur in a binary file without you noticing it 39