冷備:需要停止當前正在執行mysqld,然後直接拷貝或打包資料檔案
半熱備:mysqldump+binlog -----適合資料量比較小的應用
1. 停掉mysql伺服器
2.拷貝資料
cd /data
tar cjvf /tmp/mysql_bak.tar.gz ./
邏輯備份=表結構+資料插入
mysqldump
1.備份一張或多張表
2.備份乙個或多個庫
3.備份所有庫
usage: mysqldump [options] database [tables]
or mysqldump [options] --databases [options] db1 [db2 db3....]
or mysqldump [options] --all-databases [options]
# mysqldump -uroot -p132 test t1 t2 > /tmp/t1.sql --備份單個或多個表
# mysql -uroot -p123 test > /tmp/t1.sql ---還遠test庫的t1,t2表
# mysqldump -uroot -p132 --databases db01 db02 db03 > /tmp/t1.sql ---備份多個庫
# mysqldump -uroot -p123 --all-databases > /tmp/all.sql ---備份所有庫
還原就用 mysql -uroot -p123 [database] < /tmp/1.sql
需要開啟了二進位制日誌記錄
binlog --記錄mysql伺服器增刪的操作記錄。
mysqlbinlog
--start-datetime 開始的時間
--stop-datetime 結束時間
--start-position=# 開始位置(pos)
--stop-position=#結束的位置
完成備份(mysqldump)+增量備份(binlog)
1、資料總量不大,一般在幾百m的資料可以使用這種方法
2、如果資料量太大,每次備份鎖表時間會比較長,這樣會影響上層應用的使用。
進行備份
mysqldump -uroot -p123 --flush-logs --master-data=2 --all-databases > /mysql/all.sql
--flush-logs ------備份時先將記憶體的日誌寫回磁碟,並重新整理二進位制日誌。
--master-data=2 在備份時進行全庫鎖表,並將鎖對應的二進位制日誌名字寫入到檔案裡。
還原mysql -uroot -p123 < /mysql/all.sql
mysqldump --start-postion=106 --stop-datetime="***x-xx-xx xx:xx:xx" mysqld.000001 | mysql -uroot -p123
使用指令碼備份
vim mysql_backup.sh
#!/bin/sh
name=`date +%y%m%d-%t`
/usr/bin/mysqldump -uroot -p132 --flush-logs --master-data=2 -a > /mysql/$name.sql
crontab -e
00 05 * * 7 /bin/sh/var/ftp/notes/scripts/mysql_backup.sh &> /dev/null && echo "$name 備份已成功" >> /mysql/bk_status
完成備份(lvm快照)+物理備份+增量備份(binlog)
1.確認你當前資料檔案是否放在lvm卷上
2.確認卷組有空閒空間
3.全庫鎖 -->同步快取都磁碟-->並截斷日誌並記錄日誌名稱,然後新建快照並掛載快照
4.全庫解鎖
5.做完整的資料備份
6.刪除快照
mysql> dilimiter //
mysql> flush tables with read lock//
mysql>flush logs//
mysql>system lvcreate -n data_snap -l 200m -s /dev/vol0/data
mysql>system mysql -uroot -p132 -e "show master status" > `date +%y%m%d-%t`.txt
mysql>unlock tables//
shell> mount /dev/vol0/data_snap /mnt
shell>cd /mnt
shell> tar cjf /mysql_bk.tar.gz ./
shell>cd .. && umount /mnt && lvremove /dev/vol0/data_snap
各種換源備份
在生產開發的過程中,我們經常會用到一些國外的專案,而這個時候在國內訪問的速度就會非常慢而且經常容易失敗。這個時候就需要換源來解決了。國內有很多優秀的國外資源映象,這裡記錄一下換源的過程,方便以後查閱。doit doit system product name cd etc apt 備份源 doit ...
mysql備份 MySQL備份指令碼
第乙個指令碼 bin bash mysql備份指令碼bak dir data backup date y m d mysqldb 資料庫名mysqluser 使用者mysqlpwd 密碼mysqlcmd usr bin mysqldumpmysqlser 資料庫伺服器mysqlport 埠if d ...
mysql月備份 MySQL 備份
備份資料庫 匯出全部資料庫 all databases,a 匯出幾個資料庫。引數後面所有名字參量都被看作資料庫名 databases,b 匯出儲存過程以及自定義函式 routines,r 匯出事件 events,e 不緩衝查詢,直接匯出到標準輸出。預設為開啟狀態,使用 skip quick取消該選項...