mysqldump - 給 DBA 的 25 個小技巧

本文做者是 NIVAS,原文地址是 mysqldump – 25 tips for DBAsmysql

  1. mysqldump 是文本備份仍是二進制備份linux

    它是文本備份,若是你打開備份文件你將看到全部的語句,能夠用於從新建立表和對象。它也有 insert 語句來使用數據構成表。
  2. mysqldump 的語法是什麼?sql

    mysqldump -u [uname] -p[pass] –databases [dbname][dbname2] > [backupfile.sql]
  3. 使用 mysqldump 怎樣備份全部數據庫?數據庫

    mysqldump -u root -p –all-databases > backupfile.sql
  4. 使用 mysqldump 怎樣備份指定的數據庫?windows

    mysqldump -u root -p –databases school hospital > backupfile.sql
  5. 使用 mysqldump 怎樣備份指定的表?服務器

    mysqldump –user=root –password=mypassword -h localhost databasename table_name_to_dump table_name_to_dump_2 > dump_only_two_tables_file.sql
  6. 我不想要數據,怎樣僅獲取 DDL?socket

    mysqldump -u root -p –all-databases –no-data > backupfile.sql
  7. 一次 mysqldump 備份花費多長時間?大數據

    這依賴於數據庫大小,100 GB 大小的數據庫可能花費兩小時或更長時間
  8. 怎樣備份位於其餘服務器的遠程數據庫?ui

    mysqldump -h 172.16.25.126 -u root -ppass dbname > dbname.sql
  9. –routines 選項的含義是什麼?.net

    經過使用 -routines 產生的輸出包含 CREATE PROCEDURE 和 CREATE FUNCTION 語句用於從新建立 routines。若是你有 procedures 或 functions 你須要使用這個選項
  10. 怎樣列出 mysqldump 中的全部選項?

    mysqldump –help
  11. mysqldump 中經常使用的選項是?

    All-databases
    Databases 
    Routines
    Single-transaction (它不會鎖住表) – 一直在 innodb databases 中使用
    Master-data – 複製 (如今忽略了)
    No-data – 它將 dump 一個沒有數據的空白數據庫
  12. 默認全部的 triggers 都會備份嗎?

    是的
  13. single transaction 選項的含義是什麼?

    –singletransaction 選項避免了 innodb databases 備份期間的任何鎖,若是你使用這個選項,在備份期間,沒有鎖
  14. 使用 mysqldump 備份的經常使用命令是什麼?

    nohup mysqldump –socket=mysql.sock –user=user1 –password=pass –single-transaction –flush-logs –master-data=2 –all-databases –extended-insert –quick –routines > market_dump.sql 2> market_dump.err &
  15. 使用 mysqldump 怎樣壓縮一個備份?

    注意: 壓縮會下降備份的速度
    Mysqldump [options] | gzip > backup.sql.gz
  16. mysqldump 備份大數據庫是不是理想的?

    依賴於你的硬件,包括可用的內存和硬盤驅動器速度,一個在 5GB 和 20GB 之間適當的數據庫大小。 雖然有可能使用  mysqldump 備份 200GB 的數據庫,這種單一線程的方法須要時間來執行。
  17. 怎樣經過使用 mysqldump 來恢復備份?

    • 使用來源數據的方法
    • Mysql –u root –p < backup.sql
  18. 在恢復期間我想記錄錯誤到日誌中,我也想看看恢復的執行時間?

    Time Mysql –u root –p < backup.sql > backup.out 2>&1
  19. 怎樣知道恢復是否正在進行?

    顯示完整的進程列表
  20. 若是數據庫是巨大的,你不得不作的事情是?

    使用 nohup 在後臺運行它
  21. 我是否能夠在 windows 上使用 mysqldump 備份而後在 linux 服務器上恢復?

    是的
  22. 我怎麼傳輸文件到目標服務器上去?

    • 使用 scp
    • 使用 sftp
    • 使用 winscp
  23. 若是我使用一個巨大的備份文件來源來恢復會發生什麼?

    若是你的一個數據庫備份文件來源,它可能須要很長時間運行。處理這種狀況更好的方式是使用 nohup 來在後臺運行。也可以使用在 unix 中的 screen 代替
  24. 默認狀況下,mysqldump 包含 drop 數據庫嗎?

    你須要添加 –add-drop-database 選項
  25. 怎樣從一個多數據庫備份中提取一個數據庫備份(假設數據庫名字是 test)?

    sed -n '/^-- Current Database: `test`/,/^-- Current Database: `/p' fulldump.sql > test.sql
相關文章
相關標籤/搜索