mysql各種備份

2021-06-27 04:38:47 字數 2444 閱讀 1269

冷備:需要停止當前正在執行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取消該選項...