zoukankan      html  css  js  c++  java
  • percona-xtrabackup快速安装及其简单使用

    percona-xtrabackup快速安装及其简单使用

    cd /opt/
    环境:centos6.x

    yum -y install perl-DBI
    yum -y install perl-DBD-MySQL
    yum -y install perl-IO-Socket-SSL.noarch
    yum -y install perl-Time-HiRes  
    yum -y install perl-TermReadKey
    yum -y install perl-ExtUtils-MakeMaker
    [root@db130 opt]# rpm -aq | grep libgcrypt libgcrypt-devel-1.4.5-12.el6_8.x86_64 libgcrypt-1.4.5-12.el6_8.x86_64 # 下载对应的版本 wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.12/binary/tarball/percona-xtrabackup-2.4.12-Linux-x86_64.libgcrypt145.tar.gz tar -zxf percona-xtrabackup-2.4.12-Linux-x86_64.libgcrypt145.tar.gz mv percona-xtrabackup-2.4.12-Linux-x86_64 percona-xtrabackup-2.4.12 ln -s /opt/percona-xtrabackup-2.4.12/bin/* /usr/bin/
    # 快速尝试恢复操作
    # 备份的文件是:/root/tmp/data_test-03-28.tar.bz2
    # 进行恢复前,请先找个环境,或者在本地直接恢复时,先停止数据库。
    并且清空数据目录: /data/mysql/percona_server/data  # 我这里是这个目录
    [root@db130 tmp]# rm -rf /data/mysql/percona_server/data/*

    tar -jxf data_test-03-28.tar.bz2
    [root@db130 tmp]# ll
    total 2097328
    -rw-r----- 1 mysql mysql        489 Mar 28 00:01 backup-my.cnf
    -rw-r----- 1 mysql mysql 2147483648 Mar 28 00:00 ibdata
    -rw-r--r-- 1 mysql mysql      82769 Mar 28 00:01 innobackup.log
    -rw-r--r-- 1 mysql mysql       3000 Mar 28 00:01 my.cnf
    drwxr-x--- 2 mysql mysql       4096 Mar 28 00:01 mysql
    drwxr-x--- 2 mysql mysql       4096 Mar 28 00:01 performance_schema
    drwxr-x--- 2 mysql mysql      16384 Mar 28 00:01 db_test
    -rw-r----- 1 mysql mysql        223 Mar 28 00:01 xtrabackup_binlog_info
    -rw-r----- 1 mysql mysql        121 Mar 28 00:01 xtrabackup_checkpoints
    -rw-r----- 1 mysql mysql        877 Mar 28 00:01 xtrabackup_info
    -rw-r----- 1 mysql mysql      37888 Mar 28 00:01 xtrabackup_logfile
    -rw-r----- 1 mysql mysql         79 Mar 28 00:01 xtrabackup_slave_info

    [root@db130 opt]# innobackupex --apply-log --use-memory=1G /root/tmp/
    xtrabackup: recognized server arguments: --innodb_checksum_algorithm=innodb --innodb_log_checksum_algorithm=innodb --innodb_data_file_path=ibdata:2G:autoextend --innodb_log_files_in_group=3 --innodb_log_file_size=536870912 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=. --innodb_undo_tablespaces=0 --server-id=1535086937 --redo-log-version=0
    xtrabackup: recognized client arguments: --innodb_checksum_algorithm=innodb --innodb_log_checksum_algorithm=innodb --innodb_data_file_path=ibdata:2G:autoextend --innodb_log_files_in_group=3 --innodb_log_file_size=536870912 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=. --innodb_undo_tablespaces=0 --server-id=1535086937 --redo-log-version=0
    190328 17:56:49 innobackupex: Starting the apply-log operation

    IMPORTANT: Please check that the apply-log run completes successfully.
               At the end of a successful apply-log run innobackupex
               prints "completed OK!".

    innobackupex version 2.4.12 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 170eb8c)
    xtrabackup: cd to /root/tmp/
    xtrabackup: This target seems to be not prepared yet.
    InnoDB: Number of pools: 1
    xtrabackup: xtrabackup_logfile detected: size=8388608, start_lsn=(31806247544)
    xtrabackup: using the following InnoDB configuration for recovery:
    xtrabackup:   innodb_data_home_dir = .
    xtrabackup:   innodb_data_file_path = ibdata:2G:autoextend
    xtrabackup:   innodb_log_group_home_dir = .
    xtrabackup:   innodb_log_files_in_group = 1
    xtrabackup:   innodb_log_file_size = 8388608
    xtrabackup: using the following InnoDB configuration for recovery:
    xtrabackup:   innodb_data_home_dir = .
    xtrabackup:   innodb_data_file_path = ibdata:2G:autoextend
    xtrabackup:   innodb_log_group_home_dir = .
    xtrabackup:   innodb_log_files_in_group = 1
    xtrabackup:   innodb_log_file_size = 8388608
    xtrabackup: Starting InnoDB instance for recovery.
    xtrabackup: Using 1073741824 bytes for buffer pool (set by --use-memory parameter)
    InnoDB: PUNCH HOLE support available
    InnoDB: Mutexes and rw_locks use GCC atomic builtins
    InnoDB: Uses event mutexes
    InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
    InnoDB: Compressed tables use zlib 1.2.3
    InnoDB: Number of pools: 1
    InnoDB: Using CPU crc32 instructions
    InnoDB: Initializing buffer pool, total size = 1G, instances = 1, chunk size = 128M
    InnoDB: Completed initialization of buffer pool
    InnoDB: page_cleaner coordinator priority: -20
    InnoDB: Highest supported file format is Barracuda.
    InnoDB: Log scan progressed past the checkpoint lsn 31806247544
    InnoDB: Doing recovery: scanned up to log sequence number 31806283251 (0%)
    InnoDB: Database was not shutdown normally!
    InnoDB: Starting crash recovery.
    InnoDB: Starting an apply batch of log records to the database...
    InnoDB: Progress in percent: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
    InnoDB: Apply batch completed
    InnoDB: xtrabackup: Last MySQL binlog file position 908352864, file name mysql-bin.000018
    InnoDB: Creating shared tablespace for temporary tables
    InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    InnoDB: File './ibtmp1' size is now 12 MB.
    InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active.
    InnoDB: 32 non-redo rollback segment(s) are active.
    InnoDB: Waiting for purge to start
    InnoDB: 5.7.19 started; log sequence number 31806283251
    InnoDB: xtrabackup: Last MySQL binlog file position 908352864, file name mysql-bin.000018

    xtrabackup: starting shutdown with innodb_fast_shutdown = 1
    InnoDB: FTS optimize thread exiting.
    InnoDB: Starting shutdown...
    InnoDB: Shutdown completed; log sequence number 31806284939
    InnoDB: Number of pools: 1
    xtrabackup: using the following InnoDB configuration for recovery:
    xtrabackup:   innodb_data_home_dir = .
    xtrabackup:   innodb_data_file_path = ibdata:2G:autoextend
    xtrabackup:   innodb_log_group_home_dir = .
    xtrabackup:   innodb_log_files_in_group = 3
    xtrabackup:   innodb_log_file_size = 536870912
    InnoDB: PUNCH HOLE support available
    InnoDB: Mutexes and rw_locks use GCC atomic builtins
    InnoDB: Uses event mutexes
    InnoDB: GCC builtin __sync_synchronize() is used for memory barrier
    InnoDB: Compressed tables use zlib 1.2.3
    InnoDB: Number of pools: 1
    InnoDB: Using CPU crc32 instructions
    InnoDB: Initializing buffer pool, total size = 1G, instances = 1, chunk size = 128M
    InnoDB: Completed initialization of buffer pool
    InnoDB: page_cleaner coordinator priority: -20
    InnoDB: Setting log file ./ib_logfile101 size to 512 MB
    InnoDB: Progress in MB:
     100 200 300 400 500
    InnoDB: Setting log file ./ib_logfile1 size to 512 MB
    InnoDB: Progress in MB:
     100 200 300 400 500
    InnoDB: Setting log file ./ib_logfile2 size to 512 MB
    InnoDB: Progress in MB:
     100 200 300 400 500
    InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
    InnoDB: New log files created, LSN=31806284939
    InnoDB: Highest supported file format is Barracuda.
    InnoDB: Log scan progressed past the checkpoint lsn 31806285324
    InnoDB: Doing recovery: scanned up to log sequence number 31806285333 (0%)
    InnoDB: Database was not shutdown normally!
    InnoDB: Starting crash recovery.
    InnoDB: xtrabackup: Last MySQL binlog file position 908352864, file name mysql-bin.000018
    InnoDB: Removed temporary tablespace data file: "ibtmp1"
    InnoDB: Creating shared tablespace for temporary tables
    InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
    InnoDB: File './ibtmp1' size is now 12 MB.
    InnoDB: 96 redo rollback segment(s) found. 1 redo rollback segment(s) are active.
    InnoDB: 32 non-redo rollback segment(s) are active.
    InnoDB: Waiting for purge to start
    InnoDB: page_cleaner: 1000ms intended loop took 17842ms. The settings might not be optimal. (flushed=0 and evicted=0, during the time.)
    InnoDB: 5.7.19 started; log sequence number 31806285333
    xtrabackup: starting shutdown with innodb_fast_shutdown = 1
    InnoDB: FTS optimize thread exiting.
    InnoDB: Starting shutdown...
    InnoDB: Shutdown completed; log sequence number 31806287020
    190328 17:57:13 completed OK!
    [root@db130 opt]#
     

    [root@db130 tmp]# cp -raf * /data/mysql/percona_server/data/
    [root@db130 tmp]# chown -R mysql.mysql /data/mysql/percona_server/data/*
    [root@db130 tmp]# su - mysql
    [mysql@db130 ~]$ cd /data/mysql/percona_server/data/
    [mysql@db130 data]$ rm -rf backup-my.cnf my.cnf innobackup.log xtrabackup_*
    [mysql@db130 data]$ ll
    total 3682340
    -rw-r----- 1 mysql mysql 2147483648 Mar 28 18:05 ibdata
    -rw-r----- 1 mysql mysql  536870912 Mar 28 18:05 ib_logfile0
    -rw-r----- 1 mysql mysql  536870912 Mar 28 17:57 ib_logfile1
    -rw-r----- 1 mysql mysql  536870912 Mar 28 17:57 ib_logfile2
    -rw-r----- 1 mysql mysql   12582912 Mar 28 18:05 ibtmp1
    drwxr-x--- 2 mysql mysql       4096 Mar 28 00:01 mysql
    drwxr-x--- 2 mysql mysql       4096 Mar 28 00:01 performance_schema
    drwxr-x--- 2 mysql mysql      20480 Mar 28 00:01 db_test
    [mysql@db130 data]$

    # 启动数据库
    查看日志:
    tail -f /data/mysql/percona_server/logs/mysql-error.log
    2019-03-28 18:13:20 0 [Note] /data/mysql/percona_server/bin/mysqld (mysqld 5.6.41-84.1-log) starting as process 18085 ...
    2019-03-28 18:13:20 18085 [Note] Plugin 'FEDERATED' is disabled.
    2019-03-28 18:13:20 18085 [Note] InnoDB: Using atomics to ref count buffer pool pages
    2019-03-28 18:13:20 18085 [Note] InnoDB: The InnoDB memory heap is disabled
    2019-03-28 18:13:20 18085 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
    2019-03-28 18:13:20 18085 [Note] InnoDB: Memory barrier is not used
    2019-03-28 18:13:20 18085 [Note] InnoDB: Compressed tables use zlib 1.2.3
    2019-03-28 18:13:20 18085 [Note] InnoDB: Using CPU crc32 instructions
    2019-03-28 18:13:20 18085 [Note] InnoDB: Initializing buffer pool, size = 10.0G
    2019-03-28 18:13:25 18085 [Note] InnoDB: Completed initialization of buffer pool
    2019-03-28 18:13:28 18085 [Note] InnoDB: Highest supported file format is Barracuda.
    2019-03-28 18:13:30 18085 [Note] InnoDB: 128 rollback segment(s) are active.
    2019-03-28 18:13:30 18085 [Note] InnoDB: Waiting for purge to start
    2019-03-28 18:13:30 18085 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.41-84.1 started; log sequence number 31806291260
    2019-03-28 18:13:31 18085 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 231afb9b-5142-11e9-b4ba-000c29774efe.
    2019-03-28 18:13:31 18085 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
    2019-03-28 18:13:31 18085 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
    2019-03-28 18:13:31 18085 [Note] Server socket created on IP: '0.0.0.0'.
    2019-03-28 18:13:34 18085 [ERROR] Failed to open the relay log '/data/mysql/percona_server/relay_log/relay-bin.000049' (relay_log_pos 197442274).
    2019-03-28 18:13:34 18085 [ERROR] Could not find target log file mentioned in relay log info in the index file '/data/mysql/percona_server/relay_log/relay-bin.index' during relay log initialization.
    2019-03-28 18:13:34 18085 [ERROR] Failed to initialize the master info structure
    2019-03-28 18:13:34 18085 [Note] Check error log for additional messages. You will not be able to start replication until the issue is resolved and the server restarted.
    2019-03-28 18:13:36 18085 [Note] Event Scheduler: Loaded 0 events
    2019-03-28 18:13:36 18085 [Note] /data/mysql/percona_server/bin/mysqld: ready for connections.
    Version: '5.6.41-84.1-log'  socket: '/data/mysql/percona_server/run/mysql.sock'  port: 3306  Source distribution

    此时可以登录。
    mysql> stop slave ;
    Query OK, 0 rows affected, 1 warning (0.00 sec)

    mysql> reset slave all;
    Query OK, 0 rows affected (0.05 sec)

    mysql> show databases;
    +---------------------+
    | Database            |
    +---------------------+
    | information_schema  |
    | mysql               |
    | performance_schema  |
    | db_test |
    +---------------------+
    4 rows in set (0.00 sec)
    mysql> select user,host from mysql.user;
    +---------------+-----------+
    | user          | host      |
    +---------------+-----------+
    | user1         | %         |
    | root          | 127.0.0.1 |
    | root          | localhost |
    +---------------+-----------+
    10 rows in set (0.00 sec)

    mysql> exit
    [root@db130 tmp]# cat xtrabackup_slave_info
    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000019', MASTER_LOG_POS=197442064;
    mysqlbinlog --start-position=197442064

    [root@db130 tmp]# mysqlbinlog --start-position=197442064 mysql-bin.000019 >19.binlog
    mysqlbinlog: unknown variable 'default-character-set=utf8mb4'
    [root@db130 tmp]#
    [root@db130 tmp]# mysqlbinlog --no-defaults --start-position=197442064  mysql-bin.000019 >19.binlog  
    # 导入差异化数据
    [mysql@db130 ~]$ mysql.login < /data/mysql/19.binlog &
    [1] 18273
    [mysql@db130 ~]$ Warning: Using a password on the command line interface can be insecure.

    至此,一个全备份恢复完毕。
    本人在测试环境中遇到的一个小坑:因为本地虚拟机的内存小,导致恢复数据时,数据库实例挂掉了。关闭虚拟机,调高内存,就可以解决掉。





  • 相关阅读:
    回来了
    【Docker】Docker学习笔记:shipyard使用
    【Docker】Docker学习笔记:安装部署
    【LVS】LVS用windows作为realserver的设置方法
    【linux常用命令】linux命令工具基础
    【linux工具】crontab
    【开源软件】windows环境下libcurl编译
    【工作笔记】CPU亲和性
    【转】多线程or多进程
    【学习笔记】git常用命令
  • 原文地址:https://www.cnblogs.com/bjx2020/p/10615389.html
Copyright © 2011-2022 走看看