制作mysql數據快照


在建立主從關系時,如果主上有舊數據,需要將舊數據拷貝到每一個從上。下面介紹幾種不同的拷貝方式。

方法一:使用mysqldump工具創建一個你想要復制的所有數據庫的一個dump。這是推薦使用的方法,特別是如果表的存儲引擎都是innodb。

具體操作方法:

  • 找到mysqldump(跟mysql啟動程序同路徑)把主上的數據制作快照
./mysqldump -uroot -pabc -h127.0.0.1 --all-databases --master-data > dbdump.db

注意:

如果不使用—master-data參數,需要在一個獨立的客戶端會話里

執行flush all tables with read lock,以保證制作數據鏡像的時候沒有新的數據寫入.

如果不想復制所有的數據庫或者想忽略某個表,不要使用—all-databases, 分別使用下面2個參數:—database your_db_name, —ignore-table,例如,我想復制主上janey數據下除里表ta,tb以外的表命令:

./mysqldump -uroot -pabc -h127.0.0.1 --databases janey --ignore-table janey.ta --ignore-table janey.tb --master-data > dbdump.db
  • 然后把生成的dbdump.db文件通過scp或者其他方式拷貝到從上
  • 在從上恢復數據:
./mysql -uroot -pabc -h127.0.0.1 < dbdump.db 

方法二:Creating a Data Snapshot Using Raw Data Files(自己還沒搞懂,todo)

如果你的數據庫都是存在二進制可移植文件中,你可以把這些二進制文件拷貝到每一個從。這比使用mysqldump效率更高。然后在從上import這些二進制文件,之所以這種方式這種情況下效率高是因為跳過了在遇到insert語句被回放時更新索引。對於存儲引擎是innodb不推薦這種方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM