SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些

這篇文章主要講解了“SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些”吧!

創(chuàng)新互聯(lián)建站專注于汝州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,購(gòu)物商城網(wǎng)站建設(shè)。汝州網(wǎng)站建設(shè)公司,為汝州等地區(qū)提供建站服務(wù)。全流程定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

首先,微軟SQL數(shù)據(jù)庫(kù)中的鏡像數(shù)據(jù)庫(kù)類似于Oracle數(shù)據(jù)庫(kù)中的備用數(shù)據(jù)庫(kù)。我說(shuō)的只是類似,確切的說(shuō),我們需要考慮不同數(shù)據(jù)庫(kù)在自己體系中的差異。MSSQL作為一個(gè)實(shí)例來(lái)操作,一個(gè)實(shí)例包含幾個(gè)數(shù)據(jù)庫(kù),你首先要登錄一個(gè)實(shí)例,然后選擇哪個(gè)數(shù)據(jù)庫(kù)作用于該實(shí)例。而在Oracle數(shù)據(jù)庫(kù)中,簡(jiǎn)單模式(忽略RAC)就只有一個(gè)數(shù)據(jù)庫(kù)與一個(gè)實(shí)例相聯(lián)系。因此,可以這么說(shuō),在Oracle數(shù)據(jù)庫(kù)中,備份數(shù)據(jù)庫(kù)(standby database)就完全是主數(shù)據(jù)庫(kù)的快照。而在MSSQL中,鏡像數(shù)據(jù)庫(kù)僅僅是選擇的那個(gè)數(shù)據(jù)庫(kù)的備份,但沒(méi)有包括代理,登錄,任務(wù)(這些或者更多的數(shù)據(jù)庫(kù)項(xiàng)目需要單獨(dú)在數(shù)據(jù)庫(kù)鏡像上創(chuàng)建或者復(fù)制)這些外部數(shù)據(jù)項(xiàng)。

服務(wù)器數(shù)量上,Oracle的主數(shù)據(jù)庫(kù)和備用數(shù)據(jù)庫(kù)配置最小需要2臺(tái)。在MSSQL中,最小數(shù)據(jù)是2個(gè)或3個(gè),根據(jù)你所選擇的高可用性、高安全性、高性能方式所決定。

高可用性方式:這個(gè)操作模式選項(xiàng)允許你在兩臺(tái)服務(wù)器上同步事務(wù)寫(xiě)入,并支持自動(dòng)錯(cuò)誤恢復(fù)。要使用這個(gè)選項(xiàng),你必須還要使用一個(gè)證人服務(wù)器。

高保護(hù)方式:這個(gè)選項(xiàng)可以讓你在兩臺(tái)服務(wù)器上同步事物寫(xiě)入,但是錯(cuò)誤恢復(fù)是手工的。因?yàn)樽詣?dòng)的錯(cuò)誤恢復(fù)不是這個(gè)選項(xiàng)的一部分,所以也不會(huì)用到證人服務(wù)器。

高性能方式:這個(gè)選項(xiàng)不關(guān)心兩臺(tái)服務(wù)器上的寫(xiě)入是否是同步的,因此在性能上有所提高。當(dāng)使用這個(gè)選項(xiàng)的時(shí)候,你只能假設(shè)鏡像服務(wù)器上的所有事情都是成功完成。這個(gè)選項(xiàng)只允許手工的錯(cuò)誤恢復(fù),因此不會(huì)用到證人服務(wù)器。

為了保證故障自動(dòng)恢復(fù),就需要有第三臺(tái)服務(wù)器,可以稱之為目擊者(另外兩個(gè)就是主數(shù)據(jù)庫(kù)和鏡像數(shù)據(jù)庫(kù)),你可以將這個(gè)目擊者當(dāng)作群集中的一個(gè)成員。它實(shí)現(xiàn)了2比1投票的能力,當(dāng)我的一個(gè)組件不可達(dá),并因此需要進(jìn)行錯(cuò)誤恢復(fù)的時(shí)候。證人服務(wù)器只有在你想實(shí)現(xiàn)自動(dòng)錯(cuò)誤恢復(fù)的時(shí)候才需要用到。

在Oracle數(shù)據(jù)的一個(gè)事務(wù)中,日志緩沖器在廢數(shù)據(jù)寫(xiě)入數(shù)據(jù)文件(忽略write-ahead情況)前被刷新或者寫(xiě)入到redo日志中。這種刷新或者寫(xiě)入到redo日志的行為是有必要的,如像實(shí)例失敗(使用前滾和回滾恢復(fù)過(guò)程)這樣的事件發(fā)生時(shí)。MSSQL也承認(rèn)將日志緩沖器寫(xiě)入到磁盤(pán)的重要性。不過(guò)這里稱之為硬化(hardening)。首先將事務(wù)日志緩沖器的信息寫(xiě)入到磁盤(pán)或者硬化,接著將日志記錄塊發(fā)送到鏡像數(shù)據(jù)庫(kù)中。鏡像數(shù)據(jù)庫(kù)接收到該日志記錄塊后,將之存入到某個(gè)緩沖器中,隨后依次硬化該日志記錄塊。

當(dāng)數(shù)據(jù)發(fā)生變化時(shí),MSSQL數(shù)據(jù)庫(kù)如何保持主數(shù)據(jù)庫(kù)和鏡像數(shù)據(jù)庫(kù)的一致性呢?

Oracle用戶非常熟悉SCN,而MSSQL用戶通過(guò)使用mirroring_failover_lsn機(jī)制(粗略來(lái)講就是一個(gè)日志序列號(hào))。MSSQL與Oracle不同,MSSQL將事務(wù)分離(兩個(gè)事務(wù)在兩個(gè)機(jī)器上),而不是一個(gè)分布式事務(wù)(在自身提交前需要遠(yuǎn)程等待提交)。

另外一個(gè)相似點(diǎn),但稍微有些畸變的反射就是redo日志和事務(wù)日志。在Oracle中,完成的redo日志將被發(fā)送到遠(yuǎn)程的服務(wù)器中,將完成的redo日志應(yīng)用到備份數(shù)據(jù)中去。在MSSQL中,事務(wù)日志沒(méi)有被傳輸,但是就像我以上提到的,日志緩沖器數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)上。這就導(dǎo)致另外一個(gè)鏡像反射:備份和恢復(fù)模式。

在Oracle中,當(dāng)你處于歸檔模式或者非歸檔模式的時(shí)候,這些操作是內(nèi)定的。如果歸檔redo日志被傳輸或者提交到一個(gè)遠(yuǎn)程的服務(wù)器,那么主數(shù)據(jù)庫(kù)明顯就是在歸檔模式下,那些文件就是這么產(chǎn)生的。運(yùn)行在這種模式下,允許有少量的數(shù)據(jù)丟失,因?yàn)樵诎l(fā)生故障(無(wú)論什么樣的故障)前,恢復(fù)能夠在任意一個(gè)點(diǎn)上執(zhí)行。在MSSQL中是類似的,但是有三種狀態(tài)需要選擇。
《SQL Server聯(lián)機(jī)叢書(shū)》,像許多其它的在線資源一樣,講述了在使用MSSQL時(shí),3種恢復(fù)模式的不同點(diǎn)??焖俚谋容^有:MSSQL完整模式對(duì)應(yīng)于Oracle中的歸檔模式;簡(jiǎn)單模式對(duì)應(yīng)于非歸檔模式;bulk模式與使用直接路徑插入,添加提示,或者與nologging模式操作類似。

根據(jù)以上三種模式(這三種模式很容易轉(zhuǎn)換,不需要關(guān)機(jī)或者重啟)的描述以及日志緩沖器和歸檔redo日志的討論中,很容易斷定在MSSQL中進(jìn)行數(shù)據(jù)庫(kù)的鏡像需要將數(shù)據(jù)的回復(fù)模式設(shè)置成完全模式(full model)。簡(jiǎn)單模式(Simple model)或許也能行,但是這種模式下維持事務(wù)日志中的小部分?jǐn)?shù)據(jù),在備份中,如果在日志被刪節(jié)了,整個(gè)鏡像過(guò)程也就破環(huán)了,因?yàn)楫?dāng)你在將事務(wù)發(fā)送到鏡像數(shù)據(jù)庫(kù)中的時(shí)候,如果日志被刪節(jié)了,這個(gè)過(guò)程就不能完成。

說(shuō)到數(shù)據(jù)庫(kù)被破壞該怎么辦呢?

這正是鏡像(或者說(shuō)備份)的主要目的:當(dāng)主數(shù)據(jù)庫(kù)斷開(kāi)或者說(shuō)遇到故障時(shí)候我們希望系統(tǒng)能回到鏡像前或者備份前的狀況去。這如何才能實(shí)現(xiàn)呢?我們能自動(dòng)實(shí)現(xiàn)或者手動(dòng)實(shí)現(xiàn)。想實(shí)現(xiàn)這些,需要一些已經(jīng)完成的設(shè)置。在MSSQL中,自動(dòng)故障恢復(fù),回到原來(lái)狀態(tài)需要在HA模式,事務(wù)安全是full,數(shù)據(jù)傳輸是同步,有目擊服務(wù)器的情況下。這種模式下運(yùn)行還需要使用企業(yè)版的數(shù)據(jù)庫(kù)系統(tǒng)。高安全性和高性能在標(biāo)準(zhǔn)版的情況下也能實(shí)現(xiàn)。
MSSQL還有其它版本的選擇,但是這些并不如Oracle的反射“干凈”,這些版本包括:Developer、Workgroup 和 SQL Express。舉個(gè)例子,目擊服務(wù)器能夠是任何的版本,但是如果你想給鏡像服務(wù)器做一個(gè)快照,那么你就需要企業(yè)或者開(kāi)發(fā)版的了。

在設(shè)置伙伴(partner,通常有主數(shù)據(jù)庫(kù)和鏡像數(shù)據(jù)庫(kù)組成)過(guò)程中,他們的恢復(fù)狀態(tài)開(kāi)始起作用。通過(guò)使用相同的名字,鏡像在遠(yuǎn)程/鏡像服務(wù)器上建立(使用配置數(shù)據(jù)庫(kù)鏡像安全向?qū)亲詈?jiǎn)單的方法)起來(lái),并且鏡像數(shù)據(jù)庫(kù)被設(shè)置成NORECOVERY,通常它是恢復(fù)(recovering)狀態(tài)的。在MSSQL中,恢復(fù)數(shù)據(jù)庫(kù)是沒(méi)有的,因此沒(méi)有進(jìn)行上述的設(shè)置,是不能被其他用戶當(dāng)作只讀數(shù)據(jù)庫(kù)來(lái)使用的。

為了避免這個(gè)中缺陷,你可以給鏡像做一個(gè)快照,使得該“影像”對(duì)用戶可見(jiàn)。正如我上述所提到的那樣,這需要你的數(shù)據(jù)庫(kù)版本是企業(yè)(或者開(kāi)發(fā))版。這就意味著用戶需要有快照數(shù)據(jù)庫(kù)的知識(shí),知道如何進(jìn)入存儲(chǔ)它,如何告訴應(yīng)用程序使用哪個(gè)數(shù)據(jù)庫(kù)。慣例上來(lái)說(shuō),配置文件使用的.NET環(huán)境,你能建立一個(gè)主數(shù)據(jù)庫(kù)和一個(gè)故障回滾的輔數(shù)據(jù)庫(kù)。如果在Oracle中配置過(guò)備份數(shù)據(jù)庫(kù),你就會(huì)覺(jué)得這很類似。

感謝各位的閱讀,以上就是“SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

新聞名稱:SQL數(shù)據(jù)庫(kù)與oracle數(shù)據(jù)庫(kù)的鏡像區(qū)別有哪些
文章轉(zhuǎn)載:http://muchs.cn/article8/pdjeip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、企業(yè)建站網(wǎng)站內(nèi)鏈、品牌網(wǎng)站設(shè)計(jì)、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)