真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MySQL完全備份與恢復(fù)的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)MySQL完全備份與恢復(fù)的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),安陽(yáng)縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:安陽(yáng)縣等地區(qū)。安陽(yáng)縣做網(wǎng)站價(jià)格咨詢:18980820575

MySQL完全備份與恢復(fù)的示例分析

免費(fèi)學(xué)習(xí)推薦:mysql視頻教程

文章目錄

  • 前言

  • 一、MySQL 完全備份


    • 2.1 使用 tar 打包文件夾備份

    • 2.2 使用 mysqldump 工具備份

    • 1.1 數(shù)據(jù)庫(kù)備份的重要性

    • 1.2 數(shù)據(jù)庫(kù)備份的分類


    • 1.3 MySQL 完全備份概念解讀

    • 1.2.1 物理備份

    • 1.2.2 邏輯備份

    • 1.2.3 完全備份

    • 1.2.4 差異備份

    • 1.2.5 增量備份

    • 1.2.6 備份方式比較

    • 1.數(shù)據(jù)庫(kù)備份方式精講


    • 2.mysqldump 備份演練


  • 二、MySQL 完全恢復(fù)


    • 2.1 使用 source 命令恢復(fù)表

    • 2.2 使用 mysql 命令恢復(fù)表

    • 1.1 source 命令整庫(kù)恢復(fù)

    • 1.2 MySQL 命令整庫(kù)恢復(fù)

    • 1.恢復(fù)整庫(kù)操作


    • 2.恢復(fù)表操作


    • 3.MySQL 備份思路


前言

  • 隨著辦公自動(dòng)化和電子商務(wù)的飛速發(fā)展,企業(yè)對(duì)信息系統(tǒng)的依賴性越來(lái)越高,數(shù)據(jù)庫(kù)作為信息系統(tǒng)的核心,擔(dān)當(dāng)者重要的角色

  • 數(shù)據(jù)庫(kù)備份,是在數(shù)據(jù)丟失的情況下,能及時(shí)恢復(fù)重要數(shù)據(jù),防止數(shù)據(jù)丟失的一種重要手段

  • 一個(gè)合理的數(shù)據(jù)庫(kù)備份方案,能夠在數(shù)據(jù)丟失時(shí),有有效地恢復(fù)數(shù)據(jù),而且也需要考慮技術(shù)實(shí)現(xiàn)難度和有效地利用資源


一、MySQL 完全備份

1.數(shù)據(jù)庫(kù)備份方式精講

1.1 數(shù)據(jù)庫(kù)備份的重要性

生產(chǎn)環(huán)境中,數(shù)據(jù)的安全性是至關(guān)重要的,任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果

數(shù)據(jù)庫(kù)備份的重要性主要體現(xiàn)在:

  1. 提高系統(tǒng)的高可用性和災(zāi)難可恢復(fù)性,在數(shù)據(jù)庫(kù)系統(tǒng)崩潰時(shí),沒(méi)有數(shù)據(jù)庫(kù)備份就沒(méi)法找到數(shù)據(jù)

  2. 使用數(shù)據(jù)庫(kù)備份還原數(shù)據(jù)庫(kù),是數(shù)據(jù)庫(kù)崩潰時(shí)提供數(shù)據(jù)恢復(fù)最小代價(jià)的最優(yōu)方案,如果讓用戶重新添加數(shù)據(jù),代價(jià)未免太大

  3. 沒(méi)有數(shù)據(jù)就沒(méi)有一切,數(shù)據(jù)庫(kù)備份是一種防范災(zāi)難的強(qiáng)力手段

使用數(shù)據(jù)庫(kù)的過(guò)程中,有多種原因造成數(shù)據(jù)的丟失:

  1. 程序錯(cuò)誤:指對(duì)數(shù)據(jù)庫(kù)操作的程序難免有些錯(cuò)誤,造成數(shù)據(jù)丟失

  2. 人為錯(cuò)誤:指由于使用人員的誤操作造成的數(shù)據(jù)被破壞,還有可能是黑客對(duì)系統(tǒng)攻擊造成的數(shù)據(jù)丟失等

  3. 計(jì)算機(jī)失敗:指運(yùn)行數(shù)據(jù)庫(kù)的服務(wù)器操作系統(tǒng)或軟件損壞,有可能造成數(shù)據(jù)的損壞

  4. 磁盤(pán)失?。褐赣脖P(pán)等存儲(chǔ)數(shù)據(jù)的硬件設(shè)備,長(zhǎng)時(shí)間運(yùn)行后可能損壞,造成數(shù)
    據(jù)丟失

  5. 災(zāi)難(如火災(zāi)、地震)和偷竊:指自然災(zāi)害等的發(fā)生,有可能造成數(shù)據(jù)丟失

  • 數(shù)據(jù)丟失會(huì)造成嚴(yán)重的經(jīng)濟(jì)損失,如攜程網(wǎng)2015年5月28日數(shù)據(jù)庫(kù)崩潰,每小時(shí)損失大概106萬(wàn)美元

  • 所以在企業(yè)信息系統(tǒng)建設(shè)中,數(shù)據(jù)庫(kù)的備份管理是非常重要的內(nèi)容

1.2 數(shù)據(jù)庫(kù)備份的分類

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

1.2.1 物理備份
  • 指對(duì)數(shù)據(jù)庫(kù)操作系統(tǒng)的物理文件(如數(shù)據(jù)文件、日志文件等)的備份

  • 物理備份又可以分為脫機(jī)備份(冷備份)和聯(lián)機(jī)備份(熱備份)

  • 冷備份(脫機(jī)備份):在關(guān)閉數(shù)據(jù)庫(kù)時(shí)進(jìn)行的備份操作,能夠較好地保證數(shù)據(jù)庫(kù)的完整性

  • 熱備份(聯(lián)機(jī)備份):在數(shù)據(jù)庫(kù)運(yùn)行狀態(tài)中進(jìn)行操作,這種備份方法依賴于數(shù)據(jù)庫(kù)的日志文件

1.2.2 邏輯備份
  • 指對(duì)數(shù)據(jù)庫(kù)邏輯組件(如表等數(shù)據(jù)庫(kù)對(duì)象)的備份

從數(shù)據(jù)庫(kù)的備份策略角度來(lái)看,備份又可分為完全備份、差異備份和增量備份

1.2.3 完全備份
  • 每次對(duì)數(shù)據(jù)進(jìn)行完整的備份

  • 可以備份整個(gè)數(shù)據(jù)庫(kù),包含用戶表、系統(tǒng)表、索引、視圖和存儲(chǔ)過(guò)程等所有數(shù)據(jù)庫(kù)對(duì)象

  • 但它需要花費(fèi)更多的時(shí)間和空間,所以,做一次完全備份的周期要長(zhǎng)些

1.2.4 差異備份
  • 備份那些自從上次完全備份之后被修改過(guò)的文件,即只備份數(shù)據(jù)庫(kù)部分的內(nèi)容

  • 它比最初的完全備份小,因?yàn)橹话陨洗瓮耆珎浞菀詠?lái)所改變的數(shù)據(jù)庫(kù)

  • 它的優(yōu)點(diǎn)是存儲(chǔ)和恢復(fù)速度快

1.2.5 增量備份
  • 只有那些在上次完全備份或者增量備份后被修改的文件才會(huì)被備份

1.2.6 備份方式比較
備份方式完全備份差異備份增量備份
完全備份時(shí)的狀態(tài)表1、表2表1、表2表1、表2
第1次添加內(nèi)容創(chuàng)建表3創(chuàng)建表3創(chuàng)建表3
備份內(nèi)容表1、表2、表3表3表3
第2次添加內(nèi)容創(chuàng)建表4創(chuàng)建表4創(chuàng)建表4
備份內(nèi)容表1、表2、表3、表4表3、表4表4
  • 完全備份每次都是把整個(gè)數(shù)據(jù)庫(kù)中的內(nèi)容進(jìn)行備份

  • 差異備份在第1次添加內(nèi)容后備份,即備份新添加的內(nèi)容;第2次添加內(nèi)容后備份,把第1次添加的內(nèi)容也進(jìn)行了備份,它是根據(jù)完全備份時(shí)的狀態(tài)決定的

  • 差異備份每次都是把完全備份之后所有的修改進(jìn)行備份,而不管之前是否做過(guò)差異備份

  • 增量備份只備份每次新修改的內(nèi)容,第1次創(chuàng)建表3,就對(duì)表3備份,第2次添加表4后,因?yàn)橹耙呀?jīng)備份過(guò)表3,所以只備份表4的內(nèi)容

1.3 MySQL 完全備份概念解讀

  • MySQL 的備份方式主要有完全備份與增量備份

  • 完全備份是對(duì)整個(gè)數(shù)據(jù)庫(kù)的備份、數(shù)據(jù)庫(kù)結(jié)構(gòu)和文件結(jié)構(gòu)的備份,保存的是備份完成時(shí)刻的數(shù)據(jù)庫(kù),是增量備份的基礎(chǔ)

  • 完全備份的優(yōu)點(diǎn)是備份與恢復(fù)操作簡(jiǎn)單方便,缺點(diǎn)是數(shù)據(jù)存在大量重復(fù),占用大量的備份空間,備份的時(shí)間長(zhǎng)

  • 在生產(chǎn)環(huán)境中,這兩種備份方式都會(huì)使用,需要制定合理高效的方案達(dá)到備份數(shù)據(jù)的目的,避免數(shù)據(jù)丟失造成嚴(yán)重的后果

2.mysqldump 備份演練

  • MySQL 數(shù)據(jù)庫(kù)的備份可以采用兩種方式

  • 因?yàn)閿?shù)據(jù)庫(kù)實(shí)際上就是文件,直接打包數(shù)據(jù)庫(kù)文件夾,或者是使用專用備份工具 mysqldump 都可以進(jìn)行備份工作

2.1 使用 tar 打包文件夾備份

  • MySQL 的數(shù)據(jù)庫(kù)文件默認(rèn)都是保存在安全目錄的 data 文件夾下,可以直接保存 data 文件夾,因?yàn)檎加每臻g較大,可以使用data 打包壓縮進(jìn)行保存
    MySQL完全備份與恢復(fù)的示例分析

yum -y install xz#數(shù)據(jù)庫(kù)文件很大,可以使用壓縮率較大的xz格式壓縮,選需要安裝xz壓縮格式工具tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/#對(duì)數(shù)據(jù)庫(kù)文件夾進(jìn)行打包操作ls /opt#查看打包命令是否運(yùn)行成功,已經(jīng)生成了備份文件du -sh /opt/mysql-2021-02-05.tar.xz #對(duì)比打包前后的文件大小,可以看到壓縮的備份文件所占用空間很小tar -Jxvf /opt/mysql-2021-02-05.tar.xz -C /usr/local/mysql/data/systemctl restart mysql#如果數(shù)據(jù)庫(kù)文件損壞數(shù)據(jù)丟失,可以解壓縮文件,相當(dāng)于數(shù)據(jù)恢復(fù)

MySQL完全備份與恢復(fù)的示例分析

2.2 使用 mysqldump 工具備份

  • 上文中演示的是對(duì) MySQL 整個(gè)數(shù)據(jù)庫(kù)的目錄進(jìn)行壓縮的方式,是備份數(shù)據(jù)庫(kù)中所有的內(nèi)容

  • mysqldump 是 mysql 用于轉(zhuǎn)存儲(chǔ)數(shù)據(jù)庫(kù)的實(shí)用程序(自帶),它主要產(chǎn)生一個(gè) SQL 腳本,其中包含從頭重新創(chuàng)建數(shù)據(jù)庫(kù)所必需的命令(如 CREATE、TABLE、INSERT等)

  • 使用 mysqldump 可以更加靈活地控制備份的內(nèi)容,比如某幾個(gè)表或庫(kù)都可以單獨(dú)備份

#開(kāi)始之前,創(chuàng)建庫(kù)和表,用作例子mysql -uroot -p123123#輸入密碼進(jìn)入數(shù)據(jù)庫(kù),以上為我的密碼create database SCHOOL;#創(chuàng)建庫(kù)use SCHOOL;create table CLASS01 ( id int(2) not null auto_increment, name varchar(10) not null, sex char(5) not null, hobby varchar(10), primary key (id));#創(chuàng)建表結(jié)構(gòu)#字段一:id,較大顯示長(zhǎng)度2,不能為空,自動(dòng)遞增從1開(kāi)始#字段二:name,可變長(zhǎng)度字段,10,不能為空#字段三:sex,固定長(zhǎng)度5,不能為空#字段四:hobby,可變長(zhǎng)度,最多10字符#字段四:主鍵(id)insert into CLASS01 values(1,'wangyi','man','reading');insert into CLASS01 values(2,'wanger','woman','singing');#插入2條數(shù)據(jù)select * from CLASS01;#檢查一下quit#退出數(shù)據(jù)庫(kù)

MySQL完全備份與恢復(fù)的示例分析

#使用 mysqldump 對(duì)某些表進(jìn)行完全備份,命令格式如下:mysqldump -u[用戶名] -p[密碼] [選項(xiàng)] [數(shù)據(jù)庫(kù)名] [數(shù)據(jù)表名] > /備份路徑/備份文件名.sql#導(dǎo)出的為數(shù)據(jù)庫(kù)腳本文件例:對(duì)庫(kù)SCHOOL中的表class進(jìn)行備份至/opt/目錄下mysqldump -uroot -p[密碼] SCHOOL CLASS01 > /opt/test01.sql

MySQL完全備份與恢復(fù)的示例分析

#對(duì)某些庫(kù)進(jìn)行完全備份mysqldump -uroot -p[密碼] [數(shù)據(jù)庫(kù)名] > /目錄/備份文件名.sql例:mysqldump -uroot -p123123 SCHOOL > /opt/test02#對(duì)多個(gè)庫(kù)進(jìn)行完全備份mysqldump -uroot -p123123 --databases SCHOOL sys > /opt/test03.sql#對(duì)所有庫(kù)進(jìn)行完全備份mysqldump -uroot -p123123 --all-databases > /opt/test04.sql#直接備份表結(jié)構(gòu)mysqldump -uroot -p123123 -d SCHOOL CLASS01 > /opt/test05.sqlls /opt/#查看打包命令是否運(yùn)行成功,已經(jīng)生成了備份文件

MySQL完全備份與恢復(fù)的示例分析
MySQL完全備份與恢復(fù)的示例分析

cat /opt/test05.sql#分析 mysqldump 工具生成的備份文件的內(nèi)容

MySQL完全備份與恢復(fù)的示例分析

  • 上面使用了 -d 選項(xiàng),說(shuō)明只保存數(shù)據(jù)庫(kù)的表結(jié)構(gòu),且表中只有一個(gè)庫(kù),可以看到先刪除了表(同名),再創(chuàng)建了它

  • 刪除和創(chuàng)建都是最普通的 MySQL 命令,任何一條在 MySQL 中都是可以執(zhí)行的語(yǔ)句,有了這些語(yǔ)句就可以創(chuàng)建出和現(xiàn)在的表結(jié)構(gòu)相同的表

  • 如果不使用 -d 選項(xiàng),會(huì)把數(shù)據(jù)也進(jìn)行備份,下面看看數(shù)據(jù)時(shí)如何保存的

cat /opt/test01

MySQL完全備份與恢復(fù)的示例分析

  • 可以看到與使用 -d 參數(shù)的差別是最后出現(xiàn)了 insert into 語(yǔ)句,往數(shù)據(jù)庫(kù)中插入了兩條數(shù)據(jù),也就是說(shuō),數(shù)據(jù)的備份是保存的插入語(yǔ)句操作

  • 通過(guò)以上分析,很容易理解,備份的本質(zhì)就是保存數(shù)據(jù)庫(kù)當(dāng)前表結(jié)構(gòu)的創(chuàng)建語(yǔ)句和現(xiàn)有數(shù)據(jù)的插入語(yǔ)句,有了它們就可以直接恢復(fù)數(shù)據(jù)庫(kù)的狀態(tài)


二、MySQL 完全恢復(fù)

  • 前面介紹了數(shù)據(jù)庫(kù)的完全備份,使用 mysqldump 工具可以把數(shù)據(jù)的創(chuàng)建語(yǔ)句保存在備份的腳本文件中

  • 當(dāng)出現(xiàn)錯(cuò)誤時(shí),可以使用以下幾種方法恢復(fù)它們

1.恢復(fù)整庫(kù)操作

1.1 source 命令整庫(kù)恢復(fù)

mysql -uroot -p123123show databases;drop database SCHOOL;show databases;source /opt/test03.sql#之前備份過(guò)的,該備份為SCHOOL和sys兩個(gè)庫(kù)的完整備份#注意!選項(xiàng)得加“--databases”才是完整的備份,不然會(huì)恢復(fù)不了

MySQL完全備份與恢復(fù)的示例分析

1.2 MySQL 命令整庫(kù)恢復(fù)

quitmysql -uroot -p123123 -e 'drop database SCHOOL;'mysql -uroot -p123123 -e 'SHOW DATABASES;'mysql -uroot -p123123 < /opt/test03.sql

 mysql -uroot -p123123 -e 'SHOW DATABASES;'

MySQL完全備份與恢復(fù)的示例分析

2.恢復(fù)表操作

  • 恢復(fù)數(shù)據(jù)表同樣可以使用 source 命令和 mysql 命令操作

2.1 使用 source 命令恢復(fù)表

mysql -uroot -p123123use SCHOOL;show tables;drop table CLASS01;
 source /opt/test01.sql#恢復(fù)表show tables;select * from CLASS01;#查看

MySQL完全備份與恢復(fù)的示例分析
MySQL完全備份與恢復(fù)的示例分析

2.2 使用 mysql 命令恢復(fù)表

quitmysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 -e 'DROP TABLES SCHOOL.CLASS01;'mysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'mysql -uroot -p123123 SCHOOL < /opt/test01.sqlmysql -uroot -p123123 -e 'SHOW TABLES FROM SCHOOL;'

MySQL完全備份與恢復(fù)的示例分析

3.MySQL 備份思路

  • MySQL 需要定期實(shí)施備份,指定合適的備份計(jì)劃或策略,并嚴(yán)格遵守

  • 除了進(jìn)行完全備份,開(kāi)啟 MySQL 服務(wù)器的日志功能也很重要,完全備份加上日志,可以對(duì) MySQL 進(jìn)行較大化還原

  • 備份文件的名字還需鑰使用統(tǒng)一的易于理解的名稱,推薦使用庫(kù)名或表名加上時(shí)間的命名規(guī)則,在需要恢復(fù)數(shù)據(jù)庫(kù)時(shí)能很容易的定位到相應(yīng)的所需備份文件

關(guān)于“MySQL完全備份與恢復(fù)的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


標(biāo)題名稱:MySQL完全備份與恢復(fù)的示例分析-創(chuàng)新互聯(lián)
文章URL:http://weahome.cn/article/jjsgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部