国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

這篇具有很好參考價值的文章主要介紹了【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、數(shù)據(jù)庫備份的必要性

????????備份就是為了防止原數(shù)據(jù)丟失,保證數(shù)據(jù)的安全。當(dāng)數(shù)據(jù)庫因為某些原因造成部分或 者全部數(shù)據(jù)丟失后,備份文件可以幫我們找回丟失的數(shù)據(jù)。因此,數(shù)據(jù)備份是很重要 的工作。

常見數(shù)據(jù)庫備份的應(yīng)用場景如下:


數(shù)據(jù)丟失應(yīng)用場景:

  • 人為操作失誤造成某些數(shù)據(jù)被誤操作
  • 軟件 BUG 造成部分數(shù)據(jù)或全部數(shù)據(jù)丟失
  • 硬件故障造成數(shù)據(jù)庫部分數(shù)據(jù)或全部數(shù)據(jù)丟失
  • 安全漏洞被入侵數(shù)據(jù)惡意破壞

非數(shù)據(jù)丟失應(yīng)用場景:

  • 特殊應(yīng)用場景下基于時間點的數(shù)據(jù)恢復(fù)
  • 開發(fā)測試環(huán)境數(shù)據(jù)庫搭建
  • 相同數(shù)據(jù)庫的新環(huán)境搭建
  • 數(shù)據(jù)庫或者數(shù)據(jù)遷移

二、MySQL備份類型

根據(jù)備份的方法(是否需要數(shù)據(jù)庫離線)可以將備份分為:

  • 熱備(Hot Backup)
  • 冷備(Cold Backup)
  • 溫備(Warm Backup)

熱備份可以在數(shù)據(jù)庫運行中直接備份,對正在運行的數(shù)據(jù)庫操作沒有任何的影響,數(shù)
據(jù)庫的讀寫操作可以正常執(zhí)行。這種方式在 MySQL 官方手冊中稱為 Online Backup
(在線備份)。
冷備份必須在數(shù)據(jù)庫停止的情況下進行備份,數(shù)據(jù)庫的讀寫操作不能執(zhí)行。這種備份
最為簡單,一般只需要復(fù)制相關(guān)的數(shù)據(jù)庫物理文件即可。這種方式在 MySQL 官方手
冊中稱為 Offline Backup(離線備份)。
溫備份同樣是在數(shù)據(jù)庫運行中進行的,但是會對當(dāng)前數(shù)據(jù)庫的操作有所影響,備份時
僅支持讀操作,不支持寫操作。

  • 按照備份后文件的內(nèi)容,熱備份又可以分為:
    • 邏輯備份
    • 裸文件備份

????????在 MySQL 數(shù)據(jù)庫中,邏輯備份是指備份出的文件內(nèi)容是可讀的,一般是文本內(nèi)容。
內(nèi)容一般是由一條條 SQL 語句,或者是表內(nèi)實際數(shù)據(jù)組成。如 mysqldump 和
SELECT * INTO OUTFILE 的方法。這類方法的好處是可以觀察導(dǎo)出文件的內(nèi)容,一
般適用于數(shù)據(jù)庫的升級、遷移等工作。但其缺點是恢復(fù)的時間較長。


????????裸文件備份是指復(fù)制數(shù)據(jù)庫的物理文件,既可以在數(shù)據(jù)庫運行中進行復(fù)制(如
ibbackup、xtrabackup 這類工具),也可以在數(shù)據(jù)庫停止運行時直接復(fù)制數(shù)據(jù)文
件。這類備份的恢復(fù)時間往往比邏輯備份短很多。

????????

????????對于跨平臺遷移,邏輯備份通常比裸文件備份更方便。這是因為邏輯備份將數(shù)據(jù)以可讀的格式進行備份,可以在不同操作系統(tǒng)和數(shù)據(jù)庫軟件之間進行轉(zhuǎn)換和導(dǎo)入。而裸文件備份只能在相同類型的操作系統(tǒng)和數(shù)據(jù)庫軟件上進行恢復(fù),如果需要跨平臺遷移,就需要先將數(shù)據(jù)進行轉(zhuǎn)換,才能進行導(dǎo)入。因此,在跨平臺遷移時,推薦使用邏輯備份。

  • 按照備份數(shù)據(jù)庫的內(nèi)容來分,備份又可以分為:
    • 完全備份
    • 部分備份

完全備份是指對數(shù)據(jù)庫進行一個完整的備份,即備份整個數(shù)據(jù)庫,如果數(shù)據(jù)較多會占 用較大的時間和空間。 部分備份是指備份部分數(shù)據(jù)庫(例如,只備份一個表)


  • 部分備份又分為:
    • 增量備份
    • 差異備份

????????增量備份需要使用專業(yè)的備份工具。也就是說每次備份只會備份自上次備份之后到這次備份的時間之內(nèi)產(chǎn)生的數(shù)據(jù)。 因此每次備份都比差異備份節(jié)約空間,但是恢復(fù)數(shù)據(jù)麻煩。

????????

????????差異備份指的是自上一次完全備份以來變化的數(shù)據(jù)。增量備份相比,浪費空間,但 恢復(fù)數(shù)據(jù)比增量備份簡單。

????????

????????也就是說,增量備份是,只要數(shù)據(jù)與上次備份有修改或增加或刪除就備份,差異備份是上一次全備份到這次備份之間產(chǎn)生變化就備份

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

優(yōu)劣勢對比

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

MySQL 中進行不同方式的備份還要考慮存儲引擎是否支持,如 MyISAM 不支持熱 備,支持溫備和冷備。而 InnoDB 支持熱備、溫備和冷備。

一般情況下,我們需要備份的數(shù)據(jù)分為以下幾種:

  • 表數(shù)據(jù)
  • 二進制日志、InnoDB
  • 事務(wù)日志
  • 代碼(存儲過程、存儲函數(shù)、觸發(fā)器、事件調(diào)度器)
  • 服務(wù)器配置文件

建議的恢復(fù)策略:
完全+增量+二進制日志
完全+差異+二進制日志

下面是幾種常用的備份工具:

  • mysqldump:邏輯備份工具,適用于所有的存儲引擎,支持溫備、完全備份、部分備份、對于 InnoDB 存儲引擎支持熱備。
  • cp、tar 等歸檔復(fù)制工具:物理備份工具,適用于所有的存儲引擎、冷備、完全備份、部分備份。
  • lvm2 snapshot:借助文件系統(tǒng)管理工具進行備份。
  • mysqlhotcopy:名不副實的一個工具,僅支持 MyISAM 存儲引擎。
  • xtrabackup:一款由 percona 提供的非常強大的 InnoDB/XtraDB 熱備工具,支持完全備份、增量備份。

三、冷備份的備份及恢復(fù)

1、先看通用查詢?nèi)罩究词欠耖_啟

SHOW VARIABLES LIKE '%general%';

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

顯示OFF沒有開啟;

2、開啟通用查詢?nèi)罩?/p>

 SET GLOBAL general_log=1;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

3、mkdir /backup/ #創(chuàng)建備份目錄

4、#打包數(shù)據(jù)庫文件。/var/lib/mysql為數(shù)據(jù)庫文件存放目錄

 tar -zcvf /backup/mysql_all$(date +%F-%m-%S).tar.zip *

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?5、查看是否壓縮成功

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?6、開啟mysql服務(wù),去刪掉指定的數(shù)據(jù)庫

查看數(shù)據(jù)庫;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

刪除Class_Linux數(shù)據(jù)庫

?【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?查看是否刪除成功

7、停掉mysql服務(wù),將之前打包的數(shù)據(jù)庫文件壓縮包解壓到/var/lib/mysql

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?可以看到被刪除的數(shù)據(jù)庫恢復(fù)了

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?8、開啟mysql服務(wù),查看Class_Linux數(shù)據(jù)庫是否恢復(fù)成功

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

恢復(fù)成功


四、Mysql命令行備份(熱備份的邏輯備份)

1、導(dǎo)出特定表的結(jié)構(gòu) mysqldump -uroot -p -B 數(shù)據(jù)庫名 --table 表名 > xxx.sql 

 mysqldump -uroot -p --databases Class_Linux > /backup/Class_Linux.sql

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?2、查看導(dǎo)出的文件

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?3、登錄mysql,刪除數(shù)據(jù)庫

查看數(shù)據(jù)庫

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?刪除Class_Linux數(shù)據(jù)庫

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?查看是否刪除成功;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?4、導(dǎo)入方法一:通過命令行恢復(fù),(登陸的時候進行導(dǎo)入)

mysql -uroot -p < /backup/Class_Linux.sql

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?5、查看mysql,數(shù)據(jù)是否恢復(fù)成功

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)


導(dǎo)入方法二:(?在mysql終端下執(zhí)行)

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?在mysql終端下執(zhí)行:

source /backup/Class_Linux.sql

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)


五、通過二進制日志恢復(fù)

① 先將Class_Linux庫進行邏輯備份?

 mysqldump -uroot -pNebula@123 -B Class_Linux > /backup/Class_0417.sql

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?② 查看原先的二進制日志

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

③ 使用reset master命令將二進制日志重置;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

④ 查看二進制日志

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?⑤ 切到Class_Linux庫,給students表進行表的增刪改查操作

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?這里我們插入一條數(shù)據(jù):

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

? 這時候查看狀態(tài),發(fā)現(xiàn)Position變了,這時因為進行數(shù)據(jù)庫的修改,position的位置會改變

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?在將剛剛插入的數(shù)據(jù)刪除:

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)⑥ 接下來通過二進制文件將數(shù)據(jù)恢復(fù);

?【mysql的二進制文件在/var/lib/mysql目錄下】

通過這個命令查看二進制日志詳情:

 mysqlbinlog -v mysql-bin.000001

?在日志的最后可以看見我們剛剛的刪除操作:

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)


?方法一:按時間恢復(fù)

【開始時間可以忽略,因為默認就是日志最開始的時間】

mysqlbinlog -v mysql-bin.000001 --start-datetime='2023-04-17 12:11:12' --stop-datetime='2023-04-17 12:12:41' |mysql -uroot -p  

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?再查看表發(fā)現(xiàn)數(shù)據(jù)恢復(fù)了;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)


方法二:按位置恢復(fù)

【開始位置可以忽略,因為默認就是日志最開始的位置】

#刪除剛剛恢復(fù)的數(shù)據(jù)

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

#再查看二進制日志

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

注意】這個位置一定是刪除這個操作的BEGIN的下面那一行

 mysqlbinlog -v mysql-bin.000001 --stop-position=1313 |mysql -uroot -p

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)?再查看表發(fā)現(xiàn)數(shù)據(jù)恢復(fù)了;

【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

?其實我們最開始插入數(shù)據(jù),刪除數(shù)據(jù)的時候該操作就已經(jīng)被記錄,第一次按時間恢復(fù)數(shù)據(jù)的操作就相當(dāng)于又插入了一條數(shù)據(jù),我們按位置恢復(fù)數(shù)據(jù)的時候先將剛剛恢復(fù)的數(shù)據(jù)刪除,這個操作也有記錄,所以二進制日志的內(nèi)容就是插入>刪除>按時間恢復(fù)時的插入>刪除,所以我們在按位置恢復(fù)的時候,可以只寫第一次刪除數(shù)據(jù)的位置。文章來源地址http://www.zghlxwxcb.cn/news/detail-409881.html

到了這里,關(guān)于【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)庫(MySQL的備份和恢復(fù))

    目錄 1.1 MySQL 日志管理 1.1.1 MySQL日志類型 1.1.2 錯誤日志 錯誤日志中主要記錄的幾種日志 錯誤日志的定義 1.1.3 通用查詢?nèi)罩?1.1.4 慢查詢?nèi)罩?和慢查詢相關(guān)的變量設(shè)置 1.1.5 二進制日志 二進制日志是記錄執(zhí)行的語句還是執(zhí)行后的數(shù)據(jù) 日志滾動? 1.2 MySQL備份 1.2.1 備份類型 1.2.2

    2024年01月25日
    瀏覽(133)
  • 數(shù)據(jù)庫應(yīng)用:MySQL備份與恢復(fù)

    數(shù)據(jù)庫應(yīng)用:MySQL備份與恢復(fù)

    目錄 一、理論 1.數(shù)據(jù)備份 2.完全備份與恢復(fù) 3.完全備份與恢復(fù)應(yīng)用 4.增量備份與恢復(fù) 5.增量備份與恢復(fù)應(yīng)用 6.使用腳本備份 7.日志管理 二、實驗 1.完全備份與恢復(fù) 2.增量備份與恢復(fù) 3.使用腳本備份 三、問題 1.mysqldump報錯 四、總結(jié) (1)重要性 ①? 備份的主要目的是災(zāi)難恢復(fù)

    2024年02月16日
    瀏覽(90)
  • MySQL數(shù)據(jù)庫的備份與恢復(fù)

    MySQL數(shù)據(jù)庫的備份與恢復(fù)

    備份的主要目的是災(zāi)難恢復(fù)。 在生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性至關(guān)重要。 任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴重的后果。 造成數(shù)據(jù)丟失的原因: 程序錯誤 人為操作錯誤 運算錯誤 磁盤故障 災(zāi)難(如火災(zāi)、地震)和盜竊 1)物理備份 物理備份:對數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)

    2024年02月04日
    瀏覽(1460)
  • 【數(shù)據(jù)庫四】MySQL備份與恢復(fù)

    【數(shù)據(jù)庫四】MySQL備份與恢復(fù)

    數(shù)據(jù)庫備份 物理備份 :直接對數(shù)據(jù)庫的 數(shù)據(jù)文件或者日志文件 進行備份. 邏輯備份 :對 數(shù)據(jù)庫的庫或表對象 進行備份. 備份策略 完全備份 :每次備份 都備份完整的數(shù)據(jù)庫 . 是對整個數(shù)據(jù)庫、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份。 保存的是 備份完成時刻的數(shù)據(jù)庫 。 是 差異備份與增

    2024年02月11日
    瀏覽(101)
  • 9-MySQL數(shù)據(jù)庫 數(shù)據(jù)的備份與恢復(fù)

    9-MySQL數(shù)據(jù)庫 數(shù)據(jù)的備份與恢復(fù)

    1.date文件的備份 2.mysqldump 備份 說明: mysqldump是MySQL數(shù)據(jù)庫中的一個實用程序,它主要用于轉(zhuǎn)儲(備份)數(shù)據(jù)庫。mysqldump通過生成一個SQL腳本文件,包含從頭開始重新創(chuàng)建數(shù)據(jù)庫所必需的(如 CREATE TABLE和INSERT等),來實現(xiàn)數(shù)據(jù)庫的備份和轉(zhuǎn)儲。這樣,你可以在任何時候通過運

    2024年02月08日
    瀏覽(96)
  • MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫恢復(fù)

    MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫恢復(fù)

    本關(guān)任務(wù): 備份數(shù)據(jù)庫,然后再恢復(fù)它。 為了完成本關(guān)任務(wù),你需要掌握: 1.MySQL的恢復(fù)機制; 2.MySQL提供的備份與恢復(fù)工具。 和大多數(shù)DBMS一樣,MySQL利用備份、日志文件實現(xiàn)恢復(fù)。 具體理論知識在此不詳細介紹。 MySQL提供了以下工具: 邏輯備份工具:mysqldump 物理備份工具

    2024年02月05日
    瀏覽(106)
  • MySQL基礎(chǔ)(三十八)數(shù)據(jù)庫備份與恢復(fù)

    MySQL基礎(chǔ)(三十八)數(shù)據(jù)庫備份與恢復(fù)

    物理備份 :備份數(shù)據(jù)文件,轉(zhuǎn)儲數(shù)據(jù)庫物理文件到某一目錄。物理備份恢復(fù)速度比較快,但占用空間比較大,MySQL中可以用 xtrabackup 工具來進行物理備份。 邏輯備份 :對數(shù)據(jù)庫對象利用工具進行導(dǎo)出工作,匯總?cè)雮浞菸募?nèi)。邏輯備份恢復(fù)速度慢,但占用空間小,更靈活。

    2024年02月06日
    瀏覽(100)
  • 【七天入門數(shù)據(jù)庫】第五天 MySQL的備份恢復(fù)

    【七天入門數(shù)據(jù)庫】第一天 MySQL的安裝部署 【七天入門數(shù)據(jù)庫】第二天 數(shù)據(jù)庫理論基礎(chǔ) 【七天入門數(shù)據(jù)庫】第三天 MySQL的庫表操作 【七天入門數(shù)據(jù)庫】第四天 數(shù)據(jù)操作語言DML 【七天入門數(shù)據(jù)庫】第五天 MySQL的備份恢復(fù) 【七天入門數(shù)據(jù)庫】第六天 MySQL的視圖與索引 【七天

    2024年02月16日
    瀏覽(102)
  • mysql-DBA(1)-數(shù)據(jù)庫備份恢復(fù)-導(dǎo)入導(dǎo)出-日志解釋

    mysql-DBA(1)-數(shù)據(jù)庫備份恢復(fù)-導(dǎo)入導(dǎo)出-日志解釋

    log: hdd data :ssd? ,備份和導(dǎo)出都慢,緩沖池有污染。 邏輯備份:把所有的命令轉(zhuǎn)換成sql語句。 修改配置文件: -A 備份所有 -B 備份哪個數(shù)據(jù)庫 --master-data=1 同步 內(nèi)容: 備份參數(shù): 1.備份成文件,里面就是sql語句 2.routine: 3.trigger 觸發(fā)器 4.event: 定時任務(wù) 5.-B 數(shù)據(jù)庫 1.有-B 表

    2024年03月09日
    瀏覽(99)
  • MySQL數(shù)據(jù)庫的備份、恢復(fù)、導(dǎo)出、導(dǎo)入(bin log和mydump)

    一、使用 bin log 來恢復(fù)數(shù)據(jù) 一、bin log的三種格式 1、statement:基于SQL語句的復(fù)制(statement-based replication,SBR) 2、row:基于行的復(fù)制(row-based replication,RBR) 3、mixed:混合模式復(fù)制(mixed-based replication,MBR) 4、查看模式和更改模式 二、配置bin log策略 三、獲取bin log文件列表

    2024年02月21日
    瀏覽(99)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包