您的位置:首页 > 数据库 > MySQL

MySQL备份工具xtrabackup开启新实例

2016-08-19 10:32 711 查看


1.1. 前言

之前有几位朋友刚刚接触MySQL备份工具xtrabackup,想将使用这个工具使用在自己的生产环境上。他们使用这用具恢复数据的使用,总是按官网的,在恢复的最后都会执行--copy-back。然后之前目录的数据就必须得覆盖了。
那其实明白多实例的,应该知道其实只要apply-log完,然后在开启新的实例数据目录就能使用了。


1.2. 演示

这里我们将数据备份在 /u01/backup

123456789/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!
查看备份成功后结果

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[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官网写的很清楚)

1234567/usr/local/percona-xtrabackup/bin/innobackupex \ --apply-log \ /u01/backup/2016-04-02_20-58-16 ......InnoDB: Shutdown completed; log sequence number 12587880249160402 21:00:05 completed OK!
拷贝已有数据库使用的my.cnf,并且修改配置文件的数据目录和端口(3307)

1

2

3

4

5

6

7

8

9

10

11

12

13

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用户

1chown -R mysql:mysql /u01/backup
启动MySQL端口为3307

1

2

/bin/bash
/usr/local/mysql/bin/mysqld_safe
\

--defaults-file=/u01/backup/2016-04-02_20-58-16/my.cnf
>
/dev/null
2>&1
&

启动日志显示一下面信息说明成功

122016-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

1

2

3

4

5

6

7

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/
|

+---------------+----------------------------------+

上面展示的信息说明能使用了,并且是刚刚恢复的数据目录。
这时候只要让开发切换到3307端口使用数据库就好了。
当然如果你想要恢复某个表的数据你也可以从改3307实例dump出数据。或者在之前就使用exp方法导入恢复数据。


1.3. 总结

其实理解了多实例是个怎么回事自然就知道这中方法是如何的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: