新聞中心
互聯(lián)網(wǎng)行業(yè)也許是一個(gè)充滿機(jī)遇和挑戰(zhàn)的領(lǐng)域,尤其對于中小企業(yè)而言,從零開始搭建自己的業(yè)務(wù)平臺(tái),面臨的難度可想而知??紤]到數(shù)據(jù)庫是服務(wù)平臺(tái)的核心組件,MySQL數(shù)據(jù)庫便成為了眾多企業(yè)的首選。然而,數(shù)據(jù)庫的穩(wěn)定性、安全性、高可用性等方面,都需要作出極大的努力。針對這些問題,mysql數(shù)據(jù)庫雙機(jī)熱備技術(shù)被廣泛認(rèn)可和采用,本文旨在探討實(shí)現(xiàn)MySQL數(shù)據(jù)庫雙機(jī)熱備的必要性和措施。

一、MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)的必要性
MySQL數(shù)據(jù)庫是一種基于客戶端/服務(wù)器架構(gòu)的開源關(guān)系型數(shù)據(jù)庫,采用SQL語言進(jìn)行操作,由于其開源免費(fèi)、開放性好等特點(diǎn),使得MySQL廣泛應(yīng)用于各種應(yīng)用場景中,包括企業(yè)信息化系統(tǒng)、網(wǎng)絡(luò)應(yīng)用、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)等。然而,MySQL數(shù)據(jù)庫的不穩(wěn)定性與安全性問題也開始逐漸凸顯,這將嚴(yán)重影響企業(yè)的業(yè)務(wù)運(yùn)營,甚至引發(fā)重大經(jīng)濟(jì)損失。
MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)所解決的問題即是單點(diǎn)故障和丟失數(shù)據(jù)的問題。軟件和硬件故障不可避免,一旦出現(xiàn)故障,數(shù)據(jù)庫將不能提供服務(wù),影響業(yè)務(wù)運(yùn)營。而丟失數(shù)據(jù)則更為嚴(yán)重,因?yàn)槊總€(gè)企業(yè)的數(shù)據(jù)都是無價(jià)之寶,丟失將會(huì)給企業(yè)造成重大損失和影響。因此,為了避免這些問題的發(fā)生,實(shí)現(xiàn)MySQL數(shù)據(jù)庫雙機(jī)熱備是企業(yè)保障數(shù)據(jù)安全的必要措施。
二、MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)的實(shí)現(xiàn)方法
MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)實(shí)現(xiàn)的方式通常有兩種:基于數(shù)據(jù)復(fù)制的主從熱備和基于高可用集群的雙機(jī)熱備。下面我們分別介紹這兩種實(shí)現(xiàn)方法的實(shí)現(xiàn)流程和具體措施。
(一)基于數(shù)據(jù)復(fù)制的主從熱備實(shí)現(xiàn)方法
主從熱備是相對較為簡單的實(shí)現(xiàn)方式,由一臺(tái)主數(shù)據(jù)庫和一臺(tái)或多臺(tái)從數(shù)據(jù)庫組成。主數(shù)據(jù)庫是業(yè)務(wù)系統(tǒng)的核心,所有數(shù)據(jù)更新操作在此進(jìn)行,從數(shù)據(jù)庫則是主數(shù)據(jù)庫的備份,所有的數(shù)據(jù)復(fù)制操作都是由主數(shù)據(jù)庫發(fā)送到從數(shù)據(jù)庫。如果主數(shù)據(jù)庫發(fā)生故障,從數(shù)據(jù)庫可以很快地接管主數(shù)據(jù)庫的服務(wù)和數(shù)據(jù),保障業(yè)務(wù)的穩(wěn)定性。具體實(shí)現(xiàn)的流程如下圖所示:

(Image source:CSDN)
具體措施如下:
1. 配置主數(shù)據(jù)庫的binlog
MySQL在主從復(fù)制中,binlog是一項(xiàng)必要的設(shè)置。要先在主數(shù)據(jù)庫中開啟binlog,然后將binlog主動(dòng)發(fā)送到從數(shù)據(jù)庫中。因?yàn)閎inlog是基于二進(jìn)制的日志文件,可以記錄數(shù)據(jù)庫的所有操作,包括數(shù)據(jù)的增、刪、改等操作,因此,可以將從數(shù)據(jù)庫的數(shù)據(jù)實(shí)時(shí)更新為主數(shù)據(jù)庫的數(shù)據(jù)。
2. 設(shè)置主數(shù)據(jù)庫和從數(shù)據(jù)庫的連接
在MySQL中,使用CHANGE MASTER TO命令來設(shè)置主數(shù)據(jù)庫和從數(shù)據(jù)庫的連接參數(shù)。為了保證數(shù)據(jù)更新的準(zhǔn)確性和同步性,需正確配置從服務(wù)器的一些參數(shù),比如中繼日志文件和位置。
3. 權(quán)限管理
在實(shí)現(xiàn)數(shù)據(jù)庫雙機(jī)熱備時(shí),必須要進(jìn)行權(quán)限管理,只有授權(quán)的用戶才能夠操作數(shù)據(jù)庫,避免數(shù)據(jù)庫因權(quán)限問題受到損害。
(二)基于高可用集群的雙機(jī)熱備實(shí)現(xiàn)方法
與基于數(shù)據(jù)復(fù)制的主從熱備不同,基于高可用集群的雙機(jī)熱備需要三臺(tái)或更多臺(tái)服務(wù)器。其中,兩臺(tái)用于熱備,一臺(tái)用于監(jiān)控,三臺(tái)服務(wù)器都有相同的數(shù)據(jù)。在這種情況下,如果一臺(tái)服務(wù)器出現(xiàn)故障,其他服務(wù)器可以接管該服務(wù)器的服務(wù)和數(shù)據(jù),從而保證了業(yè)務(wù)的穩(wěn)定性和可用性。具體實(shí)現(xiàn)的流程如下圖所示:

(Image source:CSDN)
具體措施如下:
1. 準(zhǔn)備相同的硬件設(shè)施和操作系統(tǒng)
在配置雙機(jī)熱備集群時(shí),必須要保證各臺(tái)服務(wù)器的硬件設(shè)施和操作系統(tǒng)版本是一致的,這保證了雙機(jī)熱備環(huán)境的一致性。
2. 對各臺(tái)服務(wù)器進(jìn)行初始化配置
在所有服務(wù)器上都要安裝必要的軟件,如集群管理軟件和數(shù)據(jù)庫管理軟件等。對于操作系統(tǒng)而言,也要進(jìn)行相應(yīng)的初始化配置。
3. 配置數(shù)據(jù)庫的啟動(dòng)腳本和集群軟件的啟動(dòng)腳本
要針對性地配置MySQL服務(wù)的啟動(dòng)腳本和集群軟件的啟動(dòng)腳本。
4. 配置網(wǎng)絡(luò)
初始的集群環(huán)境,網(wǎng)絡(luò)是必須的,必須正確使用網(wǎng)卡和其他硬件設(shè)置配置相應(yīng)的網(wǎng)絡(luò)環(huán)境。
5. 配置負(fù)載均衡器和心跳檢測器
為了實(shí)現(xiàn)高可用性,在MySQL雙機(jī)熱備技術(shù)中,需要使用負(fù)載均衡器和心跳檢測器。負(fù)載均衡器可以將流量分布到不同的數(shù)據(jù)庫上,心跳檢測器可以隨時(shí)檢測各服務(wù)器是否正常工作,如發(fā)現(xiàn)故障,就會(huì)對現(xiàn)有的數(shù)據(jù)庫分布進(jìn)行重新分配。
三、MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)的應(yīng)用場景
MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)可以應(yīng)用于各種應(yīng)用場景,如交易系統(tǒng)、電子商務(wù)平臺(tái)、移動(dòng)組件等。下面以廣告投放系統(tǒng)為例,闡述MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)的應(yīng)用場景。
廣告投放系統(tǒng)是一種數(shù)據(jù)驅(qū)動(dòng)的系統(tǒng),該系統(tǒng)需要實(shí)時(shí)采集和更新廣告數(shù)據(jù),支持高并發(fā)、高負(fù)載。廣告主和廣告位的查詢和更新必須是及時(shí)和準(zhǔn)確的,否則會(huì)影響廣告主的投放效果。為保證廣告數(shù)據(jù)的實(shí)時(shí)性和準(zhǔn)確性,需要使用MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù),這樣就可以實(shí)時(shí)同步數(shù)據(jù),如果主數(shù)據(jù)庫發(fā)生故障,從數(shù)據(jù)庫可以立即接管主數(shù)據(jù)庫的服務(wù)和數(shù)據(jù),保障業(yè)務(wù)的可用性和數(shù)據(jù)的安全性。
四、
MySQL數(shù)據(jù)庫雙機(jī)熱備技術(shù)是維護(hù)企業(yè)數(shù)據(jù)安全和穩(wěn)定運(yùn)營的必要措施,特別適用于對數(shù)據(jù)一致性、可用性有較高要求的企業(yè)。在實(shí)踐中,我們可以根據(jù)具體的業(yè)務(wù)場景來選用基于數(shù)據(jù)復(fù)制的主從熱備和基于高可用集群的雙機(jī)熱備,以滿足不同的業(yè)務(wù)需求和數(shù)據(jù)保護(hù)級(jí)別。
相關(guān)問題拓展閱讀:
- 什么是數(shù)據(jù)庫的讀寫分離
- mysql數(shù)據(jù)庫和oracle數(shù)據(jù)庫的區(qū)別
什么是數(shù)據(jù)庫的讀寫分離
amoeba 跟 mysql proxy在讀寫分離的使用上面的區(qū)別。
在mysql proxy 上面如果想要讀寫分離并且 讀集群、寫集群 機(jī)器比較多情況下,用mysql proxy 需要相當(dāng)大的工作量,目前mysql proxy沒有現(xiàn)成的 lua腳本。mysql proxy根本沒有配置文件,lua腳本就是它的全部,當(dāng)唯首然lua是相當(dāng)方便的。那么同樣這種東西需要編寫大量的腳本才能完成一個(gè)復(fù)雜的配置。amoeba目標(biāo)是走產(chǎn)品化這條路。只需要進(jìn)行相關(guān)的配置就可以滿足需求。一、Master/Slave 結(jié)構(gòu)讀寫分離:
Master: server1 (可讀寫)
slaves:server2、server3、server4(3個(gè)平等的數(shù)據(jù)庫。只讀/負(fù)載均衡)
amoeba提供讀寫分離pool相關(guān)配置。并且提供負(fù)載兄山團(tuán)均衡配置。
可配置server2、server3、server4形成一個(gè)虛擬的 virtualSlave,該配置提供負(fù)載均衡、failOver、故障恢復(fù)功能Xml代碼
com.meidusa.amoeba.server.MultipleServerPool
server2,server3,server4
如果不啟用數(shù)據(jù)切分,那么只需要配置QueryRouter屬性
wirtePool=server1
readPool=virtualSlave
com.meidusa.amoeba.mysql.parser.MysqlQueryRouter
1500
server1
server1
virtualSlave
true
數(shù)據(jù)庫復(fù)制被用來把事務(wù)性查詢導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫。對于大訪問量的網(wǎng)站,一般會(huì)采用讀寫分離,比如ebay的讀寫比率是260:1,也就是大型的電子商務(wù)網(wǎng)站的。網(wǎng)上看到說采用讀寫分離有如下工具:1,oracle的logical standby2, Quest公枝仿司的SharePlex3, DSG公司的RealSyncMySQLReplication可以將master的數(shù)據(jù)復(fù)制分布到多個(gè)slave上,然后可核宏以利用slave來分擔(dān)master的讀壓力。那么對于前臺(tái)應(yīng)用來說,就要考慮如何將讀的壓力分布到多個(gè)slave上。如果每個(gè)應(yīng)用都需要來實(shí)現(xiàn)讀寫分離的算法,一則成本太高,二來如果slave增加更多的機(jī)器,應(yīng)用就要隨之修改。明顯的,如果在應(yīng)用和數(shù)據(jù)庫間加一個(gè)專門用于實(shí)現(xiàn)讀寫分離的中間層,則整個(gè)系統(tǒng)的架構(gòu)擁有更好改搭冊的擴(kuò)展性。MySQLProxy就是這么一個(gè)中間層代理,簡單的說,MySQLProxy就是一個(gè)連接池,負(fù)責(zé)將前臺(tái)應(yīng)用的連接請求轉(zhuǎn)發(fā)給后臺(tái)的數(shù)據(jù)庫,并且通過使用lua腳本,可以實(shí)現(xiàn)復(fù)雜的連接控制和過濾,從而實(shí)現(xiàn)讀寫分離和負(fù)載平衡。對于應(yīng)用來說,MySQLProxy是完全透明的,應(yīng)用則只需要連接到MySQLProxy的監(jiān)聽端口即可。
讀寫分離為了確保數(shù)據(jù)庫產(chǎn)品的穩(wěn)定性,很多數(shù)據(jù)庫擁有雙機(jī)熱備功能芹仿。也就是,之一臺(tái)數(shù)據(jù)庫服務(wù)器,是對外提供增刪改業(yè)務(wù)的生產(chǎn)服務(wù)器;第二臺(tái)數(shù)據(jù)庫服務(wù)器,主要進(jìn)行讀的操作?!?/p>
原理:
讓主數(shù)據(jù)庫(master)處理事務(wù)性知姿增、改、刪操作(INSERT、UPDATE、DELETE),而從數(shù)據(jù)庫(slave)處理SELECT查詢操作。
實(shí)現(xiàn)方式:
通過RAID技術(shù),RAID是英文Redundant Array of Independent Disks的縮寫,翻譯成中文意思是“獨(dú)立磁盤冗余陣列”,有時(shí)也簡稱磁盤陣列(Disk Array)。
簡單的說,RAID是一種把多塊獨(dú)立的硬盤(物理硬盤)按不同的方式組合起來形成一個(gè)硬盤組(邏輯硬盤),從而提供搭首絕比單個(gè)硬盤更高的存儲(chǔ)性能和提供數(shù)據(jù)備份技術(shù)。
mysql數(shù)據(jù)庫和oracle數(shù)據(jù)庫的區(qū)別
一、開放性
1. SQL Server
只能在windows上運(yùn)行,沒有絲毫的開放性,操作系統(tǒng)的系統(tǒng)的穩(wěn)定對讓陵李數(shù)據(jù)庫是十分重要的。Windows9X系列產(chǎn)品是偏重于桌面應(yīng)用,NT server只適合中小型企業(yè)。而且windows平臺(tái)的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經(jīng)考驗(yàn),尤其是在處理大數(shù)據(jù)庫。
2. Oracle
能在所有主流平臺(tái)上運(yùn)行(包括 windows)。完全支持所有的工業(yè)標(biāo)準(zhǔn)。采用完全開放策略??梢允箍蛻暨x擇最適合的解決方案。對開發(fā)商全力支持。
二、可伸縮性,并行性
1. SQL server
并行實(shí)施和共存模型并不成熟,很難處理日益增多的用戶數(shù)和數(shù)據(jù)卷,伸縮性有限。
2. Oracle
并行服務(wù)器通過使一組結(jié)點(diǎn)共享同一簇中的工作來擴(kuò)展windownt的能力,提供高可用性和高伸縮性的簇的解決方案。如果windowsNT不能滿足需要,用戶可以把數(shù)據(jù)庫移到UNIX中。Oracle的并行服務(wù)器對各種UNIX平臺(tái)的集群機(jī)制都有著相當(dāng)高的集成度。
四、性能
1. SQL Server
多用戶汪胡時(shí)性能不佳
2. Oracle
性能更高, 保持開放平臺(tái)下的TPC-D和TPC-C的世界記錄。
五、客戶端支持及應(yīng)坦遲用模式
1. SQL Server
C/S結(jié)構(gòu),只支持windows客戶,可以用ADO、DAO、OLEDB、ODBC連接。
2. Oracle
多層次網(wǎng)絡(luò)計(jì)算,支持多種工業(yè)標(biāo)準(zhǔn),可以用ODBC、JDBC、OCI等網(wǎng)絡(luò)客戶連接。
六、操作簡便
1. SQL Server
操作簡單,但只有圖形界面。
2. Oracle
較復(fù)雜,同時(shí)提供GUI和命令行,在windowsNT和unix下操作相同。
七、使用風(fēng)險(xiǎn)
1. SQL server
完全重寫的代碼,經(jīng)歷了長期的測試,不斷延遲,許多功能需要時(shí)間來證明。并不十分兼容。
2. Oracle
長時(shí)間的開發(fā)經(jīng)驗(yàn),完全向下兼容。得到廣泛的應(yīng)用。完全沒有風(fēng)險(xiǎn)。
最后價(jià)格上 ORACLE貴過SQLSRVER
1、體積不同。
Oracle它體積比較龐大,一般是用來開發(fā)大型應(yīng)用(例如分布式)的。而MySQL的體積相對來說比較小,較之Oracle更容易安裝、維護(hù)以及管理,操作也簡單,最重要的是它是三個(gè)中唯一一個(gè)開源數(shù)據(jù)庫,但目前也屬于Oracle公司的產(chǎn)品了。
2、容量不同。
Oracle容量無限,根據(jù)配置決定;而MySQL使用MyISAM存儲(chǔ)引擎,更大表尺寸為65536TB。 MySQL數(shù)據(jù)庫的更大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由MySQL內(nèi)部限制決定。
3、平臺(tái)支持及速度的區(qū)別。
Oracle支持大多數(shù)平臺(tái);而MySQL支持各種平臺(tái),適合Linux。至于速度,Oracle在Linux下的性能,在少量數(shù)據(jù)時(shí)速度低于MySQL,在千萬級(jí)時(shí)速度快于MySQL。
4、數(shù)據(jù)庫崩潰造成的影響不同。
Oracle數(shù)據(jù)庫崩潰后恢復(fù)很麻煩,因?yàn)樗押芏鄸|西放在內(nèi)存里;數(shù)據(jù)庫連接要慢些,更好用連接池;而MySQL使用缺省的IP端口,但是有時(shí)候這些IP也會(huì)被一些黑客指枝闖入,使用MyISAM配置,不慎損壞數(shù)據(jù)庫,結(jié)果可能會(huì)導(dǎo)致所有的數(shù)據(jù)丟失。
5、性能的區(qū)別。
Oracle全面,完整,穩(wěn)定,但一般數(shù)據(jù)量大,對硬件要求較高 ;而MySQL使用CPU和內(nèi)存極少,性能很高,但擴(kuò)唯旁敏展性較差。
6、授權(quán)價(jià)格區(qū)別。
Oracle價(jià)格較貴,例如Oracle 10G/11G 標(biāo)準(zhǔn)版 ¥25600 ,Oracle 10G/11G 標(biāo)準(zhǔn)版 ¥157600。而MySQL采用雙重授權(quán),他們是GPL和MySQLAB制定的商業(yè)許可協(xié)議。如果你在一個(gè)啟橘遵循GPL的自由項(xiàng)目中使用 MySQL,那么你可以遵循GPL協(xié)議免費(fèi)使用MySQL。否則,你需要購買MySQLAB制定的那個(gè)商業(yè)許可協(xié)議。
區(qū)別如下:
一、并發(fā)性
并發(fā)性是oltp數(shù)據(jù)庫最重要的特性,但并發(fā)涉及到資源的獲取、共享與鎖定。
mysql:
mysql以表級(jí)鎖為主,對資源鎖定的粒度很大,如果一個(gè)session對一個(gè)表加鎖時(shí)間過長,會(huì)讓其他session無法更新此表中的數(shù)據(jù)。
雖然InnoDB引擎的表可以用行級(jí)鎖,但這個(gè)行級(jí)鎖的機(jī)制依賴于表的索引,如果表沒有索引,或者sql語句沒有使用索引,那么仍然使用表級(jí)鎖。
oracle:
oracle使用行級(jí)鎖,對資源鎖定的粒度要小很多,只是鎖定sql需要的資源,并且加鎖是在數(shù)據(jù)庫中的數(shù)據(jù)行上,不依賴與索引。所以oracle對并發(fā)性的支持要好很多。
二、一檔氏致性
oracle:
oracle支持serializable的隔離級(jí)別,可以實(shí)現(xiàn)更高級(jí)別的讀一致性。每個(gè)session提交后其他session才能看到提交的更改。oracle通過在undo表空間中構(gòu)造多版本數(shù)據(jù)塊來實(shí)現(xiàn)讀一致性,
每個(gè)session查詢時(shí),如果對應(yīng)的數(shù)據(jù)塊發(fā)生變化,oracle會(huì)在undo表空間中為這個(gè)session構(gòu)造它查詢時(shí)的舊的數(shù)據(jù)塊。
mysql:
mysql沒有類似oracle的構(gòu)造多版本數(shù)據(jù)塊的機(jī)制,只支持read commited的隔離級(jí)別。一個(gè)session讀取數(shù)據(jù)時(shí),其他session不能更改數(shù)據(jù),但可以在表最后插入數(shù)據(jù)。
session更新數(shù)據(jù)時(shí),要加上排它鎖,其他session無法訪問數(shù)據(jù)。
三、事務(wù)
oracle很早就完全支持事務(wù)。
mysql在innodb存儲(chǔ)引擎的行級(jí)鎖的情況下才支持事務(wù)。
四、數(shù)據(jù)持久性
oracle
保證提交的數(shù)據(jù)均可恢復(fù),因?yàn)閛racle把提交的sql操作線寫入了在線聯(lián)機(jī)日志文件中,保持到了磁盤上,
如果出現(xiàn)數(shù)據(jù)庫或主機(jī)異常重啟,重啟后oracle可以考聯(lián)機(jī)在線日志恢復(fù)客戶提交的數(shù)據(jù)。
mysql:
默認(rèn)提交sql語句,但如果更新過程中出現(xiàn)db或主機(jī)重啟的問題,也許會(huì)丟失數(shù)據(jù)。
五、提交方式
oracle默認(rèn)不自動(dòng)提交,需要用戶手動(dòng)提交。
mysql默認(rèn)是自動(dòng)提交。
六、邏輯備份
oracle邏輯備份時(shí)不鎖定數(shù)據(jù),且備份的數(shù)據(jù)是一致的。
mysql邏輯備份時(shí)要鎖定數(shù)據(jù),才能保證備份的數(shù)據(jù)是一致的,影響業(yè)務(wù)正常的dml使用。
七、熱備份
oracle有成熟的熱備工具rman,熱備時(shí),不影響用戶使用數(shù)據(jù)庫。即使備份的數(shù)據(jù)庫不一致,也可以在恢復(fù)時(shí)通過歸檔日志和聯(lián)機(jī)重做日志進(jìn)行一致的回復(fù)。
mysql:
myisam的引擎,用mysql自帶的mysqlhostcopy熱備時(shí),需要給表加讀鎖,影響dml操作。
innodb的引擎,它會(huì)備份innodb的表和索引,但是不會(huì)備份.frm文件。用ibbackup備份時(shí),會(huì)有一個(gè)日志文件記錄備份期間的數(shù)據(jù)變化,因此可以不用鎖表,不影響其他用戶使用數(shù)據(jù)庫。但此工具是收費(fèi)的。
innobackup是結(jié)合ibbackup使用的一個(gè)腳本,他會(huì)協(xié)助對.frm文件的備份。
八、sql語句的擴(kuò)展和靈活性
mysql對sql語句有很多非常實(shí)用而方便的擴(kuò)展,比如limit功能,insert可以一次插入多行數(shù)據(jù),select某些管理數(shù)據(jù)可以不加from。
oracle在這方面感覺更加穩(wěn)重傳統(tǒng)一些。
九、復(fù)制
oracle:既有推或拉式的傳統(tǒng)數(shù)據(jù)復(fù)制,也有dataguard的雙機(jī)或多機(jī)容災(zāi)機(jī)制,主庫出現(xiàn)問題是,可以自動(dòng)切換備庫到主庫,但配置管理較復(fù)雜。
mysql:復(fù)制服務(wù)器配置簡單,但主庫出問題時(shí),叢庫有可能丟失行哪散一定的數(shù)據(jù)。且需要手工切換叢庫到主庫。
十、性能診斷
oracle有各種成熟的性能診斷調(diào)優(yōu)工具,能實(shí)現(xiàn)很多自動(dòng)分析、診斷功能。比如awr、addm、sqltrace、tkproof等
mysql的診斷調(diào)優(yōu)方法較少,主要有慢查詢?nèi)罩尽?/p>
十一、權(quán)限與安全
mysql的用戶與主機(jī)有關(guān),感覺沒有什么意義,另外更容易被仿冒主機(jī)及ip有可乘之機(jī)。
oracle的權(quán)限與安全概念比較傳統(tǒng),中規(guī)中矩。
十二、分區(qū)表和分區(qū)索引
oracle的分區(qū)表和分區(qū)索引功能很成熟,可以提高用戶訪問db的體驗(yàn)。
mysql的分區(qū)表還不太成熟穩(wěn)定。
十三、管理工具
oracle有多種成熟的命令行、圖形界面、web管理工具,還有很多第三方的管理工具,管理極其方便高效。
mysql管理工具較少,在linux下的管理工具的安裝有時(shí)要安裝額外的包(phpmyadmin, etc),有一定復(fù)雜性緩大。
My sql是中小型應(yīng)用的數(shù)據(jù)庫,一般用于個(gè)人項(xiàng)枝茄目或中小型網(wǎng)站及論壇.
Oracle屬于大型數(shù)據(jù)庫,一般在具有相當(dāng)規(guī)模的企業(yè)應(yīng)用.
相比較而言,Oracle需要更高的服務(wù)器配置,更專業(yè)的開發(fā)及維護(hù)人員,占用更多的系統(tǒng)資源.
對應(yīng)的,Oracle也能提供更多的數(shù)據(jù)分析功能與更高的效率.
一、Oracle
優(yōu)點(diǎn):
開放性:Oracle 能所有主流平臺(tái)上運(yùn)行(包括 windows)完全支持所有工業(yè)標(biāo)準(zhǔn)采用完全開放策略使客戶選擇適合解決方案對開發(fā)商全力支持;
可伸縮性,并行性:Oracle 并行服務(wù)器通過使組結(jié)點(diǎn)共享同簇工作來擴(kuò)展windownt能力提供高用性和高伸縮性簇解決方案windowsNT能滿足需要用戶把數(shù)據(jù)庫移UNIXOracle并行服務(wù)器對各種UNIX平臺(tái)集群機(jī)制都有著相當(dāng)高集成度;
安全性:獲得更高認(rèn)證級(jí)別的ISO標(biāo)準(zhǔn)認(rèn)證。
性能:Oracle 性能高 保持開放平猛游察臺(tái)下TPC-D和TPC-C世界記錄;
客戶端支持及應(yīng)用模式:Oracle 多層次網(wǎng)絡(luò)計(jì)算支持多種工業(yè)標(biāo)準(zhǔn)用ODBC、JDBC、OCI等網(wǎng)絡(luò)客戶連接
使用風(fēng)險(xiǎn):Oracle 長時(shí)間開發(fā)經(jīng)驗(yàn)完全向下兼容得廣泛應(yīng)用地風(fēng)險(xiǎn)低
缺點(diǎn):
對硬件的要求很高;
價(jià)格比較昂貴;
管理維護(hù)麻煩一些;
操作比較復(fù)雜,需要技術(shù)含量較高;
二、MySql
優(yōu)點(diǎn):
體積小、速度快、總體擁有成本低,開源;
支持多種操作系統(tǒng);
是開源數(shù)據(jù)庫,提供的接口支持多種語言連接操作
MySql的核心程序采用完全的多線程編程。線程是輕量級(jí)的進(jìn)程,它可以靈活地為用戶提供服務(wù),而不過多的系統(tǒng)資源。用多線程和C語言實(shí)現(xiàn)的MySql能很容易充分利用CPU;
MySql有一個(gè)非常靈活而且安全的權(quán)限和口令系統(tǒng)。當(dāng)客戶與MySql服務(wù)器連接時(shí),他們之間所有的口令傳送被加密,而且MySql支持主機(jī)認(rèn)證;
支持ODBC for Windows, 支磨基持所有的ODBC 2.5函數(shù)和其他許多函數(shù), 可以用Access連接MySql服務(wù)器, 使得應(yīng)用被擴(kuò)展;
支持大型的數(shù)據(jù)庫, 可以方便地支持上千萬條記錄的數(shù)據(jù)庫。作為一個(gè)開放源代碼的數(shù)據(jù)庫,可以針對不同的應(yīng)用進(jìn)行相應(yīng)的修改。
擁有一個(gè)非??焖俣曳€(wěn)定的基于線程的內(nèi)存分配系統(tǒng),可以持續(xù)使用面不必?fù)?dān)心其穩(wěn)定性;
MySQL同時(shí)提供高度多樣性,能夠提供很多不同的使用者介面,包括命令行客戶端操作,網(wǎng)頁瀏覽器,以及各式各樣的程序語言介面,例如C+,Perl,Java,PHP,以及Python。你可以使用事先包裝好的客戶端,或者干脆自己寫一個(gè)合適的應(yīng)用程序。MySQL可用于Unix,Windows,以及OS/2等平臺(tái),因此它可以用在個(gè)人電腦或者是服務(wù)器上;
缺點(diǎn):
不支持熱備份;
MySQL更大的缺點(diǎn)是其安全系統(tǒng),主要是復(fù)雜而非標(biāo)準(zhǔn),另外只有到調(diào)用mysqladmin來重讀用戶權(quán)限時(shí)才發(fā)生改變;
沒有一種存儲(chǔ)過程(Stored Procedure)語言,這是對習(xí)慣于企業(yè)級(jí)數(shù)據(jù)庫的程序員的更大限制;
MySQL的價(jià)格隨平臺(tái)和安裝方式變化。Linux的MySQL如果由用戶自己或系統(tǒng)管理員而不是第三方安裝則是免費(fèi)的,第三方案則必須付許可費(fèi)。Unix或Linux 自行安裝 免費(fèi) 、Unix或Linux 第三方安裝 收費(fèi);
Oracle與MySQL的區(qū)別迅此裂:
1.在Oracle中用select * from all_users顯示所有的用戶,而在MYSQL中顯示所有數(shù)據(jù)庫的命令是show databases。對于我的理解,Oracle項(xiàng)目來說一個(gè)項(xiàng)目就應(yīng)該有一個(gè)用戶和其對應(yīng)的表空間,而MYSQL項(xiàng)目中也應(yīng)該有個(gè)用戶和一個(gè)庫。在ORACLE(db2也一樣)中表空間是文件系統(tǒng)中的物理容器的邏輯表示,視扒蠢圖、觸發(fā)器和存儲(chǔ)過程也可以保存在表畝閉空間中。而MYSQL并沒有使用表空間來進(jìn)行管理。
2.查詢當(dāng)前所有的表。ORACLE: select * from tab,MYSQL:show tables。
3.改變連接用戶(庫)。ORACLE:conn 用戶名/密碼@主機(jī)字符串,MYSQL:use 庫名。
4.顯示當(dāng)前連接用戶(庫)。ORACLE:show user,MYSQL:connect。
關(guān)于mysql數(shù)據(jù)庫雙機(jī)熱備的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站名稱:實(shí)現(xiàn)MySQL數(shù)據(jù)庫雙機(jī)熱備:保障數(shù)據(jù)安全的必要措施(mysql數(shù)據(jù)庫雙機(jī)熱備)
標(biāo)題來源:http://m.fisionsoft.com.cn/article/coheidi.html


咨詢
建站咨詢
