热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

MySQL基于LVM快照的备份恢复-mysql教程

测试环境中已安装有mysql5.5.36数据库,但数据目录没有存放在LVM卷,此次要演示基于LVM的数据备份和恢复,所以就把mysql的数据先

测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷,此次要演示基于LVM的数据备份和恢复,所以就把mysql的数据先

目录
1、数据库全备份
2、准备LVM卷
3、数据恢复到LVM卷
4、基于LVM快照备份数据
5、数据灾难恢复
6、总结

写在前面:
测试环境中已安装有mysql 5.5.36数据库,但数据目录没有存放在LVM卷,此次要演示基于LVM的数据备份和恢复,所以就把mysql的数据先迁移到LVM上再做快照卷的备份。
如果innodb表基于LVM来做备份,那事务日志文件和数据文件要在同一个LVM的逻辑卷上,因为在同一时刻我们只能对一个逻辑卷做快照,如果事务日志与数据文件不在同一卷上,那做快照后会导致事务日志的事件与真正数据中提交的事务会不一致。

1、数据库全备份
先把现有的数据利用mysqldum工具进行全备份:
[root@mariadb ~]# mysqldump -uroot -p123456 --lock-all-tables --flush-logs --events --routines --master-data=2 --all-databases > /backup/data_dir/fulldata-`date +%F` .sql
[root@mariadb ~]# ls /backup/data_dir/
fulldata-2015-04-14.sql
[root@mariadb ~]# service mysqld stop #停止mysql

2、准备LVM卷

事先准备好两个卷作为LVM的PV:
[root@mariadb ~]# fdisk -l
Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bf287
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 102400 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 13 1926 15360000 83 Linux
/dev/sda3 1926 2056 1048576 82 Linux swap / Solaris
/dev/sda4 2056 6527 35916127+ 5 Extended
/dev/sda5 2056 2709 5248011 8e Linux LVM
/dev/sda6 2710 3363 5253223+ 8e Linux LVM

创建PV:
[root@mariadb ~]# pvcreate /dev/sda5 /dev/sda6
Physical volume "/dev/sda5" successfully created
Physical volume "/dev/sda6" successfully created

创建VG:
12 [root@mariadb ~]# vgcreate mygroup /dev/sda5 /dev/sda6
Volume group "mygroup" successfully created

创建LV:
[root@mariadb ~]# lvcreate -n mysqldata --size 3G mygroup #大小设置为3GB
Logical volume "mysqldata" created

格式化LV并挂载:
[root@mariadb ~]# lvdisplay #显示逻辑卷的详细信息
[root@mariadb ~]# mke2fs -t ext4 /dev/mygroup/mysqldata #格式化
[root@mariadb ~]# blkid /dev/mygroup/mysqldata #获取UUID
/dev/mygroup/mysqldata: UUID="f863e626-e34e-4207-b9cb-7fbb9c5b7f1e" TYPE="ext4"
[root@mariadb ~]# mkdir /mnt/mydata #创建挂载目录

在/etc/fstab文件中加入下边一行:
[root@mariadb ~]# vim /etc/fstab
UUID=f863e626-e34e-4207-b9cb-7fbb9c5b7f1e /mnt/mydata ext4 defaults 0 0
[root@mariadb ~]# mount -a #重新挂载
[root@mariadb ~]# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/mygroup-mysqldata on /mnt/mydata type ext4 (rw)

3、数据恢复到LVM卷

创建数据目录及权限设置:
[root@mariadb ~]# mkdir /mnt/mydata/data
[root@mariadb ~]# chown -R mysql:mysql /mnt/mydata/data
[root@mariadb ~]# vim /etc/my.cnf #修改数据目录位置
datadir = /mnt/mydata/data
[root@mariadb ~]# cd /opt/lamp/mysql55/ #切换到mysql的安装目录

初始化数据库:

[root@mariadb mysql55]# scripts/mysql_install_db --user=mysql --datadir=/mnt/mydata/data

修改datadir指向的目录:

[root@mariadb mysql55]# vim /etc/rc.d/init.d/mysqld
datadir=/mnt/mydata/data

启动mysql,很奇怪,在我没有修改mysqld脚本文件中的datadir时也能正常启动:

[root@mariadb mysql55]# service mysqld start

接入mysql,修改接入密码导入备份数据:
mysql> SET PASSWORD FOR );
mysql> FLUSH PRIVILEGES;
mysql> source /backup/data_dir/fulldata-2015-04-14.sql
mysql> show databases; #数据已恢复
+--------------------+
| Database |
+--------------------+
| information_schema |
| mydb1 |
| mydb2 |
| mysql |
| performance_schema |
| test |
+--------------------+

推荐阅读
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 本文档详细介绍了2017年8月31日关于MySQL数据库备份与恢复的教学内容,包括MySQL日志功能、备份策略、备份工具及实战演练。 ... [详细]
  • 本文详细探讨了不同SQL数据库管理系统(DBMS)在限制输出结果、拼接字段和日期时间处理方面的函数差异。通过具体示例,帮助读者理解并掌握如何在不同DBMS中实现相同功能。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • Linux虚拟机中MySQL安装指南
    本文详细介绍了如何在Linux虚拟机上安装MySQL,包括解决常见问题的方法和步骤。 ... [详细]
  • 本文详细介绍了如何解决在使用本地SQlyog客户端尝试连接阿里云上的MariaDB数据库时遇到的2003错误,即无法连接到MySQL服务器的问题。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • CentOS 7 默认安装了 MariaDB,作为 MySQL 的一个分支。然而,出于特定需求,我们可能仍需在系统中安装 MySQL。本文将详细介绍如何通过 Yum 包管理器在 CentOS 7 上安装 MySQL,并提供一些常用的 MySQL 命令。 ... [详细]
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
author-avatar
期待眺望未来_974
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有