mysql dump備份和恢復

2021-08-26 21:09:44 字數 4878 閱讀 3998

---------------------------------------------

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...