Mysql必读MySQL备份与恢复之热拷贝(4)

Mysql必读MySQL备份与恢复之热拷贝(4),第1张

概述介绍《Mysql必读MySQL备份与恢复之热拷贝(4)》开发教程,希望对您有用。

《MysqL必读MysqL备份与恢复之热拷贝(4)》要点:
本文介绍了MysqL必读MysqL备份与恢复之热拷贝(4),希望对您有用。如果有疑问,可以联系我们。

MysqL必读       在上一篇文章中我们提到热备,热备也就是在MysqL或者其他数据库服务在运行的情况下进行备份.本文分享另外一种备份的方法,也就是热拷贝.热拷贝跟热备很类似,只不过热备使用MysqLdump命令,热拷贝使用MysqLhotcopy命令.热拷贝的优势在于支持服务运行中进行备份,速度快,性能好;劣势在于只能备份MyIsam的表,无法备份InnoDB的表.所以在生产环境中应该酌情使用.

MysqL必读示意图

MysqL必读

MysqL必读热备模拟

MysqL必读第一步,热拷贝

MysqL必读[root@serv01 databackup]# MysqLhotcopy -uroot -p123456 --database larrydb > larrydb_hostcopy.sqlCan't locate DBI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/MysqL/bin/MysqLhotcopy line 25.BEGIN Failed--compilation aborted at /usr/local/MysqL/bin/MysqLhotcopy line 25.

MysqL必读第二步,报错.因为这个命令是用perl写的或者此命令需要perl支持,所以需要安装perl

MysqL必读[root@serv01 databackup]# yum install perl* -y

MysqL必读第三步,对数据库larrydb热拷贝

MysqL必读[root@serv01 databackup]# MysqLhotcopy --help

MysqL必读#第一种写法

MysqL必读[root@serv01 databackup]# MysqLhotcopy --user=root --password=123456 larrydb /databackup/

MysqL必读#第二种写法

MysqL必读[root@serv01 databackup]# MysqLhotcopy -u root -p 123456 larrydb /databackup/Flushed 2 tables with read lock (`larrydb`.`class`,`larrydb`.`stu`) in 0 seconds.Locked 0 vIEws () in 0 seconds.copying 5 files...copying indices for 0 files...Unlocked tables.MysqLhotcopy copIEd 2 tables (5 files) in 0 seconds (0 seconds overall).

MysqL必读 
第四步,模拟数据丢失

MysqL必读[root@serv01 databackup]# ll larrydbtotal 36-rw-rw----. 1 MysqL MysqL 8590 Sep 10 19:07 class.frm-rw-rw----. 1 MysqL MysqL  65 Sep 10 19:07 db.opt-rw-rw----. 1 MysqL MysqL 8618 Sep 10 19:07 stu.frm-rw-rw----. 1 MysqL MysqL  48 Sep 10 19:07 stu.MYD-rw-rw----. 1 MysqL MysqL 1024 Sep 10 19:07 stu.MYIMysqL> use larrydb;Database changedMysqL> show tables;+-------------------+| tables_in_larrydb |+-------------------+| class       || stu        |+-------------------+2 rows in set (0.00 sec)MysqL> show create table class \G;*************************** 1. row ***************************    table: classCreate table: CREATE table `class` ( `cID` int(11) DEFAulT NulL,`cname` varchar(30) DEFAulT NulL) ENGINE=InnoDB DEFAulT CHARSET=latin11 row in set (0.00 sec)ERROR: No query specifIEdMysqL> show create table stu \G;*************************** 1. row ***************************    table: stuCreate table: CREATE table `stu` ( `sID` int(11) DEFAulT NulL,`sname` varchar(30) DEFAulT NulL,`cID` int(11) DEFAulT NulL) ENGINE=MyISAM DEFAulT CHARSET=latin11 row in set (0.00 sec)ERROR: MysqL> drop table class,stu;query OK,0 rows affected (0.01 sec)MysqL> show tables;Empty set (0.00 sec) #这样删除会出错,不要这样删除[root@serv01 databackup]# rm -rf /usr/local/MysqL/data/larrydb/*[root@serv01 databackup]# rm -rf /usr/local/MysqL/data/larrydb/

MysqL必读 
第五步,恢复数据

MysqL必读[root@serv01 databackup]# cp larrydb /usr/local/MysqL/data/ -arvf`larrydb' -> `/usr/local/MysqL/data/larrydb'`larrydb/stu.MYI' -> `/usr/local/MysqL/data/larrydb/stu.MYI'`larrydb/stu.MYD' -> `/usr/local/MysqL/data/larrydb/stu.MYD'`larrydb/stu.frm' -> `/usr/local/MysqL/data/larrydb/stu.frm'`larrydb/db.opt' -> `/usr/local/MysqL/data/larrydb/db.opt'`larrydb/class.frm' -> `/usr/local/MysqL/data/larrydb/class.frm'MysqL> use larrydb;Database changedMysqL> show tables;+-------------------+| tables_in_larrydb |+-------------------+| class       || stu        |+-------------------+2 rows in set (0.00 sec)MysqL> select * from class;ERROR 1146 (42S02): table 'larrydb.class' doesn't existMysqL> select * from stu;+------+---------+------+| sID | sname  | cID |+------+---------+------+|  1 | larry01 |  1 ||  2 | larry02 |  2 |+------+---------+------+2 rows in set (0.00 sec)MysqL> drop database larrydb;query OK,2 rows affected (0.00 sec)#再次导入[root@serv01 databackup]# MysqL -uroot -p123456 < larrydb.sqlMysqL> use larrydb;Database changedMysqL> show tables;+-------------------+| tables_in_larrydb |+-------------------+| class       || stu        |+-------------------+2 rows in set (0.00 sec)MysqL> select * from stu;+------+---------+------+| sID | sname  | cID |+------+---------+------+|  1 | larry01 |  1 ||  2 | larry02 |  2 |+------+---------+------+2 rows in set (0.00 sec)MysqL> select * from class;+------+--------+| cID | cname |+------+--------+|  1 | linux ||  2 | oracle |+------+--------+2 rows in set (0.00 sec)

MysqL必读本文介绍了另一种备份--热拷贝,与热备的区别在于使用的命令不同,热拷贝使用MysqLhotcopy命令,希望大家可以亲自动手 *** 作一下!

总结

以上是内存溢出为你收集整理的Mysql必读MySQL备份与恢复之热拷贝(4)全部内容,希望文章能够帮你解决Mysql必读MySQL备份与恢复之热拷贝(4)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/1161792.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存