這裡主要介紹通過mysqldump來匯出資料和通過binlog匯入資料的mysql匯入匯出問題。
常用工具:mysqldump, xtrabackup
mysqldump: 原生資料匯出工具,以sql的形式匯出儲存
xtrabackup: percona團隊提供的備份工具,基於檔案系統的備份
備份全庫——最簡單版本
mysqldump -h10
.6.29
.129
-uroot
-p--
all-databases
>
10.6
.29.129
.sql
mysqldump是直接螢幕輸出,所以重定向後即可得到對應的備份檔案。
1. 這個備份命令很簡單,但存在問題:
2. 會鎖全庫,影響業務
3. 有可能缺失常規表以外的內容,如儲存過程
4. 未記錄binlog同步點,不能用於主從同步以及利用binlog增量恢復
對於資料集較大的表,可能會吃掉server端大量記憶體
備份全庫——高階版
mysqldump -h10
.6.29
.129
-uroot
-p--
all-databases
--master-data=2
--routines --events --quick --single-transaction
>
10.6
.29.129
.sql
備份部分databasemysqldump
-h10.6
.29.129
-uroot-p
--master
-data=2--
routines
–events--
quick--
single
-transaction--
databases
db1db2
db3 > 10.6
.29.129
.sql
(將需要匯出的庫名,依次填寫在databases引數後)
備份指定database的部分表
mysqldump
-h10.6
.29.129
-uroot–p-
-master
-data=2--
routines
–events--
quick--
single
-transaction
mydb
table1
table2 > 10.6
.29.129
.sql
(先寫明指定的database,然後緊跟需要備份的表名)
直接利用mysqlclient以及冷備檔案進行匯入
mysql -h10
.6.29
.129
-uroot
-p<
10.6
.29.129
.sql
(簡單易行,但要確保匯入的庫表,不會同時有業務在寫入)
借助binlog恢復資料庫
在冷備資料的基礎上,借助binlog可以恢復到冷備時間點至最新binlog之間的任意時刻。
首先由於binlog二進位制檔案,要使用binlog必須先對binlog進行解析,解析的工具就是mysqlbinlog。
使用mysqlbinlog工具,對binlog檔案進行解析
簡單用法——
mysqlbinlog mysql.000004 > binlog.000004
使用mysqlbinlog工具,對binlog檔案進行解析
高階用法——
mysqlbinlog mysql.000004
--start-position
=549212174
--stop-datetime
='2014-9-10 10:00'
> binlog.000004
.sql
–start-position 表示從binlog的那個位置開始解析,而這個起始點可以通過備份時的master-data引數得到
–stop-datetime 表示只解析到哪個時間點的語句為止,可用於回檔到某個指定時間點
–start-datetime 從那個時間點開始,但通常還是盡量使用start-position,更為準確
–verbose, -v 使用方式:-vv, -vvv,常用於row模式的詳細輸出
恢復的具體操作方法,就是先通過冷備份將資料庫還原到備份點,然後在通過binlog生成從冷備點恢復的sql。分別執行下兩個sql檔案就可以了。
mysql 備份與恢復 MySQL 備份與恢復
1 檢視資料庫的資料儲存在哪個目錄下 shiyanlou mysql uroot e show variables like datadir variable name value datadir var lib mysql 2 備份資料的方法 select into outfile 檔名 或者 s...
mysql 備份與恢復 Mysql 備份與恢復
資料檔案一致性處理 在完全備份的情況下,檔案不是時間點一致的,因為進行快照的時間點不一樣。如果嘗 試在未prepare資料的情況下還原資料庫,雖然操作上支援恢復,但是在啟動的時候仍會 進行資料recovery。執行帶 prepare 選項的 mariabackup 命令會使資料檔案進行統一,達到資料...
mysql備份恢復 mysql之備份與恢復
工作中,我們經常會遇到資料庫的備份與恢復場景 目錄1 mysql的備份與恢復 2 mysql的匯入與匯出 1 mysql的備份與恢復 mysql的備份命令是mysqldump,mysql之備份 mysqldump u user h host port p db table.file u 後面接資料庫...