MySQLDump的備份方法
導讀 | mysqldump 是日常比較常用的一個工具了,在對資料庫進行匯出工作時,經常會用到 mysqldump 。本篇文章將介紹 mysqldump 工具的使用方法並分享幾點備份技巧。 |
mysqldump 是 MySQL 系統自帶的邏輯備份工具,主要用於轉儲資料庫。它主要產生一系列的 SQL 語句,可以封裝到檔案,該檔案包含重建資料庫所需要的 SQL 如 CREATE DATABASE ,CREATE TABLE ,INSERT 等等。當我們需要還原這些資料時,只需要執行此檔案,即可將對應的資料還原。
mysqldump 基礎使用語法如下:
Usage: mysqldump [OPTIONS] database [tables] OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --all-databases [OPTIONS]
執行 mysqldump --help 或參考 MySQL 官方文件,我們發現 mysqldump 工具可配置的引數有很多,以下簡要說明部分常用的引數。
上表展示了一些常見的 mysqldump 相關選項,當你不瞭解某個引數的作用時,可以執行 mysqldump --help 來獲取幫助。對於布林型別的引數,一般還存在一個與之對立的引數,如 --triggers 預設開啟,可以使用 --skip-triggers 來禁用它。
雖然 mysqldump 不太適用於大資料量的備份,但因其具有靈活方便、可根據場景定製引數等優點,還是被廣泛應用在資料匯出領域。
筆者根據自己的使用經驗,簡單分享幾點 mysqldump 備份小技巧:
- 建議使用 --single-transaction 引數來獲得一致性備份,減少鎖表。
- 按需求來匯出,只要自己想要的資料,儘量減少匯出檔案大小。
- 若想用於搭建從庫,建議使用 --master-data = 2 引數記錄主庫 binlog 資訊。
- 若想備份儲存過程、自定義函式及事件,請加 -R -E 引數,此二者預設不開啟。
- 不瞭解的引數不要隨意加,按預設即可。
下面分享幾個不同場景下的 mysqldump 使用方法:
# 備份全部資料庫(包含儲存過程、自定義函式及事件) mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases > /tmp/all_database.sql # 要求記錄 binlog 位點資訊 可用於搭建從庫 mysqldump -uroot -pxxxxxx --single-transaction -R -E --all-databases --master-data=2 > /tmp/all_database.sql # 備份指定資料庫 mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 > /tmp/db1.sql mysqldump -uroot -pxxxxxx --single-transaction -R -E --databases db1 db2 > /tmp/db1_db2.sql # 備份部分表 mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 > /tmp/tb1.sql mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 tb2 tb3 > /tmp/tb.sql # 匯出某個表,資料以單行insert顯示 mysqldump -uroot -pxxxxxx --single-transaction --skip-extended-insert db1 tb1 > /tmp/tb1.sql # 匯出單表的部分資料 mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where=" create_time >= '2021-06-01 00:00:00' " > /tmp/tb1.sql mysqldump -uroot -pxxxxxx --single-transaction db1 tb1 --where='id < 10' > /tmp/tb1.sql # 排除某些表匯出 mysqldump -uroot -pxxxxxx --single-transaction --databases db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > /tmp/db1.sql # 只匯出結構或只匯出資料 mysqldump -uroot -pxxxxxx db1 --no-data > /tmp/db1_jiegou.sql mysqldump -uroot -pxxxxxx db1 --no-create-info > /tmp/db1_data.sql # 只匯出某個庫的儲存過程及自定義函式 mysqldump -uroot -pxxxxxx -d -t -R db1 > /tmp/db1_routine.sql # 遠端匯出 即MySQL服務端不在本地 mysqldump -uroot -pxxxxxx -hxxx.xxx.xx -P3306 --single-transaction --databases db1 > /tmp/db1.sql
本篇文章主要介紹了 mysqldump 工具的使用方法及一些常見場景。mysqldump 作為一個實用工具,希望各位都能上手學習下,比用 Navicat 等圖形化介面匯出更快速,且檔案體積小。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2783917/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Mysqldump的備份流程MySql
- 【mysqldump】mysqldump及備份恢復示例MySql
- mysqldump備份技巧分享MySql
- 簡單的mysqldump備份(windows)MySqlWindows
- windows mysqldump備份指令碼WindowsMySql指令碼
- 詳解MySQL資料備份之mysqldump使用方法MySql
- mysqldump使用方法(MySQL資料庫的備份與恢復)MySql資料庫
- mysqldump 資料庫備份程式MySql資料庫
- MySQL主從配置及mysqldump備份MySql
- mysql5.6 mysqldump備份報錯MySql
- mysqldump全量備份+mysqlbinlog二進位制日誌增量備份MySql
- mysqldump壓縮備份匯出匯入(含定期備份shell指令碼)MySql指令碼
- Mysqldump 在備庫進行備份時會阻塞備庫的sql_threadMySqlthread
- mysqldump+mysqlbinlog執行備份與還原MySql
- Linux基礎命令---mysqldump資料庫備份LinuxMySql資料庫
- Mysql備份和還原資料庫-mysqldumpMySql資料庫
- 關於mysqldump備份非事務表的注意事項MySql
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- Mysqldump備份說明及資料庫備份指令碼分享-運維筆記MySql資料庫指令碼運維筆記
- mysqldump備份時如何保持資料的一致性MySql
- mysqldump備份單庫、部分庫、全庫、及排除部分庫MySql
- gitlab備份方法Gitlab
- 當心!使用mysqldump備份可能會讓你欲哭無淚MySql
- mysqldump備份時的資料一致性問題--single-transactionMySql
- 【備份】RMAN中對控制檔案的幾種備份方法
- mysqldump 備份匯出資料排除某張表或多張表MySql
- Dedecms備份的資料檔案位置及備份資料庫的方法資料庫
- windows下使用mysqldump備份資料庫並上傳到阿里雲OSSWindowsMySql資料庫阿里
- 備份Kubernetes和Docker方法Docker
- MySQL資料庫常用的備份方法MySql資料庫
- 伺服器證書的備份方法伺服器
- 利用MySQL全備份(mysqldump),如何只恢復一個庫或者一個表?MySql
- Mac時間機器備份加速教程,Time Machine 備份太慢的解決方法Mac
- 解密MySQL備份恢復的4種方法解密MySql
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- mysql的冷備份與熱備份MySql
- win10備份登錄檔的方法_win10登錄檔如何備份Win10
- 手機通訊錄怎麼備份?手機通訊錄的幾種備份方法