1. 程式人生 > >mysqldump xtrabackup 邏輯備份和物理備份

mysqldump xtrabackup 邏輯備份和物理備份

nbsp sql_mod uniq 精度 utf8 ron 溫備 就是 conn

邏輯備份

邏輯備份是備份sql語句,在恢復的時候執行備份的sql語句實現數據庫數據的重現。

工具:mysqldump

特點:

1、可移植性比較強

2、備份和恢復的花費時間長,不適用於大型業務系統

物理備份

物理備份就是備份數據文件了,比較形象點就是cp下數據文件,但真正備份的時候自然不是的cp這麽簡單。

工具:xtrabackup

特點:

1、不具備移植性,備份環境和恢復環境必須是完全相同的

2、備份和恢復時間較快,適用於大型業務系統

mysqldump

備份原理:通過協議連接到mysql數據庫,將需要備份的數據查詢出來,將查詢出的數據轉換成對應的insert語句,當我們需要還原這些數據時,只要執行這些insert語句,即可將對應的數據還原。

優點:

可以直接使用文本處理工具處理對應的備份數據,因為備份數據已經被mysqldump轉換為了對應的insert語句,所以,我們可以借助文件系統中的文本處理工具對備份數據進行直接處理。


缺點:

1、無法備份索引等信息(因為它只是單純的將需要備份的數據查詢出來,還原後需要重建索引)

2、當數據為浮點類型時,會出現精度丟失

3、備份過程屬於邏輯備份,備份速度、恢復速度與物理備份工具相比較慢,而且mysqldump備份的過程是串行化的,不會並行的進行備份,如果想要並行備份,可以使用mydumper,但是此處我們不考慮這些,只考慮mysqldump,當數據量較大時,一般不會使用mysqldump進行備份,因為效率較低。

特性:

mysqldump對innodb存儲引擎支持熱備,innodb支持事務,我們可以基於事務通過mysqldump對數據庫進行熱備。

mysqldump對myisam存儲引擎只支持溫備,通過mysqldump對使用myisam存儲引擎的表進行備份時,最多只能實現溫備,因為在備份時會對備份的表請求鎖,當備份完成後,鎖會被釋放。

使用:

[root@backup2] /var/lib/mysql$ mysqldump -uroot test -p
Enter password:
-- MySQL dump 10.13 Distrib 5.7.21, for Linux (x86_64)
--
-- Host: localhost Database: test
-- ------------------------------------------------------
-- Server version 5.7.21-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE=‘+00:00‘ */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘NO_AUTO_VALUE_ON_ZERO‘ */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `tb1`
--

DROP TABLE IF EXISTS `tb1`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tb1` (
`name` varchar(60) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `tb1`
--

LOCK TABLES `tb1` WRITE;
/*!40000 ALTER TABLE `tb1` DISABLE KEYS */;
INSERT INTO `tb1` VALUES (‘hanli‘,27),(‘dongpo‘,24),(‘heiqi‘,28),(‘yeyi‘,28),(‘xueji‘,24);
/*!40000 ALTER TABLE `tb1` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2018-03-17 4:50:16

xtrabackup

mysqldump xtrabackup 邏輯備份和物理備份