ユーザ用ツール

サイト用ツール


mysql:xtrabackup

Percona XtraBackup

Add Persona yum repository

# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

Testing the repository

# yum list | grep percona-xtrabackup
percona-xtrabackup.x86_64                  2.3.4-1.el6                 percona-release-x86_64
percona-xtrabackup-20.x86_64               2.0.8-587.rhel6             percona-release-x86_64
percona-xtrabackup-20-debuginfo.x86_64     2.0.8-587.rhel6             percona-release-x86_64
percona-xtrabackup-20-test.x86_64          2.0.8-587.rhel6             percona-release-x86_64
percona-xtrabackup-21.x86_64               2.1.9-746.rhel6             percona-release-x86_64
percona-xtrabackup-21-debuginfo.x86_64     2.1.9-746.rhel6             percona-release-x86_64
percona-xtrabackup-22.x86_64               2.2.13-1.el6                percona-release-x86_64
percona-xtrabackup-22-debuginfo.x86_64     2.2.13-1.el6                percona-release-x86_64
percona-xtrabackup-24.x86_64               2.4.2-1.el6                 percona-release-x86_64
percona-xtrabackup-24-debuginfo.x86_64     2.4.2-1.el6                 percona-release-x86_64
percona-xtrabackup-debuginfo.x86_64        2.3.4-1.el6                 percona-release-x86_64
percona-xtrabackup-test.x86_64             2.3.4-1.el6                 percona-release-x86_64
percona-xtrabackup-test-21.x86_64          2.1.9-746.rhel6             percona-release-x86_64
percona-xtrabackup-test-22.x86_64          2.2.13-1.el6                percona-release-x86_64
percona-xtrabackup-test-24.x86_64          2.4.2-1.el6                 percona-release-x86_64

Install XtraBackup

# yum install percona-xtrabackup

help

# innobackupex --help                                                  
Options:
    --apply-log
        Prepare a backup in BACKUP-DIR by applying the transaction log file
        named "xtrabackup_logfile" located in the same directory. Also,
        create new transaction logs. The InnoDB configuration is read from
        the file "backup-my.cnf".

    --compress
        This option instructs xtrabackup to compress backup copies of InnoDB
        data files. It is passed directly to the xtrabackup child process.
        Try 'xtrabackup --help' for more details.

    --compress-threads
        This option specifies the number of worker threads that will be used
        for parallel compression. It is passed directly to the xtrabackup
        child process. Try 'xtrabackup --help' for more details.

    --copy-back
        Copy all the files in a previously made backup from the backup
        directory to their original locations.

    --databases=LIST
        This option specifies the list of databases that innobackupex should
        back up. The option accepts a string argument or path to file that
        contains the list of databases to back up. The list is of the form
        "databasename1[.table_name1] databasename2[.table_name2] . . .". If
        this option is not specified, all databases containing MyISAM and
        InnoDB tables will be backed up. Please make sure that --databases
        contains all of the InnoDB databases and tables, so that all of the
        innodb.frm files are also backed up. In case the list is very long,
        this can be specified in a file, and the full path of the file can
        be specified instead of the list. (See option --tables-file.)

    --defaults-file=[MY.CNF]
        This option specifies what file to read the default MySQL options
        from. The option accepts a string argument. It is also passed
        directly to xtrabackup's --defaults-file option. See the xtrabackup
        documentation for details.

    --defaults-extra-file=[MY.CNF]
        This option specifies what extra file to read the default MySQL
        options from before the standard defaults-file. The option accepts a
        string argument. It is also passed directly to xtrabackup's
        --defaults-extra-file option. See the xtrabackup documentation for
        details.

    --export
        This option is passed directly to xtrabackup's --export option. It
        enables exporting individual tables for import into another server.
        See the xtrabackup documentation for details.

    --extra-lsndir=DIRECTORY
        This option specifies the directory in which to save an extra copy
        of the "xtrabackup_checkpoints" file. The option accepts a string
        argument. It is passed directly to xtrabackup's --extra-lsndir
        option. See the xtrabackup documentation for details.

    --galera-info
        This options creates the xtrabackup_galera_info file which contians
        the local node state at the time of the backup. Option should be
        used when performing the backup of Percona-XtraDB-Cluster.

    --help
        This option displays a help screen and exits.

    --host=HOST
        This option specifies the host to use when connecting to the
        database server with TCP/IP. The option accepts a string argument.
        It is passed to the mysql child process without alteration. See
        mysql --help for details.

    --ibbackup=IBBACKUP-BINARY
        This option specifies which xtrabackup binary should be used. The
        option accepts a string argument. IBBACKUP-BINARY should be the
        command used to run XtraBackup. The option can be useful if the
        xtrabackup binary is not in your search path or working directory.
        If this option is not specified, innobackupex attempts to determine
        the binary to use automatically. By default, "xtrabackup" is the
        command used. However, when option --copy-back is specified,
        "xtrabackup_51" is the command used. And when option --apply-log is
        specified, the binary is used whose name is in the file
        "xtrabackup_binary" in the backup directory, if that file exists.

    --include=REGEXP
        This option is a regular expression to be matched against table
        names in databasename.tablename format. It is passed directly to
        xtrabackup's --tables option. See the xtrabackup documentation for
        details.

    --incremental
        This option tells xtrabackup to create an incremental backup, rather
        than a full one. It is passed to the xtrabackup child process. When
        this option is specified, either --incremental-lsn or
        --incremental-basedir can also be given. If neither option is given,
        option --incremental-basedir is passed to xtrabackup by default, set
        to the first timestamped backup directory in the backup base
        directory.

    --incremental-basedir=DIRECTORY
        This option specifies the directory containing the full backup that
        is the base dataset for the incremental backup. The option accepts a
        string argument. It is used with the --incremental option.

    --incremental-dir=DIRECTORY
        This option specifies the directory where the incremental backup
        will be combined with the full backup to make a new full backup. The
        option accepts a string argument. It is used with the --incremental
        option.

    --log-copy-interval
        This option specifies time interval between checks done by log
        copying thread in milliseconds.

    --incremental-lsn
        This option specifies the log sequence number (LSN) to use for the
        incremental backup. The option accepts a string argument. It is used
        with the --incremental option. It is used instead of specifying
        --incremental-basedir. For databases created by MySQL and Percona
        Server 5.0-series versions, specify the LSN as two 32-bit integers
        in high:low format. For databases created in 5.1 and later, specify
        the LSN as a single 64-bit integer.

    --move-back
        Move all the files in a previously made backup from the backup
        directory to the actual datadir location. Use with caution, as it
        removes backup files.

    --no-lock
        Use this option to disable table lock with "FLUSH TABLES WITH READ
        LOCK". Use it only if ALL your tables are InnoDB and you DO NOT CARE
        about the binary log position of the backup. This option shouldn't
        be used if there are any DDL statements being executed or if any
        updates are happening on non-InnoDB tables (this includes the system
        MyISAM tables in the mysql database), otherwise it could lead to an
        inconsistent backup. If you are considering to use --no-lock because
        your backups are failing to acquire the lock, this could be because
        of incoming replication events preventing the lock from succeeding.
        Please try using --safe-slave-backup to momentarily stop the
        replication slave thread, this may help the backup to succeed and
        you then don't need to resort to using this option.

    --no-timestamp
        This option prevents creation of a time-stamped subdirectory of the
        BACKUP-ROOT-DIR given on the command line. When it is specified, the
        backup is done in BACKUP-ROOT-DIR instead.

    --parallel=NUMBER-OF-THREADS
        This option specifies the number of threads the xtrabackup child
        process should use to back up files concurrently. The option accepts
        an integer argument. It is passed directly to xtrabackup's
        --parallel option. See the xtrabackup documentation for details.

    --password=WORD
        This option specifies the password to use when connecting to the
        database. It accepts a string argument. It is passed to the mysql
        child process without alteration. See mysql --help for details.

    --port=PORT
        This option specifies the port to use when connecting to the
        database server with TCP/IP. The option accepts a string argument.
        It is passed to the mysql child process. It is passed to the mysql
        child process without alteration. See mysql --help for details.

    --redo-only
        This option should be used when preparing the base full backup and
        when merging all incrementals except the last one. This option is
        passed directly to xtrabackup's --apply-log-only option. This forces
        xtrabackup to skip the "rollback" phase and do a "redo" only. This
        is necessary if the backup will have incremental changes applied to
        it later. See the xtrabackup documentation for details.

    --remote-host=HOSTNAME
        This option is DEPRECATED and will be removed in Percona XtraBackup
        2.1. In Percona XtraBackup 2.0 and later, you should use streaming
        backups instead. This option specifies the remote host on which the
        backup files will be created, by using an ssh connection. The option
        accepts a string argument.

    --rsync
        Uses the rsync utility to optimize local file transfers. When this
        option is specified, innobackupex uses rsync to copy all non-InnoDB
        files instead of spawning a separate cp for each file, which can be
        much faster for servers with a large number of databases or tables.
        This option cannot be used together with --remote-host or --stream.

    --safe-slave-backup
        Stop slave SQL thread and wait to start backup until
        Slave_open_temp_tables in "SHOW STATUS" is zero. If there are no
        open temporary tables, the backup will take place, otherwise the SQL
        thread will be started and stopped until there are no open temporary
        tables. The backup will fail if Slave_open_temp_tables does not
        become zero after --safe-slave-backup-timeout seconds. The slave SQL
        thread will be restarted when the backup finishes.

    --safe-slave-backup-timeout
        How many seconds --safe-slave-backup should wait for
        Slave_open_temp_tables to become zero. (default 300)

    --scpopt=SCP-OPTIONS
        This option specifies the command line options to pass to scp when
        the option --remost-host is specified. The option accepts a string
        argument. If the option is not specified, the default options are
        "-Cp -c arcfour".

    --sshopt=SSH-OPTIONS
        This option specifies the command line options to pass to ssh when
        the option --remost-host is specified. The option accepts a string
        argument.

    --slave-info
        This option is useful when backing up a replication slave server. It
        prints the binary log position and name of the master server. It
        also writes this information to the "xtrabackup_slave_info" file as
        a "CHANGE MASTER" command. A new slave for this master can be set up
        by starting a slave server on this backup and issuing a "CHANGE
        MASTER" command with the binary log position saved in the
        "xtrabackup_slave_info" file.

    --socket=SOCKET
        This option specifies the socket to use when connecting to the local
        database server with a UNIX domain socket. The option accepts a
        string argument. It is passed to the mysql child process without
        alteration. See mysql --help for details.

    --stream=STREAMNAME
        This option specifies the format in which to do the streamed backup.
        The option accepts a string argument. The backup will be done to
        STDOUT in the specified format. Currently, the only supported
        formats are tar and xbstream. This option is passed directly to
        xtrabackup's --stream option.

    --tables-file=FILE
        This option specifies the file in which there are a list of names of
        the form database. The option accepts a string argument.table, one
        per line. The option is passed directly to xtrabackup's
        --tables-file option.

    --throttle=IOS
        This option specifies a number of I/O operations (pairs of
        read+write) per second. It accepts an integer argument. It is passed
        directly to xtrabackup's --throttle option.

    --tmpdir=DIRECTORY
        This option specifies the location where a temporary file will be
        stored. The option accepts a string argument. It should be used when
        --remote-host or --stream is specified. For these options, the
        transaction log will first be stored to a temporary file, before
        streaming or copying to a remote host. This option specifies the
        location where that temporary file will be stored. If the option is
        not specifed, the default is to use the value of tmpdir read from
        the server configuration.

    --use-memory=B
        This option accepts a string argument that specifies the amount of
        memory in bytes for xtrabackup to use for crash recovery while
        preparing a backup. Multiples are supported providing the unit (e.g.
        1MB, 1GB). It is used only with the option --apply-log. It is passed
        directly to xtrabackup's --use-memory option. See the xtrabackup
        documentation for details.

    --user=NAME
        This option specifies the MySQL username used when connecting to the
        server, if that's not the current user. The option accepts a string
        argument. It is passed to the mysql child process without
        alteration. See mysql --help for details.

    --defaults-group=GROUP-NAME
        This option specifies the group name in my.cnf which should be used.
        This is needed for mysqld_multi deployments.

    --version
        This option displays the xtrabackup version and copyright notice and
        then exits.

Sample script

#!/bin/sh

# パラメータ
HOST_NAME=`hostname`
BACKUP_HOST=adm01
BACKUP_DIR=/mnt/addVol/backup/db/${HOST_NAME}
BACKUP_KEEP_MINS=7200
BACKUP_SPEED_LIMIT=8000
NOW=`date '+%Y%m%d%H%M%S'`

USE_MEMORY="1G"

###############################################################################
# バックアップ
#
# フルバックアップ
#

echo "########## Start innobackupex ###########" 
innobackupex \
    --use-memory=$USE_MEMORY \
    --no-timestamp \
    --slave-info \
    --defaults-extra-file=/root/.my.cnf \
    ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW}

#
# WAL(Write Ahead Log)適用
#

echo "########## WAL ###########" 
innobackupex \
    --use-memory=$USE_MEMORY \
    --defaults-extra-file=/root/.my.cnf \
    --apply-log \
    --redo-only \
    ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW}

###############################################################################
# 圧縮
#

echo "########## Compress ###########" 
#tar cf - ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW} | gzip -c > ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW}.tar.gz
tar cf - ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW} | bzip2 > ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW}.tar.bz2

###############################################################################
# 転送
#

echo "########## Transmission ###########" 
scp -l ${BACKUP_SPEED_LIMIT} ${BACKUP_DIR}/*.${NOW}.* ${BACKUP_HOST}:${BACKUP_DIR}/

###############################################################################
# 削除
#

echo "########## Delete unnecessary and old backup files ###########"
rm -rf ${BACKUP_DIR}/${HOST_NAME}.dbbackup.${NOW} 
find ${BACKUP_DIR} -mmin +${BACKUP_KEEP_MINS} -exec rm -f {} \;

echo "########## End innobackupex ###########"

Tips

file /etc/my.cnf ~ conflicts ~

# yum install percona-xtrabackup
~省略~
==========================================================================================
 パッケージ               アーキテクチャ
                                 バージョン                  リポジトリー            容量
==========================================================================================
インストールしています:
 percona-xtrabackup       x86_64 2.3.4-1.el6                 percona-release-x86_64 5.4 M
依存性関連でのインストールをします。:
 Percona-Server-shared-51 x86_64 5.1.73-rel14.12.625.rhel6   percona-release-x86_64 2.1 M
 libev                    x86_64 4.03-3.el6                  epel                   113 k
 perl-DBD-MySQL           x86_64 4.013-3.el6                 base                   134 k
 rsync                    x86_64 3.0.6-12.el6                base                   335 k

トランザクションの要約
==========================================================================================
インストール         6 パッケージ
~省略~

トランザクションの確認エラー
  file /etc/my.cnf from install of Percona-Server-shared-51-5.1.73-rel14.12.625.rhel6.x86_64 conflicts with file from package mysql-community-server-5.7.11-1.el6.x86_64

エラーの要約
-------------
  1. percona-xtrabackupをインストールしようとすると、依存関係でperl-DBD-MySQLを要求する。
  2. perl-DBD-MySQLをインストールしようとすると、依存関係でlibmysqlclientを要求する。
  3. libmysqlclientのために、Percona-Server-shared-51をインストールしようとする。
  4. /etc/my.cnfがコンフリクト

Perconaのリポジトリを登録していない状態でperl-DBD-MySQLをインストールしようとすると、以下のようになる。

# yum install perl-DBD-MySQL
~省略~
==========================================================================================
 パッケージ                      アーキテクチャ
                                            バージョン        リポジトリー           容量
==========================================================================================
インストールしています:
 perl-DBD-MySQL                  x86_64     4.013-3.el6       base                  134 k
依存性関連でのインストールをします。:
 mysql-community-libs-compat     x86_64     5.7.11-1.el6      mysql57-community     1.6 M

トランザクションの要約
==========================================================================================
インストール         2 パッケージ
~省略~

上記から、mysql-community-libs-compatを先にインストールすると解決する。

# yum install mysql-community-libs-compat

# yum install percona-xtrabackup
~省略~
==========================================================================================
 パッケージ               アーキテクチャ
                                 バージョン                  リポジトリー            容量
==========================================================================================
インストールしています:
 percona-xtrabackup       x86_64 2.3.4-1.el6                 percona-release-x86_64 5.4 M
依存性関連でのインストールをします。:
 libev                    x86_64 4.03-3.el6                  epel                   113 k
 perl-DBD-MySQL           x86_64 4.013-3.el6                 base                   134 k
 rsync                    x86_64 3.0.6-12.el6                base                   335 k

トランザクションの要約
==========================================================================================
~省略~
mysql/xtrabackup.txt · 最終更新: 2016/04/07 03:05 by clownclown

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki