共計 3564 個字符,預計需要花費 9 分鐘才能閱讀完成。
本篇內容介紹了“mysqldump 備份方法怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
起步
物理備份
備份數據文件,轉儲數據庫物理文件到某一目錄。物理備份恢復速度比較快,但占用空間比較大,MySQL 中可以用 xtrabackup 工具來進行物理備份。
邏輯備份
對數據庫對象利用工具進行導出工作,匯總入備份文件內。邏輯備份恢復速度慢,但占用空間小,更靈活。MySQL 中常用的邏輯備份工具為 mysqldump。邏輯備份就是備份 sql 語句,在恢復的時候執行備份的 sql 語句實現數據庫數據的重現
邏輯備份
備份 1 個數據庫
mysqldump –u 用戶名稱 –h 主機名稱 –p 密碼 待備份的數據庫名稱 [tbname, [tbname...]] 備份文件名稱.sql
mysqldump -uroot -p atguigudb1 /var/lib/mysql/atguigu.sql
備份全部數據庫
mysqldump -uroot -pxxxxxx --all-databases all_database.sql
mysqldump -uroot -pxxxxxx -A all_database.sql
備份部分數據庫
mysqldump –u user –h host –p --databases [數據庫的名稱 1 [ 數據庫的名稱 2...]] 備份文件名稱.sql
mysqldump -uroot -p --databases atguigu atguigu12 two_database.sql
mysqldump -uroot -p -B atguigu atguigu12 two_database.sql
備份部分表
mysqldump –u user –h host –p 數據庫的名稱 [表名 1 [ 表名 2...]] 備份文件名稱.sql
# 只備份 book 表
mysqldump -uroot -p atguigu book book.sql
# 備份多張表
mysqldump -uroot -p atguigu book account 2_tables_bak.sql
備份單表的部分數據
# 備份 student 表中 id 小于 10 的數據
mysqldump -uroot -p atguigu student --where= id 10 student_part_id10_low_bak.sql
過濾某些表不做備份
mysqldump -uroot -p atguigu --ignore-table=atguigu.student no_stu_bak.sql
只備份結構
# 只備份結構的話可以使用 --no-data 簡寫為 -d 選項
mysqldump -uroot -p atguigu --no-data atguigu_no_data_bak.sql
只備份數據
# 只備份數據可以使用 --no-create-info 簡寫為 -t 選項
mysqldump -uroot -p atguigu --no-create-info atguigu_no_create_info_bak.sql
備份中包含存儲過程、函數、事件
# mysqldump 備份默認是不包含存儲過程,自定義函數及事件的。可以使用 --routines 或 -R 選項來備份存儲過程及函數,使用 --events 或 -E 參數來備份事件
mysqldump -uroot -p -R -E --databases atguigu fun_atguigu_bak.sql
mysqldump 其他常用選項
--add-drop-database:在每個 CREATE DATABASE 語句前添加 DROP DATABASE 語句。--add-drop-tables:在每個 CREATE TABLE 語句前添加 DROP TABLE 語句。--add-locking:用 LOCK TABLES 和 UNLOCK TABLES 語句引用每個表轉儲。重載轉儲文件時插入得更快。--all-database, -A:轉儲所有數據庫中的所有表。與使用 --database 選項相同,在命令行中命名所有數據庫。--comment[=0|1]:如果設置為 0,禁止轉儲文件中的其他信息,例如程序版本、服務器版本和主機。--skipcomments 與 --comments= 0 的結果相同。默認值為 1,即包括額外信息。--compact:產生少量輸出。該選項禁用注釋并啟用 --skip-add-drop-tables、--no-set-names、--skipdisable-keys 和 --skip-add-locking 選項。--compatible=name:產生與其他數據庫系統或舊的 MySQL 服務器更兼容的輸出,值可以為 ansi、MySQL323、MySQL40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options 或者 no_field_options。--complete_insert, -c:使用包括列名的完整的 INSERT 語句。--debug[=debug_options], -#[debug_options]:寫調試日志。--delete,-D:導入文本文件前清空表。--default-character-set=charset:使用 charsets 默認字符集。如果沒有指定,就使用 utf8。--delete--master-logs:在主復制服務器上,完成轉儲操作后刪除二進制日志。該選項自動啟用 -masterdata。--extended-insert,-e:使用包括幾個 VALUES 列表的多行 INSERT 語法。這樣使得轉儲文件更小,重載文件時可以加速插入。--flush-logs,-F:開始轉儲前刷新 MySQL 服務器日志文件。該選項要求 RELOAD 權限。--force,-f:在表轉儲過程中,即使出現 SQL 錯誤也繼續。--lock-all-tables,-x:對所有數據庫中的所有表加鎖。在整體轉儲過程中通過全局鎖定來實現。該選項自動關閉 --single-transaction 和 --lock-tables。--lock-tables,-l:開始轉儲前鎖定所有表。用 READ LOCAL 鎖定表以允許并行插入 MyISAM 表。對于事務表(例如 InnoDB 和 BDB),--single-transaction 是一個更好的選項,因為它根本不需要鎖定表。--no-create-db,-n:該選項禁用 CREATE DATABASE /*!32312 IF NOT EXIST*/db_name 語句,如果給出 --database 或 --all-database 選項,就包含到輸出中。--no-create-info,-t:只導出數據,而不添加 CREATE TABLE 語句。--no-data,-d:不寫表的任何行信息,只轉儲表的結構。--opt:該選項是速記,它可以快速進行轉儲操作并產生一個能很快裝入 MySQL 服務器的轉儲文件。該選項默認開啟,但可以用 --skip-opt 禁用。--password[=password],-p 此處含有隱藏內容,需要正確輸入密碼后可見!
:當連接服務器時使用的密碼。-port=port_num,-P port_num:用于連接的 TCP/IP 端口號。--protocol={TCP|SOCKET|PIPE|MEMORY}:使用的連接協議。--replace,-r –replace 和 --ignore:控制替換或復制唯一鍵值已有記錄的輸入記錄的處理。如果指定 --replace,新行替換有相同的唯一鍵值的已有行;如果指定 --ignore,復制已有的唯一鍵值的輸入行被跳過。如果不指定這兩個選項,當發現一個復制鍵值時會出現一個錯誤,并且忽視文本文件的剩余部分。--silent,-s:沉默模式。只有出現錯誤時才輸出。--socket=path,-S path:當連接 localhost 時使用的套接字文件(為默認主機)。--user=user_name,-u user_name:當連接服務器時 MySQL 使用的用戶名。--verbose,-v:冗長模式,打印出程序操作的詳細信息。--xml,-X:產生 XML 輸出。
“mysqldump 備份方法怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!
正文完