徐嘉銘

[摘 要]本文利用數(shù)據(jù)庫(kù)技術(shù)和虛擬化技術(shù)相結(jié)合的方式,提出了一種基于DataGuard的虛擬化數(shù)據(jù)庫(kù)容災(zāi)方法,有效解決了企業(yè)因提高數(shù)據(jù)庫(kù)可用性忽略服務(wù)器使用效率的問(wèn)題,從而降低了企業(yè)硬件投入成本,提高了運(yùn)維效率。
[關(guān)鍵詞]數(shù)據(jù)庫(kù)同步;DataGuard;高可用
doi:10.3969/j.issn.1673 - 0194.2019.14.038
[中圖分類(lèi)號(hào)]TP393.08[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2019)14-00-02
0? ? ?引 言
隨著現(xiàn)代企業(yè)信息技術(shù)的飛速發(fā)展,企業(yè)各種各樣的信息系統(tǒng)進(jìn)行協(xié)同辦公,這些系統(tǒng)數(shù)據(jù)都存儲(chǔ)在數(shù)據(jù)庫(kù)中,作為企業(yè)信息化的重要數(shù)據(jù)支撐。因此,建立一套可靠、有效的安全策略,保證數(shù)據(jù)的高可用性至關(guān)重要。傳統(tǒng)數(shù)據(jù)庫(kù)分布式容災(zāi)系統(tǒng)中最安全的模式是一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器作為主機(jī)運(yùn)行,另一臺(tái)服務(wù)器作為備機(jī)數(shù)據(jù)庫(kù)服務(wù)器,備機(jī)數(shù)據(jù)庫(kù)服務(wù)器可以快速恢復(fù)某些類(lèi)型的故障,也就是“1+1模式”。該模式雖然提高了數(shù)據(jù)庫(kù)的可用性,但大大增加了企業(yè)基礎(chǔ)設(shè)施投資,不利于企業(yè)信息化發(fā)展,企業(yè)可以利用DataGuard技術(shù)和虛擬化技術(shù)相結(jié)合的方法,解決這一問(wèn)題。
1? ? ?方案設(shè)計(jì)
使用一臺(tái)高性能的服務(wù)器作為數(shù)據(jù)庫(kù)備機(jī),采用微軟虛擬技術(shù)Hyper-V,建立多套安裝備用數(shù)據(jù)庫(kù)的虛擬機(jī),同時(shí)使用有DataGuard功能的Oracle 11G,作為備用數(shù)據(jù)庫(kù)軟件。
DataGuard+虛擬機(jī)模式的優(yōu)點(diǎn)主要有以下3條。①成本低??梢栽谝慌_(tái)服務(wù)器上虛擬出多個(gè)備機(jī),對(duì)應(yīng)不同主機(jī)數(shù)據(jù)庫(kù)服務(wù)器。②部署快。虛擬機(jī)可以在短時(shí)間內(nèi)配置出跟主庫(kù)同樣的存儲(chǔ)空間和操作系統(tǒng)的虛擬機(jī)服務(wù)器,便于安裝部署多個(gè)Oracle數(shù)據(jù)庫(kù)備機(jī)。③維護(hù)成本低。對(duì)維護(hù)人員的要求不高,只需知道如何切換主機(jī)備機(jī)即可。
2? ? ?系統(tǒng)實(shí)現(xiàn)
該方案主要包括以下兩個(gè)方面的操作方式:①根據(jù)主庫(kù)數(shù)據(jù)庫(kù)服務(wù)器配置情況建立虛擬機(jī);②在虛擬機(jī)上安裝數(shù)據(jù)庫(kù)環(huán)境,配置DataGuard模式。
2.1? ?準(zhǔn)備工作
首先準(zhǔn)備2臺(tái)數(shù)據(jù)庫(kù)服務(wù)器、1臺(tái)虛擬機(jī),微軟的Hyper-V Server技術(shù)在這里作為虛擬服務(wù)器技術(shù),建立2套安裝Oracle11G的操作系統(tǒng)作為備用數(shù)據(jù)庫(kù)服務(wù)器。
2.2? ?DataGuard配置
以數(shù)據(jù)中心庫(kù)做主庫(kù)(Primary Database)為例,在上面做準(zhǔn)備工作。
(1)設(shè)置Oracle生產(chǎn)庫(kù)為歸檔模式
SQL>alter database archivelog;
(2)在主庫(kù) primary database上設(shè)置force logging
SQL>alter database force logging;
(3)創(chuàng)建備庫(kù)控制文件和參數(shù)文件
啟動(dòng)主數(shù)據(jù)庫(kù)到mount模式下,在主庫(kù)上創(chuàng)建備庫(kù)的參數(shù)文件和控制文件。
create pfile='d:\oracle\initDATATEST.ora'from spfile;
create standby controlfile as? 'd:\ standbyDATATEST.ctl';
這里只需要?jiǎng)?chuàng)建一個(gè)備用控制文件即可,然后保存為control01、control02、control03。
(4)修改參數(shù)文件
修改主庫(kù)參數(shù),確認(rèn)歸檔日志文件位置參數(shù)和主庫(kù)備庫(kù)信息,包括以下幾條。
LOG_ARCHIVE_DEST_1? ? ? 主庫(kù)歸檔日志文件位置
LOG_ARCHIVE_DEST_2? ? ? 備庫(kù)歸檔日志文件位置
DATATEST%t_%s_%r.arc? ? 歸檔日志文件格式
FAL_CLIENT? ? ? ? ? ? ? 主機(jī)數(shù)據(jù)庫(kù)名稱(chēng)
FAL_SERVER? ? ? ? ? ? ? 備機(jī)數(shù)據(jù)庫(kù)名稱(chēng)
這里注意一定要將參數(shù)STANDBY_FILE_MANAGEMENT設(shè)置為AUTO自動(dòng),否則會(huì)造成備庫(kù)無(wú)法與主庫(kù)同步,增加或者減少數(shù)據(jù)文件。修改備庫(kù)參數(shù)文件,只需要在記事本中將剛才導(dǎo)出的initDATATEST.ora做如下修改即可。
*.DB_UNIQUE_NAME=DATATEST02
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(DATATEST,
DATATEST02)'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.LOG_ARCHIVE_FORMAT=DATATEST %t_%s_%r.arc
*.FAL_SERVER=DATATEST
*.FAL_CLIENT=DATATEST02
(5)遷移數(shù)據(jù)庫(kù)
在虛擬機(jī)中安裝Oracle數(shù)據(jù)庫(kù)系統(tǒng),停止主庫(kù),把數(shù)據(jù)庫(kù)的數(shù)據(jù)文件拷貝到當(dāng)前備庫(kù)相應(yīng)位置,拷貝由生產(chǎn)庫(kù)生成control01 control02 control03作為災(zāi)備庫(kù)的控制文件,將其存放在同生產(chǎn)庫(kù)相同的文件目錄下,并設(shè)置在參數(shù)文件中。拷貝生產(chǎn)庫(kù)參數(shù)文件到災(zāi)備庫(kù)服務(wù)器相應(yīng)目錄中,然后為災(zāi)備庫(kù)創(chuàng)建參數(shù)文件。
(6)在備庫(kù)上配置standby? redo? log
配置過(guò)程中要需要注意以下3點(diǎn)內(nèi)容:①主備庫(kù)目錄最好一致,這樣在設(shè)置過(guò)程中不會(huì)因?yàn)槟夸洸煌霈F(xiàn)錯(cuò)誤;②logfile創(chuàng)建要求與primary的redo logfile的大小相同,個(gè)數(shù)至少多一個(gè);③保證主庫(kù)備庫(kù)使用相同的用戶(hù)密碼進(jìn)行通信來(lái)傳輸數(shù)據(jù)。
2.3? ?啟動(dòng)虛擬機(jī)上的備用數(shù)據(jù)庫(kù)
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
啟動(dòng)災(zāi)備系統(tǒng),一旦主庫(kù)出現(xiàn)問(wèn)題,可以立刻將備庫(kù)與主庫(kù)進(jìn)行轉(zhuǎn)換,操作如下。
(1)在主庫(kù)上
SQL>alter database commit to switchover to physical standby;
(2)在備庫(kù)上
SQL>alter database commit to switchover to primary;
將備用數(shù)據(jù)庫(kù)啟動(dòng)到open狀態(tài)下,這樣既可以保證生產(chǎn)數(shù)據(jù)庫(kù)不間斷運(yùn)行,也可以利用這個(gè)時(shí)間段迅速修復(fù)、恢復(fù)原主庫(kù)數(shù)據(jù)。
2.4? ?測(cè)試驗(yàn)證
在主庫(kù)用插入數(shù)據(jù),驗(yàn)證主庫(kù)備庫(kù)數(shù)據(jù)是否同步,保持同步速度,利用循環(huán)語(yǔ)句向主庫(kù)插入1 000 000條數(shù)據(jù),備庫(kù)同步成功,用時(shí)不超過(guò)2分鐘。利用壓力測(cè)試工具swingbench測(cè)試比對(duì),內(nèi)存寫(xiě)環(huán)境中寬帶在虛擬化環(huán)境中的備機(jī)增加73.82%,而在主機(jī)上面的Oracle數(shù)據(jù)庫(kù)增加88.83%,說(shuō)明虛擬化環(huán)境中的Oracle數(shù)據(jù)庫(kù)性能總體上不如物理機(jī),但作為恢復(fù)數(shù)據(jù)的備機(jī)用,不會(huì)有太大影響。
3? ? ?結(jié) 語(yǔ)
將虛擬機(jī)技術(shù)應(yīng)用到Oracle數(shù)據(jù)庫(kù)中,技術(shù)上是可行的,最重要的是DataGuard都是Oracle本身自帶功能,在Windows? 2008 server以上版本自動(dòng)安裝Hyper-V,不需要額外購(gòu)買(mǎi)。將虛擬機(jī)技術(shù)應(yīng)用同Oracle的DataGuard相結(jié)合,在保證數(shù)據(jù)庫(kù)高可用性的同時(shí),提升企業(yè)信息基礎(chǔ)設(shè)施利用率,降低企業(yè)基礎(chǔ)設(shè)施投資費(fèi)用。
主要參考文獻(xiàn)
[1]潘群華.數(shù)據(jù)復(fù)制及備份技術(shù)研究[D].北京:國(guó)防科學(xué)技術(shù)大學(xué),2002.
[2]趙隆軍.虛擬技術(shù)在Oracle數(shù)據(jù)庫(kù)備份中的應(yīng)用[J].中國(guó)石油和化工標(biāo)準(zhǔn)與質(zhì)量,2011(8).
[3]何木喜,譚鐵偉.高校計(jì)算機(jī)網(wǎng)絡(luò)安全管理存在的問(wèn)題及對(duì)策[J].肇慶學(xué)院學(xué)報(bào),2003(2).
[4]周晴.淺析高校計(jì)算機(jī)網(wǎng)絡(luò)安全問(wèn)題及對(duì)策[J].電腦知識(shí)與技術(shù),2010(15).
[5]王松.淺析高校計(jì)算機(jī)網(wǎng)絡(luò)的安全管理[J].計(jì)算機(jī)時(shí)代,2007(10).
[6]闕宏宇.高校校園網(wǎng)絡(luò)安全管理存在的問(wèn)題及對(duì)策研究[J].信息與電腦:理論版,2014(7).
[7]宋建松.淺談高校網(wǎng)絡(luò)安全問(wèn)題及處理措施[J].電腦知識(shí)與技術(shù),2017(35).
[8]張亮.高校網(wǎng)絡(luò)安全管理的問(wèn)題及對(duì)策研究[J].科技風(fēng),2018(23).
[9]錢(qián)霂馨,張輝鵬.虛擬化數(shù)據(jù)中心的安全問(wèn)題分析[J].信息安全與技術(shù),2013(8).
[10]呂芳.虛擬化與云架構(gòu)的數(shù)據(jù)中心帶來(lái)的安全挑戰(zhàn)與應(yīng)對(duì)[J].智能建筑,2015(10).
[11]姜建偉.企業(yè)數(shù)據(jù)中心網(wǎng)絡(luò)虛擬化環(huán)境中邊界感知安全技術(shù)和應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2012(8).
[12]曹衛(wèi)民.基于虛擬化技術(shù)的石化企業(yè)過(guò)程信息集成的安全策略[J].計(jì)算機(jī)與應(yīng)用化學(xué),2013(11).
[13]張殿,陳運(yùn),趙柏波.煤炭施工企業(yè)安全培訓(xùn)虛擬化戰(zhàn)略[J].中國(guó)商界,2009(1).
[14]梅正宇.安全大數(shù)據(jù)分析:構(gòu)建企業(yè)安全生態(tài)[J].軟件和信息服務(wù),2015(9).
[15]劉兆強(qiáng).區(qū)域數(shù)據(jù)中心虛擬化技術(shù)安全機(jī)制的探討[J].金融科技時(shí)代,2009(2).
[16]陳威,徐小天,陳樂(lè)然,等.虛擬化數(shù)據(jù)安全中VMware虛擬化高可用和容災(zāi)探討[J].華北電力技術(shù),2013(12).