如何使用 Percona Xtrabackup 恢复 MySQL 从数据库

分类:编程技术 时间:2024-02-20 15:43 浏览:0 评论:0
0
本文将详细讲解如何使用Percona Xtrabackup恢复MySQL从库。文章内容质量很高,分享给大家,作为参考。希望您看完本文后对相关知识有一定的了解。

同样,一台服务器上仍然有两个实例。端口3306的实例为主库,端口3307的实例为从库。

现在,手动清除备库中的数据,模拟备库被破坏。

drop database test2;

使用Percona Xtrabackup恢复从库。

Percona Xtrabackup 是一个开源备份工具。该工具可以从Percona官网下载并安装。

恢复步骤如下:

1.对主数据库中的数据进行完整备份。请注意,这是热备份,不需要停止数据库。

innobackupex - -default-file=/usr/local/mysql/my.cnf --user=root --password=root --socket=/usr/local/mysql/mysql.sock /tmp/backup

如果“完成了好!”屏幕输出末尾打印 ,表示命令执行成功。

2.将主库生成的日志附加到备份

innobackupex --apply-log /tmp/backup/2016-08-30_09-56-23

同步骤1,如果屏幕输出最后输出“completed OK”字样,则表示命令执行成功。

3.查看主库生成的备份信息

[root@single1 2016-08-30_09-56-23]# ls -l
总计131108
-rw-r-- ---。 1 root root 418 Aug 30 09:56 backup-my.cnf
-rw-r-----。 1 root root 12582912 8 月 30 日 09:56 ibdata1
-rw-r-----。 1 root root 50331648 8 月 30 日 09:56 ib_logfile0
-rw-r-----。 1 root root 50331648 8 月 30 日 09:56 ib_logfile1
-rw-r-----。 1根根12582912 8月30日09:56 ibtmp1
drwxr-x---。 2 root root 4096 Aug 30 09: 56 lxm
drwxr-x---。 2root root 4096 八月 30 09:56 mysql
drwxr-x---。 2根根4096年8月30日09:56 Performance_schema
drwxr-x---。 2 root root 4096 Aug 30 09:56 测试
-rw-r-----。 1 root root 21 Aug 30 09:56 xtrabackup_binlog_info
-rw-r--r --. 1 root root 21 Aug 30 09:56 xtrabackup_binlog_pos_innodb
-rw-r-----。 1 root root 113 Aug 30 09:56 xtrabackup_checkpoints
-rw-r-----。 。 1 root root 504 Aug 30 09:56 xtrabackup_info
-rw-r-----。 1 root root 8388608 Aug 30 09:56 xtrabackup_logfile

注意:

a) xtrabackup_binlog_info文件记录了mysql服务器当前正在使用的二进制日志文件以及二进制日志的位置截至备份时刻的事件。

b) xtrabackup_binlog_pos_innodb 文件记录二进制日志文件的当前位置以及 InnoDB 或 XtraDB 表的二进制日志文件。

(xtrabackup_binlog_info文件和xtrabackup_binlog_pos_innodb文件的区别:对于pu再进行InnoDB操作,备份数据中上述两个文件的内容是一致的。对于InnoDB和非事务存储引擎的混合操作,xtrabackup_binlog_info中显示的位置应大于xtrabackup_pos_innodb中显示的值。此时应以xtrabackup_binlog_info为准;后者与apply-log时InnoDB恢复日志中显示的内容一致,仅针对InnoDB数据。)

c) xtrabackup_checkpoints文件用于描述备份类型、备份状态、和LSN范围信息。

d) xtrabackup_info文件记录了备份过程中使用的xtrabackup命令的一些信息

e) backup-my.cnf文件包含了备份命令中使用的配置选项信息;

e) backup-my.cnf文件包含了备份命令中使用的配置选项信息;

4.恢复从库

停止从库服务,清除数据库中原有数据。

service mysql3307 stop;

cd /usr/local/mysql3307

mv数据data.bak

然后开始恢复:

innobackupex --defaults-file=/usr/local/mysql3307/my.cnf --copy-back --rsync /tmp/backup/2016-08-30_09 -56-23

如果“完成好!”屏幕输出末尾打印 ,表示命令执行成功。

p>

5.修改从库数据文件属性

从库恢复成功后,可以在/usr/local/mysql3307目录下看到一条数据:

记得给恢复的属性加上属性data目录要将所有组改回mysql,否则启动从库时会出现如下错误:

chown -R mysql:mysql data

6.查看备份中的二进制日志信息

[root@single1 2016-08-30_09-56-23]# cat xtrabackup_binlog_info
mysql-bin.000003 329

7 。从数据库启动并重新同步:

service mysql3307 start

mysql -S /usr/local/mysql3307/mysql.sock -P 3307 -uroot -p
mysql>将 master 更改为 master_host='localhost', master_user=' root', master_password='root', master_log_file='mysql-bin.000003', master_log_pos=329, master_port=3306;
查询正常,0行受影响,2个警告(0.02秒)

#master_log_file参数和master_log_pos参数的设置基于步骤6

mysql> start Slave;
查询OK,0行受影响(0.01秒)

mysql> 显示从属状态\G;
******************************** 1. 行 ****** ** ********************
                                 Slave_IO_State: 等待 master 发送事件
Master_Host: localhost
>             Master_Log_File: mysql-bin .000003
         Read_Master_Log_Pos : 329
             Relay_Log_File: single1-relay-bin.000002
                                                                                                          Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: 是
Slave_SQL_Running: 是
Replicate_Do_DB:
Replicate_Ignore_DB:
        Replicate_Do_Table:
     副本te_Ignore_Table:
     Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno:0
                       Last_Error:
               nbsp; Skip_Counter: 0
Exec_Master_Log_Pos: 329
Relay_Log_Space: 458
Until_Condition: None
Until_Log_File:
                   Until_Log_Pos: 0
                                                     Master_SSL_CA_File:
        Master_SSL_CA_Path: < br/>        Master_SSL_Cert:r_SSL_Cipher:
         Master_SSL_Key:
          Seconds_Behind_Master:0
       Master_SSL_Verify_Server_Cert:否
                                                                                                                                                                   r_SSL_ Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
/> Replicate_Ignore_Server_Ids:
Master_Server_Id:1
Master_UUID:9c534d95-6849-11e6-bae6-000c295ae8a5
  haster_info_file:/usr/local/mysql3307/data/master.info
SQL_Dlay: 0
sql_remaining_delay: null
Slave_sql_running_State: 从机已读取所有中继日志;等待从属 I/O 线程更新
         Master_Retry_Count: 86400
                                '''''''''''''''''''''''''''' '''''''''''通过'''''通过通过通过通过通过通过通过通过通过通过通过-通过-通过-通过-通过-通过-通过-通过-通过-通过-通过-通过-随——通过——通过——通过—————————————————————————————— ‐‐‐, , _ />           Master_SSL_Crlpath:
       Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
集合中的 1 行(0.00 秒)

错误:
未指定查询

< p>8.检查主库和从库是否一致。

这是关于如何使用Percona Xtrabackup恢复MySQL从库。我希望以上内容能够对大家有所帮助,能够学到更多的知识。如果您觉得文章不错,可以分享出去,让更多的人看到。

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何使用 Percona Xtrabackup 恢复 MySQL 从数据库

用户评论