国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL備份與恢復(fù)之熱拷貝(4)

2024-07-24 13:07:50
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

熱拷貝支持服務(wù)運(yùn)行中進(jìn)行備份,速度快,性能好,但它的劣勢(shì)在于只能備份MyIsam的表,無(wú)法備份InnoDB的表,對(duì)熱拷貝感興趣的朋友可以參考一下這篇文章

在上一篇文章中我們提到熱備,熱備也就是在MySQL或者其他數(shù)據(jù)庫(kù)服務(wù)在運(yùn)行的情況下進(jìn)行備份。本文分享另外一種備份的方法,也就是熱拷貝。熱拷貝跟熱備很類(lèi)似,只不過(guò)熱備使用mysqldump命令,熱拷貝使用mysqlhotcopy命令。熱拷貝的優(yōu)勢(shì)在于支持服務(wù)運(yùn)行中進(jìn)行備份,速度快,性能好;劣勢(shì)在于只能備份MyIsam的表,無(wú)法備份InnoDB的表。所以在生產(chǎn)環(huán)境中應(yīng)該酌情使用。

示意圖

MySQL備份與恢復(fù)之熱拷貝(4)

熱備模擬

第一步,熱拷貝

 

 
  1. [root@serv01 databackup]# mysqlhotcopy -uroot -p123456 --database larrydb > larrydb_hostcopy.sql 
  2. Can'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. 
  3. BEGIN failed--compilation aborted at /usr/local/mysql/bin/mysqlhotcopy line 25. 

第二步,報(bào)錯(cuò)。因?yàn)檫@個(gè)命令是用perl寫(xiě)的或者此命令需要perl支持,所以需要安裝perl

 

 
  1. [root@serv01 databackup]# yum install perl* -y 

第三步,對(duì)數(shù)據(jù)庫(kù)larrydb熱拷貝

 

 
  1. [root@serv01 databackup]# mysqlhotcopy --help 

#第一種寫(xiě)法

 

 
  1. [root@serv01 databackup]# mysqlhotcopy --user=root --password=123456 larrydb /databackup/ 

#第二種寫(xiě)法

 

 
  1. [root@serv01 databackup]# mysqlhotcopy -u root -p 123456 larrydb /databackup/ 
  2.  
  3. Flushed 2 tables with read lock (`larrydb`.`class`, `larrydb`.`stu`) in 0 seconds. 
  4. Locked 0 views () in 0 seconds. 
  5. Copying 5 files... 
  6. Copying indices for 0 files... 
  7. Unlocked tables. 
  8. mysqlhotcopy copied 2 tables (5 files) in 0 seconds (0 seconds overall). 

第四步,模擬數(shù)據(jù)丟失

 

 
  1. [root@serv01 databackup]# ll larrydb 
  2. total 36 
  3. -rw-rw----. 1 mysql mysql 8590 Sep 10 19:07 class.frm 
  4. -rw-rw----. 1 mysql mysql 65 Sep 10 19:07 db.opt 
  5. -rw-rw----. 1 mysql mysql 8618 Sep 10 19:07 stu.frm 
  6. -rw-rw----. 1 mysql mysql 48 Sep 10 19:07 stu.MYD 
  7. -rw-rw----. 1 mysql mysql 1024 Sep 10 19:07 stu.MYI 
  8.  
  9. mysql> use larrydb; 
  10. Database changed 
  11. mysql> show tables; 
  12. +-------------------+ 
  13. | Tables_in_larrydb | 
  14. +-------------------+ 
  15. class | 
  16. | stu | 
  17. +-------------------+ 
  18. 2 rows in set (0.00 sec) 
  19.  
  20. mysql> show create table class /G; 
  21. *************************** 1. row *************************** 
  22. Table: class 
  23. Create Table: CREATE TABLE `class` ( 
  24. `cid` int(11) DEFAULT NULL, 
  25. `cname` varchar(30) DEFAULT NULL 
  26. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 
  27. 1 row in set (0.00 sec) 
  28.  
  29. ERROR:  
  30. No query specified 
  31.  
  32. mysql> show create table stu /G; 
  33. *************************** 1. row *************************** 
  34. Table: stu 
  35. Create Table: CREATE TABLE `stu` ( 
  36. `sid` int(11) DEFAULT NULL, 
  37. `sname` varchar(30) DEFAULT NULL, 
  38. `cid` int(11) DEFAULT NULL 
  39. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 
  40. 1 row in set (0.00 sec) 
  41.  
  42. ERROR:  
  43.  
  44. mysql> drop table class,stu; 
  45. Query OK, 0 rows affected (0.01 sec) 
  46.  
  47. mysql> show tables; 
  48. Empty set (0.00 sec) 
  49.  
  50. #這樣刪除會(huì)出錯(cuò),不要這樣刪除 
  51. [root@serv01 databackup]# rm -rf /usr/local/mysql/data/larrydb/* 
  52. [root@serv01 databackup]# rm -rf /usr/local/mysql/data/larrydb/ 

第五步,恢復(fù)數(shù)據(jù)

 

 
  1. [root@serv01 databackup]# cp larrydb /usr/local/mysql/data/ -arvf 
  2. `larrydb' -> `/usr/local/mysql/data/larrydb' 
  3. `larrydb/stu.MYI' -> `/usr/local/mysql/data/larrydb/stu.MYI' 
  4. `larrydb/stu.MYD' -> `/usr/local/mysql/data/larrydb/stu.MYD' 
  5. `larrydb/stu.frm' -> `/usr/local/mysql/data/larrydb/stu.frm' 
  6. `larrydb/db.opt' -> `/usr/local/mysql/data/larrydb/db.opt' 
  7. `larrydb/class.frm' -> `/usr/local/mysql/data/larrydb/class.frm' 
  8.  
  9. mysql> use larrydb; 
  10. Database changed 
  11. mysql> show tables; 
  12. +-------------------+ 
  13. | Tables_in_larrydb | 
  14. +-------------------+ 
  15. class | 
  16. | stu | 
  17. +-------------------+ 
  18. 2 rows in set (0.00 sec) 
  19.  
  20. mysql> select * from class
  21. ERROR 1146 (42S02): Table 'larrydb.class' doesn't exist 
  22. mysql> select * from stu; 
  23. +------+---------+------+ 
  24. | sid | sname | cid | 
  25. +------+---------+------+ 
  26. | 1 | larry01 | 1 | 
  27. | 2 | larry02 | 2 | 
  28. +------+---------+------+ 
  29. 2 rows in set (0.00 sec) 
  30.  
  31. mysql> drop database larrydb; 
  32. Query OK, 2 rows affected (0.00 sec) 
  33.  
  34. #再次導(dǎo)入 
  35. [root@serv01 databackup]# mysql -uroot -p123456 < larrydb.sql 
  36.  
  37. mysql> use larrydb; 
  38. Database changed 
  39. mysql> show tables; 
  40. +-------------------+ 
  41. | Tables_in_larrydb | 
  42. +-------------------+ 
  43. class | 
  44. | stu | 
  45. +-------------------+ 
  46. 2 rows in set (0.00 sec) 
  47.  
  48. mysql> select * from stu; 
  49. +------+---------+------+ 
  50. | sid | sname | cid | 
  51. +------+---------+------+ 
  52. | 1 | larry01 | 1 | 
  53. | 2 | larry02 | 2 | 
  54. +------+---------+------+ 
  55. 2 rows in set (0.00 sec) 
  56.  
  57. mysql> select * from class
  58. +------+--------+ 
  59. | cid | cname | 
  60. +------+--------+ 
  61. | 1 | linux | 
  62. | 2 | oracle | 
  63. +------+--------+ 
  64. 2 rows in set (0.00 sec) 

本文介紹了另一種備份--熱拷貝,與熱備的區(qū)別在于使用的命令不同,熱拷貝使用mysqlhotcopy命令,希望大家可以親自動(dòng)手操作一下!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 道孚县| 鱼台县| 莒南县| 安国市| 进贤县| 开阳县| 贵州省| 武川县| 新津县| 武安市| 永嘉县| 台前县| 石渠县| 沅陵县| 安溪县| 宜黄县| 米脂县| 乌鲁木齐县| 湾仔区| 资兴市| 新密市| 岑溪市| 九江市| 张家港市| 专栏| 醴陵市| 灵宝市| 无极县| 四会市| 察雅县| 河津市| 遂宁市| 雅安市| 恩平市| 雅安市| 宁津县| 六盘水市| 张家港市| 孟连| 稻城县| 伊通|