使用mysql备份工具innobackupex将本地数据直接备份到远端服务器、备份、恢复操作实例...

网友投稿 887 2022-09-28

使用mysql备份工具innobackupex将本地数据直接备份到远端服务器、备份、恢复操作实例...

使用mysql备份工具innobackupex将本地数据直接备份到远端服务器、备份、恢复操作实例...

innobackupex 支持所有mysql引擎数据备份恢复安装配置方法及原理介绍,访问下面链接

​​-p /data/3306/backup

mysql 版本 :

[root@slave2 3306]# mysql -V

mysql  Ver 14.14 Distrib 5.5.25, for Linux (x86_64) using  EditLine wrapper

系统版本:

more /etc/redhat-release

CentOS release 6.2 (Final)

内核版本:

[root@slave2 3306]# uname -a

Linux slave2 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux

本地IP:92.168.1.199

远端服务器IP:192.168.1.200

系统环境同“4.1测试环境介绍”

目的:备份当前机器下的数据到192.168.1.200的/data/3306/backup/目录下,进行数据恢复启动。(建立主从同步时使用)

step:1查看本地数据库mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || ptmind || ptmind_common |+--------------------+5 rows in set (0.29 sec)mysql> use ptmind_common;Database changedmysql> show tables;+------------------------------------+| Tables_in_ptmind_common |+------------------------------------+| dtl_full_pv_detail |中间省略|| tst_pn_detail || tst_pv_detail |+------------------------------------+60 rows in set (0.00 sec)

step:2

我为了方便做了证书,导入到了对端服务器,另外发现如果两台服务器不做无密码认证,从本地往远端服务器无法备份。

证书生成及导入到对端服务器操作如下:

ssh-keygen

ssh-copy-id root@192.168.1.200

step:3

备份当前机器下的所有数据到192.168.1.200的/data/3306/backup/目录下

备份命令1

innobackupex --user=root --defaults-file=/data/3306/my-f --stream=tar /data/3306/data | ssh root@192.168.1.200 cat ">" /data/3306/backup/test.tar

备份命令2

innobackupex --user=root --defaults-file=/data/3306/my-f --stream=tar /data/3306/data|ssh root@192.168.1.200 cat ">"/data/3306/backup/mysqlbackup$(date +%Y-%m-%d_%H_%M_%S).tar

参数解释:

–stream=tar : 告诉xtrabackup,备份需要以tar的文件流方式输出。

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

no-lock 参数用于指定备份时不锁定表。

--database:可以指定要备份的库   --database="ptmind_common kk"

建议使用2组参数,在远端机器生成的文件名按日期命名,mysqlbackup2013-06-04_15_30_50.tar

step:4

核实备份文件:

远端服务器生成备份文件;

[root@slave2 backup]# du -sh *

1.5G    mysqlbackup2013-06-04_16_23_23.tar

在本地生成一个全备文件,对比两边生成全备文件大小是否一至。

innobackupex --defaults-file=/data/3306/my-f  --user=root /data/3306/backup/

[root@slave1 backup]# du -sh *

1.5G    2013-06-04_16-36-03

经对比发现本地和远端生成备份文件大小一致,

本地备份文件内容如下:

[root@slave1 backup]# ll 2013-06-04_16-36-03/total 1534520-rw-r--r-- 1 root root 262 Jun 4 16:36 backup-my-f-rw-r----- 1 root root 1570766848 Jun 4 16:36 ibdata1drwxr-xr-x 2 root root 4096 Jun 4 16:38 mysqldrwxr-xr-x 2 root root 4096 Jun 4 16:37 performance_schemadrwxr-xr-x 2 root root 4096 Jun 4 16:37 ptminddrwxr-xr-x 2 root root 540672 Jun 4 16:37 ptmind_common-rw-r--r-- 1 root root 13 Jun 4 16:38 xtrabackup_binary-rw-r--r-- 1 root root 23 Jun 4 16:36 xtrabackup_binlog_info-rw-r----- 1 root root 95 Jun 4 16:38 xtrabackup_checkpoints-rw-r----- 1 root root 2560 Jun 4 16:38 xtrabackup_logfile

解压远端服务器备份文件,查看内容如下:

[root@slave2 backup]# tar -ixvf mysqlbackup2013-06-04_16_23_23.tar backup-my-fibdata1xtrabackup_logfilextrabackup_checkpointsxtrabackup_binary

查看远端解压完成的数据,进行对比和本地备份的文件一致

[root@slave2 backup]# lltotal 3121060-rw-r--r-- 1 root root 262 Jun 4 16:54 backup-my-f-rw-rw---- 1 root root 1570766848 Jun 4 01:35 ibdata1drwxr-xr-x 2 root root 4096 Jun 4 17:01 mysqldrwxr-xr-x 2 root root 4096 Jun 4 17:01 performance_schemadrwxr-xr-x 2 root root 4096 Jun 4 17:01 ptminddrwxr-xr-x 2 root root 393216 Jun 4 17:01 ptmind_common-rw-r--r-- 1 root root 13 Jun 4 16:57 xtrabackup_binary-rw-r--r-- 1 root root 23 Jun 4 16:56 xtrabackup_binlog_info-rw-rw---- 1 root root 95 Jun 4 16:57 xtrabackup_checkpoints-rw-rw---- 1 root root 2560 Jun 4 16:57 xtrabackup_logfile

step:7

删除远端/data/下文件夹,模拟数据丢失;

rm -rf /data/3306/data/*

step:8

首先全备恢复

innobackupex --defaults-file=/data/3306/my-f --user=root --apply-log --redo-only /data/3306/backup/

step: 9

copy备份数据文件到原来数据位置

innobackupex-1.5.1 --defaults-file=/data/3306/my-f --user=root --copy-back /data/3306/backup/

step:10

修改数据文件权限为mysql

chown mysql.mysql -R data

[root@slave2 3306]# /etc/init.d/mysqld start

Starting MySQL................. SUCCESS!

step:11

查看验证本地数据库

mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || ptmind || ptmind_common |+--------------------+5 rows in set (0.29 sec)mysql> use ptmind_common;Database changedmysql> show tables;+------------------------------------+| Tables_in_ptmind_common |+------------------------------------+| dtl_full_pv_detail |中间省略|| tst_pn_detail || tst_pv_detail |+------------------------------------+60 rows in set (0.00 sec)

ok,经过以上步骤顺利完成了使用innobackupex备份工具将本地数据备份到远端服务器并进行数据恢复的过程;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:linux系统shell脚本实现 恶意扫描服务器密码 自动屏蔽
下一篇:cisco交换telnet、http登陆配置及安全加固ACL实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~