---------------------------------------------
1.準備工作
---------------------------------------------
--檢視當前mysql伺服器使用的儲存引擎
# mysqladmin variables | grep storage_engine
| storage_engine | myisam
--檢視mysql資料庫存放目錄
# mysqladmin variables | grep datadir
| datadir | /usr/local/mysql/var/ |
---------------------------------------------
2.mysqldump備份資料庫
---------------------------------------------
--mysqldump備份乙個整個的資料庫
# mysqldump -u root -ppassword --opt accp > /test/accpbak.sql
/*--opt 這只是乙個快捷選項,等同於同時新增 --add-drop-tables --add-locking --create-option --disable-keys --extended-insert --lock-tables --quick --set-charset 選項
--mysqldump備份多個資料庫
# mysqldump -u root -ppassword --opt --database accp suzhou > /test/twobak.sql
--mysqldump備份所有資料庫
# mysqldump -u root -ppassword --opt --all-databases > /test/allbak.sql
---------------------------------------------
3.--mysqldump恢復資料庫
---------------------------------------------
--mysqldump恢復:恢復的前提是accp資料庫存在
#mysql -u root -ppassword accp < /test/accpbak.sql
--恢復多個資料庫
#mysql -u root -ppassword
mysql>source /test/twobak.sql
---------------------------------------------
---mysql增量備份
---------------------------------------------
#vi /etc/my.cnf
[mysqld]
log-bin=/mysql-log/mysql-bin
1.全備
mysqldump -u root -ppassword --opt beijing > /test/beijing.sql
2.增量備份:切斷日誌,即備份之前所有內容。此備份點只有的修改都存在新日誌裡
mysqldump --flush-logs -u root -ppassword --opt beijing > /test/beijing.sql
恢復1.恢復全備
mysql -u root -ppassword beijing < /test/beijing.sql
2.恢復日誌
#mysqlbinlog /usr/local/mysql/var/mysql-bin.000013 | mysql -u root -ppassword beijing
啟用新的更新日誌
這樣可以記錄你備份後的資料改變為恢復資料準備。
#mysqladmin flush-logs -u root -ppassword
---案例:增量備份
(1).檢視二進位制日誌存放位置
# ls /usr/local/mysql/var/ | grep mysql-bin*
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
mysql-bin.000006
mysql-bin.000007
mysql-bin.000008
mysql-bin.000009
mysql-bin.000010
mysql-bin.000011
mysql-bin.000012
mysql-bin.000013
mysql-bin.index
(2).準備存放備份資料的位置
# mkdir /backup
(2).準備備份的資料
# mysql -u root -ppassword beijing
mysql> show tables;
+-------------------+
| tables_in_beijing |
+-------------------+
| t1 |
+-------------------+
1 row in set (0.00 sec)
mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
+------+
4 rows in set (0.00 sec)
(3).做全備
#mysqldump -u root -ppassword --opt beijing > /backup/beijing.sql
(4).修改資料庫中表內容
# mysql -u root -ppassword beijing
mysql> insert into t1 values (105);
query ok, 1 row affected (0.00 sec)
mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.00 sec)
(5).備份並啟用新日誌
#mysqldump --flush-logs -u root -ppassword --opt beijing > /backup/beijing.sql
# ls /usr/local/mysql/var/ | grep mysql-bin*
mysql-bin.000001
mysql-bin.000002
mysql-bin.000003
mysql-bin.000004
mysql-bin.000005
mysql-bin.000006
mysql-bin.000007
mysql-bin.000008
mysql-bin.000009
mysql-bin.000010
mysql-bin.000011
mysql-bin.000012
mysql-bin.000013
mysql-bin.000014
mysql-bin.index
--說明:即該備份完成後,資料庫修改的日誌都儲存在新新增的mysql-bin.000014中.
(6).運算元據庫
# mysql -u root -ppassword beijing
mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.01 sec)
mysql> delete from t1 where sid=103;
query ok, 1 row affected (0.01 sec)
mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 104 |
| 105 |
+------+
4 rows in set (0.00 sec)
(7).恢復剛才刪除的資料
第一步:恢復全備
#mysql -u root -ppassword beijing < /backup/beijing.sql
第二步:恢復日誌
#mysqlbinlog /usr/local/mysql/var/mysql-bin.000014 | mysql -u root -ppassword beijing
第三步:檢視資料是否恢復
# mysql -u root -ppassword beijing
mysql> select * from t1;
+------+
| sid |
+------+
| 101 |
| 102 |
| 103 |
| 104 |
| 105 |
+------+
5 rows in set (0.00 sec)
Mysql備份恢復 mysqldump
mysqldump是mysql服務自帶的備份工具 邏輯備份工具,可以完成完全 部分備份 對於不同的引擎,也有著不同的方案 innodb 熱備 myisam 溫備 其生成備份檔案的命令如下 mysqldump是客戶端工具,支援連線到遠端客戶端進行備份 mysqldump options databas...
用mysqldump備份和恢復指定表
備份 quote mysqldump u user p db tab1 tab2 db.sql 恢復quote mysql u user p db db.sql 參考 1.拷備檔案 保證資料庫沒有寫操作 可以給表上鎖定 直接拷貝檔案不能移植到其它機器上,除非你正在拷貝的表使用myisam儲存格式 2...
mysql備份與恢復 mysqldump
備份 備份乙個資料庫 shell中執行,下同 mysqldump uusername ppassword hhostname databases db name path db name.sql 備份多個資料庫 mysqldump uusername hhostname ppassword data...