版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
xxx管理系統(tǒng)(項(xiàng)目編號(hào)XM001)系統(tǒng)和數(shù)據(jù)備份說明第第頁目錄TOC\o"1-3"\h\u28647第一章源碼管理方案 230891.1.源碼管理工具介紹 2272011.1.1.源碼管理工具發(fā)展歷程 258461.1.2.源碼管理工具發(fā)對(duì)比與選擇 4240871.2.源碼管理工具的使用 11312411.2.1.安裝部署 1117981.2.2.CI/CD實(shí)現(xiàn) 13234971.3.源碼管理工具備份機(jī)制 1420415第二章數(shù)據(jù)管理方案 14114682.1.數(shù)據(jù)管理意義 14316862.1.1.數(shù)據(jù)管理定義 14270432.1.2.數(shù)據(jù)管理目的 15102662.2.數(shù)據(jù)管理工具選擇 17192592.2.1.數(shù)據(jù)存儲(chǔ)系統(tǒng)軟件對(duì)比 1787582.2.2.數(shù)據(jù)存儲(chǔ)方案選擇 2421432.3.數(shù)據(jù)備份機(jī)制 24204912.3.1.備份目的 2462082.3.2.備份實(shí)現(xiàn)方式 2530951第三章安全管理方案 3098103.1.平臺(tái)安全考慮 30323503.2.安全保障措施 31107533.3.基礎(chǔ)安全保障 32198903.4.備份安全保障 33268833.5.部署安全保障 41218413.6.運(yùn)行安全保障 4185373.7.數(shù)據(jù)存儲(chǔ)安全 44264583.8.平臺(tái)應(yīng)用安全 45
源碼管理方案源碼管理工具介紹本項(xiàng)目采用Git+Gitlab實(shí)現(xiàn)源碼的管理,Git實(shí)現(xiàn)源碼的版本控制以及代碼上傳下載實(shí)現(xiàn),Gitlab進(jìn)行代碼管理的web服務(wù),并實(shí)現(xiàn)CI/CD代碼自動(dòng)化部署,使用Git作為代碼管理工具。源碼管理工具發(fā)展歷程版本控制工具介紹版本控制是一種記錄一個(gè)或若干個(gè)文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。版本控制發(fā)展本地版本控制系統(tǒng)許多人習(xí)慣用復(fù)制整個(gè)項(xiàng)目目錄的方式保存不同的版本,為了區(qū)別和方便查重會(huì)加上備份的時(shí)間。這樣雖然容易簡單,但是容易犯錯(cuò)。有時(shí)候會(huì)混淆所在的工作目錄,不小心就會(huì)寫錯(cuò)文件或者覆蓋意外的文件。為了解決上述的問題,人們就開發(fā)了本地版本控制系統(tǒng),大多數(shù)都是采用簡單的數(shù)據(jù)庫來記錄文件的歷史更新差異。其中最流行的是RCS。集中式版本控制系統(tǒng)本地版本控制系統(tǒng)不能解決不同系統(tǒng)上的開發(fā)者協(xié)同工作。于是集中式版本系統(tǒng)就誕生。這一類系統(tǒng)例如CVS/Subversion以及Perforce等,都有一個(gè)單一的集中管理服務(wù)器,保存所有的修訂版本。協(xié)同工作的人們通過客戶端連接這臺(tái)集中管理服務(wù)器,拉去最新的文件或者提交更新。在很長的一段時(shí)間著都是版本控制系統(tǒng)的標(biāo)準(zhǔn)做法。集中式版本控制系統(tǒng)對(duì)于本地版本控制系統(tǒng)來說帶來了很多好處。協(xié)同的每個(gè)人都可以看到項(xiàng)目中其他人的工作和提交。管理員也可以把控每一個(gè)開發(fā)的權(quán)限,所有人公用一個(gè)版本管理服務(wù)器。節(jié)約了在本地的資源浪費(fèi)和無法共享的問題。當(dāng)然集中式版本管理系統(tǒng)也有壞的方面。中央服務(wù)器會(huì)出現(xiàn)單點(diǎn)故障,如果故障一小時(shí),那么在這個(gè)小時(shí)內(nèi),誰都無法提交和更新,也無法協(xié)同工作。如果中心服務(wù)器磁盤損壞并且沒有備份,那么將丟失所有的數(shù)據(jù),包括項(xiàng)目的整個(gè)變更歷史。分布式版本控制系統(tǒng)基于本地、集中式版本管理系統(tǒng)的缺陷,分布式版本控制系統(tǒng)面世了。在這一類系統(tǒng)中,像git、mercurial、bazaari以及darcs等。客戶端并不只保存最新版本的文件快照,而是把代碼倉庫的完整鏡像下來。這樣一來,任何一處協(xié)同工作用的服務(wù)器故障,事后都可以使用任意一個(gè)鏡像出來的本地倉庫恢復(fù)。源碼管理工具發(fā)對(duì)比與選擇主流的版本控制產(chǎn)品對(duì)比*版本庫模型(Repositorymodel):描述了多個(gè)源碼版本庫副本間的關(guān)系,有客戶端/服務(wù)器和分布式兩種模式。在客戶端/服務(wù)器模式下,每一用戶通過客戶端訪問位于服務(wù)器的主版本庫,每一客戶機(jī)只需保存它所關(guān)注的文件副本,對(duì)當(dāng)前工作副本(workingcopy)的更改只有在提交到服務(wù)器之后,其它用戶才能看到對(duì)應(yīng)文件的修改。而在分布式模式下,這些源碼版本庫副本間是對(duì)等的實(shí)體,用戶的機(jī)器出了保存他們的工作副本外,還擁有本地版本庫的歷史信息。*并發(fā)模式(Concurrencymodel):描述了當(dāng)同時(shí)對(duì)同一工作副本/文件進(jìn)行更改或編輯時(shí),如何管理這種沖突以避免產(chǎn)生無意義的數(shù)據(jù),有排它鎖和合并模式。在排它鎖模式下,只有發(fā)出請(qǐng)求并獲得當(dāng)前文件排它鎖的用戶才能對(duì)對(duì)該文件進(jìn)行更改。而在合并模式下,用戶可以隨意編輯或更改文件,但可能隨時(shí)會(huì)被通知存在沖突(兩個(gè)或多個(gè)用戶同時(shí)編輯同一文件),于是版本控制工具或用戶需要合并更改以解決這種沖突。因此,幾乎所有的分布式版本控制軟件采用合并方式解決并發(fā)沖突。*歷史模式(Historymodel):描述了如何在版本庫中存貯文件的更改信息,有快照和改變集兩種模式。在快照模式下,版本庫會(huì)分別存儲(chǔ)更改發(fā)生前后的工作副本;而在改變集模式下,版本庫除了保存更改發(fā)生前的工作副本外,只保存更改發(fā)生后的改變信息。*變更范圍(Scopeofchange):描述了版本編號(hào)是針對(duì)單個(gè)文件還是整個(gè)目錄樹。*網(wǎng)絡(luò)協(xié)議(Networkprotocols):描述了多個(gè)版本庫間進(jìn)行同步時(shí)采用的網(wǎng)絡(luò)協(xié)議。*原子提交性(Atomiccommit):描述了在提交更改時(shí),能否保證所有更改要么全部提交或合并,要么不會(huì)發(fā)生任何改變。簡而言之,各有優(yōu)缺點(diǎn),git要配合hub,可以避免分布式損壞。svn有權(quán)限控制,避免全被clone走。git適合純代碼,svn適合綜合性文檔管理,結(jié)合起來就完美。顯然最大的不同在于git是分布式的。SVNSVN原理上只關(guān)心文件內(nèi)容的具體差異。每次記錄有哪些文件作了更新,以及都更新了哪些行的什么內(nèi)容。SVN特點(diǎn)概括每個(gè)版本庫有唯一的URL(官方地址),每個(gè)用戶都從這個(gè)地址獲取代碼和數(shù)據(jù);獲取代碼的更新,也只能連接到這個(gè)唯一的版本庫,同步以取得最新數(shù)據(jù);提交必須有網(wǎng)絡(luò)連接(非本地版本庫);提交需要授權(quán),如果沒有寫權(quán)限,提交會(huì)失??;提交并非每次都能夠成功。如果有其他人先于你提交,會(huì)提示“改動(dòng)基于過時(shí)的版本,先更新再提交”…諸如此類;沖突解決是一個(gè)提交速度的競賽:手快者,先提交,平安無事;手慢者,后提交,可能遇到麻煩的沖突解決。SVN優(yōu)缺點(diǎn)優(yōu)點(diǎn):管理方便,邏輯明確,符合一般人思維習(xí)慣。
易于管理,集中式服務(wù)器更能保證安全性。
代碼一致性非常高。
適合開發(fā)人數(shù)不多的項(xiàng)目開發(fā)。缺點(diǎn):服務(wù)器壓力太大,數(shù)據(jù)庫容量暴增。
如果不能連接到服務(wù)器上,基本上不可以工作,看上面第二步,如果服務(wù)器不能連接上,就不能提交,還原,對(duì)比等等。
不適合開源開發(fā)(開發(fā)人數(shù)非常非常多,但是Googleappengine就是用svn的)。但是一般集中式管理的有非常明確的權(quán)限管理機(jī)制(例如分支訪問限制),可以實(shí)現(xiàn)分層管理,從而很好的解決開發(fā)人數(shù)眾多的問題。GitGit記錄版本歷史只關(guān)心文件數(shù)據(jù)的整體是否發(fā)生變化。Git不保存文件內(nèi)容前后變化的差異數(shù)據(jù)。實(shí)際上,Git更像是把變化的文件作快照后,記錄在一個(gè)微型的文件系統(tǒng)中。每次提交更新時(shí),它會(huì)縱覽一遍所有文件的指紋信息并對(duì)文件作一快照,然后保存一個(gè)指向這次快照的索引。為提高性能,若文件沒有變化,Git不會(huì)再次保存,而只對(duì)上次保存的快照作一連接。在分布式版本控制系統(tǒng)中,客戶端并不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。這么一來,任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個(gè)鏡像出來的本地倉庫恢復(fù)。這類系統(tǒng)都可以指定和若干不同的遠(yuǎn)端代碼倉庫進(jìn)行交互。籍此,你就可以在同一個(gè)項(xiàng)目中,分別和不同工作小組的人相互協(xié)作。你可以根據(jù)需要設(shè)定不同的協(xié)作流程。另外,因?yàn)镚it在本地磁盤上就保存著所有有關(guān)當(dāng)前項(xiàng)目的歷史更新,并且Git中的絕大多數(shù)操作都只需要訪問本地文件和資源,不用連網(wǎng),所以處理起來速度飛快。用SVN的話,沒有網(wǎng)絡(luò)或者斷開VPN你就無法做任何事情。但用Git的話,就算你在飛機(jī)或者火車上,都可以非常愉快地頻繁提交更新,等到了有網(wǎng)絡(luò)的時(shí)候再上傳到遠(yuǎn)程的鏡像倉庫。換作其他版本控制系統(tǒng),這么做幾乎不可能,抑或是非常麻煩。Git起源Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux的核心,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼,那Linux的代碼是如何管理的呢?事實(shí)是,在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!你也許會(huì)想,為什么Linus不把Linux代碼放到版本控制系統(tǒng)里呢?不是有CVS、SVN這些免費(fèi)的版本控制系統(tǒng)嗎?因?yàn)長inus堅(jiān)定地反對(duì)CVS和SVN,這些集中式的版本控制系統(tǒng)不但速度慢,而且必須聯(lián)網(wǎng)才能使用。有一些商用的版本控制系統(tǒng),雖然比CVS、SVN好用,但那是付費(fèi)的,和Linux的開源精神不符。不過,到了2002年,Linux系統(tǒng)已經(jīng)發(fā)展了十年了,代碼庫之大讓Linus很難繼續(xù)通過手工方式管理了,社區(qū)的弟兄們也對(duì)這種方式表達(dá)了強(qiáng)烈不滿,于是Linus選擇了一個(gè)商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費(fèi)使用這個(gè)版本控制系統(tǒng)。安定團(tuán)結(jié)的大好局面在2005年就被打破了,原因是Linux社區(qū)牛人聚集,不免沾染了一些梁山好漢的江湖習(xí)氣。開發(fā)Samba的Andrew試圖破解BitKeeper的協(xié)議(這么干的其實(shí)也不只他一個(gè)),被BitMover公司發(fā)現(xiàn)了(監(jiān)控工作做得不錯(cuò)!),于是BitMover公司怒了,要收回Linux社區(qū)的免費(fèi)使用權(quán)。Linus可以向BitMover公司道個(gè)歉,保證以后嚴(yán)格管教弟兄們,嗯,這是不可能的。實(shí)際情況是這樣的:Linus花了兩周時(shí)間自己用C寫了一個(gè)分布式版本控制系統(tǒng),這就是Git!一個(gè)月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了!牛是怎么定義的呢?大家可以體會(huì)一下。Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項(xiàng)目免費(fèi)提供Git存儲(chǔ),無數(shù)開源項(xiàng)目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。歷史就是這么偶然,如果不是當(dāng)年BitMover公司威脅Linux社區(qū),可能現(xiàn)在我們就沒有免費(fèi)而超級(jí)好用的Git了。Git結(jié)構(gòu)組成工作區(qū):用來保存項(xiàng)目的元數(shù)據(jù)和對(duì)象數(shù)據(jù)庫的地方。這是Git中最重要的部分,從其它計(jì)算機(jī)克隆倉庫時(shí),拷貝的就是這里的數(shù)據(jù)。暫存區(qū):保存了下次將提交的文件列表信息,一般在Git倉庫目錄中。有時(shí)候也被稱作“索引”,不過一般說法還是叫暫存區(qū)域。版本庫:也叫本地版本庫,之所以說Git快,大部分提交都是對(duì)本地倉庫而言的,不依賴網(wǎng)絡(luò),最后一次會(huì)推送的到遠(yuǎn)程倉庫。遠(yuǎn)程倉庫:可以看做是github,它是一個(gè)遠(yuǎn)程倉庫,它提供web服務(wù)的供大家方便下載、查看、提交、存儲(chǔ)。文件的狀態(tài)Git文件管理狀態(tài)
新建文件狀態(tài)為untracked,add命令執(zhí)行后狀態(tài)變?yōu)閟taged,已存在的文件狀態(tài)為unmodified,修改文件內(nèi)容,文件狀態(tài)變?yōu)閙odified,commit提交,文件狀態(tài)編程unmodifed。Git特點(diǎn)概括Git中每個(gè)克隆(clone)的版本庫都是平等的。你可以從任何一個(gè)版本庫的克隆來創(chuàng)建屬于你自己的版本庫,同時(shí)你的版本庫也可以作為源提供給他人,只要你愿意。Git的每一次提取操作,實(shí)際上都是一次對(duì)代碼倉庫的完整備份。提交完全在本地完成,無須別人給你授權(quán),你的版本庫你作主,并且提交總是會(huì)成功。甚至基于舊版本的改動(dòng)也可以成功提交,提交會(huì)基于舊的版本創(chuàng)建一個(gè)新的分支。Git的提交不會(huì)被打斷,直到你的工作完全滿意了,PUSH給他人或者他人PULL你的版本庫,合并會(huì)發(fā)生在PULL和PUSH過程中,不能自動(dòng)解決的沖突會(huì)提示您手工完成。沖突解決不再像是SVN一樣的提交競賽,而是在需要的時(shí)候才進(jìn)行合并和沖突解決。Git也可以模擬集中式的工作模式Git版本庫統(tǒng)一放在服務(wù)器中可以為Git版本庫進(jìn)行授權(quán):誰能創(chuàng)建版本庫,誰能向版本庫PUSH,誰能夠讀取(克?。┌姹編靾F(tuán)隊(duì)的成員先將服務(wù)器的版本庫克隆到本地;并經(jīng)常的從服務(wù)器的版本庫拉(PULL)最新的更新團(tuán)隊(duì)的成員將自己的改動(dòng)推(PUSH)到服務(wù)器的版本庫中,當(dāng)其他人和版本庫同步(PULL)時(shí),會(huì)自動(dòng)獲取改變Git的集中式工作模式非常靈活你完全可以在脫離Git服務(wù)器所在網(wǎng)絡(luò)的情況下,如移動(dòng)辦公/出差時(shí),照常使用代碼庫你只需要在能夠接入Git服務(wù)器所在網(wǎng)絡(luò)時(shí),PULL和PUSH即可完成和服務(wù)器同步以及提交Git提供rebase命令,可以讓你的改動(dòng)看起來是基于最新的代碼實(shí)現(xiàn)的改動(dòng)Git有更多的工作模式可以選擇,遠(yuǎn)非Subversion可比綜上所述,不難發(fā)現(xiàn),Git已經(jīng)作為版本控制的主要工具,本項(xiàng)目也采用Git作為源碼管理。源碼管理工具的使用Git本身就是由于為了幫助開發(fā)linux開發(fā)內(nèi)核而使用。Linux系統(tǒng)本身自帶Git工具,而且Git操作命令基本遵從Linux語法,這里就不說了。主要描述下Gitlab工具的安裝使用已經(jīng)如何實(shí)現(xiàn)CI/CD自動(dòng)化部署。安裝部署docker安裝及配置Gitlab部署是基于docker實(shí)現(xiàn)的,首先安裝docker。獲取官方源wget-P/etc/yum.repos.d//linux/centos/docker-ce.repo安裝dockerceyuminstall-ydocker-ce啟動(dòng)、開機(jī)啟動(dòng)systemctlstartdockersystemctlenabledockerGitlab安裝及配置Gitlab鏡像拉取#gitlab-ce為穩(wěn)定版本,后面不填寫版本則默認(rèn)pull最新latest版本$dockerpullgitlab/gitlab-ce運(yùn)行Gitlab鏡像$dockerrun-d-p443:443-p80:80-p222:22--namegitlab--restartalways-v/home/gitlab/config:/etc/gitlab-v/home/gitlab/logs:/var/log/gitlab-v/home/gitlab/data:/var/opt/gitlabgitlab/gitlab-ce#-d:后臺(tái)運(yùn)行#-p:將容器內(nèi)部端口向外映射#--name:命名容器名稱#-v:將容器內(nèi)數(shù)據(jù)文件夾或者日志、配置等文件夾掛載到宿主機(jī)指定目錄配置 按上面的方式,Gitlab容器運(yùn)行沒問題,但在Gitlab上創(chuàng)建項(xiàng)目的時(shí)候,生成項(xiàng)目的URL訪問地址是按容器的hostname來生成的,也就是容器的id。作為gitlab服務(wù)器,我們需要一個(gè)固定的URL訪問地址,于是需要配置gitlab.rb(宿主機(jī)路徑:/home/gitlab/config/gitlab.rb#gitlab.rb文件內(nèi)容默認(rèn)全是注釋$vim/home/gitlab/config/gitlab.rb#配置http協(xié)議所使用的訪問地址,不加端口號(hào)默認(rèn)為80external_url'31'#配置ssh協(xié)議所使用的訪問地址和端口gitlab_rails['gitlab_ssh_host']='31'gitlab_rails['gitlab_shell_ssh_port']=222#此端口是run時(shí)22端口映射的222端口:wq#保存配置文件并退出#重啟gitlab容器$dockerrestartgitlab此時(shí)項(xiàng)目的倉庫地址就變了。如果ssh端口地址不是默認(rèn)的22,就會(huì)加上ssh://協(xié)議頭打開瀏覽器輸入ip地址(因?yàn)槲业膅itlab端口為80,所以瀏覽器url不用輸入端口號(hào),如果端口號(hào)不是80,則打開為:ip:端口號(hào)).Gitlab安裝部署基本完成,接下來就是CI/CD實(shí)現(xiàn).CI/CD實(shí)現(xiàn)GitLabCI/CD是一個(gè)內(nèi)置在GitLab中的工具,用于通過持續(xù)方法進(jìn)行軟件開發(fā):ContinuousIntegration(CI)
持續(xù)集成ContinuousDelivery(CD)
持續(xù)交付ContinuousDeployment(CD)
持續(xù)部署持續(xù)集成的工作原理是將小的代碼塊推送到Git倉庫中托管的應(yīng)用程序代碼庫中,并且每次推送時(shí),都要運(yùn)行一系列腳本來構(gòu)建、測試和驗(yàn)證代碼更改,然后再將其合并到主分支中。持續(xù)交付和部署相當(dāng)于更進(jìn)一步的CI,可以在每次推送到倉庫默認(rèn)分支的同時(shí)將應(yīng)用程序部署到生產(chǎn)環(huán)境。這些方法使得可以在開發(fā)周期的早期發(fā)現(xiàn)bugs和errors,從而確保部署到生產(chǎn)環(huán)境的所有代碼都符合為應(yīng)用程序建立的代碼標(biāo)準(zhǔn)。GitLabCI/CD由一個(gè)名為.gitlab-ci.yml的文件進(jìn)行配置,改文件位于倉庫的根目錄下。文件中指定的腳本由GitLabRunner執(zhí)行。本項(xiàng)目CI/CD實(shí)現(xiàn)基于jenkins實(shí)現(xiàn)的,開發(fā)人員一旦向gitlab倉庫提交成功代碼,gitlab就會(huì)自動(dòng)觸發(fā)jenkins構(gòu)建項(xiàng)目。當(dāng)然在構(gòu)建后還可以添加項(xiàng)目部署或者自動(dòng)化測試的腳本。原理是Gitlab中有有一個(gè)鉤子函數(shù),這個(gè)鉤子函數(shù)基于Git的一些操作去觸發(fā)的,例如,Git中提交代碼,Gitlab鉤子函數(shù)觸發(fā),執(zhí)行jenkins中腳本,實(shí)現(xiàn)自動(dòng)部署的功能,具體步驟就不贅述了。源碼管理工具備份機(jī)制備份GitlabGitlab備份方式很簡單,基于Gitlab本身的命令實(shí)現(xiàn)的。通過gitlab-rake命令備份gitlab。gitlab-rakegitlab:backup:create定時(shí)備份Gitlab如果要使Gitlab自動(dòng)進(jìn)行備份的話,我們可以通過crontab命令來實(shí)現(xiàn)自動(dòng)備份。以實(shí)現(xiàn)每天凌晨4點(diǎn)進(jìn)行一次自動(dòng)備份為例,系統(tǒng)的crontab配置如下:vim/etc/crontab04***root/opt/gitlab/bin/gitlab-rakegitlab:backup:createCRON=1然后重啟crontab服務(wù),如下:systemctlrestartcrond數(shù)據(jù)管理方案數(shù)據(jù)管理意義數(shù)據(jù)管理定義數(shù)據(jù)管理是利用計(jì)算機(jī)硬件和軟件技術(shù)對(duì)數(shù)據(jù)進(jìn)行有效的收集、存儲(chǔ)、處理和應(yīng)用的過程。其目的在于充分有效地發(fā)揮數(shù)據(jù)的作用。實(shí)現(xiàn)數(shù)據(jù)有效管理的關(guān)鍵是數(shù)據(jù)組織。隨著計(jì)算機(jī)技術(shù)的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)三個(gè)發(fā)展階段。在數(shù)據(jù)庫系統(tǒng)中所建立的數(shù)據(jù)結(jié)構(gòu),更充分地描述了數(shù)據(jù)間的內(nèi)在聯(lián)系,便于數(shù)據(jù)修改、更新與擴(kuò)充,同時(shí)保證了數(shù)據(jù)的獨(dú)立性、可靠、安全性與完整性,減少了數(shù)據(jù)冗余,故提高了數(shù)據(jù)共享程度及數(shù)據(jù)管理效率。數(shù)據(jù)管理目的管理階段人工管理階段20世紀(jì)50年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)算,這一階段數(shù)據(jù)管理的主要特征是:不能長期保存數(shù)據(jù)。在20世紀(jì)50年代中期之前,計(jì)算機(jī)一般在關(guān)于信息的研究機(jī)構(gòu)里才能擁有,當(dāng)時(shí)由于存儲(chǔ)設(shè)備(紙帶、磁帶)的容量空間有限,都是在做實(shí)驗(yàn)的時(shí)候暫存實(shí)驗(yàn)數(shù)據(jù),做完實(shí)驗(yàn)就把數(shù)據(jù)結(jié)果打在紙帶上或者磁帶上帶走,所以一般不需要將數(shù)據(jù)長期保存。數(shù)據(jù)并不是由專門的應(yīng)用軟件來管理,而是由使用數(shù)據(jù)的應(yīng)用程序自己來管理。作為程序員,在編寫軟件時(shí)既要設(shè)計(jì)程序邏輯結(jié)構(gòu),又要設(shè)計(jì)物理結(jié)構(gòu)以及數(shù)據(jù)的存取方式。數(shù)據(jù)不能共享。在人工管理階段,可以說數(shù)據(jù)是面向應(yīng)用程序的,由于每一個(gè)應(yīng)用程序都是獨(dú)立的,一組數(shù)據(jù)只能對(duì)應(yīng)一個(gè)程序,即使要使用的數(shù)據(jù)已經(jīng)在其他程序中存在,但是程序間的數(shù)據(jù)是不能共享的,因此程序與程序之間有大量的數(shù)據(jù)冗余。數(shù)據(jù)不具有獨(dú)立性。應(yīng)用程序中只要發(fā)生改變,數(shù)據(jù)的邏輯結(jié)構(gòu)或物理結(jié)構(gòu)就相應(yīng)的發(fā)生變化,因而程序員要修改程序就必須都要做出相應(yīng)的修改,給程序員的工作帶來了很多負(fù)擔(dān)。文件系統(tǒng)階段20世紀(jì)50年代后期到60年代中期,計(jì)算機(jī)開始應(yīng)用于數(shù)據(jù)管理方面。此時(shí),計(jì)算機(jī)的存儲(chǔ)設(shè)備也不再是磁帶和卡片了,硬件方面已經(jīng)有了磁盤、磁鼓等可以直接存取的存儲(chǔ)設(shè)備了。軟件方面,操作系統(tǒng)中已經(jīng)有了專門的數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng),文件系統(tǒng)一般由三部分組成:與文件管理有關(guān)的軟件、被管理的文件以及實(shí)施文件管理所需的數(shù)據(jù)結(jié)構(gòu)。文件系統(tǒng)階段存儲(chǔ)數(shù)據(jù)就是以文件的形式來存儲(chǔ),由操作系統(tǒng)統(tǒng)一管理。文件系統(tǒng)階段也是數(shù)據(jù)庫發(fā)展的初級(jí)階段,使用文件系統(tǒng)存儲(chǔ)、管理數(shù)據(jù)具有以下4個(gè)特點(diǎn):數(shù)據(jù)可以長期保存。有了大容量的磁盤作為存儲(chǔ)設(shè)備,計(jì)算機(jī)開始被用來處理大量的數(shù)據(jù)并存儲(chǔ)數(shù)據(jù)。有簡單的數(shù)據(jù)管理功能。文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)脫鉤,程序和數(shù)據(jù)分離,是數(shù)據(jù)和程序有了一定的獨(dú)立性,減少了程序員的工作量。數(shù)據(jù)共享能力差。由于每一個(gè)文件都是獨(dú)立的,當(dāng)需要用到相同的數(shù)據(jù)時(shí),必須建立各自的文件,數(shù)據(jù)還是無法共享,也會(huì)造成大量的數(shù)據(jù)冗余。數(shù)據(jù)不具有獨(dú)立性。在此階段數(shù)據(jù)仍然不具有獨(dú)立性,當(dāng)數(shù)據(jù)的結(jié)構(gòu)發(fā)生變化時(shí),也必須修改應(yīng)用程序,修改文件的結(jié)構(gòu)定義;而應(yīng)用程序的改變也將改變數(shù)據(jù)的結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng)階段20世紀(jì)60年代后期以來,計(jì)算機(jī)管理的對(duì)象規(guī)模越來越大,應(yīng)用范圍又越來越廣泛,數(shù)據(jù)量急劇增長,同時(shí)多種應(yīng)用、多種語言互相覆蓋地共享數(shù)據(jù)集合的要求越來越強(qiáng)烈,數(shù)據(jù)庫技術(shù)便應(yīng)運(yùn)而生,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng)--數(shù)據(jù)庫管理系統(tǒng)。用數(shù)據(jù)庫系統(tǒng)來管理數(shù)據(jù)比文件系統(tǒng)具有明顯的優(yōu)點(diǎn),從文件系統(tǒng)到數(shù)據(jù)庫系統(tǒng),標(biāo)志著數(shù)據(jù)庫管理技術(shù)的飛躍。目前數(shù)據(jù)管理目的就是面向應(yīng)用,使數(shù)據(jù)為大眾服務(wù)。前面講到數(shù)據(jù)管理經(jīng)歷了人工管理、文件管理、數(shù)據(jù)庫管理等三個(gè)階段,主要是利用計(jì)算機(jī)硬件和軟件技術(shù)對(duì)數(shù)據(jù)進(jìn)行有效的收集、存儲(chǔ)、處理和應(yīng)用的過程。隨著信息技術(shù)的進(jìn)步,管理信息系統(tǒng)將面向大規(guī)模的組織提供業(yè)務(wù)支持,不僅要覆蓋整個(gè)組織的各類業(yè)務(wù),而且要覆蓋整個(gè)組織(全球或者全國)。為此,作為管理信息系統(tǒng)的核心功能,數(shù)據(jù)管理將要進(jìn)入一個(gè)新的階段,即面向數(shù)據(jù)應(yīng)用的數(shù)據(jù)管理。數(shù)據(jù)管理工具選擇數(shù)據(jù)管理目的是服務(wù)應(yīng)用,需要更好服務(wù)應(yīng)用,就需要選擇一個(gè)數(shù)據(jù)管理軟件去存儲(chǔ)、管理、使用。目前主流的數(shù)據(jù)管理軟降包括oracle、mysql、db2、SQLservice等,本項(xiàng)目采用mysql+redis+mondgodb的數(shù)據(jù)管理方案。數(shù)據(jù)存儲(chǔ)系統(tǒng)軟件對(duì)比這里主要對(duì)比下mysql、oracle、redis優(yōu)缺點(diǎn)及使用場景Oracle優(yōu)點(diǎn):開放性:oracle
能所有主流平臺(tái)上運(yùn)行(包括windows)完全支持所有工業(yè)標(biāo)準(zhǔn)采用完全開放策略使客戶選擇適合解決方案對(duì)開發(fā)商全力支持;可伸縮性,并行性:Oracle并行服務(wù)器通過使組結(jié)點(diǎn)共享同簇工作來擴(kuò)展windownt能力提供高用性和高伸縮性簇解決方案windowsNT能滿足需要用戶把數(shù)據(jù)庫移UNIXOracle并行服務(wù)器對(duì)各種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):對(duì)硬件的要求很高;價(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)證;支持ODBCforWindows,支持所有的ODBC2.5函數(shù)和其他許多函數(shù),可以用Access連接MySql服務(wù)器,使得應(yīng)用被擴(kuò)展;支持大型的數(shù)據(jù)庫,可以方便地支持上千萬條記錄的數(shù)據(jù)庫。作為一個(gè)開放源代碼的數(shù)據(jù)庫,可以針對(duì)不同的應(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ǔ)過程(StoredProcedure)語言,這是對(duì)習(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);Redis優(yōu)點(diǎn):支持多種數(shù)據(jù)類型(同簡介中有寫的五種數(shù)據(jù)類型)redis支持set,zset,list,hash,string這五種數(shù)據(jù)類型,操作非常方便,如果在做好友系統(tǒng),查看自己的好友關(guān)系,如果采用其他的key-value系統(tǒng),則必須把對(duì)應(yīng)的好友拼接成字符串,然后在提取好友時(shí),再把value進(jìn)行解析,而redis則相對(duì)簡單,直接支持list的存儲(chǔ)(采用雙向鏈表或者壓縮鏈表的存儲(chǔ)方式)。持久化存儲(chǔ)作為一個(gè)內(nèi)存數(shù)據(jù)庫,最擔(dān)心的,就是萬一機(jī)器死機(jī)宕機(jī),數(shù)據(jù)就會(huì)消失掉。redis使用RDB和AOF做數(shù)據(jù)的持久化存儲(chǔ)。主從數(shù)據(jù)同時(shí),生成rdb文件,并利用緩沖區(qū)添加新的數(shù)據(jù)更新操作做對(duì)應(yīng)的同步。性能很好由于是全內(nèi)存操作,所以讀寫性能很好,可以達(dá)到10w/s的頻率。公司有項(xiàng)目使用redis,目前的訪問頻率是80w/s,通過適當(dāng)?shù)牟渴?,線上運(yùn)行一切ok的。缺點(diǎn):由于是內(nèi)存數(shù)據(jù)庫,所以單臺(tái)機(jī)器存儲(chǔ)的數(shù)據(jù)量跟機(jī)器本身的內(nèi)存大小有關(guān)。雖然redis本身有key過期策略,但是還是需要提前預(yù)估和節(jié)約內(nèi)存。如果內(nèi)存增長過快,需要定期刪除數(shù)據(jù)。定時(shí)刪除和定期刪除為主動(dòng)刪除,Redis會(huì)定期主動(dòng)淘汰一批已過去的key。惰性刪除為被動(dòng)刪除,用到的時(shí)候才會(huì)去檢驗(yàn)key是不是已過期,過期就刪除過期的key惰性刪除是redis服務(wù)器內(nèi)置策略(過期的key對(duì)aof文件沒有任何影響,刪除過期的key時(shí)系統(tǒng)會(huì)向aof文件追加一條del;如果key過期了但是沒有刪除,此時(shí)進(jìn)行持久化操作這個(gè)key不會(huì)進(jìn)入aof文件,因?yàn)闆]有發(fā)生修改指令)如果進(jìn)行完整重同步,由于需要生成rdb文件,并進(jìn)行傳輸,會(huì)占用主機(jī)的CPU,并會(huì)消耗現(xiàn)網(wǎng)的帶寬。不過redis2.8版本以后,已經(jīng)有部分重同步的功能,但是還是有可能有完整重同步的。比如,新上線的從庫。修改配置文件,進(jìn)行重啟,將硬盤中的數(shù)據(jù)加載進(jìn)內(nèi)存,時(shí)間比較久。在這個(gè)過程中,redis不能提供服務(wù)。Mongodb優(yōu)點(diǎn):弱一致性(最終一致),更能保證用戶的訪問速度舉例來說,在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫中,一個(gè)COUNT類型的操作會(huì)鎖定數(shù)據(jù)集,這樣可以保證得到“當(dāng)前”情況下的較精確值。這在某些情況下,例如通過ATM查看賬戶信息的時(shí)候很重要,但對(duì)于Wordnik來說,數(shù)據(jù)是不斷更新和增長的,這種“較精確”的保證幾乎沒有任何意義,反而會(huì)產(chǎn)生很大的延遲。他們需要的是一個(gè)“大約”的數(shù)字以及更快的處理速度。但某些情況下MongoDB會(huì)鎖住數(shù)據(jù)庫。如果此時(shí)正有數(shù)百個(gè)請(qǐng)求,則它們會(huì)堆積起來,造成許多問題。我們使用了下面的優(yōu)化方式來避免鎖定:每次更新前,我們會(huì)先查詢記錄。查詢操作會(huì)將對(duì)象放入內(nèi)存,于是更新則會(huì)盡可能的迅速。在主/從部署方案中,從節(jié)點(diǎn)可以使用“-pretouch”參數(shù)運(yùn)行,這也可以得到相同的效果。
使用多個(gè)mongod進(jìn)程。我們根據(jù)訪問模式將數(shù)據(jù)庫拆分成多個(gè)進(jìn)程。
文檔結(jié)構(gòu)的存儲(chǔ)方式,能夠更便捷的獲取數(shù)據(jù)。對(duì)于一個(gè)層級(jí)式的數(shù)據(jù)結(jié)構(gòu)來說,如果要將這樣的數(shù)據(jù)使用扁平式的,表狀的結(jié)構(gòu)來保存數(shù)據(jù),這無論是在查詢還是獲取數(shù)據(jù)時(shí)都十分困難。內(nèi)置GridFS,支持大容量的存儲(chǔ)
GridFS是一個(gè)出色的分布式文件系統(tǒng),可以支持海量的數(shù)據(jù)存儲(chǔ)。
內(nèi)置了GridFS了MongoDB,能夠滿足對(duì)大數(shù)據(jù)集的快速范圍查詢。內(nèi)置Sharding提供基于Range的AutoSharding機(jī)制:一個(gè)collection可按照記錄的范圍,分成若干個(gè)段,切分到不同的Shard上。Shards可以和復(fù)制結(jié)合,配合Replicasets能夠?qū)崿F(xiàn)Sharding+fail-over,不同的Shard之間可以負(fù)載均衡。查詢是對(duì)客戶端是透明的??蛻舳藞?zhí)行查詢,統(tǒng)計(jì),MapReduce等操作,這些會(huì)被MongoDB自動(dòng)路由到后端的數(shù)據(jù)節(jié)點(diǎn)。這讓我們關(guān)注于自己的業(yè)務(wù),適當(dāng)?shù)臅r(shí)候可以無痛的升級(jí)。MongoDB的Sharding設(shè)計(jì)能力較大可支持約20petabytes,足以支撐一般應(yīng)用。這可以保證MongoDB運(yùn)行在便宜的PC服務(wù)器集群上。PC集群擴(kuò)充起來非常方便并且成本很低,避免了“sharding”操作的復(fù)雜性和成本。第三方支持豐富。(這是與其他的NoSQL相比,MongoDB也具有的優(yōu)勢)現(xiàn)在網(wǎng)絡(luò)上的很多NoSQL開源數(shù)據(jù)庫完全屬于社區(qū)型的,沒有官方支持,給使用者帶來了很大的風(fēng)險(xiǎn)。而開源文檔數(shù)據(jù)庫MongoDB背后有商業(yè)公司10gen為其提供供商業(yè)培訓(xùn)和支持。而且MongoDB社區(qū)非?;钴S,很多開發(fā)框架都迅速提供了對(duì)MongDB的支持。不少知名大公司和網(wǎng)站也在生產(chǎn)環(huán)境中使用MongoDB,越來越多的創(chuàng)新型企業(yè)轉(zhuǎn)而使用MongoDB作為和Django,RoR來搭配的技術(shù)方案性能優(yōu)越在使用場合下,千萬級(jí)別的文檔對(duì)象,近10G的數(shù)據(jù),對(duì)有索引的ID的查詢不會(huì)比mysql慢,而對(duì)非索引字段的查詢,則是全面勝出。mysql實(shí)際無法勝任大數(shù)據(jù)量下任意字段的查詢,而mongodb的查詢性能實(shí)在讓我驚訝。寫入性能同樣很令人滿意,同樣寫入百萬級(jí)別的數(shù)據(jù),mongodb比我以前試用過的couchdb要快得多,基本10分鐘以下可以解決。補(bǔ)上一句,觀察過程中mongodb都遠(yuǎn)算不上是CPU殺手。缺點(diǎn):mongodb不支持事務(wù)操作
所以事務(wù)要求嚴(yán)格的系統(tǒng)(如果銀行系統(tǒng))肯定不能用它。(這點(diǎn)和優(yōu)點(diǎn)①是對(duì)應(yīng)的)mongodb占用空間過大關(guān)于其原因,在官方的FAQ中,提到有如下幾個(gè)方面:空間的預(yù)分配:為避免形成過多的硬盤碎片,mongodb每次空間不足時(shí)都會(huì)申請(qǐng)生成一大塊的硬盤空間,而且申請(qǐng)的量從64M、128M、256M那樣的指數(shù)遞增,直到2G為單個(gè)文件的較大體積。隨著數(shù)據(jù)量的增加,你可以在其數(shù)據(jù)目錄里看到這些整塊生成容量不斷遞增的文件。字段名所占用的空間:為了保持每個(gè)記錄內(nèi)的結(jié)構(gòu)信息用于查詢,mongodb需要把每個(gè)字段的key-value都以BSON的形式存儲(chǔ),如果value域相對(duì)于key域并不大,比如存放數(shù)值型的數(shù)據(jù),則數(shù)據(jù)的overhead是較大的。一種減少空間占用的方法是把字段名盡量取短一些,這樣占用空間就小了,但這就要求在易讀性與空間占用上作為權(quán)衡了。我曾建議作者把字段名作個(gè)index,每個(gè)字段名用一個(gè)字節(jié)表示,這樣就不用擔(dān)心字段名取多長了。但作者的擔(dān)憂也不無道理,這種索引方式需要每次查詢得到結(jié)果后把索引值跟原值作一個(gè)替換,再發(fā)送到客戶端,這個(gè)替換也是挺耗費(fèi)時(shí)間的。現(xiàn)在的實(shí)現(xiàn)算是拿空間來換取時(shí)間吧。刪除記錄不釋放空間:這很容易理解,為避免記錄刪除后的數(shù)據(jù)的大規(guī)模挪動(dòng),原記錄空間不刪除,只標(biāo)記“已刪除”即可,以后還可以重復(fù)利用??梢远ㄆ谶\(yùn)行db.repairDatabase()來整理記錄,但這個(gè)過程會(huì)比較緩慢MongoDB沒有如MySQL那樣成熟的維護(hù)工具,這對(duì)于開發(fā)和IT運(yùn)營都是個(gè)值得注意的地方。MongoDB適合存儲(chǔ)一些關(guān)系簡單、數(shù)據(jù)量又很大的數(shù)據(jù),比如我們的平臺(tái)上虛擬機(jī)的監(jiān)控信息,包括內(nèi)存、IO、CPU、網(wǎng)絡(luò)等數(shù)據(jù),每隔幾秒就采集一次數(shù)據(jù),每周、每月,量很大,而且舊的監(jiān)控?cái)?shù)據(jù)也不會(huì)保留太長時(shí)間,就使用的mongodb來存儲(chǔ)這些數(shù)據(jù);另外mongodb的集群部署相對(duì)比較簡單,易于擴(kuò)展;比如主從復(fù)制,在mongo.conf配置幾個(gè)參數(shù)就OK了;分片集群的配置也比較簡單。還支持使用命令行來進(jìn)行動(dòng)態(tài)地添加和刪除節(jié)點(diǎn);數(shù)據(jù)存儲(chǔ)方案選擇目前在本項(xiàng)目中,一般用戶數(shù)據(jù)存儲(chǔ)使用MySQL實(shí)現(xiàn),一些熱點(diǎn)數(shù)據(jù)、排序數(shù)據(jù)、不經(jīng)常修改的數(shù)據(jù)使用Redis作為存儲(chǔ)方案,而自定義表單數(shù)據(jù)則存儲(chǔ)在MongoDB中。數(shù)據(jù)備份機(jī)制備份目的數(shù)據(jù)備份的作用與意義隨著計(jì)算機(jī)的普及和信息技術(shù)的進(jìn)步,特別是計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展,信息安全的重要性日趨明顯,但是,作為為信息安全的一個(gè)重要內(nèi)容――數(shù)據(jù)備份的重要性卻往往被人們所忽視。只要發(fā)生數(shù)據(jù)傳輸、數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)交換,就有可能產(chǎn)生數(shù)據(jù)故障。這時(shí),如果沒有采取數(shù)據(jù)備份和數(shù)據(jù)恢復(fù)手段與措施,就會(huì)導(dǎo)致數(shù)據(jù)的丟失。有時(shí)造成的損失是無法彌補(bǔ)與估量的。數(shù)據(jù)故障的形式是多種多樣的。通常,數(shù)據(jù)故障可劃分為系統(tǒng)故障、事務(wù)故障和介質(zhì)故障三大類。從信息安全的角度出,實(shí)際上第三方或敵方的“信息攻擊”,也會(huì)產(chǎn)生不同種類的數(shù)據(jù)故障。例如:計(jì)算機(jī)病毒型、特洛伊木馬型、“黑客”入侵型、邏輯炸彈型等。這些故障將會(huì)造成的后果有:數(shù)據(jù)丟失、數(shù)據(jù)被修改、增加無用數(shù)據(jù)及系統(tǒng)癱瘓等。作為系統(tǒng)管理員,漏是要千方百計(jì)地維護(hù)系統(tǒng)和數(shù)據(jù)的完整性與準(zhǔn)確性。通常采取的措施有:安裝防火墻,防止“黑客”入侵;安裝防病毒軟件,采取存取控制措施;選用高可靠性的軟件產(chǎn)品;增強(qiáng)計(jì)算機(jī)網(wǎng)絡(luò)的安全性。但是,世界上沒有萬無一失的信息安全措施。信息世界“攻擊和反攻擊”也永無止境。對(duì)信息的攻擊和防護(hù)好似矛與盾的關(guān)系,螺旋式地向前發(fā)展。在信息的收集、處理、存儲(chǔ)、傳輸和分發(fā)中經(jīng)常會(huì)存在一些新的問題,其中最值得我們關(guān)注的就是系統(tǒng)失效、數(shù)據(jù)丟失或遭到破壞。威脅數(shù)據(jù)的安全,造成系統(tǒng)失效的主要原因有以下幾個(gè)方面:硬盤驅(qū)動(dòng)器損壞;人為錯(cuò)誤;黑客攻擊;病毒;自然災(zāi)害;電源浪涌;磁干擾;因此,數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)是保護(hù)數(shù)據(jù)的最后手段,也是防止主動(dòng)型信息攻擊的最后一道防線。備份實(shí)現(xiàn)方式MySQL數(shù)據(jù)備份與恢復(fù)使用mysqldump命令備份mysqldump作為mysql自帶的數(shù)據(jù)庫備份命令,mysqldump命令將數(shù)據(jù)庫中的數(shù)據(jù)備份成一個(gè)文本文件。表的結(jié)構(gòu)和表中的數(shù)據(jù)將存儲(chǔ)在生成的文本文件中。mysqldump命令的工作原理很簡單。它先查出需要備份的表的結(jié)構(gòu),再在文本文件中生成一個(gè)CREATE語句。然后,將表中的所有記錄轉(zhuǎn)換成一條INSERT語句。然后通過這些語句,就能夠創(chuàng)建表并插入數(shù)據(jù)。備份一個(gè)數(shù)據(jù)庫mysqldump基本語法:mysqldump-uusername-pdbnametable1table2...->BackupName.sql其中:dbname參數(shù)表示數(shù)據(jù)庫的名稱;table1和table2參數(shù)表示需要備份的表的名稱,為空則整個(gè)數(shù)據(jù)庫備份;BackupName.sql參數(shù)表設(shè)計(jì)備份文件的名稱,文件名前面可以加上一個(gè)絕對(duì)路徑通常將數(shù)據(jù)庫被分成一個(gè)后綴名為sql的文件;數(shù)據(jù)還原還原使用mysqldump命令備份的數(shù)據(jù)庫的語法如下:mysql-uroot-p[dbname]<backup.sqlRedis數(shù)據(jù)備份Redis所有數(shù)據(jù)都是保存在內(nèi)存中,Redis數(shù)據(jù)備份可以定期的通過異步方式保存到磁盤上,該方式稱為半持久化模式,如果每一次數(shù)據(jù)變化都寫入aof文件里面,則稱為全持久化模式。同時(shí)還可以基于Redis主從復(fù)制實(shí)現(xiàn)Redis備份與恢復(fù)。半持久化RDB模式半持久化RDB模式也是Redis備份默認(rèn)方式,是通過快照(snapshotting)完成的,當(dāng)符合在Redis.conf配置文件中設(shè)置的條件時(shí)Redis會(huì)自動(dòng)將內(nèi)存中的所有數(shù)據(jù)進(jìn)行快照并存儲(chǔ)在硬盤上,完成數(shù)據(jù)備份。Redis進(jìn)行RDB快照的條件由用戶在配置文件中自定義,由兩個(gè)參數(shù)構(gòu)成:時(shí)間和改動(dòng)的鍵的個(gè)數(shù)。當(dāng)在指定的時(shí)間內(nèi)被更改的鍵的個(gè)數(shù)大于指定的數(shù)值時(shí)就會(huì)進(jìn)行快照。在配置文件中已經(jīng)預(yù)置了3個(gè)條件:save9001#900秒內(nèi)有至少1個(gè)鍵被更改則進(jìn)行快照;save30010#300秒內(nèi)有至少10個(gè)鍵被更改則進(jìn)行快照;save6010000#60秒內(nèi)有至少10000個(gè)鍵被更改則進(jìn)行快照。默認(rèn)可以存在多個(gè)條件,條件之間是“或”的關(guān)系,只要滿足其中一個(gè)條件,就會(huì)進(jìn)行快照。如果想要禁用自動(dòng)快照,只需要將所有的save參數(shù)刪除即可。Redis默認(rèn)會(huì)將快照文件存儲(chǔ)在Redis數(shù)據(jù)目錄,默認(rèn)文件名為:dump.rdb文件,可以通過配置dir和dbfilename兩個(gè)參數(shù)分別指定快照文件的存儲(chǔ)路徑和文件名。也可以在Redis命令行執(zhí)行config
get
dir獲取Redis數(shù)據(jù)保存路徑。Redis實(shí)現(xiàn)快照的過程,Redis使用fork函數(shù)復(fù)制一份當(dāng)前進(jìn)程(父進(jìn)程)的副本(子進(jìn)程),父進(jìn)程繼續(xù)接收并處理客戶端發(fā)來的命令,而子進(jìn)程開始將內(nèi)存中的數(shù)據(jù)寫入硬盤中的臨時(shí)文件,當(dāng)子進(jìn)程寫入完所有數(shù)據(jù)后會(huì)用該臨時(shí)文件替換舊的RDB文件,至此一次快照操作完成。執(zhí)行fork的時(shí)操作系統(tǒng)會(huì)使用寫時(shí)復(fù)制(copy-on-write)策略,即fork函數(shù)發(fā)生的一刻父子進(jìn)程共享同一內(nèi)存數(shù)據(jù),當(dāng)父進(jìn)程要更改其中某片數(shù)據(jù)時(shí),操作系統(tǒng)會(huì)將該片數(shù)據(jù)復(fù)制一份以保證子進(jìn)程的數(shù)據(jù)不受影響,所以新的RDB文件存儲(chǔ)的是執(zhí)行fork一刻的內(nèi)存數(shù)據(jù)。Redis在進(jìn)行快照的過程中不會(huì)修改RDB文件,只有快照結(jié)束后才會(huì)將舊的文件替換成新的,也就是說任何時(shí)候RDB文件都是完整的。這使得我們可以通過定時(shí)備份RDB文件來實(shí)現(xiàn)Redis數(shù)據(jù)庫備份。RDB文件是經(jīng)過壓縮(可以配置rdbcompression參數(shù)以禁用壓縮節(jié)省CPU占用)的二進(jìn)制格式,所以占用的空間會(huì)小于內(nèi)存中的數(shù)據(jù)大小,更加利于傳輸。除了自動(dòng)快照,還可以手動(dòng)發(fā)送SAVE和BGSAVE命令讓Redis執(zhí)行快照,兩個(gè)命令的區(qū)別在于,前者是由主進(jìn)程進(jìn)行快照操作,會(huì)阻塞住其他請(qǐng)求,后者會(huì)通過fork子進(jìn)程進(jìn)行快照操作。Redis啟動(dòng)后會(huì)讀取RDB快照文件,將數(shù)據(jù)從硬盤載入到內(nèi)存,根據(jù)數(shù)據(jù)量大小與結(jié)構(gòu)和服務(wù)器性能不同,通常將一個(gè)記錄一千萬個(gè)字符串類型鍵、大小為1GB的快照文件載入到內(nèi)存中需花費(fèi)20~30秒鐘。通過RDB方式實(shí)現(xiàn)持久化,一旦Redis異常退出,就會(huì)丟失最后一次快照以后更改的所有數(shù)據(jù)。此時(shí)需要開發(fā)者根據(jù)具體的應(yīng)用場合,通過組合設(shè)置自動(dòng)快照條件的方式來將可能發(fā)生的數(shù)據(jù)損失控制在能夠接受的范圍。全持久化AOF模式
如果數(shù)據(jù)很重要無法承受任何損失,可以考慮使用AOF方式進(jìn)行持久化,默認(rèn)Redis沒有開啟AOF(appendonlyfile)方式的全持久化模式。在啟動(dòng)時(shí)Redis會(huì)逐個(gè)執(zhí)行AOF文件中的命令來將硬盤中的數(shù)據(jù)載入到內(nèi)存中,載入的速度相較RDB會(huì)慢一些,開啟AOF持久化后每執(zhí)行一條會(huì)更改Redis中的數(shù)據(jù)的命令,Redis就會(huì)將該命令寫入硬盤中的AOF文件。AOF文件的保存位置和RDB文件的位置相同,都是通過dir參數(shù)設(shè)置的,默認(rèn)的文件名是appendonly.aof,可以通過appendfilename參數(shù)修改該名稱。Redis允許同時(shí)開啟AOF和RDB,既保證了數(shù)據(jù)安全又使得進(jìn)行備份等操作十分容易。此時(shí)重新啟動(dòng)Redis后Redis會(huì)使用AOF文件來恢復(fù)數(shù)據(jù),因?yàn)锳OF方式的持久化可能丟失的數(shù)據(jù)更少,可以在redis.conf中通過appendonly參數(shù)開啟RedisAOF全持久化模式。Redis主從復(fù)制備份通過持久化功能,Redis保證了即使在服務(wù)器重啟的情況下也不會(huì)損失(或少量損失)數(shù)據(jù)。但是由于數(shù)據(jù)是存儲(chǔ)在一臺(tái)服務(wù)器上的,如果這臺(tái)服務(wù)器的硬盤出現(xiàn)故障,也會(huì)導(dǎo)致數(shù)據(jù)丟失。為了避免單點(diǎn)故障,我們希望將數(shù)據(jù)庫復(fù)制多個(gè)副本以部署在不同的服務(wù)器上,即使只有一臺(tái)服務(wù)器出現(xiàn)故障其他服務(wù)器依然可以繼續(xù)提供服務(wù),這就要求當(dāng)一臺(tái)服務(wù)器上的數(shù)據(jù)庫更新后,可以自動(dòng)將更新的數(shù)據(jù)同步到其他服務(wù)器上,Redis提供了復(fù)制(replication)功能可以自動(dòng)實(shí)現(xiàn)同步的過程。通過配置文件在Redis從數(shù)據(jù)庫中配置文件中加入slaveof
master-ip
master-port即可,主數(shù)據(jù)庫無需配置。Redis主從復(fù)制優(yōu)點(diǎn)及應(yīng)用場景,WEB應(yīng)用程序可以基于主從同步實(shí)現(xiàn)讀寫分離以提高服務(wù)器的負(fù)載能力。在常見的場景中,讀的頻率一般比較大,當(dāng)單機(jī)Redis無法應(yīng)付大量的讀請(qǐng)求時(shí),可以通過復(fù)制功能建立多個(gè)從數(shù)據(jù)庫,主數(shù)據(jù)庫只進(jìn)行寫操作,而從數(shù)據(jù)庫負(fù)責(zé)讀操作,還可以基于LVS+keepalived+Redis對(duì)Redis實(shí)現(xiàn)均和高可用。從數(shù)據(jù)庫持久化持久化通常相對(duì)比較耗時(shí),為了提高性能,可以通過復(fù)制功能建立一個(gè)(或若干個(gè))從數(shù)據(jù)庫,并在從數(shù)據(jù)庫中啟用持久化,同時(shí)在主數(shù)據(jù)庫禁用持久化。
當(dāng)從數(shù)據(jù)庫崩潰時(shí)重啟后主數(shù)據(jù)庫會(huì)自動(dòng)將數(shù)據(jù)同步過來,所以無需擔(dān)心數(shù)據(jù)丟失。而當(dāng)主數(shù)據(jù)庫崩潰時(shí),需要在從數(shù)據(jù)庫中使用SLAVEOFNOONE命令將從數(shù)據(jù)庫提升成主數(shù)據(jù)庫繼續(xù)服務(wù),并在原來的主數(shù)據(jù)庫啟動(dòng)后使用SLAVE
OF命令將其設(shè)置成新的主數(shù)據(jù)庫的從數(shù)據(jù)庫,即可將數(shù)據(jù)同步回來。MongoDB備份與恢復(fù)備份mongodump-hdbhost-ddbname-odbdirectory參數(shù)說明:-h:MongDB所在服務(wù)器地址,例如:,當(dāng)然也可以指定端口號(hào)::27017-d:需要備份的數(shù)據(jù)庫實(shí)例,例如:test-o:備份的數(shù)據(jù)存放位置,例如:/home/mongodump/,當(dāng)然該目錄需要提前建立,這個(gè)目錄里面存放該數(shù)據(jù)庫實(shí)例的備份數(shù)據(jù)。-c:需要恢復(fù)的集合-f:需要導(dǎo)出的字段(省略為所有字段)-u:用戶名-d:用戶密碼mongoexport-hdbhost-ddbname-ccollectionname-fcollectionKey-odbdirectory恢復(fù)
mongorestore-hdbhost-ddbname--dirdbdirectory參數(shù)或名:-h:MongoDB所在服務(wù)器地址-d:需要恢復(fù)的數(shù)據(jù)庫實(shí)例,例如:test,當(dāng)然這個(gè)名稱也可以和備份時(shí)候的不一樣,比如test2--dir:備份數(shù)據(jù)所在位置,例如:/home/mongodump/itcast/--drop:恢復(fù)的時(shí)候,先刪除當(dāng)前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。安全管理方案通過多種方式的安全保障機(jī)制來保證xxx管理系統(tǒng)鏈路、數(shù)據(jù)、應(yīng)用、信息、終端等安全。針對(duì)平臺(tái)的感知層、通信層、數(shù)據(jù)層、應(yīng)用層上各自特有的安全隱患實(shí)施相應(yīng)的解決方案,實(shí)現(xiàn)分級(jí)分層防控,保護(hù)xxx管理系統(tǒng)整體建設(shè)體系,保障平臺(tái)整體建設(shè)安全。平臺(tái)安全考慮系統(tǒng)安全主要包括兩個(gè)部分:系統(tǒng)安全和信息安全。系統(tǒng)安全主要通過病毒防護(hù)、訪問控制、入侵檢測、系統(tǒng)的備份與恢復(fù)等措施保證工程中的各種系統(tǒng)以及系統(tǒng)上各種軟件的正常運(yùn)行;保證系統(tǒng)運(yùn)行過程中的各種信息在存取、處理和傳輸中的機(jī)密性、完整性和可用性,并確保信息的可控性。同時(shí),由于用戶機(jī)構(gòu)工作的特殊性,任何信息安全方面的疏忽,都將導(dǎo)致災(zāi)難性事故的發(fā)生,其造成的管理和經(jīng)濟(jì)影響是巨大的,帶來的損失是不可估量的。因此,建設(shè)信息安全整體防護(hù)體系,制定恰當(dāng)?shù)陌踩呗裕岣甙踩U夏芰?,是本次系統(tǒng)建設(shè)的重要環(huán)節(jié)。為了更好的、更有效的、更方便的保護(hù)和管理系統(tǒng)資源、網(wǎng)絡(luò)資源,整體規(guī)劃網(wǎng)絡(luò)安全系統(tǒng),并達(dá)到以下目標(biāo):安全性:確保信息系統(tǒng)中的各類數(shù)據(jù)不被非法訪問、竊取、散發(fā)等,確保敏感數(shù)據(jù)處于可控制的范圍之內(nèi),僅有經(jīng)過嚴(yán)格身份認(rèn)證的用戶、系統(tǒng)才允許其獲得相關(guān)數(shù)據(jù)??捎眯裕捍_保信息系統(tǒng)高效、穩(wěn)定、可靠地運(yùn)行;完整性:確保信息系統(tǒng)數(shù)據(jù)完整、可靠、不被篡改。抗抵賴性:確保信息系統(tǒng)用戶認(rèn)證可靠,相關(guān)操作記錄具有唯一性,用戶身份不被假冒等??晒芾硇裕捍_保信息系統(tǒng)的各類系統(tǒng)資源都處于管理和控制之下。此外,在信息系統(tǒng)安全建設(shè)中,要充分考慮實(shí)用性和可擴(kuò)展性,并盡量減少對(duì)性能的影響。應(yīng)用平臺(tái)的系統(tǒng)安全要達(dá)到以上目標(biāo),不是單靠某一、兩個(gè)安全產(chǎn)品來解決的,它需要系統(tǒng)的、立體的全方位的解決方案,從網(wǎng)絡(luò)的設(shè)計(jì)結(jié)構(gòu)角度、從物理層面、網(wǎng)絡(luò)層面、系統(tǒng)層面、應(yīng)用層面、數(shù)據(jù)安全層面以及安生制度體系的建設(shè)方面等多視角來設(shè)計(jì),應(yīng)該按照應(yīng)用為主導(dǎo),根據(jù)不同應(yīng)用的特點(diǎn)和安全需求,綜合衡量不同業(yè)務(wù)系統(tǒng)的重要性和所面臨風(fēng)險(xiǎn)大小等因素,科學(xué)劃分網(wǎng)絡(luò)與安全域,并在此基礎(chǔ)上進(jìn)行安全建設(shè)和管理,提高信息安全體系的有效性。安全保障措施1)建立健全的規(guī)章制度建立各項(xiàng)規(guī)章制度,如計(jì)算機(jī)防毒制度、數(shù)據(jù)備份制度等,據(jù)統(tǒng)計(jì)90%以上的管理和安全問題來自終端,提高機(jī)構(gòu)業(yè)務(wù)人員的安全意識(shí)非常重要,組織協(xié)調(diào)有關(guān)人員,加強(qiáng)培訓(xùn)與安全教育,強(qiáng)化安全意識(shí)和法制觀念,提升職業(yè)道德,掌握安全技術(shù),確保這些措施落實(shí)到位,責(zé)任到人,收到很大的效果。2)保證服務(wù)器的安全服務(wù)器是網(wǎng)絡(luò)的核心,是數(shù)據(jù)庫管理的心臟,它負(fù)責(zé)業(yè)務(wù)數(shù)據(jù)的處理和存儲(chǔ),網(wǎng)絡(luò)的安全首先要保證服務(wù)器的安全。系統(tǒng)的服務(wù)器最好采用雙機(jī)熱備方案,采用矩陣列柜,實(shí)現(xiàn)RAID5的磁盤安全級(jí)別,這樣只做到了一塊磁盤或一臺(tái)服務(wù)器出現(xiàn)故障時(shí),能保證信息系統(tǒng)的正常運(yùn)行。3)確保局域網(wǎng)的安全由于機(jī)構(gòu)的網(wǎng)絡(luò)系統(tǒng)內(nèi)的計(jì)算機(jī)數(shù)量比較多,各終端計(jì)算機(jī)如何管理,如何防止非法外聯(lián),如何限制移動(dòng)存儲(chǔ)的使用、如何控制網(wǎng)絡(luò)流量等等,對(duì)這些終端的管理,實(shí)行定期檢查,通過制定統(tǒng)一的安全策略,限制了移動(dòng)電腦和移動(dòng)存儲(chǔ)設(shè)備隨意接入內(nèi)網(wǎng),從而大大提高內(nèi)網(wǎng)的安全性。通過完善的權(quán)限分配管理,超級(jí)管理員可以分配已有管理權(quán)限給新建給管理用戶,可做到菜單級(jí)權(quán)限分配,不同的管理員擁有不同的管理權(quán)限,各個(gè)管理員之間權(quán)限互不干涉。通過完善的日志審計(jì)功能,管理員的用戶操作、策略操作、用戶登錄等日志都有完整的記錄,防止管理員越權(quán)使用軟件平臺(tái)。4)數(shù)據(jù)備份的保障措施xxx管理記錄著各項(xiàng)服務(wù)流程、人員、部門等信息,極其重要,如果數(shù)據(jù)丟失,對(duì)機(jī)構(gòu)的損失不可估量。所以說如何做好數(shù)據(jù)的備份,是保障信息系統(tǒng)安全的一項(xiàng)重要措施。建議制定相關(guān)的備份制度,每日做好備份日志,通過磁帶、DVD等方式進(jìn)行數(shù)據(jù)備份,并且做到異地存儲(chǔ)。5)應(yīng)用軟件權(quán)限設(shè)置通過相關(guān)制度明確規(guī)定了每個(gè)操作人員的權(quán)限范圍,通過授權(quán)、與MAC地址綁定等方法限制用戶的行為,同時(shí)還通過內(nèi)網(wǎng)安全管理軟件的設(shè)備軟件資源的管理模塊對(duì)一些軟件進(jìn)行限制性安裝,網(wǎng)管隨機(jī)地通過軟件搜索網(wǎng)內(nèi)的共享資源、系統(tǒng)進(jìn)程等各項(xiàng)信息,有效地阻止了一些操作人員的獵奇心,使其只能提取與其業(yè)務(wù)有關(guān)的的數(shù)據(jù),提高了數(shù)據(jù)的保密性,提升了網(wǎng)絡(luò)的安全性。基礎(chǔ)安全保障根據(jù)系統(tǒng)安全需求,實(shí)現(xiàn)對(duì)病毒防護(hù)、訪問控制、入侵檢測、審計(jì)跟蹤等功能,保證各種系統(tǒng)以及在系統(tǒng)上各種應(yīng)用軟件的正常運(yùn)行,系統(tǒng)安全體系架構(gòu)主要包括以下幾個(gè)方面:訪問控制提供各層次的訪問控制功能。從用戶認(rèn)證和授權(quán)、數(shù)據(jù)庫對(duì)象的訪問控制、用戶操作權(quán)限控制、系統(tǒng)操作的記錄和稽核、數(shù)據(jù)和系統(tǒng)的完整性、可靠性和可用性、基于業(yè)務(wù)規(guī)則的訪問控制等方面,保證系統(tǒng)的安全性。防火墻利用防火墻實(shí)現(xiàn)安全訪問控制和安全隔離。對(duì)外部訪問行為進(jìn)行多級(jí)過濾、監(jiān)控、記錄,并進(jìn)行安全審計(jì)。防火墻的實(shí)時(shí)監(jiān)控記錄表可實(shí)時(shí)顯示網(wǎng)絡(luò)上傳送數(shù)據(jù)包的記錄,包括規(guī)則號(hào)、時(shí)間、使用者、來源主機(jī)、目的主機(jī)、通訊協(xié)議、服務(wù)項(xiàng)目、傳輸資料量及連線時(shí)間。病毒防護(hù)軟件局域網(wǎng)服務(wù)器和接入的PC機(jī)全部安裝相應(yīng)的網(wǎng)絡(luò)版防病毒軟件,并啟動(dòng)實(shí)時(shí)病毒監(jiān)控,定時(shí)查殺病毒,確保系統(tǒng)處于監(jiān)控狀況;同時(shí),實(shí)現(xiàn)全網(wǎng)防病毒系統(tǒng)的統(tǒng)一管理、統(tǒng)一升級(jí),定時(shí)查殺,遠(yuǎn)程檢測,確實(shí)有效的構(gòu)建防病毒體系,徹底的消滅網(wǎng)絡(luò)內(nèi)的已知病毒;還應(yīng)建立病毒應(yīng)急響應(yīng)流程,由于新病毒窮出不盡,僅僅依靠防病毒軟件進(jìn)行防護(hù)遠(yuǎn)遠(yuǎn)是不夠的,還需要有專業(yè)的服務(wù)人員,定期檢測,應(yīng)急響應(yīng),將系統(tǒng)面對(duì)病毒的威脅和破壞的可能性減到最小。備份安全保障xxx管理系統(tǒng)平臺(tái)在系統(tǒng)安全方面做到了兩地三中心,兩地是指xx區(qū)、xx區(qū),三中心是指生產(chǎn)中心、同城容災(zāi)中心、云上備份中心。結(jié)合近年國內(nèi)出現(xiàn)的大范圍自然災(zāi)害,以同城雙中心加異地災(zāi)備中心的“兩地三中心”的災(zāi)備模式也隨之出現(xiàn),這一方案兼具高可用性和災(zāi)難備份的能力。同城雙中心是指在同城或鄰近城市建立兩個(gè)可獨(dú)立承擔(dān)關(guān)鍵系統(tǒng)運(yùn)行的數(shù)據(jù)中心,雙中心具備基本等同的業(yè)務(wù)處理能力并通過高速鏈路實(shí)時(shí)同步數(shù)據(jù),日常情況下可同時(shí)分擔(dān)業(yè)務(wù)及管理系統(tǒng)的運(yùn)行,并可切換運(yùn)行;災(zāi)難情況下可在基本不丟失數(shù)據(jù)的情況下進(jìn)行災(zāi)備應(yīng)急切換,保持業(yè)務(wù)連續(xù)運(yùn)行。與異地災(zāi)備模式相比較,同城雙中心具有投資成本低、建設(shè)速度快、運(yùn)維管理相對(duì)簡單、可靠性更高等優(yōu)點(diǎn)。異地災(zāi)備中心是指在異地的城市建立一個(gè)備份的災(zāi)備中心,用于雙中心的數(shù)據(jù)備份,當(dāng)雙中心出現(xiàn)自然災(zāi)害等原因而發(fā)生故障時(shí),異地災(zāi)備中心可以用備份數(shù)據(jù)進(jìn)行業(yè)務(wù)的恢復(fù)。備端在線兩地三中心整體災(zāi)難恢復(fù)解決方案,可以滿足不同災(zāi)難場景下的業(yè)務(wù)連續(xù)性要求。本地機(jī)房的容災(zāi)主要是用于防范生產(chǎn)服務(wù)器發(fā)生的故障,異地災(zāi)備中心用于防范大規(guī)模區(qū)域性災(zāi)難。本地機(jī)房的容災(zāi)由于其與生產(chǎn)中心處于同一個(gè)機(jī)房,可通過局域網(wǎng)進(jìn)行連接,因此數(shù)據(jù)復(fù)制和應(yīng)用切換比較容易實(shí)現(xiàn),可實(shí)現(xiàn)生產(chǎn)與災(zāi)備服務(wù)器之間數(shù)據(jù)的實(shí)時(shí)復(fù)制和應(yīng)用的快速切換。異地災(zāi)備中心由于其與生產(chǎn)中心不在同一機(jī)房,災(zāi)備端與生產(chǎn)端連接的網(wǎng)絡(luò)線路帶寬和質(zhì)量存在一定的限制,應(yīng)用系統(tǒng)的切換也需要一定的時(shí)間,因此異地災(zāi)備中心可以實(shí)現(xiàn)在業(yè)務(wù)限定的時(shí)間內(nèi)進(jìn)行恢復(fù)和可容忍丟失范圍內(nèi)的數(shù)據(jù)恢復(fù)。1、備端在線兩地三中心災(zāi)備方案網(wǎng)絡(luò)設(shè)計(jì)本地容災(zāi)是指在本地機(jī)房建立容災(zāi)系統(tǒng),日常情況下可同時(shí)分擔(dān)業(yè)務(wù)及管理系統(tǒng)的運(yùn)行,并可切換運(yùn)行;災(zāi)難情況下可在基本不丟失數(shù)據(jù)的情況下進(jìn)行災(zāi)備應(yīng)急切換,保持業(yè)務(wù)連續(xù)運(yùn)行。與異地災(zāi)備模式相比較,本地雙中心具有投資成本低、建設(shè)速度快、運(yùn)維管理相對(duì)簡單、可靠性更高等優(yōu)點(diǎn);異地災(zāi)備中心是指在異地建立一個(gè)備份的災(zāi)備中心,用于雙中心的數(shù)據(jù)備份,當(dāng)雙中心出現(xiàn)自然災(zāi)害等原因而發(fā)生故障時(shí),異地災(zāi)備中心可以用備份數(shù)據(jù)進(jìn)行業(yè)務(wù)的恢復(fù)。針對(duì)兩地三中心災(zāi)備建設(shè)的需求,結(jié)合自主研發(fā)的軟件的優(yōu)勢,系統(tǒng)設(shè)計(jì)了典型的建設(shè)方案。本地機(jī)房安裝鏡像系統(tǒng),主備端同時(shí)在線,真正實(shí)現(xiàn)“雙活”,是可見,可驗(yàn)證,可靠的容災(zāi);異地機(jī)房安裝實(shí)時(shí)備份,既能實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)復(fù)制,確保數(shù)據(jù)不丟失,又能任意時(shí)間點(diǎn)手動(dòng)恢復(fù),實(shí)現(xiàn)容錯(cuò),而且無需主備硬件配置一致,還能降低成本。網(wǎng)絡(luò)拓?fù)浜筒渴鹑缦拢簝傻厝行臄?shù)據(jù)備份容災(zāi)架構(gòu)圖2、備端在線容災(zāi)系統(tǒng)設(shè)計(jì)在生產(chǎn)服務(wù)器上部署A鏡像系統(tǒng)代理軟件,在容災(zāi)服務(wù)器上安裝A鏡像系統(tǒng)服務(wù)器端軟件,設(shè)置A鏡像代理的檢測路徑為主存儲(chǔ)路徑,設(shè)置A鏡像服務(wù)器路徑為備用存儲(chǔ)路徑。通過Web管理界面配置鏡像對(duì)象、全量和增量策略等。1)當(dāng)生產(chǎn)服務(wù)器處于正常工作狀態(tài)時(shí),把生產(chǎn)服務(wù)器的代理軟件連接至服務(wù)器。當(dāng)代理檢測到主存儲(chǔ)數(shù)據(jù)變化后,將捕獲變化的數(shù)據(jù)實(shí)時(shí)的復(fù)制到備用存儲(chǔ)上,實(shí)現(xiàn)了實(shí)時(shí)的復(fù)制。具體部署如下圖:2)當(dāng)生產(chǎn)服務(wù)器故障,或者存儲(chǔ)故障導(dǎo)致生產(chǎn)系統(tǒng)無法正常提供業(yè)務(wù)支持時(shí),本地容災(zāi)服務(wù)器可直接接替生產(chǎn)服務(wù)器工作保障業(yè)務(wù)系統(tǒng)的持續(xù)運(yùn)行;當(dāng)本地機(jī)房發(fā)生災(zāi)難時(shí),異地機(jī)房的容災(zāi)服務(wù)器可直接接替生產(chǎn)服務(wù)器工作保障業(yè)務(wù)系統(tǒng)的持續(xù)運(yùn)行。具體部署如下圖:3)當(dāng)生產(chǎn)系統(tǒng)恢復(fù)工作后,繼續(xù)其生產(chǎn)服務(wù)器的復(fù)制工作,并且在這之前會(huì)通過回切工具保障主備系統(tǒng)數(shù)據(jù)一致,具體部署如下圖:4)異地容錯(cuò)的容災(zāi)系統(tǒng)設(shè)計(jì)如果本地機(jī)房發(fā)生故障,將異地容災(zāi)服務(wù)器中備份的數(shù)據(jù)進(jìn)行手動(dòng)恢復(fù),可以直接恢復(fù)到原生產(chǎn)服務(wù)器(也可恢復(fù)到新服務(wù)器)。備份存儲(chǔ)系統(tǒng)保存了應(yīng)用系統(tǒng)任意時(shí)刻的數(shù)據(jù),恢復(fù)時(shí)可恢復(fù)到任意時(shí)間點(diǎn),實(shí)現(xiàn)容錯(cuò),具體部署如下圖:通過以上四點(diǎn)保證了備用存儲(chǔ)上的數(shù)據(jù)和主存儲(chǔ)上的數(shù)據(jù)完全一致。避免了主存儲(chǔ)的單點(diǎn)故障。
管理端可部署在備用服務(wù)器上或系統(tǒng)管理員主機(jī)上。與一般的cluster不同,系統(tǒng)不采用共享存儲(chǔ)模式,首先避免了硬件方面的巨量投資;其次避免了由于共享存儲(chǔ)硬件或者連接共享存儲(chǔ)硬件鏈路的故障引起的業(yè)務(wù)系統(tǒng)中斷,避免了單點(diǎn)故障。xxx管理系統(tǒng)采用備端在線的兩地三中心容災(zāi)優(yōu)勢如下:1)備端在線的容災(zāi)優(yōu)勢:●所見即所得的容災(zāi),備用系統(tǒng)直接處于在線運(yùn)行的狀態(tài),是直接可見、可驗(yàn)證的。不像其他容災(zāi)系統(tǒng),一定要恢復(fù)后才能知道備用系統(tǒng)的好壞;●應(yīng)用級(jí)的復(fù)制技術(shù),即鏡像系統(tǒng)復(fù)制的數(shù)據(jù)是數(shù)據(jù)庫事務(wù),是屬于應(yīng)用層的,從而可以保證數(shù)據(jù)庫數(shù)據(jù)的完整性;●實(shí)施無需停頓業(yè)務(wù)系統(tǒng),適合7X24小時(shí)連續(xù)運(yùn)行的業(yè)務(wù)系統(tǒng);●不需要主備系統(tǒng)硬件保證一致性,極大的降低系統(tǒng)改造及投入的硬件成本,只需備份存儲(chǔ)空間大一點(diǎn)就行;●對(duì)網(wǎng)絡(luò)帶寬消耗非常小,不需專用的光纖傳輸網(wǎng)絡(luò),采用實(shí)時(shí)增量復(fù)制技術(shù)大大減少了資源的開銷,對(duì)業(yè)務(wù)系統(tǒng)性能影響很小;●一旦主系統(tǒng)發(fā)生故障,由于備用系統(tǒng)的數(shù)據(jù)庫直接處于運(yùn)行狀態(tài),無需數(shù)據(jù)恢復(fù)階段,僅需恢復(fù)業(yè)務(wù)系統(tǒng)即可,所以整個(gè)備用系統(tǒng)替換主系統(tǒng)的過程非常快;●采用實(shí)時(shí)增量復(fù)制技術(shù),將數(shù)據(jù)復(fù)制到備用系統(tǒng)上,當(dāng)主系統(tǒng)發(fā)生故障時(shí),備用系統(tǒng)丟失數(shù)量極小,由于數(shù)據(jù)量小使得備份窗口趨于零,對(duì)主系統(tǒng)的性能影響很?。弧駪?yīng)用方式多樣化,支持多對(duì)一、一對(duì)多等鏡像方式,為后期提供擴(kuò)展平臺(tái);●基于WEB的統(tǒng)一管理平臺(tái),負(fù)責(zé)對(duì)服務(wù)器、數(shù)據(jù)庫等進(jìn)行配置,設(shè)置鏡像策略,并監(jiān)控復(fù)制鏈運(yùn)行情況,方便管理。WEB監(jiān)控界面可監(jiān)控全網(wǎng)的備份任務(wù)及運(yùn)行狀態(tài)。每條監(jiān)控記錄就是一條完整的復(fù)制鏈路,包含鏡像代理、鏡像服務(wù)器、運(yùn)行狀態(tài)。Web可監(jiān)控全網(wǎng)所有鏡像代理、鏡像服務(wù)器的工作狀態(tài)以及所有復(fù)制任務(wù)。復(fù)制任務(wù)監(jiān)控信息包括:
編號(hào):根據(jù)任務(wù)復(fù)制的順序來排序的。類型:模塊類型,有文件,SQLSERVER和ORACLE三種。服務(wù)器:鏡像服務(wù)器所在服務(wù)器IP。目標(biāo)數(shù)據(jù)庫:鏡像服務(wù)器端備份數(shù)據(jù)庫的名稱。執(zhí)行內(nèi)容:具體復(fù)制的內(nèi)容,數(shù)據(jù)庫監(jiān)控的是SQL語句,文件監(jiān)控的是復(fù)制的文件名。開始時(shí)間:任務(wù)開始執(zhí)行的時(shí)間。結(jié)束時(shí)間:任務(wù)執(zhí)行結(jié)束的時(shí)間。狀態(tài):任務(wù)執(zhí)行完成后的狀態(tài),如果復(fù)制成功顯示為成功,失敗顯示的是失敗。2)實(shí)時(shí)備份服務(wù)器備份系統(tǒng)的客戶端模塊實(shí)時(shí)捕獲數(shù)據(jù)變化,并進(jìn)行實(shí)時(shí)增量傳輸,不間斷的保護(hù)客戶端數(shù)據(jù),保障生產(chǎn)服務(wù)器的業(yè)務(wù)數(shù)據(jù)不丟失。并且可以恢復(fù)到任意時(shí)間點(diǎn)和任意版本,無時(shí)無刻保護(hù)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)安全。增量處理示意圖如下:3)任意時(shí)間點(diǎn)還原實(shí)時(shí)備份,保留所有的變化的數(shù)據(jù)塊,可以根據(jù)用戶的需求,恢復(fù)到任意的時(shí)間點(diǎn)的版本。增量和差異版本的實(shí)時(shí)復(fù)制、傳輸技術(shù),以及全量加增量合成存儲(chǔ)技術(shù)實(shí)現(xiàn)了數(shù)據(jù)完整性和任意時(shí)間點(diǎn)還原的功能。4)裸機(jī)還原通常情況下,裸機(jī)要想進(jìn)行信息處理需要進(jìn)行硬盤分區(qū)和格式化、安裝操作系統(tǒng)、安裝驅(qū)動(dòng)程序、安裝應(yīng)用程序等繁瑣的步驟,需要花費(fèi)大量的時(shí)間才能構(gòu)造一個(gè)可用的系統(tǒng)環(huán)境。服務(wù)器備份系統(tǒng)可以輕松地將備份好的系統(tǒng)恢復(fù)至裸機(jī)上,實(shí)現(xiàn)一步到位。可以快速的恢復(fù)業(yè)務(wù)系統(tǒng)的運(yùn)行環(huán)境,極大的降低業(yè)務(wù)系統(tǒng)的最大恢復(fù)時(shí)間(RTO)指標(biāo)。達(dá)到高性能的容災(zāi)。5)容災(zāi)與容錯(cuò)相結(jié)合采用CDP技術(shù),系統(tǒng)能根據(jù)數(shù)據(jù)庫事務(wù)日志的變化分析出數(shù)據(jù)庫完整性點(diǎn),在復(fù)制此數(shù)據(jù)到備用服務(wù)器的同時(shí)還將保存歷史記錄,保證系統(tǒng)可以以I/O數(shù)據(jù)塊為單位恢復(fù)至任意時(shí)間點(diǎn),并且每個(gè)數(shù)據(jù)版本都滿足數(shù)據(jù)庫級(jí)的一致性,即每個(gè)版本等都是正確可用的,而不需要嘗試回退I/O。從而真正防止因數(shù)據(jù)庫誤操作對(duì)企事業(yè)單位帶來的損失。6)異機(jī)還原支持異機(jī)還原,避免單機(jī)故障導(dǎo)致的數(shù)據(jù)無法還原、使用的風(fēng)險(xiǎn)。即使在不同硬件上,也可以恢復(fù)出故障的系統(tǒng)。克隆與部署操作系統(tǒng),不受硬件限制。在物理計(jì)算機(jī)之間以及物理計(jì)算機(jī)與虛擬機(jī)之間進(jìn)行遷移。7)對(duì)系統(tǒng)影響小安裝過程無需停機(jī),采用定時(shí)全量和實(shí)時(shí)增量的技術(shù),對(duì)網(wǎng)絡(luò)和系統(tǒng)資源占用極低,不會(huì)影響生產(chǎn)系統(tǒng)的運(yùn)行。所有的操作在用戶端完成,用戶通過訪問一個(gè)WEB瀏覽器來設(shè)定備份計(jì)劃和策略,備份系統(tǒng)將變化的數(shù)據(jù)從生產(chǎn)服務(wù)器捕獲到,并傳輸?shù)絺浞莘?wù)里,從而減少了對(duì)生產(chǎn)服務(wù)器的負(fù)擔(dān)。全量加增量合成存儲(chǔ)備份技術(shù),保證系統(tǒng)只需做一次全量備份即可,大大減輕系統(tǒng)負(fù)擔(dān)。8)基于WEB的作業(yè)、管理、監(jiān)控平臺(tái)支持Web-Manage平臺(tái),即所有的作業(yè)操作都可以在Web平臺(tái)上完成。支持遠(yuǎn)程WEB進(jìn)行備份策略設(shè)置、作業(yè)監(jiān)控、存儲(chǔ)配置、空間管理等,無需進(jìn)行現(xiàn)場維護(hù)。通過設(shè)置備份計(jì)劃與存儲(chǔ)管理策略,讓系統(tǒng)自動(dòng)運(yùn)行,極大地減少系統(tǒng)維護(hù)和管理工作量。支持基于WEB的查詢備份對(duì)象、圖表的存儲(chǔ)空間顯示、備份策略管理、計(jì)劃管理。支持基于WEB的備份作業(yè)監(jiān)控,可顯示從觸發(fā)、排隊(duì)、啟動(dòng)、傳輸、存儲(chǔ)整個(gè)過程。xxx管理系統(tǒng)采用兩地三中心系統(tǒng)安全措施,防范了各種危害磁盤陣列硬件數(shù)據(jù)的風(fēng)險(xiǎn)(不包括軟件或者人工誤刪除數(shù)據(jù)操作),出于災(zāi)備(DisasterRecovery)的目的,建設(shè)多個(gè)數(shù)據(jù)中心。主數(shù)據(jù)中心承擔(dān)用戶的核心業(yè)務(wù),其他的數(shù)據(jù)中心主要承擔(dān)一些非關(guān)鍵業(yè)務(wù)并同時(shí)備份主中心的數(shù)據(jù)、配置、業(yè)務(wù)等。正常情況下,主中心和備中心各司其職,發(fā)生災(zāi)難時(shí),主數(shù)據(jù)中心宕機(jī)、備份數(shù)據(jù)中心可以快速恢復(fù)數(shù)據(jù)和應(yīng)用,從而減輕因?yàn)?zāi)難給用戶帶來的損失。部署安全保障根據(jù)系統(tǒng)的安全設(shè)計(jì)目標(biāo)及安全解決方案要求,對(duì)相關(guān)安全產(chǎn)品部署如下:在內(nèi)部局域網(wǎng)中的重要服務(wù)器采用負(fù)載均衡或集群的方式,防止服務(wù)器單點(diǎn)故障,保障應(yīng)用的高可用性。在網(wǎng)絡(luò)邊界,包括Internet網(wǎng)出口處部署防火墻進(jìn)行邏輯隔離,通過限制IP地址來防護(hù)惡意攻擊,這是第一道關(guān)卡;對(duì)允許訪問業(yè)務(wù)管理系統(tǒng)的IP權(quán)限進(jìn)行了嚴(yán)格的控制,這是保障網(wǎng)絡(luò)安全的第二道卡,通過合理有效地配置防火墻可以阻擋來自外部的大部分攻擊和非法訪問。在信息化建設(shè)過程中,安全的建設(shè)目標(biāo)和建設(shè)重點(diǎn)不能只局限于物理網(wǎng)絡(luò)層,必須要對(duì)系統(tǒng)的總體信息安全予以高度重視,建立一套完整的安全防護(hù)體系,以保證系統(tǒng)和信息的安全。運(yùn)行安全保障信息安全運(yùn)行管理系統(tǒng)是對(duì)信息全管理體系(ISMS)的實(shí)現(xiàn)提供技術(shù)支撐,協(xié)助在信息和信息系統(tǒng)整個(gè)生命周期中實(shí)現(xiàn)安全管理方面人、技術(shù)和流程的結(jié)合。在信息安全管理體系(ISMS)的PDCA循環(huán)中為其計(jì)劃階段提供風(fēng)險(xiǎn)評(píng)估和安全策略功能,為執(zhí)行階段提供安全對(duì)象風(fēng)險(xiǎn)管理以及流程管理功能,為檢查階段提供系統(tǒng)安全監(jiān)控、事件審計(jì)、殘余風(fēng)險(xiǎn)評(píng)估功能,為改進(jìn)階段提供安全事件管理功能。信息安全運(yùn)行管理系統(tǒng)提供一下功能:安全策略管理:包括安全策略發(fā)布、存儲(chǔ)、修訂以及對(duì)安全策略的符合性檢查等。安全事件管理:包括安全事件采集、過濾、匯集、關(guān)聯(lián)分析、事件前轉(zhuǎn)發(fā)以及安全事件統(tǒng)計(jì)分析等。安全預(yù)計(jì)管理:包括漏洞預(yù)警、病毒預(yù)警、事件預(yù)警以及預(yù)警分發(fā)等。安全對(duì)象風(fēng)險(xiǎn)管理:包括安全對(duì)象、威脅管理、漏洞管理、安全基線、安全風(fēng)險(xiǎn)管理等。流程管理:主要是對(duì)各種安全預(yù)警、安全事件、安全風(fēng)險(xiǎn)進(jìn)行反應(yīng),工單是流程的一種承載方式,因此可以包括產(chǎn)生工單、工單流轉(zhuǎn)以及講工單處理經(jīng)驗(yàn)進(jìn)行積累等。知識(shí)管理:所有安全工作均以安全知識(shí)管理為基礎(chǔ),包括威脅庫、病毒庫、漏洞庫、安全經(jīng)驗(yàn)庫等信息安全運(yùn)行管理系統(tǒng)支持分布式部署,并能夠?qū)崿F(xiàn)分安全域分級(jí)別管理。安全策略管理安全策略管理功能實(shí)現(xiàn)機(jī)構(gòu)安全策略的導(dǎo)入、存儲(chǔ)、修訂、查詢以及安全策略的集中管理。同時(shí)支持安全策略的不同格式的數(shù)據(jù)導(dǎo)出、安全策略的數(shù)據(jù)統(tǒng)計(jì)、安全策略的定時(shí)發(fā)布、安全策略符合性檢查等功能,機(jī)構(gòu)內(nèi)所有安全策略的全流程管理。安全策略的各項(xiàng)管理操作通過安全策略管理與流程管理模塊之
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年河南機(jī)電職業(yè)學(xué)院單招職業(yè)技能測試題庫必考題
- 2026年慶陽職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試題庫及答案1套
- 2026年山西體育單招試題附答案
- 2026年醫(yī)療設(shè)備使用與維護(hù)認(rèn)證題庫
- 2026年工業(yè)安全之機(jī)械操作規(guī)范與事故預(yù)防試題
- 2026年智能硬件產(chǎn)品設(shè)計(jì)師初級(jí)模擬卷
- 2026年高校教材管理內(nèi)容標(biāo)準(zhǔn)化知識(shí)點(diǎn)考核題
- 2026年會(huì)計(jì)從業(yè)資格考前沖刺題庫與實(shí)務(wù)案例分析
- 2026年軟件開發(fā)與編程基礎(chǔ)測試題集
- 2026年軟件測試工程師軟件質(zhì)量保障方向?qū)I(yè)測試題
- 居住證明合同協(xié)議
- 2024-2025閩教版小學(xué)英語五年級(jí)上冊(cè)期末考試測試卷及參考答案(共3套)
- 組件設(shè)計(jì)文檔-MBOM構(gòu)型管理
- 臨床協(xié)調(diào)員CRC年度總結(jié)
- 編鐘樂器市場洞察報(bào)告
- 負(fù)壓沖洗式口腔護(hù)理
- 山東省泰安市2024-2025學(xué)年高一物理下學(xué)期期末考試試題含解析
- 凈化車間液氮洗操作規(guī)程
- 《中電聯(lián)標(biāo)準(zhǔn)-抽水蓄能電站鋼筋混凝土襯砌水道設(shè)計(jì)導(dǎo)則》
- 【可行性報(bào)告】2023年硫精砂項(xiàng)目可行性研究分析報(bào)告
- 道路綠化養(yǎng)護(hù)投標(biāo)方案(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論