備份mariadb數據庫

主庫鎖表

flush table with read lock;

備份數據庫(會有壓縮,測試數據 11G,得到備份文件 227M)

  • 其中 max_allowed_packetnet_buffer_length 兩個參數是用來加速的,可以查看從庫數據
  • 如果 root 有密碼請加上參數例如 -uroot -proot

/usr/local/mariadb/bin/mysqldump --max_allowed_packet=33554432 --net_buffer_length=8192 --events -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz

PS: 如果上面的命令報錯如下

Couldn't execute 'show events': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)

請執行命令(如果 root 有密碼請加上參數例如 -uroot -proot )

/usr/local/mariadb/bin/mysql_upgrade

備份結束後,解鎖主庫,恢復讀寫

unlock tables;

拷貝到從庫中

  • 注意日期一定有所不同,如果端口不是默認的請叫參數 -P 端口號
  • 注意確保 /root 目錄有足夠的空間,如果空間不夠請切換目錄
scp /server/backup/mysql_bak.2020-06-04.sql.gz monitor-host02:/root

從庫

進入備份文件目錄,解壓(11G 的庫,sql 文件只有 1.2G,注意空間比例)

cd /root
gzip -d mysql_bak.2020-06-04.sql.gz

導入數據

  • 注意始終從庫中不可以有寫入
  • 請先測試mysql -A是否可以進入數據庫
mysql -A < mysql_bak.2020-06-04.sql &

實際上這種方式遇到特別大的數據還是很慢,可以考慮使用xtrabackup來自動備份數據庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章