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

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

這篇具有很好參考價(jià)值的文章主要介紹了MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫恢復(fù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

第1關(guān):備份與恢復(fù)

任務(wù)描述

本關(guān)任務(wù):
備份數(shù)據(jù)庫,然后再恢復(fù)它。

相關(guān)知識(shí)

為了完成本關(guān)任務(wù),你需要掌握:
1.MySQL的恢復(fù)機(jī)制;
2.MySQL提供的備份與恢復(fù)工具。

MySQL的恢復(fù)機(jī)制

和大多數(shù)DBMS一樣,MySQL利用備份、日志文件實(shí)現(xiàn)恢復(fù)。
具體理論知識(shí)在此不詳細(xì)介紹。

MySQL的備份與恢復(fù)工具

MySQL提供了以下工具:

  • 邏輯備份工具:mysqldump
  • 物理備份工具:mysqlbackup(僅限商用版)
  • 日志工具:mysqlbinlog
  • 還原工具:mysql
  • 管理工具:mysqladmin

mysqldump
邏輯備份工具,它產(chǎn)生一系的SQL語句,執(zhí)行這些語句可以重建原數(shù)據(jù)庫的所有對(duì)象和數(shù)據(jù)。缺省輸出是控制臺(tái),可以通過重定向符號(hào),將其產(chǎn)生的SQL語句集合存入到某個(gè)文件。
mysqldump可以備份服務(wù)器上的全部數(shù)據(jù)庫,也可以指定某些數(shù)據(jù)庫,或者一個(gè)數(shù)據(jù)庫中的某些表。
mysqldump -h127.0.0.1 -uroot -p123123 [options] --databases db_name

–databases 參數(shù)用指定數(shù)據(jù)庫名,后面可跟一個(gè)或多個(gè)數(shù)據(jù)庫的名字,多個(gè)數(shù)據(jù)庫名間用空格隔開。
mysqldump命令行工具還可以帶若干參數(shù),可選的參數(shù)多達(dá)幾十個(gè),詳見官方參考手冊。這里只介紹一個(gè):
–flush-logs 刷MySQL日志,即重新開始一個(gè)日志文件。
重新開始一個(gè)新的日志文件,對(duì)未來確定哪些日志更有用很有幫助。通常海量備份前的日志文件,其重要性會(huì)降低許多,因?yàn)橛袀浞菰谑?,除非備份文件出故障,你可能不再需要使用之前的日志文件?/p>

mysqlbackup
mysqlbackup是MySQL的物理備份工具,只有付費(fèi)的商用企業(yè)版才有。

mysql
mysql是MySQL最重要的客戶端管理工具,通常用戶都是通過mysql登錄到MySQL服務(wù)器,進(jìn)行各種操作。此外,還可以直接通過它執(zhí)行SQL腳本,還原或創(chuàng)建新庫。
mysql -h127.0.0.1 -uroot -p12313 < mydb.sql
這樣會(huì)直接執(zhí)行mydb.sql的腳本。通過mysqldump備份出來的腳 本文件,可以用該方法直接用來恢復(fù)原數(shù)據(jù)庫。

mysqladmin
mysqladmin是MySQL服務(wù)器的管理工具,一般用于配置服務(wù)器,也可以用來創(chuàng)建或刪除數(shù)據(jù)庫:
mysqladmin [options] command [command-arg] [command [command-arg]]
常用的command(執(zhí)行命令)有:
create db_name 創(chuàng)建數(shù)據(jù)庫
drop db_name 刪除數(shù)據(jù)庫
flush-logs 刷日志
flush-tables 刷表,所有表數(shù)據(jù)寫入磁盤盤
kill id,id,… 殺死某些進(jìn)程
password new_password 修改(登錄者的)登錄密碼
ping 檢查服務(wù)器是否可用
status 顯示服務(wù)器狀態(tài)
variables 顯示各配置參數(shù)的值

同樣,該工具也支持不少可選的參數(shù),詳見官方手冊。

mysqlbinlog
mysqlbinlog是MySQL的日志管理工具。在需要手工介入的故障恢復(fù)中,該工具必不可少。當(dāng)然,平常也可以用它查看日志。
mysqlbinlog mysql-bin.000983
上面的例子,用來查看日志文件mysql-bin.000983。MySQL的日志文件具有相同的前綴,后面的數(shù)字是日志文件的順序。這個(gè)前綴是可配置的。比如,也可能是binlog.*,例如:
MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫恢復(fù)

執(zhí)行日志文件會(huì)導(dǎo)致日志所記錄的事件重新做一遍,這樣可以恢復(fù)一個(gè)給定時(shí)間段的數(shù)據(jù),恢復(fù)的方法如下:
mysqlbinlog [option] binlog_files | mysql -u root -p
介質(zhì)故障的恢復(fù)通常需要把最近一次備份后所有的日志文件全部列上。

mysqlbinlog也支持幾十個(gè)可選的參數(shù),比如:
–disable-log-bin 在通過日志恢復(fù)數(shù)據(jù)庫期間不再寫日志
–no-defaults 不使用MySQL默認(rèn)的設(shè)置

其它參數(shù)數(shù)詳情請參考官方文檔。

MySQL還有其它一些工具(如mysqlimport,mysqlshow等),這里不一一介紹。

編程要求

設(shè)有居民人口登記數(shù)據(jù)庫residents,請為該數(shù)據(jù)庫做一次靜態(tài)的(你一個(gè)人獨(dú)享服務(wù)器)海量邏輯備份,備份文件命名為residents_bak.sql。 然后再用該邏輯備份文件恢復(fù)數(shù)據(jù)庫。
評(píng)測程序并不檢查備份文件的名字,你可以用其它文件名,但要保證備份和恢復(fù)時(shí),使用同一個(gè)文件。備份和恢復(fù)的命令分別寫在test1_1.sh和test1_2.sh文件中。

  • test1_1.sh - 作備份
  • test1_2.sh - 作恢復(fù)

切莫把兩個(gè)文件弄反了。

根據(jù)提示,在右側(cè)代碼文件編輯器填寫語句,完成上述要求。缺 省情況下你看到的應(yīng)該是test1_1.sh。鼠標(biāo)移至“代碼文件”右側(cè)的三角符號(hào),會(huì)列出全部代碼文件,你可以在兩個(gè)代碼文件間自由切換。當(dāng)所有代碼文件都填寫完成后,點(diǎn)擊“評(píng)測”按鈕。

注意:mysql,mysqldump,mysqladmin運(yùn)行時(shí)需提供登錄用戶名和密碼,由于不是在交互式環(huán)境中使用這些工具,你需要在命令行上給出登錄所需要的信息,例如:
mysql -h127.0.0.1 -uroot -p123123
但在命令行曝光密碼具有極高風(fēng)險(xiǎn),MySQL會(huì)拋出警告信息,故評(píng)測程序會(huì)通過其它途徑提供登錄密碼,請?jiān)诿钚惺÷?p參數(shù)。以mysql為例,你只需要這樣寫即可:
mysql -h127.0.0.1 -uroot

測試說明
數(shù)據(jù)庫residents是本來就有的,平臺(tái)會(huì)先運(yùn)行test1_1.sh來作備份,然后會(huì)drop掉residents。再運(yùn)行test1_2.sh來恢復(fù)數(shù)據(jù)庫。最后檢查恢復(fù)是否成功,如果在每個(gè)residents實(shí)列上的評(píng)測結(jié)果,都與預(yù)期結(jié)果完全一致即過可通關(guān)。

開始你的任務(wù)吧,祝你成功!

代碼參考

test1_1.sh 文件內(nèi)容

# 你寫的命令將在linux的命令行運(yùn)行
# 對(duì)數(shù)據(jù)庫residents作海量備份,備份至文件residents_bak.sql:
mysqldump -h127.0.0.1 -uroot --flush-logs --databases residents > residents_bak.sql

test1_2.sh 文件內(nèi)容

# 你寫的命令將在linux的命令行運(yùn)行
# 利用備份文件residents_bak.sql還原數(shù)據(jù)庫:
mysql -h127.0.0.1 -uroot < residents_bak.sql

第2關(guān) 備份+日志:介質(zhì)故障的發(fā)生與數(shù)據(jù)庫的恢復(fù)

任務(wù)描述

本關(guān)任務(wù):

模擬介質(zhì)故障的發(fā)生,以及如何利用備份和備份之后的日志恢復(fù)數(shù)據(jù)庫。

相關(guān)知識(shí)

只要有備份文件,和自上次備份以來的日志文件,即使發(fā)生介質(zhì)故障導(dǎo)致整個(gè)數(shù)據(jù)庫丟失,也可以在更換介質(zhì)后,恢復(fù)數(shù)據(jù)庫。上一關(guān)已介紹有關(guān)知識(shí)。

在生產(chǎn)環(huán)境中,數(shù)據(jù)庫文件、備份文件、日志文件都不會(huì)存放在同一介質(zhì)上,甚至都不會(huì)存放在同一地理空間。為的就是災(zāi)難發(fā)生后,有機(jī)會(huì)恢復(fù)數(shù)據(jù)。

本關(guān)將摸擬介質(zhì)故障的發(fā)生與數(shù)據(jù)庫的恢復(fù)。你要使用的工具包括:

  • mysql
  • mysqldump
  • mysqlbinlog

上一關(guān)已經(jīng)介紹了它們的用法。

編程要求

摸擬介質(zhì)故障的發(fā)生與數(shù)據(jù)庫的恢復(fù)。依時(shí)間順序發(fā)生下列事件(其中標(biāo)記為紅色的部分將由你來完成,其余部分由評(píng)測程序完成):

時(shí)間點(diǎn)1:數(shù)據(jù)庫train有業(yè)務(wù)數(shù)據(jù)產(chǎn)生;
時(shí)間點(diǎn)2:對(duì)數(shù)據(jù)庫train作一次海量備份,同時(shí)新開日志;
時(shí)間點(diǎn)3:數(shù)據(jù)庫train又有業(yè)務(wù)數(shù)據(jù)產(chǎn)生;
時(shí)間點(diǎn)4:故障發(fā)生;
時(shí)間點(diǎn)5:恢復(fù)數(shù)據(jù)庫,保證兩次發(fā)生的業(yè)務(wù)數(shù)據(jù)都不丟失。

請你完成時(shí)間點(diǎn)2和時(shí)間點(diǎn)5(標(biāo)注紅色的部分)的工作,將完成任務(wù)的腳本填寫到對(duì)應(yīng)文件中:

  • 對(duì)數(shù)據(jù)庫train作一次海量邏輯備份同時(shí)開新日志:test2_1.sh
  • 利用備份文件和日志文件恢復(fù)數(shù)據(jù)庫: test2_2.sh

切莫把兩個(gè)文件弄反了。

所有其它工作,評(píng)測程序會(huì)替你完成:

  • 在發(fā)生業(yè)務(wù)數(shù)據(jù)的時(shí)間點(diǎn),會(huì)批量寫入數(shù)據(jù);
  • 在故障發(fā)生的時(shí)間點(diǎn),數(shù)據(jù)庫train會(huì)被drop掉。
  • 在drop數(shù)據(jù)庫之前,評(píng)測程序會(huì)將備份后新開的日志文件保存為log/binlog.000018

這里,評(píng)測程序總是替你找到你需要的那個(gè)日志文件,并保存在一個(gè)固定的日志文件中,供你恢復(fù)使用。但在實(shí)踐中,日志文件是一直在變化的,即便是在這樣一個(gè)由你獨(dú)享服務(wù)器實(shí)例的環(huán)境下,兩次點(diǎn)擊“評(píng)測”按鈕,日志文件也會(huì)因評(píng)測程序多次寫入數(shù)據(jù),加上你的備份與恢復(fù)操作而發(fā)生變化,當(dāng)日志文件達(dá)到一定規(guī)模時(shí),MySQL還會(huì)自動(dòng)開啟新日志文件。在本地實(shí)驗(yàn)時(shí),自己要學(xué)會(huì)識(shí)別你需要哪個(gè)或哪些日志文件。

請根據(jù)提示,在右側(cè)代碼文件編輯器填寫語句,完成上述要求。缺 省情況下你看到的應(yīng)該是test2_1.sh。鼠標(biāo)移至“代碼文件”右側(cè)的三角符號(hào),會(huì)列出全部代碼文件,你可以在兩個(gè)代碼文件間自由切換。當(dāng)所有代碼文件都填寫完成后,點(diǎn)擊“評(píng)測”按鈕。

測試說明

評(píng)測程序?qū)凑諘r(shí)間順序觸發(fā)上述相應(yīng)事件,在輪到時(shí)間點(diǎn)2和時(shí)間點(diǎn)5時(shí),運(yùn)行你的腳本。在所有事件結(jié)束后檢查數(shù)據(jù)庫有沒有成功恢復(fù)。如果在數(shù)據(jù)庫的兩個(gè)不同實(shí)例上,故障發(fā)生后,數(shù)據(jù)庫都得以完全恢復(fù),即可通關(guān)。

開始你的任務(wù)吧,祝你成功!

代碼參考

test2_1.sh 文件內(nèi)容

# 這是shell腳本,將在linux命令行上執(zhí)行
# 命令行上可省略密碼的指定
# 請寫出對(duì)數(shù)據(jù)庫train作邏輯備份并新開日志文件的命令,備份文件你可以自己命名(如train_bak.sql):
mysqldump -h 127.0.0.1 -uroot --flush-logs --databases train > backup/train_bak.sql

test2_2.sh 文件內(nèi)容文章來源地址http://www.zghlxwxcb.cn/news/detail-451188.html

# 這是shell腳本,將在linux命令行上執(zhí)行
# 命令行上可省略密碼的指定
# 請寫出利用邏輯備份和日志恢復(fù)數(shù)據(jù)庫的命令:
mysql -h127.0.0.1 -uroot < backup/train_bak.sql
mysqlbinlog --no-defaults log/binlog.000018 | mysql -h127.0.0.1 -uroot

到了這里,關(guān)于MySQL-備份+日志:介質(zhì)故障與數(shù)據(jù)庫恢復(fù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Mysql數(shù)據(jù)庫增量備份與恢復(fù)

    使用 mysqldump 進(jìn)行完全備份,備份的數(shù)據(jù)中有重復(fù)數(shù)據(jù),備份時(shí)間與恢復(fù)時(shí)間長。 而增量備份就是備份自上一次備份之后增加或改變的文件或內(nèi)容。 1、增量備份的特點(diǎn): 沒有重復(fù)數(shù)據(jù),備份量不大,時(shí)間短 恢復(fù)麻煩:需要上次完全備份及完全備份之后所有的增量備份才能恢復(fù)

    2024年02月07日
    瀏覽(93)
  • 數(shù)據(jù)庫(MySQL的備份和恢復(fù))

    目錄 1.1 MySQL 日志管理 1.1.1 MySQL日志類型 1.1.2 錯(cuò)誤日志 錯(cuò)誤日志中主要記錄的幾種日志 錯(cuò)誤日志的定義 1.1.3 通用查詢?nèi)罩?1.1.4 慢查詢?nèi)罩?和慢查詢相關(guān)的變量設(shè)置 1.1.5 二進(jìn)制日志 二進(jìn)制日志是記錄執(zhí)行的語句還是執(zhí)行后的數(shù)據(jù) 日志滾動(dòng)? 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.日志管理 二、實(shí)驗(yàn) 1.完全備份與恢復(fù) 2.增量備份與恢復(fù) 3.使用腳本備份 三、問題 1.mysqldump報(bào)錯(cuò) 四、總結(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)生嚴(yán)重的后果。 造成數(shù)據(jù)丟失的原因: 程序錯(cuò)誤 人為操作錯(cuò)誤 運(yùn)算錯(cuò)誤 磁盤故障 災(zāi)難(如火災(zāi)、地震)和盜竊 1)物理備份 物理備份:對(duì)數(shù)據(jù)庫操作系統(tǒng)的物理文件(如數(shù)據(jù)

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

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

    數(shù)據(jù)庫備份 物理備份 :直接對(duì)數(shù)據(jù)庫的 數(shù)據(jù)文件或者日志文件 進(jìn)行備份. 邏輯備份 :對(duì) 數(shù)據(jù)庫的庫或表對(duì)象 進(jìn)行備份. 備份策略 完全備份 :每次備份 都備份完整的數(shù)據(jù)庫 . 是對(duì)整個(gè)數(shù)據(jù)庫、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份。 保存的是 備份完成時(shí)刻的數(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ù)庫中的一個(gè)實(shí)用程序,它主要用于轉(zhuǎn)儲(chǔ)(備份)數(shù)據(jù)庫。mysqldump通過生成一個(gè)SQL腳本文件,包含從頭開始重新創(chuàng)建數(shù)據(jù)庫所必需的(如 CREATE TABLE和INSERT等),來實(shí)現(xiàn)數(shù)據(jù)庫的備份和轉(zhuǎn)儲(chǔ)。這樣,你可以在任何時(shí)候通過運(yùn)

    2024年02月08日
    瀏覽(96)
  • 【Linux】Mysql的數(shù)據(jù)庫備份及恢復(fù)

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

    ????????備份就是為了防止原數(shù)據(jù)丟失,保證數(shù)據(jù)的安全。當(dāng)數(shù)據(jù)庫因?yàn)槟承┰蛟斐刹糠只?者全部數(shù)據(jù)丟失后,備份文件可以幫我們找回丟失的數(shù)據(jù)。因此,數(shù)據(jù)備份是很重要 的工作。 常見數(shù)據(jù)庫備份的應(yīng)用場景如下: 數(shù)據(jù)丟失應(yīng)用場景: 人為操作失誤造成某些數(shù)據(jù)

    2023年04月10日
    瀏覽(85)
  • MySQL基礎(chǔ)(三十八)數(shù)據(jù)庫備份與恢復(fù)

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

    物理備份 :備份數(shù)據(jù)文件,轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫物理文件到某一目錄。物理備份恢復(fù)速度比較快,但占用空間比較大,MySQL中可以用 xtrabackup 工具來進(jìn)行物理備份。 邏輯備份 :對(duì)數(shù)據(jù)庫對(duì)象利用工具進(jìn)行導(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數(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)紅包