栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux mysql 数据库 备份

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux mysql 数据库 备份

mysql数据备份

mysqldump:可以用于mysql/mariadb数据库进行全量备份,冷备份   基础服务  .sql

xtrabackup:可以用于mysql/mariadb数据库进行全量备份  增量备份   只能针对于innodb

如果想要针对于myisam  可以使用innobackupex

innobackupex   需要下载

mysqldump  

优点

  1. mysql自带的备份工具
  2. 可以对指定的表进行备份  备份后  直接可以使用source命令恢复数据  操作比较简单

缺点:

由于mysqldump采用的是单线程的操作,所以导致备份和恢复数据的时间比较漫长,如果

想要以效率为主,不建议采用这种办法。

innobackupex

优点:

  1. 可以进行热备份(数据库可以正常读写)去对数据进行备份
  2. 备份效率高  速度比较快

缺点:

备份和恢复的命令比较复杂

安装备份工具   percona(多主架构)---mysql/mariadb(主从)(二开)

安装网络yum

 

wget  下载   -O   指定下载路径

[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@localhost yum.repos.d]# yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm

yum如果联网  也可以下载并安装软件包   percona的yum源需要安装一下

网络yum源可以自己编写  也可以直接下载

[root@localhost yum.repos.d]# ls

aa.repo           data       percona-original-release.repo

CentOS-base.repo  epel.repo  percona-prel-release.repo

[root@localhost ~]# yum -y install percona-xtrabackup-24.x86_64

如果命令可以tab出来   这样就安装成功

[root@localhost ~]# innobackupex

因为使用备份工具恢复数据   数据目录下要为空

所以需要把数据目录和日志目录分开

[root@localhost ~]# vim /etc/my.cnf

datadir=/var/lib/mysql/data

[root@localhost ~]# vim /etc/my.cnf

datadir=/var/lib/mysql/data

[root@localhost ~]# mkdir /var/lib/mysql/data

[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

[root@localhost ~]# systemctl restart mysqld

[root@localhost ~]# cd /var/lib/mysql/data/

如果数据目录更改  秘钥需要重新查看  重新修改

[root@localhost data]# cat /var/log/mysqld.log | grep password最后一行

2021-09-13T01:11:41.162121Z 1 [Note] A temporary password is generated for root@localhost: (-M6wuJm!R%E

[root@localhost data]# mysql -uroot -p'(-M6wuJm!R%E'

mysql> set password=password('1234.Com');

全部数据的全量备份

[root@localhost data]# mkdir -p /data/backup

[root@localhost data]# innobackupex --defaults-file=/etc/my.cnf --user=root --password='1234.Com' /data/backup

210913 09:35:56 completed OK!

[root@localhost data]# ls /data/backup/

2021-09-13_09-35-53

恢复数据

[root@localhost data]# systemctl stop mysqld

[root@localhost data]# mv /var/lib/mysql/data/ /var/lib/mysql/data1

[root@localhost data]# mkdir /var/lib/mysql/data

[root@localhost data]# ls /var/lib/mysql/data

#初始化

[root@localhost data]# innobackupex --use-memory=512M --apply-log  /data/backup/2021-09-13_09-35-53/

210913 09:47:29 completed OK!

#恢复数据

[root@localhost data]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2021-09-13_09-35-53/

210913 09:48:40 completed OK!

[root@localhost data]# ls /var/lib/mysql/data

ib_buffer_pool  mysql

ibdata1         performance_schema

ib_logfile0     sys

ib_logfile1     xtrabackup_info

ibtmp1          xtrabackup_master_key_id

增量备份

[root@localhost ~]# chown -R mysql:mysql /var/lib/mysql

[root@localhost ~]# systemctl restart mysqld

[root@localhost ~]# mysql -uroot -p'1234.Com'

mysql> create database aa;

Query OK, 1 row affected (0.00 sec)

[root@localhost ~]# ls /data/backup/

2021-09-13_09-35-53

[root@localhost ~]# innobackupex --user=root --password='1234.Com' --incremental /data/backup --incremental-basedir /data/backup/2021-09-13_09-35-53

[root@localhost ~]# du -sh /data/backup/*

142M /data/backup/2021-09-13_09-35-53

2.9M /data/backup/2021-09-13_10-03-37

恢复增量备份:

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# mv /var/lib/mysql/data /var/lib/mysql/data2

[root@localhost ~]# mkdir /var/lib/mysql/data

初始化全量备份

[root@localhost ~]# innobackupex --apply-log --redo-only /data/backup/2021-09-13_09-35-53/

初始化增量备份和全量备份

[root@localhost ~]# innobackupex --apply-log --redo-only /data/backup/2021-09-13_09-35-53/ --incremental-dir=/data/backup/2021-09-13_10-03-37

恢复数据

[root@localhost ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back /data/backup/2021-09-13_09-35-53/

[root@localhost ~]# cd /var/lib/mysql/data

[root@localhost data]# chown -R mysql:mysql /var/lib/mysql

[root@localhost data]# systemctl start mysqld

对于aa这个库进行全量备份

[root@localhost ~]# mkdir /backup

[root@localhost ~]# innobackupex --tables=aa --user=root --password=1234.Com /backup/   #对于单独的库

如果想要针对于单独的表例子:

 innobackupex --tables=aa.aa --user=root --password=1234.Com /backup/   #对于单独的库

210524 15:14:54 completed OK!

[root@localhost ~]# ls /backup/

2021-05-24_15-14-52

恢复数据

[root@localhost ~]# mv /var/lib/mysql/data /var/lib/mysql/data5

[root@localhost ~]# mkdir /var/lib/mysql/data

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# innobackupex   --apply-log    /backup/2021-05-24_15-14-52/

[root@localhost ~]# innobackupex   --copy-back   /backup/2021-05-24_15-14-52/

[root@localhost ~]# cd /var/lib/mysql/data

[root@localhost data]# ls

[root@localhost data]# cd /var/lib/mysql/data5

[root@localhost data5]# mv mysql/ /var/lib/mysql/data

[root@localhost data5]# mv performance_schema/ /var/lib/mysql/data

[root@localhost data5]# mv sys/ /var/lib/mysql/data

[root@localhost data5]# chown -R mysql:mysql /var/lib/mysql

[root@localhost data5]# systemctl start mysqld

对aa库进行增量备份

[root@localhost ~]# innobackupex --tables=aa --user=root --password=1234.Com --incremental-basedir=/backup/2021-05-24_15-14-52 --incremental /backup

210524 15:46:27 completed OK!

还原数据

初始化

初始化全量

初始化增量

[root@localhost ~]# ls /backup/

2021-05-24_15-14-52  2021-05-24_15-46-25

[root@localhost ~]# systemctl stop mysqld

[root@localhost ~]# mv /var/lib/mysql/data /var/lib/mysql/data6

[root@localhost ~]# mkdir /var/lib/mysql/data

[root@localhost ~]# innobackupex --apply-log --redo-only /backup/2021-05-24_15-14-52/

210524 15:50:06 completed OK!

[root@localhost ~]# innobackupex --apply-log --redo-only /backup/2021-05-24_15-14-52/ --incremental-dir=/backup/2021-05-24_15-46-25

210524 15:51:48 completed OK!

[root@localhost ~]# innobackupex --copy-back /backup/2021-05-24_15-14-52/

[root@localhost data]# cd /var/lib/mysql/data6

[root@localhost data6]# mv mysql/ /var/lib/mysql/data

[root@localhost data6]# mv performance_schema/ /var/lib/mysql/data

[root@localhost data6]# mv sys/ /var/lib/mysql/data

[root@localhost data6]# chown -R mysql:mysql /var/lib/mysql

[root@localhost data6]# systemctl start mysqld

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613860.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号