xtrabackup开启新实例

HH MySQL pythonxtrabackup开启新实例已关闭评论10,0254字数 2727阅读9分5秒阅读模式

1.1. 前言

之前有几位朋友刚刚接触MySQL备份工具xtrabackup,想将使用这个工具使用在自己的生产环境上。他们使用这用具恢复数据的使用,总是按官网的,在恢复的最后都会执行--copy-back。然后之前目录的数据就必须得覆盖了。

那其实明白多实例的,应该知道其实只要apply-log完,然后在开启新的实例数据目录就能使用了。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

1.2. 演示

这里我们将数据备份在 /u01/backup文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

/usr/local/percona-xtrabackup/bin/innobackupex \
  --defaults-file=/etc/my.cnf \
  --user=root \
  --password=root \
  /u01/backup
 
......
xtrabackup: Transaction log of lsn (12587615580) to (12587615630) was copied.
160402 20:45:06 completed OK!

查看备份成功后结果文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

[root@localhost 2016-04-02_20-58-16]# pwd
/u01/backup/2016-04-02_20-58-16
[root@localhost 2016-04-02_20-58-16]# ll
total 1048632
-rw-r----- 1 root root        424 Apr  2 20:58 backup-my.cnf
-rw-r----- 1 root root        814 Apr  2 20:58 ib_buffer_pool
-rw-r----- 1 root root 1073741824 Apr  2 20:58 ibdata1
drwxr-x--- 2 root root       4096 Apr  2 20:58 mysql
drwxr-x--- 2 root root       8192 Apr  2 20:58 performance_schema
drwxr-x--- 2 root root       8192 Apr  2 20:58 sys
drwxr-x--- 2 root root       4096 Apr  2 20:58 test
drwxr-x--- 2 root root         53 Apr  2 20:58 test1
-rw-r----- 1 root root         21 Apr  2 20:58 xtrabackup_binlog_info
-rw-r----- 1 root root        121 Apr  2 20:58 xtrabackup_checkpoints
-rw-r----- 1 root root        501 Apr  2 20:58 xtrabackup_info
-rw-r----- 1 root root       2560 Apr  2 20:58 xtrabackup_logfile

使用xtrabackup应用日志 --apply-log(这边就不说如何让恢复的更快了,Percona官网写的很清楚)文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

/usr/local/percona-xtrabackup/bin/innobackupex \
  --apply-log \
  /u01/backup/2016-04-02_20-58-16
 
......
InnoDB: Shutdown completed; log sequence number 12587880249
160402 21:00:05 completed OK!

拷贝已有数据库使用的my.cnf,并且修改配置文件的数据目录和端口(3307)文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

cp /etc/my.cnf /u01/backup/2016-04-02_20-58-16/my.cnf
cat /u01/backup/2016-04-02_20-58-16/my.cnf
[mysqld]
server-id              = 2
port                   = 3307
user                   = mysql
basedir                = /usr/local/mysql
datadir                = /u01/backup/2016-04-02_20-58-16
tmpdir                 = /u01/backup/2016-04-02_20-58-16
socket                 = /u01/backup/2016-04-02_20-58-16/mysql.sock
general_log_file       = /u01/backup/2016-04-02_20-58-16/centos7.log
log_error              = /u01/backup/2016-04-02_20-58-16/centos7.err
skip-external-locking

修改数据文件的权限为mysql用户文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

chown -R mysql:mysql /u01/backup

启动MySQL端口为3307文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

/bin/bash /usr/local/mysql/bin/mysqld_safe \
  --defaults-file=/u01/backup/2016-04-02_20-58-16/my.cnf > /dev/null 2>&1 &

启动日志显示一下面信息说明成功文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

2016-04-02T13:19:46.838448Z 0 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.7.10-3'  socket: '/u01/backup/2016-04-02_20-58-16/mysql.sock'  port: 3307  Percona Server (GPL), Release 3, Revision 63dafaf

使用刚刚恢复的库端口为3307文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

mysql -uroot -proot -S /u01/backup/2016-04-02_20-58-16/mysql.sock
show variables like '%datadir%';
+---------------+----------------------------------+
| Variable_name | Value                            |
+---------------+----------------------------------+
| datadir       | /u01/backup/2016-04-02_20-58-16/ |
+---------------+----------------------------------+

上面展示的信息说明能使用了,并且是刚刚恢复的数据目录。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

这时候只要让开发切换到3307端口使用数据库就好了。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

当然如果你想要恢复某个表的数据你也可以从改3307实例dump出数据。或者在之前就使用exp方法导入恢复数据。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

1.3. 总结

其实理解了多实例是个怎么回事自然就知道这中方法是如何的。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

 文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

昵称:HH
QQ:275258836
ttlsa群交流沟通(QQ群②:6690706 QQ群③:168085569 QQ群④:415230207(新) 微信公众号:ttlsacom)文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

感觉本文内容不错,读后有收获?文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

逛逛衣服店,鼓励作者写出更好文章。文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/ 文章源自运维生存时间-https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
HH
  • 本文由 发表于 02/08/2016 00:36:26
  • 转载请务必保留本文链接:https://www.ttlsa.com/mysql/xtrabackup-use-new-instance/