MySQL 邏輯備份 mysqldump

邏輯備份特點

  • 備份的是建表、建庫、插入等操作所執(zhí)行SQL語句(DDL DML DCL),適用于中小型數(shù)據(jù)庫。
  • 效率相對較低
    在日常工作中,我們會使用 mysqldump 命令創(chuàng)建SQL格式的轉(zhuǎn)儲文件來備份數(shù)據(jù)庫?;蛘呶覀儼褦?shù)據(jù)導出后做數(shù)據(jù)遷移,主從復制等操作。mysqldump是一個邏輯備份工具,復制原始的數(shù)據(jù)庫對象定義和表數(shù)據(jù)產(chǎn)生一組可執(zhí)行的SQL語句。 默認情況下,生成insert語句,也能生成其它分隔符的輸出或XML格式的文件。

特點

  1. 自動記錄position位置。
show master  status\G;
  1. 可用性,一致性

鎖表機制

用法

mysqldump  -h 服務器  -u用戶名  -p密碼   數(shù)據(jù)庫名  > 備份文件.sql

/*查看幫助*/
mysqldump --help

日常用法

備份所有庫

// 先配置用戶名和密碼
shell> vi ~/.mysql_user
[mysqldump]
user=root
password=123

shell> mysqldump --defaults-file=~/.mysql_user -h172.16.153.10 --all-databases > `date +%FT%H_%M_%S`dump_all.sql
# 不包含 INFORMATION_SCHEMA,performance_schema,sys

備份指定的多個庫

shell> mysqldump db1 t1 t3 t7 > dump.sql

其他參數(shù)

  • --master-data=0|1|2

服務器的二進制日志必須打開

0 不記錄二進制日志文件及位置:

1 以CHANGE MASTER TO 的方式記錄位置,可用于恢復后直接啟動從服務器:

2 以CHANGE MASTER TO 的方式記錄位置,但默認被注釋:

  • --dump-slave 用于在slave上dump數(shù)據(jù),建立新的slave。因為我們在使用mysqldump時會鎖表,所以大多數(shù)情況下,我們的導出操作一般會在只讀備庫上做,為了獲取主庫的Relay_Master_Log_File(二進制日志)和Exec_Master_Log_Pos(主服務器二進制日志中數(shù)據(jù)所處的位置),需要用到這個參數(shù),不過這個參數(shù)只有在5.7以后的才會有
  • --no-data, -d 不導出任何數(shù)據(jù),只導出數(shù)據(jù)庫表結構
  • --lock-all-tables:鎖定所有表 對MyISAM引擎的表開始備份前,先鎖定所有表。

優(yōu)勢

mysqldump的優(yōu)勢:

  1. 可以查看或者編輯十分方便,它也可以靈活性的恢復之前的數(shù)據(jù)。
  2. 不關心底層的存儲引擎,既適用于支持事務的,也適用于不支持事務的表。
  3. 不過它不能作為一個快速備份大量的數(shù)據(jù)或可伸縮的解決方案。如果數(shù)據(jù)庫過大,即使備份步驟需要的時間不算太久,但有可能恢復數(shù)據(jù)的速度也會非常慢,因為它涉及的SQL語句插入磁盤I/O,創(chuàng)建索引等等。 對于大規(guī)模的備份和恢復,更合適的做法是物理備份,復制其原始格式的數(shù)據(jù)文件,可以快速恢復。

恢復

shell> mysql -uroot -h"ip地址" -p"密碼" 庫名 表名 < dump.sql

或者,在MySQL中,使用source命令:

mysql> source dump.sql

如果文件是不包含CREATE DATABASEUSE語句的但數(shù)據(jù)庫轉(zhuǎn)儲,請首先創(chuàng)建數(shù)據(jù)庫(如有必要):

shell> mysqladmin create db1

然后在加載轉(zhuǎn)儲文件時指定數(shù)據(jù)庫名稱:

shell> mysql db1 < dump.sql

或者,在mysql中創(chuàng)建數(shù)據(jù)庫,將其選為默認數(shù)據(jù)庫,然后加載轉(zhuǎn)儲文件:

mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql>source dump.sql

Example

shell> mysql --defaults-file=~/.mysql_user < /backup/2016-12-08-04-mysql-all.sql
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 雖然不能恢復百分百,至少能將損失降到最低。 有個問題測試: 主從同步時,主庫網(wǎng)絡斷開,binlog dump線程...
    kun_zhang閱讀 3,174評論 0 6
  • 轉(zhuǎn)載:https://www.cnblogs.com/along21/p/8005775.html 轉(zhuǎn)載:Mysq...
    SkTj閱讀 2,875評論 0 16
  • 1 特點自動記錄position位置。 2 可用性,一致性鎖表機制 用法 日常用法備份所有庫 備份指定的多個庫 備...
    leivers閱讀 471評論 0 0
  • MYSQL 基礎知識 1 MySQL數(shù)據(jù)庫概要 2 簡單MySQL環(huán)境 3 數(shù)據(jù)的存儲和獲取 4 MySQL基本操...
    Kingtester閱讀 8,050評論 5 115
  • 今天看到一位朋友寫的mysql筆記總結,覺得寫的很詳細很用心,這里轉(zhuǎn)載一下,供大家參考下,也希望大家能關注他原文地...
    信仰與初衷閱讀 4,818評論 0 30

友情鏈接更多精彩內(nèi)容