Mysql----备份与还原xtrabackup工具

一、安装

1、Ubuntu安装Percona
2、封装xtrabackup到mysql镜像
Dockerfile如下

FROM mysql:5.7

RUN sed -i "s/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list \
 && sed -i "s/security.debian.org/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list \
 && apt-get update  && apt-get install wget lsb-release -y \
 && wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb \
 && dpkg -i percona-release_latest.generic_all.deb \
 && apt-get update \
 && apt-get install percona-xtrabackup-24 -y \
 && rm -rf percona-release_latest.generic_all.deb \
 && apt-get clean \
 && rm -rf /var/lib/apt/lists/*

MySQL8.0:添加:&& apt-get update -y && apt-get install curl -y \

docker build -t xqkang/mysql:5.7 .

3.启动此mysql之前启动一个不加配置的MySQL将配置文件拷出来:

docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

在这里插入图片描述
将拷贝出来的mysql文件夹修改为config:
在这里插入图片描述

4.启动MySQL:

docker run -d --name mysql -p 3306:3306  -e MYSQL_ROOT_PASSWORD=123456  -v /qj/data/test_rds/config/:/etc/mysql  -v /qj/data/test_rds/data:/var/lib/mysql  -v /qj/data/test_rds/backup:/data/backup  xqkang/mysql:5.7

5.创建备份:

docker exec -it mysql bash
xtrabackup --backup --target-dir=/data/backup  -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306

6.数据恢复

xtrabackup --prepare --target-dir=/data/backup -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306
xtrabackup --copy-back --target-dir=/data/backup -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306

遇到错误:

还原数据时,数据目录必须为空:

root@3187e6cd91fb:/data/backup# xtrabackup --copy-back --target-dir=/data/backup -S /var/run/mysqld/mysqld.sock -H 127.0.0.1 -uroot -p123456 -P3306
xtrabackup: recognized server arguments: --datadir=/var/lib/mysql --open_files_limit=65535 --log_bin=mysql-bin --server-id=1 
xtrabackup: recognized client arguments: --copy-back=1 --target-dir=/data/backup/xfull --socket=/var/run/mysqld/mysqld.sock --host=127.0.0.1 --user=root --password=* --port=3306 
xtrabackup version 2.4.15 based on MySQL server 5.7.19 Linux (x86_64) (revision id: 544842a)
Original data directory /var/lib/mysql is not empty!

解决:

rm -rf /var/lib/mysql/*
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值