新聞中心
隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的數(shù)據(jù)需要被存儲下來。而對于一個企業(yè)來說,數(shù)據(jù)備份顯得尤為重要。因此,如何進(jìn)行備份數(shù)據(jù),使資料得到安全保障,又變得尤為重要了。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出合陽免費做網(wǎng)站回饋大家。
在進(jìn)行備份工作的時候,光備份文件是不夠的,因為數(shù)據(jù)庫中可能還有一些非常重要的有關(guān)數(shù)據(jù)庫結(jié)構(gòu)的信息,這些信息的丟失會對后續(xù)的數(shù)據(jù)處理工作產(chǎn)生很大影響。因此,備份數(shù)據(jù)庫是一個必要的措施,那么如何備份數(shù)據(jù)庫呢?下面筆者就為您詳細(xì)介紹一下拷貝數(shù)據(jù)庫的步驟。
一、備份之前的一些準(zhǔn)備工作
在進(jìn)行數(shù)據(jù)庫備份之前,需要對數(shù)據(jù)庫進(jìn)行一些準(zhǔn)備工作,包括以下幾點:
1.備份的數(shù)據(jù)庫必須是關(guān)閉狀態(tài),否則會造成備份文件不完整。
2.備份文件先前必須不存在,否則會覆蓋原來的數(shù)據(jù)庫文件,也會造成備份文件不完整。
3.備份文件的命名應(yīng)該明確,例如:2023年10月20日備份文件,文件名為“bak20231020.dmp”。
二、拷貝數(shù)據(jù)庫步驟詳解
1.打開cmd命令行窗口。在cmd命令行窗口中,輸入以下的命令:
exp 用戶名/密碼@數(shù)據(jù)庫名 file=d:\bak20231020.dmp
其中,“用戶名”指的是要備份的數(shù)據(jù)庫的用戶名,“密碼”指的是要備份的數(shù)據(jù)庫的密碼,“數(shù)據(jù)庫名”指的是要備份的數(shù)據(jù)庫的名稱,“file=d:\bak20231020.dmp”指的是備份的文件,需要注意的是備份的文件路徑更好在非系統(tǒng)目錄下,不然會造成文件找不到的情況。
2.執(zhí)行上述命令后,會出現(xiàn)以下提示信息:
Export: Release 11.2.0.0.0 – Production on Fri Oct 19 11:33:20 2023
Copyright (c) 1982, 2023, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
server uses WE8MSWIN1252 character set (possible charset conversion) About to export specified users …
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions for user
About to export user’s data …
. exporting estimates
. exporting partitions
. exporting tables
……
導(dǎo)出過程中,我們需要耐心等待,不要關(guān)閉命令行窗口。當(dāng)輸出以下信息時,就表示備份完成:
. . exported “SCOTT”.”DEPT” 5.343 KB 4 rows
. . exported “SCOTT”.”EMP” 12.94 KB 14 rows
. . exported “SCOTT”.”SALGRADE” 5.492 KB 5 rows
Export terminated successfully without warnings.
3.備份文件拷貝至其它存儲介質(zhì)
備份文件已經(jīng)制作完成,但是如果只是保存在原有計算機(jī)上,仍舊存在數(shù)據(jù)丟失的可能。所以更好的做法是將備份文件拷貝到其他介質(zhì)上,比如移動硬盤或者光盤等等。
拷貝的具體方法可根據(jù)您的需求來決定,我們可以利用Windows的Cmd命令,也可以通過圖形化的拷貝方法將備份文件拷貝到其他存儲介質(zhì)上。
:
備份數(shù)據(jù)雖然看起來是一項簡單的工作,但是合理的備份數(shù)據(jù)、正確的備份方法以及規(guī)范的備份流程,才能使我們的數(shù)據(jù)儲存得更加有保障。本篇文章詳細(xì)介紹了如何通過拷貝數(shù)據(jù)庫的方式來實現(xiàn)數(shù)據(jù)備份的目的,相信讀者通過學(xué)習(xí)之后,已經(jīng)掌握了正確的備份方式,能夠更加有效地保護(hù)數(shù)據(jù)的安全。
相關(guān)問題拓展閱讀:
- 現(xiàn)在我在學(xué)習(xí)MySQL,問問怎么復(fù)制粘貼數(shù)據(jù)庫
現(xiàn)在我在學(xué)習(xí)MySQL,問問怎么復(fù)制粘貼數(shù)據(jù)庫
這宴搭老得看你的數(shù)據(jù)表是什么存儲引擎,
新建的數(shù)據(jù)表默認(rèn)是InnoDB
數(shù)據(jù)表的存儲引擎是可以更改的
隨便進(jìn)入一張表,選擇操作,里面有存儲引擎可以修改,你想復(fù)制表就可以將存儲引擎修改成
myisam,
然后找到數(shù)據(jù)庫的data目錄復(fù)制好后,存儲引擎再改枝閉成你需要的類型
phpmyadmin新建表時存儲引擎
phpmyadmin修改存儲引晌升擎
每當(dāng)我們討論一項(新的)領(lǐng)域技術(shù)的時候,更好的方式通常是首先拋出一些問題,這些問題大致分為三類:
誒?這項技術(shù)又是什么玩意(What)?
這項技術(shù)為什么會存在?我們已經(jīng)有那么多解決方案(Method)了,我們?yōu)槭裁匆盟╓hy)?
如果這項技術(shù)那么好且我們正好有場景可以用到這項技術(shù),且能使我們的系統(tǒng)得到很樂觀的優(yōu)化,那么我們怎么用呢(How)?
大概已經(jīng)有同學(xué)覺得這些問題很熟悉了,是的,這就是黃金全法則提出的三個問題,對于每種新鮮事物我們首先基于這三個問題去了解,更有利于弄清楚事情的本質(zhì),端正態(tài)度去了解,而不是因為新,因為大家都說好,才要去了解……。說了那么多前奏,我們可以開始了,今天我們就帶著黃金圈法則提出的三個問題去看看MySQL數(shù)據(jù)庫復(fù)制這項領(lǐng)域技術(shù),然后再結(jié)合實際應(yīng)用擴(kuò)展一些問題,本文也僅僅是結(jié)合自己了解的皮毛以拋磚引玉的態(tài)度和大家一起分享。
WHAT?
MySQL復(fù)制使得一臺MySQL數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)被拷貝到其他一臺或者多臺數(shù)據(jù)庫服務(wù)器,前者通常被叫做Master,后者通常被叫做Slave。
MySQL復(fù)制示意圖
復(fù)制的結(jié)果是集群(Cluster)中的所有數(shù)據(jù)庫服務(wù)器得到的數(shù)據(jù)理論上都是一樣的,都是同一份數(shù)據(jù),只是有多個copy。MySQL默認(rèn)內(nèi)建的復(fù)制策略是異步的,基于不同的配置,Slave不一定要一直和Master保持連接不斷的復(fù)制或等待復(fù)制,我們指定復(fù)制所有的數(shù)據(jù)庫,一部分?jǐn)?shù)據(jù)庫,甚至是某個數(shù)據(jù)庫的某部分的表。
MySQL復(fù)制支持多種不同的復(fù)制策略,包括同步、半同步、異步和延遲策略等。
同步策略:Master要等待所有Slave應(yīng)答之后才會提交(MySql對DB操作的提交通常是先對操作事件進(jìn)行二進(jìn)制日志文件寫入然后再進(jìn)行提交)。
半同步策略:Master等待至少一個Slave應(yīng)答就可以提交。
異步策略:Master不需要等待Slave應(yīng)答就可以提交。
延遲策略:Slave要至少落后Master指定的時間。
MySQL復(fù)制同時支持多種不同的復(fù)制模式:
基于語句的復(fù)制,Statement Based Replication(SBR)。
基于行的復(fù)制Row Based Replication(RBR)。
混合復(fù)制(Mixed)。
WHY?
這個問題其實也就是MySQL復(fù)制有什么好處,我們可以將復(fù)制的好處歸結(jié)于下面幾類:
性能方面:MySQL復(fù)制是一種Scale-out方案,也即“水平擴(kuò)展”,將原來的單點負(fù)載擴(kuò)散到多臺Slave機(jī)器中去,從而提高總體的服務(wù)性能。在這種方式下,所有的寫操作,當(dāng)然包括UPDATE操作,都要發(fā)生在Master服務(wù)器上。讀操作發(fā)生在一臺或者帆橋廳多臺Slave機(jī)器上。這種模型可以在一定程度上提高總體的服務(wù)性能,Master服務(wù)器專注于寫和更新消悔操作,Slave服務(wù)器專注于讀操作,我們同時可以通過增加Slave服務(wù)器的數(shù)量來提高讀服務(wù)的性能。
防腐化:由于數(shù)據(jù)被復(fù)制到了Slave,Slave可以暫停復(fù)制進(jìn)程,進(jìn)行數(shù)據(jù)備份,因此可以防止數(shù)據(jù)腐化。
故障恢復(fù):同時多臺Slave如果有一臺Slave掛掉之后我們還可以從其他Slave讀取,如果配置了主從切換的話,當(dāng)Master掛掉之后我們還可以選擇一臺Slave作為Master繼續(xù)提供寫服務(wù),這大大增加了應(yīng)用的可靠性態(tài)隱。
數(shù)據(jù)分析:實時數(shù)據(jù)可以存儲在Master,而數(shù)據(jù)分析可以從Slave讀取,這樣不會影響Master的性能。
HOW?
這里我們只介紹一下MySQL的復(fù)制是如何工作的,至于配置,網(wǎng)上也有很多相關(guān)的介紹,讀者具體應(yīng)用的時候可以再去查閱。我們拿最常用的基于二進(jìn)制文件的復(fù)制來看看。
MySQL復(fù)制工作示意圖
請點擊輸入圖片描述
請點擊輸入圖片描述
MySQL的復(fù)制過程大概如下:
首先,主庫在每次準(zhǔn)備提交事務(wù)完成數(shù)據(jù)更新操作之前都會將數(shù)據(jù)更改操作記錄到二進(jìn)制日志中,這些日志是以二進(jìn)制的方式記錄數(shù)據(jù)更改的事件。值得一提的是二進(jìn)制日志中記錄的順序?qū)嶋H上是事務(wù)的提交順序,而非SQL執(zhí)行語句的順序。在記錄二進(jìn)制日志之后,主庫會告訴存儲引擎事務(wù)可以提交了。
然后,備庫會啟動一個IO線程,之所以叫做IO線程是因為這個線程專門做IO相關(guān)的工作,包括和主庫建立連接,然后在主庫上啟動一個特殊的二進(jìn)制轉(zhuǎn)儲線程,這個轉(zhuǎn)儲線程會不斷的讀取二進(jìn)制日志中的事件,發(fā)送給備庫的IO線程,備庫的IO線程會將事件記錄到中繼日志中。
備庫會有一個叫做SQL的線程被開啟,這個線程做的事情是讀取中繼日志中的DB操作事件在備庫執(zhí)行,從而實現(xiàn)數(shù)據(jù)更新。
總的來說,在發(fā)生復(fù)制的主庫服務(wù)器和備庫服務(wù)器中,一共有三個線程在工作。
上面我們已經(jīng)大概了解的什么是復(fù)制?為什么要復(fù)制?如何復(fù)制?這三個問題了,接下來我們基于上面的介紹,提出一些實際應(yīng)用可能會發(fā)生的問題來思考如何解決。博主自問自答的方式-。-
問答環(huán)節(jié)
問題一:通過復(fù)制模型雖然讀能力可以通過擴(kuò)展slave機(jī)器來達(dá)到提高,而寫能力卻不能,如果寫達(dá)到瓶頸我們應(yīng)該怎么做呢?
答:我們首先會得出結(jié)論,這種復(fù)制模型對于寫少讀多型應(yīng)用是非常有優(yōu)勢的,其次,當(dāng)遇到這種問題的時候我們可以對數(shù)據(jù)庫進(jìn)行分庫操作,所謂分庫,就是將業(yè)務(wù)相關(guān)性比較大的表放在同一個數(shù)據(jù)庫中,例如之前數(shù)據(jù)庫有A,B,C,D四張表,A表和B表關(guān)系比較大,而C表和D表關(guān)系比較大,這樣我們把C表和D表分離出去成為一個單獨的數(shù)據(jù)庫,通過這種方式,我們可以將原有的單點寫變成雙點寫或多點些,從而降低原有主庫的寫負(fù)載。
問題二:因為復(fù)制是有延遲的,肯定會發(fā)生主庫寫了,但是從庫還沒有讀到的情況,遇到這種問題怎么辦?
答:MySQL支持不同的復(fù)制策略,基于不同的復(fù)制策略達(dá)到的效果也是不一樣的,如果是異步復(fù)制,MySQL不能保證從庫立馬能夠讀到主庫實時寫入的數(shù)據(jù),這個時候我們要權(quán)衡選擇不同復(fù)制策略的利弊來進(jìn)行取舍。所謂利弊,就是我們是否對從庫的讀有那么高的實時性要求,如果真的有,我們可以考慮使用同步復(fù)制策略,但是這種策略相比于異步復(fù)制策略會大大降低主庫的響應(yīng)時間和性能。我們是否可以在應(yīng)用的設(shè)計層面去避開這個問題?
問題三:復(fù)制的不同模式有什么優(yōu)缺點?我們?nèi)绾芜x擇?
答:基于語句的復(fù)制實際上是把主庫上執(zhí)行的SQL在從庫上重新執(zhí)行一遍,這么做的好處是實現(xiàn)起來簡單,當(dāng)前也有缺點,比如我們SQL里面使用了NOW(),當(dāng)同一條SQL在從庫中執(zhí)行的時候顯然和在主庫中執(zhí)行的結(jié)果是不一樣的,注入此類問題可以類推。其次問題就是這種復(fù)制必須是串行的,為了保證串行執(zhí)行,就需要更多的鎖。
基于行的復(fù)制的時候二進(jìn)制日志中記錄的實際上是數(shù)據(jù)本身,這樣從庫可以得到正確的數(shù)據(jù),這種方式缺點很明顯,數(shù)據(jù)必須要存儲在二進(jìn)制日志文件中,這無疑增加的二進(jìn)制日志文件的大小,同時增加的IO線程的負(fù)載和網(wǎng)絡(luò)帶寬消耗。而相比于基于語句的復(fù)制還有一個優(yōu)點就是基于行的復(fù)制無需重放查詢,省去了很多性能消耗。
無論哪種復(fù)制模式都不是完美的,日志如何選擇,這個問題可以在理解他們的優(yōu)缺點之后進(jìn)行權(quán)衡。
問題四:復(fù)制的工作過程只有三個線程來完成,對于Master來說,寫是并發(fā)的,也就出現(xiàn)了一個IO線程要把所有并發(fā)的數(shù)據(jù)變更事件記錄,這個IO線程會不會累死?當(dāng)一個Master對應(yīng)多個Slave的時候,其實在Master中會喚起多個IO線程,這無疑會增加Master的資源開銷,如果出現(xiàn)事件堆積,也就是事件太多,來不及及時發(fā)送出去怎么辦?另外就是Slave那邊的IO線程和SQL線程也會有對應(yīng)主庫并發(fā)數(shù)據(jù)變更事件,而Slave方單個線程處理的問題,這個時候Slave線程會不會累死?
答:上面的問題確實會發(fā)生,上面之一個問題和第二個問題其實是寫負(fù)載的問題,當(dāng)事件堆積太多,從庫時延就會變大,Slave單SQL線程問題據(jù)說有參數(shù)可以開啟并行操作,這個大家可以確認(rèn)一下。
問題五:針對復(fù)制工作過程可能會出現(xiàn)的問題,主庫寫完二進(jìn)制日志文件同時都會保存二進(jìn)制日志的偏移量,但是當(dāng)斷電的時候,二進(jìn)制日志文件沒有刷新到磁盤,主庫重新啟動之后,從庫嘗試讀該偏移量的二進(jìn)制日志,會出現(xiàn)讀不到的情況,這個問題應(yīng)該怎么解決?
答:首先如果開啟了sync_binlog選項,對于innodb同時設(shè)置innodb_flush_log_at_trx_commot=1,則可以保證二進(jìn)制日志文件會被寫入磁盤,但MyISAM引擎可能會導(dǎo)致數(shù)據(jù)損壞。如果沒有開啟這個選項,則可以通過制定從庫的二進(jìn)制偏移量為下一個二進(jìn)制日志文件的開頭,但是不能解決事件丟失問題。
問題六:從庫在非計劃的關(guān)閉或重啟時,回去讀master.info文件去找上次停止復(fù)制的位置,這同樣會有一個問題,如果master.info不正確,就會導(dǎo)致復(fù)制數(shù)據(jù)不一致的情況,遇到這個問題怎么辦?
答:這個問題可以通過兩種方式解決,一是控制master.info在從庫非計劃關(guān)閉或重啟的時候讓master.info能夠同步到磁盤,這樣下次啟動的時候就不會讀取錯誤的信息,這有助于減少錯誤的發(fā)生概率。另外想要找到正確的復(fù)制位置是困難的,我們也可以選擇忽略錯誤。
請點擊輸入圖片描述
請點擊輸入圖片描述
關(guān)于怎么拷貝數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計和制作領(lǐng)域具有豐富的經(jīng)驗。
文章題目:拷貝數(shù)據(jù)庫步驟詳解,讓你輕松備份數(shù)據(jù)!(怎么拷貝數(shù)據(jù)庫)
標(biāo)題路徑:http://www.dlmjj.cn/article/dpssohd.html


咨詢
建站咨詢
