欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL数据库备份迁移

程序员文章站 2024-03-20 21:36:16
...

本文主要介绍使用mysqldump和xtrabackup两种工具,对MySQL数据库进行数据的备份迁移过程。

  1. 首先对两个工作做一个比较说明,如下图:
    MySQL数据库备份迁移

XTraBackup安装

根据使用的MySQL版本去官网下载对应的安装包,(此处本人使用的MySQL5.7.20版本,下载xtrabackup-2.4.20)

curl https://codeload.github.com/percona/percona-xtrabackup/tar.gz/percona-xtrabackup-2.4.20 -o percona-xtrabackup-2.4.20.tar.gz
  1. 检查系统是否已经安装相关依赖包
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' \
cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr \
bison libtool ncurses-devel zlib-devel libgcrypt-devel \
perl-DBIx-Simple.noarch perl-DBD-MySQL.x86_64 perl-Digest-MD5
  1. 安装依赖包
yum -y install cmake gcc gcc-c++ libaio libaio-devel automake sutoconf bison libtool ncurses-devel libgcrypt-devel libev-devel libcurl-devel vim-common perl-Digest-MD5
  1. 预编译(VMware虚拟机CentOS,安装时最好增大内存,防止编译失败)
cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF -DWITH_BOOST=/usr/local/boost_1_59_0 && make -j4
  1. 默认安装到/usr/local/xtrabackup目录
make install
  1. 环境配置
    修改root用户根目录下的.bash_profile文件,PATH加入xtrabackup的bin目录
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/xtrabackup/bin
export PATH

保存修改后source .bash_profile使之立马生效

  1. 验证安装成功
    终端输入xtrabackup --version,显示如下输出信息,表示xtrabackup安装成功!
xtrabackup: recognized server arguments: --server-id=1 --log_bin=/usr/local/mysql/logs/logbin.log --datadir=/usr/local/mysql/data --tmpdir=/tmp 
xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x86_64) (revision id: )

接下来,使用innobackup实操备份数据

MySQL创建用于本地备份的用户

DROP USER aaa@qq.com
CREATE USER aaa@qq.com IDENTIFIED BY 'sync';
REVOKE ALL PRIVILEGES,GRANT OPTION FROM aaa@qq.com;
GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT,PROCESS,REPLICATION SLAVE,SUPER ON *.* TO aaa@qq.com IDENTIFIED BY 'sync';
FLUSH PRIVILEGES;

1. 全量备份

innobackup --user=employee|-uemployee --password=employee|-pemployee --host=127.0.0.1 --no-timestamp backup/
--user | -u (指定备份账号名)
--password | -p (指定备份账号密码)
--host (指定主机)
--no-timestamp (不按时间戳在指定的backup/保存路径下生成目录保存备份文件)
backup/ (指定备份数据的保存路径)

如果要针对特定数据库进行备份,或者对备份后的数据进行压缩,可以使用如下参数:

innobackup --user=employee|-uemployee --password=employee|-pemployee --host=127.0.0.1 --no-timestamp --databases="mysql sys employee" --stream=tar . | gzip - > backup.tar.gz
--databases="mysql sys employee" (指定备份数据库)
--stream=tar ./ | gzip - > backup.tar.gz (压缩备份数据)

2.增量备份

(待补充。。。)

mysqldump备份

全量备份

mysqldump -uemployee -pemployee employees > ~/backup_employee.sql

指定备份数据库同时进行备份数据压缩

mysqldump -uemployee -pemployee -B|--databases employees|other database | gzip > ~/backup_employee.tar.gz

增量备份

(待补充。。。)

参考引用出处:相关CSDN博客