MySQL数据库基础之物理备份与日志管理

一:percona-xtrabackup 物理备份

1.简介

它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。
percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本–percona Server。并围绕percona Server还发布了一系列的mysql工具。

2.备份方式

完全备份:全部数据进行备份

增量备份:每次备份上一次备份到现在产生的新数据
比如我在周一进行了一次全备,周二的时候就不需要全备了,如果还全备,会浪费我们的磁盘空间,这个时候,周二我们就可以适用增量备份.周三四五六日都可以逐天进行一个增量备份.就是比如周一做了一个全备,然后到周二你现在准备做备份了,就是周一全备之后到周二备份之前的新数据可以做一个增量备份.

差异备份:只备份跟完整备份不一样的

3.软件安装

它是一个第三方软件,需要自行安装.
# wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1- 4.noarch.rpm
# rpm -ivh percona-release-0.1-4.noarch.rpm
关掉签名机制
# yum -y install percona-xtrabackup-24.x86_64

注意:
如果依赖包perl-DBD-MySQL安装不上,需先把percona源拿掉用centos的源单独安装,然后再安装percona- xtrabackup-24.x86_64
[root@e9fcf0f73504 yum.repos.d]# mv percona-release.repo percona-release.repo.bak [root@e9fcf0f73504 yum.repos.d]# yum -y install perl-DBD-MySQL
[root@e9fcf0f73504 yum.repos.d]# mv percona-release.repo.bak percona-release.repo [root@e9fcf0f73504 yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64
注意:
Percona-Server-shared与mysql-community-server冲突。

解决方案:
原来是需要安装mysql-community-libs-compat

[root@localhost ~]# wget http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
--2020-05-09 00:32:16--  http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
正在解析主机 www.percona.com (www.percona.com)... 74.121.199.234
正在连接 www.percona.com (www.percona.com)|74.121.199.234|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:https://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [跟随至新的 URL]
--2020-05-09 00:32:17--  https://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
正在连接 www.percona.com (www.percona.com)|74.121.199.234|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:6555 (6.4K) [application/x-redhat-package-manager]
正在保存至: “percona-release-0.1-4.noarch.rpm”

100%[===================================================================================================>] 6,555       --.-K/s 用时 0s      

2020-05-09 00:32:18 (1.36 GB/s) - 已保存 “percona-release-0.1-4.noarch.rpm” [6555/6555])

[root@localhost ~]# rpm -ivh percona-release-0.1-4.noarch.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:percona-release-0.1-4            ################################# [100%]
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vi percona-release.repo 
#进入这个软件的yum仓库把gpgcheck的1改为0关闭签名机制
[root@localhost yum.repos.d]# yum -y install percona-xtrabackup-24.x86_64
#然后安装.这个软件安装时候容易出问题,如果出现问题安装不上,上面有常见的问题和解决方法.

4.完整备份

完全备份流程
创建备份目录.
mkdir -p /xtrabackup/full

备份
innobackupex --user=root --password=‘QianFeng@123’ /xtrabackup/full

完全备份恢复流程

  1. 停止数据库
  2. 清理环境
  3. 重演回滚--> 恢复数据
  4. 修改权限
  5. 启动数据库

关闭数据库:
# systemctl stop mysqld
# rm -rf /var/lib/mysql/*
# rm -rf /var/log/mysqld.log
# rm -rf /var/log/mysql-slow/slow.log (有则删除,无则不需要操作)
恢复之前的验证恢复:
# innobackupex --apply-log /xtrabackup/full/2020-05-11_15-20-18/

确认数据库目录: 恢复之前需要确认配置文件内有数据库目录指定,不然xtrabackup不知道恢复到哪里 # cat /etc/my.cnf
[mysqld] datadir=/var/lib/mysql

恢复数据:
[root@xingdian mysql]# innobackupex --copy-back /xtrabackup/full/2020-05-11_15-20-18/
修改权限:
[root@xingdian mysql]# chown mysql.mysql /var/lib/mysql -R
启动数据库:
[root@xingdian mysql]# systemctl start mysqld
验证数据:
[root@xingdian mysql]# mysql -u root -pxxxx
mysql> show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL数据库备份原理是指将数据库中的数据和结构保存到外部存储介质,以便在需要的时候恢复到原始状态或者从备份中恢复数据。 MySQL数据库备份主要有物理备份和逻辑备份两种方式。 物理备份是将数据库物理文件直接复制到备份文件中,包括数据文件、日志文件、索引文件等。这种备份方法比较快速,直接拷贝整个数据库文件,但不方便对单个表或单个记录进行恢复。 逻辑备份是通过SQL语句的方式将数据库中的数据导出到备份文件中。这种备份方法可以选择性地备份指定的表或记录,恢复时也能够选择性地恢复指定的数据。逻辑备份的缺点是备份和恢复的过程比较慢。 MySQL数据库有多种备份方法,包括通过命令行工具使用mysqldump命令进行备份,通过图形界面工具如MySQL Workbench进行备份,以及通过第三方备份工具如XtraBackup进行备份等。 在备份过程中,为了保证备份的完整性和一致性,通常会采用事务的方式进行备份。在备份开始前,会生成一个全局读锁,阻止其他用户对数据库进行写操作,确保备份过程中数据不会发生变化。备份完成后,释放锁,其他用户可以继续对数据库进行操作。 为了确保备份数据的可靠性和安全性,需要将备份文件存储在可靠的外部存储介质中,如硬盘、磁带、云存储等,并定期进行备份文件的校验和验证,以防止备份文件损坏或丢失。 总之,MySQL数据库备份原理是通过物理备份或逻辑备份的方式将数据库的数据和结构保存到外部存储介质中,以便在需要的时候恢复或恢复数据。备份过程中会采用事务和锁机制来保证数据的一致性和完整性,同时需要将备份文件存储在可靠的介质中进行保护和验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值