c mysql備份 MySQL備份 恢復

2021-10-17 13:25:49 字數 1851 閱讀 5484

備份的目的

根據需求以及目的,選擇不同的備份方式。

做災難性恢復(對損壞的資料進行恢復和還原)

需求改變(因需求改變而需要把資料還原到改變以前)

測試根據不同情景選擇備份方式:

可以容忍丟失多長時間的資料?

恢復資料的時間有沒有限制?

恢復資料的同時,是否需要正常提供服務?

恢復的物件,整庫、多表、單庫、單錶?

備份分類

備份方式從物理與邏輯的角度分類,分為以下幾類:

物理備份(指對資料庫作業系統的物理檔案(如資料檔案、日誌檔案等)的備份,物理備份又可以分為離線備份(冷)和聯機備份(熱))

冷備:需要關閉mysql服務,讀寫請求均不允許的狀態下進行,但能夠較好的保證資料庫的完整性。

熱備:備份的同時,業務不受影響,這種備份方法依賴於資料庫的日誌檔案。

注意:選用什麼型別的備份,取決於業務的需求,myisam不支援熱備,innodb支援熱備,但是需要專門的工具

邏輯備份(指對資料庫邏輯元件如表等資料庫物件的備份)

從資料庫的備份策略角度分:

差異備份:備份那些自從上次完全備份之後被修改過的檔案,只備份資料庫部分的內容。它比最初的完全備份小,因為只包含自上次完全備份以來所改變的資料庫。它的優點是儲存和恢復速度快。

增量備份:只有那些在上次完全備份或者增量備份後被修改的檔案才會被備份,備份的頻率取決於資料更新頻率。

mysqldump工具

mysqldump:常用於做溫備,所以需要對想備份的資料施加讀鎖(非線上不需要加鎖)。

讀鎖--lock-all-tables:是對要備份的資料庫的所有表施加讀鎖。

--lock-table:僅對單張表施加讀鎖,即使是備份整個資料庫,它也是在我們備份某張表的時候才對該錶施加讀鎖,因此適用於備份單張表。

#施加鎖,表示把位於記憶體上的表統統都同步到磁碟上去,然後施加讀鎖

mysql>flush tables with read lock;#釋放讀鎖

mysql>flush tables with read lock;"""但這對於innodb儲存引擎來講,雖然你也能夠請求道讀鎖,但是不代表它的所有資料都已經同步到磁碟上,因此當面對innodb的時候,我們要使用。"""mysql>show engine innodb status;#看看innodb所有的資料都已經同步到磁碟上去了,才進行備份操作。

備份資料

找到mysql物理檔案儲存位置,一般預設在 /var/lib/mysql 目錄下。

可以看到我建立的daili庫,在這個資料夾下,執行下面命令進行備份。

mysqldump -uroot -p123456 daili >/root/daili.sql#如需同時備份多個資料庫

mysqldump -uroot -p123456 daili01 daili02 >/root/daili.sql#如需將全部資料庫備份

mysqldump -uroot -p123456 --opt --all-databases >/root/daili.sql#表結構進行備份

mysqldump -u root -p123456 -d daili tb_system> /opt/desc-tb_system.sql #備份daili庫下的tb_system表結構

恢復資料

如果想恢復資料,必須將原來的資料刪除,才能導回。步驟:刪除daili庫、新建乙個daili庫、執行恢復命令。

#將備份在root下的daili.sql還原進daili庫

mysql -uroot -p123456 daili < /root/daili.sql

更多方法更新中。。。。。。。。。。

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取消該選項...

MYSQL備份 完全備份

mysql完全備份分為兩種 1 物理備份 通過cp,tar等命令拷貝資料庫的所有檔案,然後把這些檔案轉移到另一台資料庫備份伺服器上 使用scp 修改這些檔案的所有者以及所有組 chown r mysql mysql 把檔案放到對應的目錄下,然後重啟mysql服務。移檔案之前注意停止mysql服務 l...