RM新时代国际平台

  • <div id="r605l"></div>
      1. <th id="r605l"></th>
      2. Mysql數(shù)據(jù)恢復(fù)

        上一篇講了Mysql當(dāng)前支持的備份方式,那么,有了備份文件,怎么將數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)?

        1.對(duì)當(dāng)前的整個(gè)mysql實(shí)例進(jìn)行備份,不備份的話(huà),一切后果請(qǐng)自行負(fù)責(zé)哦

        2.進(jìn)入mysql,刪除mysql,test2,world三個(gè)數(shù)據(jù)庫(kù)

        刪庫(kù)跑路嘍,[壞笑]

        3.不用怕,此時(shí)使用備份的all-database.sql進(jìn)行恢復(fù)

        發(fā)現(xiàn)刪掉的數(shù)據(jù)庫(kù)又回來(lái)了

        擴(kuò)展:

        37977d80db7b0ffef77f0262880cb801.jpg

        1.你也可以對(duì)某個(gè)數(shù)據(jù)庫(kù)或者表進(jìn)行類(lèi)似操作,但是,在對(duì)庫(kù)進(jìn)行恢復(fù)操作時(shí),需要先手動(dòng)創(chuàng)建庫(kù),否則系統(tǒng)會(huì)報(bào)錯(cuò)。此處不再進(jìn)行演示,請(qǐng)參考以下命令:

        mysql -uroot -p 數(shù)據(jù)庫(kù)名< C:/Users/backup/數(shù)據(jù)庫(kù)名.sql

        2.此外,你還可以使用Mysql自帶命令進(jìn)行數(shù)據(jù)恢復(fù)

        語(yǔ)法結(jié)構(gòu)(需要進(jìn)入mysql):

        source path/file_name.sql

        3.mysqldump本身也支持導(dǎo)出文本文件的備份,使用mysqlimport進(jìn)行導(dǎo)入文本備份文件,此處不再進(jìn)行演示

        請(qǐng)按照?qǐng)D示步驟理解

        目前熱點(diǎn)數(shù)據(jù)恢復(fù)支持的文件格式為.text,.csv,.xlsx,.xls。其他的暫不支持,切記你要導(dǎo)入的表一定預(yù)先存在數(shù)據(jù)庫(kù)中的,其效率很高,要比insert語(yǔ)句快20倍以上

        1,開(kāi)啟binlog,修改配置文件參數(shù)

        log-bin=C:/Users/backup/mysql-bin #日志文件存放路徑

        max_binlog_size=100M 單個(gè)文件大小

        binlog-format=row 日志生成格式

        2.小編本機(jī)有個(gè)test庫(kù)及一張user表,已知有4條數(shù)據(jù)

        3.使用mysqldump對(duì)test進(jìn)行全量備份

        mysqldump -uroot -p test > c:/Users/backup/user.sql

        生成的對(duì)應(yīng)的sql文件:

        4.此時(shí)插入兩條新數(shù)據(jù)

        生成新的binlog

        truncate user表,用以模仿突發(fā)問(wèn)題(數(shù)據(jù)庫(kù)崩潰,或者誤刪等),user中數(shù)據(jù)沒(méi)了

        5.由于預(yù)先對(duì)test進(jìn)行了全量備份,所以此時(shí)需要恢復(fù)user表中的數(shù)據(jù)

        mysql -uroot -p test < c:/Users/backup/user.sql

        再次查詢(xún),發(fā)現(xiàn)user表中恢復(fù)了部分?jǐn)?shù)據(jù),但剛剛插入的2條卻找不到

        6.使用binlog恢復(fù)5.6條數(shù)據(jù)

        由于我之前flush一次log(非演示中),所以,我的最新一次的log應(yīng)為:mysql-bin.000002

        此時(shí),我們只要使用這個(gè)文件進(jìn)行恢復(fù)數(shù)據(jù)就OK了

        此時(shí)查看user表中數(shù)據(jù)

        數(shù)據(jù)恢復(fù)成功

        7.同時(shí)mysqlbinlog支持對(duì)postion的恢復(fù)

        例如,我再恢復(fù)一次第六條的數(shù)據(jù),首先我得知道第6條數(shù)據(jù)在mysql-bin.000002的起始位置和結(jié)束位置.

        1>你可以使用如下命令查看mysql-bin.000002的內(nèi)容

        查看binlog內(nèi)容

        最后一條插入的起始1736和結(jié)束位置1830

        2>你也可以將binlog導(dǎo)出為.txt文件進(jìn)行查看

        查看.txt文件

        起始位置1736,結(jié)束位置1830

        3>利用binlog postion恢復(fù)第6條數(shù)據(jù)

        利用position恢復(fù)數(shù)據(jù)

        4>查看user表數(shù)據(jù)

        由于之前就已經(jīng)恢復(fù)了5.6條,再次執(zhí)行,即插入一條新數(shù)據(jù)

        擴(kuò)展:

        1.show master status; 可以產(chǎn)看當(dāng)前binlog文件和字節(jié)碼索引的位置

        2.show binary logs; 查看所有binlog文件

        3.show binlog events 查看mysql-bin.000001所有事件,也可以找到時(shí)間postion的起始和結(jié)束位置索引

        4.show binlog events in 'mysql-bin.000002'; 查看mysql-bin.000002所有事件,也可以找到時(shí)間postion的起始和結(jié)束位置索引


        下一篇:MySQL數(shù)據(jù)恢復(fù)的九把瑞士軍刀
        RM新时代国际平台
      3. <div id="r605l"></div>
          1. <th id="r605l"></th>
          2. <div id="r605l"></div>
              1. <th id="r605l"></th>
              2. 新时代RM|国际平台 新时代软件下载 RM新时代官网网址 rm新时代是正规平台 新时代rm平台入口