1 mysqldump 只能備份所有欄位
無法跳過有auto increment column,
所以必須複製一個相同table, 然後刪掉不要的欄位,再dump出來
2 mysqldump 常用參數
//用cluster 請勿使用 --no-autocommit
mysqldump -u root -p --skip-add-drop-table --skip-add-locks --no-create-db --no-create-info --no-autocommit --complete-insert --net-buffer-length=1000000 --max-allowed-packet=1000000000
--skip-add-drop-table 還原時不drop原有table
--skip-add-locks 還原時不lock
--no-create-db 還原時不create db
--no-create-info 還原時不create table
--no-autocommit 還原時不auto commit
--complete-insert 備份完整scheme
--net-buffer-length=1000000 加大網路buffer, 適用大檔還原
--max-allowed-packet=1000000000 加大網路packet,適用大檔還原
3 完整mysqldump參數
mysqldump -u root -p --skip-add-drop-table --skip-add-locks --no-create-db --no-create-info --complete-insert --no-autocommit --net-buffer-length=1000000 --max-allowed-packet=1000000000 --where="(date >='2020-12-21' and date<'2020-12-22')" db table | gzip > table.sql.gz
只dump db 的 指定table內的 where 條件的資料
4 還原(因為備份時有指定參數,所以大檔也適用)
myslq login
use db;
source /home/..... sql file
5 完整流程
CREATE new_table LIKE old_table;
INSERT INTO new_table SELECT * FROM old_table;
ALTER TABLE new_table DROP COLUMN column;
mysqldump ....
restore ....
沒有留言:
張貼留言