最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL使用LVM快照实现备份

来源:懂视网 责编:小采 时间:2020-11-09 20:43:56
文档

MySQL使用LVM快照实现备份

MySQL使用LVM快照实现备份:新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydatalv mydata -wi-ao---- 1.00g [root@
推荐度:
导读MySQL使用LVM快照实现备份:新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydatalv mydata -wi-ao---- 1.00g [root@

新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下

[root@localhost ~]# lvs
 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert 
 mydatalv mydata -wi-ao---- 1.00g 
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/mydata-mydatalv 976M 2.6M 907M 1% /data

将原数据库文件复制到/data目录下

[root@localhost ~]# cp -a /var/lib/mysql /data/

修改配置文件,将mysql数据库文件放在lvm盘中,二进制文件放在非lvm盘的/var/lib/mysql/目录下

[root@ns1 ~]# vim /etc/my.cnf
 [mysqld]
 log_bin=/var/lib/mysql/mysql-bin
 datadir=/data/mysql
[root@localhost ~]# service mariadb restart
[root@localhost ~]# ls /data/mysql
aria_log.00000001 ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.000003 performance_schema
aria_log_control ib_logfile0 mysql mysql-bin.000002 mysql-bin.index test

可以看到重启后数据库文件已存放在了/data/mysql目录中了

对mysql进行锁表备份

[root@localhost ~]# mysql -e 'flush tables with read lock;' 锁表
[root@localhost ~]# mysql -e 'flush logs;' 对日志进行滚动,
[root@localhost ~]# mysql -e 'show master status;' > /root/back.$(date +%F+%T)
[root@localhost ~]# ls
back.2016-07-13+10:14:29

对lv创建快照

[root@localhost ~]# lvcreate -L 1G -n mysqlback -p r -s /dev/mydata/mydatalv

释放锁

[root@localhost ~]# mysql -e 'unlock tables;'

在别的磁盘上创建备份目录,只读挂载快照后备份至备份目录

[root@localhost ~]# mkdir /myback
[root@localhost ~]# mount -r /dev/mydata/mysqlback /mnt
[root@localhost ~]# cp -a /mnt/mysql /myback

修改表内容,然后删除掉数据库文件内容即/data/mysql中的内容

[root@localhost ~]# mysql
 MariaDB [hellodb]> use hellodb;
 MariaDB [hellodb]> insert into classes (class,numofstu) values ('xxoo',39);
[root@localhost ~]# rm -rf /data/*

修改配置文件中二进制日志和数据库文件的位置

[root@localhost ~]# vim /etc/my.cnf
 [mysqld]
 log_bin=/data/mysql/mysql-bin
 datadir=/data/mysql

利用/myback/中的内容还原

[root@localhost ~]# cp -a /myback/* /data/
[root@localhost ~]# service mariadb restart

利用二进制日志还原快照后的操作,由下面这个文件来查看快照执行时二进制日志的位置

[root@localhost ~]# cat back.2016-07-13+10\:14\:29 
File Position Binlog_Do_DB Binlog_Ignore_DB
mysql-bin.000014 245

将000014中245之后的操作做成sql文件,进行还原

[root@localhost ~]# mysqlbinlog --start-position=245 /var/lib/mysql/mysql-bin.000014 > binlog.sql
[root@localhost ~]# mysql < /root/binlog.sql

查看恢复情况

[root@localhost ~]# mysql
 MariaDB [(none)]> use hellodb;
 MariaDB [hellodb]> select * from classes;
 +---------+----------------+----------+
 | ClassID | Class | NumOfStu |
 +---------+----------------+----------+
 | 1 | Shaolin Pai | 10 |
 | 2 | Emei Pai | 7 |
 | 3 | QingCheng Pai | 11 |
 | 4 | Wudang Pai | 12 |
 | 5 | Riyue Shenjiao | 31 |
 | 6 | Lianshan Pai | 27 |
 | 7 | Ming Jiao | 27 |
 | 8 | Xiaoyao Pai | 15 |
 | 9 | xxoo | 39 |
 +---------+----------------+----------+
 9 rows in set (0.00 sec)

您可能感兴趣的文章:

  • XenServer 虚拟机扩容LVM磁盘分区的方法
  • java开发中如何使用JVisualVM进行性能分析
  • linux LVM快照创建详细步骤(使用PE完成)
  • linux 字符界面 安装模式创建LVM
  • 文档

    MySQL使用LVM快照实现备份

    MySQL使用LVM快照实现备份:新建一个lvm磁盘,这里我建的lv为mydatalv,挂载到了/data下 [root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mydatalv mydata -wi-ao---- 1.00g [root@
    推荐度:
    标签: 备份 快照 mysql
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top