mysql远程备份_mysql的远程备份 和其他备份方法

一:前期准备

至少需要两台主机

192.168.175.200       vip

192.168.175.250       node1

做密钥否则不能拷贝过去

命令:[root@vip ~]#cd /root/.ssh

命令:[root@vip ~]#ssh-keygen

#

命令:[root@vip .ssh]#ssh-copy-id  192.168.175.250

测试一下,命令:[root@vip .ssh]# ssh 192.168.175.250             #不需要密码直接连接

05d971e4cf2af5e9b7c84a5256acfb46.png

1.另一台主机最好提前创建一个数据存放地

命令:[root@node1 ~]# mkdir -p /data/rsyncdata/databak/

2..备份脚本内容

命令:[root@vip ~]# vim databak.sh

#!/bin/bash

date=$(date +%Y%m%d%H%M%S)                                                                                       #设置时间变量,括号内是设置时间的格式

mysqldump -uroot -p'123456' -A > /root/$date-192.168.175.200.sql                                     #MySQL所有数据导出复制到/root/$date-192.168.175.200.sql文件中        注意:yum安装最好是用命令mysqldump的绝对路径而用tar包安装,可以不用                        if [ $? -eq 0 ];then                                                                                                                  #判断上次执行命令是否正确,正确为0,不正确非0

echo "数据备份完成"                                                                                                              #正确执行,输出结果

scp /root/$date-192.168.175.200.sql 192.168.175.250:/data/rsyncdata/databak/                 #将导出的文件远程复制到192.168.175.250主机上的/data/rsyncdata/databak/文件中sleep  4                                                                                                                                   #睡眠4秒

echo "远程备份完成"                                                                                                                #输出结果

rm -rf /root/$date-192.168.175.200.sql                                                                                   #删除本地主机导出的数据

fi                                                                                                                                               #结束

fb75423cbce33a2f3a71275ed7098b3a.png

3.设置执行计划任务

(1)先将脚本加执行权限(x)

命令:[root@vip ~]# chmod +x databak.sh

(2)周期性任务要用的命令是crontab,那么这里有个选项-e(edit)表示编辑输入

命令:[root@vip ~]# crontab -e

0 * * * * sh /root/databak.sh             #分时日月周的顺序,这是每小时执行一次脚本

1afa1d431cb7871635b4c57635183457.png

(3)编写完这个计划任务以后,还是要检查一下这个任务是否在启动

命令:[root@vip ~]# ps -le | grep cron

b772b96f8651c58bfb169aac71a5c5de.png

S表示确实是启动的,如果没有启动可以输入命令:/etc/rc.d/init.d/cron start就可以了

XTRABAKUP工具        在线热备备份过程中不锁库表

主要含两个插件:

rpm -ivh libev-4.15-1.el6.rf.x86_64rpm

yum -y install percona-xtrabackup-24-2.4.7-1.e17.x86_64.rpm

--redo-only                              日志合并                                                                        --apply-log                               准备恢复数据

--copy-back                              拷贝数据                                                                       --incremental                            增量备份

--incremental-basedir                增量备份时指定上一次备份数据存储的目录名              --incremental-dir                       准备恢复数据时指定增量备份数据存储的目录名

--export                                     导出表信息                                                                    import                                        导入表空间

--host                                        主机名                                                                           --user                                       用户名

--port                                         端口号                                                                           --password                               密码

--databases                               数据库名                                                                       --no-timestamp                            不用日期命名备份文件存储的子目录名

完全备份                              用户名                   密码         备份目录名

例:innobackupex  -user       root     -password 123456          /book              --no-timestamp        完全备份

完全恢复

例:   先   innobackupex   --apply-log   /book         准备恢复数据

后    innobackupex  --copy-back     /book          恢复数据

恢复完后/var/lib/mysql目录要改归属人如: chown -R mysql:mysql /var/lib/mysql

恢复单张表

innobackupex  -user       root     -password 123456   --databases="db5"       /book              --no-timestamp             这是备份db5库的文件

数据库里打这个命令:  alter   table   db5.b discard tablespace     删除表空间数据

innobackupex   --apply-log   --export  /book       导出表信息

cp  /book/db5/b.{cfg,exp,idb}    /var/lib/mysql/db5/     拷贝表信息到db5库下

chown mysql:mysql  /var/lib/mysql/db5/b.*              改所有者和所属组

alter   table   db5.b import  tablespace         导入表空间数据库

rm -rf /var/lib/mysql/db5/b.cfg       b.exp       删除这两个文件

增量备份与恢复

innobackupex  -user       root     -password 123456          /lock              --no-timestamp       完全备份

增量备份         存放目录              增量备份时指定上一次备份数据存储的目录名       不用日期命名备份文件存储的子目录名

innobackupex  -user       root     -password 123456     --incremental       /book                   --incremental-basedir=/lock                               --no-timestamp          注: 用--incremental-basedir=/lock这个命令就可以使这次备份的数据只备份上次没备份过的数据

日志合并

scp  /book   192.168.17.11:/opt            scp  /lock   192.168.17.11:/opt              把两个文件拷贝到准备恢复的电脑上

systemctl  stop mysql   关闭数据库

innobackupex   --apply-log   --redo-only  /opt/lock  准备恢复数据

innobackupex--apply-log --redo-only /opt/lock--incremental-dir=/opt/book//合并日志

innobackupex--copy-back /opt/lock     恢复文件

chown-R mysql:mysql/var/lib/mysql//修改所有者与组用户

systemctlstart mysqld//启动服务

登陆mysql查看是否恢复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值