mysql 開發進階篇系列 42 邏輯備份與恢復
一.概述
在作何資料庫裡,備份與恢復都是非常重要的。好的備份方法和備份策略將會使得資料庫中的資料更加高效和安全。對於DBA來說,進行備份或恢復操作時要考慮的因素大概有如下:
(1) 確定要備份的表的儲存引擎是事務型(innodb)還是非事務型。兩種不同的儲存引擎備份方式在處理資料一致性方面是不太一樣。
(2) 確定使用全備份還是增量備份。增量備份是備份每天的增量日誌,恢復時需要全備份加所有增量備份。這裡與sql server的完整備份+日誌備份或差異備份有點類似。
(3) 可以考慮複製方法來做異地備份。但複製不能代替備份,因為有可能發生誤操作。
(4) 要定期備份。
(5) 確保mysql的log -bin開啟,才能實現完整恢復,或基於時間的恢復,或基於位置的恢復。
(6) 經常做備份恢復測試,確保備份是有效的,並且可以恢復的。
(7) mysql與sqlserver在備份上很大區別的概念是mysql可以基於表備份,而sql server基於庫備份。
二. 邏輯備份和恢復
在mysql中,邏輯備份最大的優點是對於各種儲存引擎,都可以用同樣的訪求來備份。而物理備份則不同,不同儲存引擎有著不同的備份方法。 因此對於不同儲存引擎混全的資料庫,用邏輯備份會簡單一些。
2.1 邏輯備份
mysql邏輯備份是將資料庫中的資料備份為一個文字檔案。可以被檢視和編輯。在mysql中,使用mysqldump工具來完成邏輯備份。在前面章節"mysql 開發進階篇系列 35 工具篇 "中有講到該匯出工具的用法。
2.2下面簡演示一個備份與恢復的例子
-- 檢視當前最新日誌編號 SHOW MASTER STATUS
-- 備份test庫,庫中testbackup表有6條資料 SELECT * FROM testbackup
-- 將test庫備份為test.dmp檔案 -F備份後生成新日誌 [root@hsr data]# pwd /usr/local/mysql/data [root@hsr data]# mysqldump -uroot -p --single-transaction -F test > test.dmp Enter password:
備份後檢視如下圖所示:
備份後檢視最新日誌編號(備份成功後生成了新的日誌序號)
-- 誤操作 DELETE FROM testbackup WHERE id=6
-- 檢視binlog日誌,裡面有誤運算元據,需要在my.cnf中設定binlog_rows_query_log_events=1 SHOW BINLOG EVENTS IN 'mysql-bin.000038';
-- 還原test.dmp檔案 [root@hsr data]# mysql -uroot -p test < test.dmp Enter password:
-- 在檢視資料,此時資料已還原。 SELECT * FROM testbackup
總結:在還原資料時有一個問題是,如果線上還原生產資料庫,那自備份以後,使用者操作的資料就會都要丟失。二種方法:(1)是還原一個副本,從副本中獲取誤操作的資料。(2) 線上還原,全備之後到誤操作時刻之間,使用者寫入的資料在binlog中,需要恢復出來。
相關文章
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- Oracle邏輯備份與恢復選項說明Oracle
- 阿里面試官:知道 MySQL 邏輯備份與恢復測試麼?阿里面試MySql
- MySQL 備份與恢復MySql
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- 達夢DM備份恢復(物理和邏輯)
- Docker Swarm 進階:資料卷備份與恢復DockerSwarm
- MySQL 非常規恢復與物理備份恢復MySql
- 《MySQL 入門教程》第 06 篇 備份與恢復MySql
- 《入門MySQL—備份與恢復》MySql
- MySQL備份與恢復——實操MySql
- 入門MySQL——備份與恢復MySql
- MySQL備份與恢復操作解析MySql
- Mysql資料備份與恢復MySql
- Mysql備份恢復MySql
- 【MySQL】MySQL進階(外來鍵約束、多表查詢、檢視、備份與恢復)MySql
- Mysql的幾種備份與恢復MySql
- MySQL入門--備份與恢復(三)MySql
- MySQL入門--備份與恢復(一)MySql
- MySQL入門--備份與恢復(二)MySql
- MySQL 日誌管理、備份與恢復MySql
- RAC備份恢復之Voting備份與恢復
- 【MySQL】MySQL備份和恢復MySql
- 備份與恢復:polardb資料庫備份與恢復資料庫
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- mysql學習筆記之備份與恢復MySql筆記
- MySQL-19.資料庫備份與恢復MySql資料庫
- docker 中 MySQL 備份及恢復DockerMySql
- Oracle 備份 與 恢復 概述Oracle
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- 2020重新出發,MySql基礎,MySql資料庫備份與恢復MySql資料庫
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- PostgreSQL邏輯備份恢復--pg_dump匯出及psql匯入案例SQL