前言:中文期刊網精心挑選了數據庫軟件范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
數據庫軟件范文1
系統軟件。數據庫管理系統是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫,簡稱DBMS,它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。
數據庫管理系統是一個能夠提供數據錄入、修改、查詢的數據操作軟件,具有數據定義、數據操作、數據存儲與管理、數據維護、通信等功能,且能夠允許多用戶使用,另外,數據庫管理系統的發展與計算機技術發展密切相關。
(來源:文章屋網 )
數據庫軟件范文2
論文關鍵詞:實時數據庫組態軟件,模型,事務調度
1 引言
組態的概念是伴隨著集散控制系統的出現逐漸被廣大的生產過程自動化技術人員所熟識.概念最早來自英文configuration,含義是使用軟件工程對計算機軟件的各種資源進行配置,達到使計算機或軟件按照預先設置,自動執行特定任務滿足使用者要求的目的。組態軟件就是指一些數據采集與過程控制的專用軟件。它們是在自動控制系統監控層一級的軟件平臺和開發環境,使用靈活的組態方式實時數據庫組態軟件,為用戶提供快速構建工業自動控制系統監控功能的、通用層次的軟件工具。
2 實時數據庫
2.1組態軟件實時數據庫結構
實時數據庫及其調度系統是組態軟件的關鍵部分,也是設計的難點部分。實時數據庫系統處于工控系統各功能模塊數據交換的中心位置,在組態系統進入運行環境時,工業現場的生產情況將實時地反映在變量的數值中,操作者用計算機的指令也要迅速送達生產現場,所有這一切都是以實時數據庫系統為媒介。
3.實時數據庫系統設計
3.1 實時數據庫的設計思想
3.1.1 實時數據庫系統的存儲策略
我們采取傳統數據庫系統、文件系統和內存數據庫系統兼用,利用多種存儲介質來構造系統的實時數據庫系統。采用的存儲策略是:①對于需要長期保存的非共享數據(如采樣值的數模轉換系數、控制組態值等)采用文件管理系統直接存取。②對于數據量大而工控軟件無特殊要求的共享數據(如操作者紀錄等),將其存放在外存數據庫中。外存數據庫采用access數據庫,由運行系統通過數據庫操作語言(DML)進行存取論文格式模板。③對于每個采樣周期都要更新的數據。這樣,通過使用外存數據庫access數據庫)、文管系統和內存數據庫(實時數據庫),既保證了
數據的共享性、完整性實時數據庫組態軟件,又節約了內存,保證了系統的響應速度。
3.1.2 實時數據庫系統的分析與設計
實時數據庫系統包括實時數據庫及其事務調度系統。利用Windows的DLL(動態連接庫)和全局共享內存技術來建立系統實時數據庫的設計思想,并通過給用戶提供一套接口標準----實時數據庫系統接口,來實現I/O驅動程序與用戶程序和實時數據庫系統間的高速數據傳遞。實時數據庫系統應具有以下功能特點:
現場數據采集:實時數據庫提供了與典型數據源的接口,讀寫通訊設備寄存器的現場值,送到開辟的摘要求的用戶進程放在服務器上,由實時數據庫統一調度管理。
設計方面,我們采用面向對象編程(OOP)的設計技術,將實時數據庫定義為類的形式。實時數據庫的功能由類的方法和專門的管理程序實現,管理程序負責實時數據庫的生成、數據庫的查詢、數據庫的實時更新以及其它任務對實時數據庫的實時請求、報警響應等操作。實時數據庫類根據系統要求定義了如下功能模塊:
實時數據庫初始化模塊:實時數據庫是以數據鏈表的方式存放在內存中,系統運行之初是按照用戶組態好的數據庫動態地生成實時數據庫類實時數據庫組態軟件,并將組態數據庫域的內容賦給相應實時數據庫類對象的屬性,完成初始化工作。
基本操作模塊:提供數據對象的基本操作,如對數據對象的查找操作,通過數據對象名或ID取得數據對象的其他屬性,或通過名稱取得數據對象的ID等等。
讀寫數據操作模塊:根據實時數據庫類對象的屬性調用其相應方法,實現數據對象的讀寫數據操作,將存放在數據緩沖區的現場值寫入實時數據庫的數據對象的現場值屬性中去,讀取數據對象中的當前值。
圖形顯示鏈接模塊:主要完成實時趨勢、動態顯示、數據鏈接功能,使圖形顯示的變化與數據庫對象值的變化相一致。
窗口操作模塊:讀取用戶窗口的名稱,對指定的用戶窗口進行操作,讀取用戶窗口的當前狀態。
3.1.3實時數據庫的事務調度系統
系統投入運行后。同時要進行與DCS數據采集、數據處理、圖形顯示刷新、歷史數據存盤、緊急事件報警或越位報警等事務活動實時數據庫組態軟件,所有的這些事務都要并行處理,如等待時間太長,則無法滿足實時性的要求。這樣就要求我們實現一種并行編程。在上位機上,也就是要將CPU時間按照一定的優先準則分配給各個事件.定期處理某一事件而不會在某一事件上處理時間過長。用多線程的編程技術來實現這種并行編程,實時調度各事務.如圖2所示。
圖2 事實數據庫事務調度系統
3.1.3數據模型的建立
實時數據模型由三要素組成:組對象及其結構、組操作和關于對象與操作的約束論文格式模板。實時數據模型的約束則更突出地包括時間限制。組態軟件利用系統數據進行判斷,更改系統的運行狀態,以維護系統正常運行。計算數據則是在利用采集數據、系統數據的基礎上,經處理后提到的中間數據(由其他參數間接推出)。數據模型歸結為:模擬量、開關量、字符串型三種類型。
下面重點介紹模擬量,模擬量的典型屬性有:
(1)采樣點標志:控制軟件同意編排的采樣變量標志符;
(2)采樣值:若采用12位A/D轉換,2型表0—10mA對應0-4095,3型表0-20mA對應819-4095
(3)工程量:采樣數據變換成工程量的系數;
(4)報警限:指定最大最小值實時數據庫組態軟件,即報警的上、下限;
(5)變化速率限:指定參數變化速率的極限值;
經過對各種不同數據的典型屬性的抽象歸納,本文定義了數據庫變量統一的存儲結構,下面是數據庫中的數據模型。
Typedef struct tagTagParam{
Char Name[ name_length];//變量名稱
Chardescribe[name_describe];//變量描述
Int index; //變量序號
Unit type;//變量類型
Unit method;//轉換方式
Word access; //讀寫權限
Attr attr;// 變量屬性(類型,訪問權限,轉換方式)
Long minvalue;//最小值
Long maxvalue;//最大值
Double slope;//變換系數(斜率)
Double intercept;//遷移量(截距)
Rtdata rtdata;//實時數據
Void phisdata;//歷史數據緩沖區指針
Void address;//報警入口地址
} tagparam;
數據庫變量的屬性成員(attr)包括下列信息:
(1)變量的數據類型:整數類型、實數類型、布爾類型或字符串類型;
(2)變量的轉換方式:不變換、線性變換、平方根變換、邏輯取反變換;
(3)變量的訪問權限:只讀或讀寫。
為了節省空間,數據庫變量的屬性信息由一個位結構存儲,其定義如下:
Typedef struct tagattr{
Word type:3//類型
Method 3;// 轉換方式
Access 1;//訪問權限
Unused 9;// 保留
}attr;
實時數據庫以及工程變換則使用聯合存儲,這樣就能滿足保存不同類型的數據值的要求。聯合的定義如下:
Typedef union tagrtdata{
Long dvalue;
Double fvalue;
Bool bvalue;
}rtdata
4.結束語
實時數據庫結構和功能的規劃設計是工控組態軟件設計的核心,本文在分析實時數據庫的應用特點和關鍵技術的基礎上提出了一個具有普遍意義的實時數據庫模型及其體系結構。實時數據庫技術必將成為一個新的數據庫研究方向,有廣闊的發展空間。
參考文獻
1.馬國華監控組態軟件及其應用2001
2.殷民.舒堅基于ODBC的CiscoSecure ACS認證數據庫的設計與實現[期刊論文]-微計算機信息 2006(22)
3.康一梅嵌入式軟件設計2007
4.彭江平.黃萬艮c++語言及面向對象程序設計 2004
5.丁偉新型DCS組態軟件實時數據庫研究與開發 2009
數據庫軟件范文3
【關鍵詞】數據庫設計;軟件工程;作用分析
1軟件工程技術的相關背景和基本概念及原理
1.1軟件工程技術概述
軟件工程技術是一種新興的信息工程技術,現已被廣泛的運用在人們生產和生活的各個領域。軟件工程技術的開發與應用,顯著的提高了計算機水平和推動了科學技術的發展,將軟件工程技術運用到數據庫的設計過程中也是非常常見的。傳統的軟件開發從某種意義上來說就是一種從“高層概念”到“低層概念”的映射,以實現高層邏輯轉變為低層邏輯。但是就大型軟件系統而言,軟件的開發工作涵蓋的內容和范圍更多、更廣,包含了技術人員、相關技術、開發途徑以及成本和進度等許多方面,所以可以將軟件工程技術綜合定義為是一類可以用來滿足客戶需求并以軟件產品和工程為對象的學科,其應用原理包括計算機科學理論和工程管理原則,主要內容是設計模式、程序語言設計和數據庫等方面。早期的軟件工程技術開發模型主要為瀑布式,隨著科學技術,尤其是計算機技術的不斷發展,其開發模型已經逐步演變成為螺旋式的迭代開發,再到目前的軟件工程技術敏捷開發,軟件技術不斷的發展和完善,越來越成熟。當然,不管是處于哪個時期,軟件工程技術都要遵守采用科學的手段進行管理,同時通過合作的形式來提高軟件生產效率的基本原則,國內外的許多專家和學者通過軟件工程技術發展的過程總結出了許多新的軟件開發方法,并由此誕生了軟件工程學。軟件工程學是對軟件工程技術相關理論知識的歸納與總結,很大程度上解改善了軟件工程技術的現狀,但是由于軟件工程學科本身具有理論性強、實踐局限性較大的特性,致使軟件危機仍然活躍在人們的生產生活中。近年來,通過不斷的研究與探索,軟件工程領域出現了許多新的思想和方法,像軟件再開發利用、軟件自動生成器等等,推動著軟件工程技術向自動化和標準化方向發展。
1.2軟件設計中的工程技術分析
軟件設計中的工程技術主要包含的是軟件的生存周期、規格說明書以及軟件設計。其中軟件的生存周期主要由要求分析、規格說明、設計、編碼、測試和維護這六個環節組成。前兩個環節主要是根據客戶的要求來進行的,要求達到明確軟件設計目的的任務,后面四個環節是針對計算機系統而言的,要求通過各種技術手段來實現由之前兩個環節確定的軟件設計目的。軟件開發的最終目的是為人們的生活服務,所以在進行軟件設計的時候一定要嚴格執行軟件生存周期中的要求分析和規格說明,也就是說一定要按客戶的要求進行設計;規格說明書環節就是指把用戶的需求輸入并整理結果,從而得到軟件的具體規格說明;軟件設計環節就是通過計算機技術以及其它的一些硬件設備來實現規格說明書中的內容,最終實現軟件的開發。
2軟件工程技術在數據庫設計中的實際應用分析
2.1用于分析數據庫的可行性
使用軟件工程技術,結合既有的計算機技術及人工控制條件,對數據庫的經濟效益、技術以及操作方便性等方面進行考察,從而實現對數據庫設計任務可否完成的初步估計。在分析時要注意記錄分析結果,整理并書寫相關的可行性報告。
2.2用于制定數據庫的開發計劃
當數據庫可行性的分析工作結束后,結合可行性報告,如果認為該項目具備很強的可行性,則可以開始制定該數據庫的開發計劃。數據庫項目的開發計劃內容應該包括有關人員的組成、人員的分配、項目進度、項目驗收方式與驗收標準和開發過程中的重點環節等等。除此之外,要注重用戶界面的開發,只有方便、美觀且友好的用戶界面才會被客戶接受,所以在數據庫項目開發計劃中應該包括用戶界面的開發工作。
2.3用于分析數據庫系統的需求
將軟件工程技術運用于對數據庫需求的分析工作,分析的主要內容包括:數據的需求、運行環境的需求、系統性能的需求等等。通過分析數據庫的需求,可以了解建立數據庫需要的軟件配置標準和運行環境,從而為開發數據庫提供參照標準和數據支持。
2.4用于數據庫的設計階段
數據庫的設計和建立是數據庫系統的關鍵環節。數據庫的設計質量直接影響著數據庫系統的運行效率和效果。一個成功的數據庫軟件系統一方面可以簡化運算方式,提升運行效率,另一方面還可以幫助數據庫的用戶簡便快捷的獲取需要的信息,同時還需要保證數據庫中數據的完整性,為完成數據庫的設計提供便捷。設計數據庫的基本操作是分析。首先要分析數據庫的概念和結構,大致掌握用戶的具體需求,然后依據這些來擬定一個數據庫系統的實體聯系圖;其次是分析數據庫的邏輯結構,將理論中的E-R圖轉換為程序語言,以使其與DBMS系統相匹配,從而實現將實體之間關系轉化數據庫系統之間的關系。另外,數據庫系統的物理結構的設計內容應該包括數據的存取方法和數據的存取結構。通常,數據庫的物理結構設計分為兩個環節,其一是確定數據庫系統的物理結構,其二是評估該物理結構的運行效率,通過綜合考慮這兩個環節來對數據庫物理結構的合理性進行最終的評價。
2.5用于數據庫的詳細設計和概要設計
數據庫系統的詳細設計是設計程序框架,而不是編寫程序??偟膩碚f,數據庫系統的概要設計分為兩個階段:第一,制定數據庫系統的實施方案;第二進行軟件結構設計。
3總結
總而言之,將軟件工程技術應用與數據庫的設計具有重要的戰略意義,一方面可以提高數據庫設計的工作效率,另一方面還可以增加數據庫的靈活性和適應性。所以在軟件工程技術的實際應用中,要不斷的探索與研究,對其應用方式進行改進和完善,以保障數據庫的順利設計與建立。
參考文獻
[1]曹楊帆.數據庫設計中軟件工程技術的作用[J].電子技術與軟件工程,2016(03):202.
數據庫軟件范文4
關鍵詞:數據庫;軟件產業;大數據
中圖分類號:F124.3 文獻標志碼:A 文章編號:1673-291X(2013)15-0223-02
數據庫軟件是一種非常重要的基礎軟件,是中國信息化建設中需求量最大、應用最廣泛的軟件之一。經過三十多年的發展,國產數據庫軟件產業已經初具規模,國產數據庫軟件已經成功應用于政府、軍隊、教育、電力、金融、農業、衛生、交通、科技等許多行業。然而,中國數據庫軟件與國外主流數據庫軟件產品相比還存在很多差距。近年來,隨著大數據的興起,國產數據庫軟件企業面臨諸多機遇。
一、國產數據庫軟件產業發展情況
近年來,在國家軟件扶持政策、“核高基”重大專項以及政府采購等的支持下,國產數據庫軟件市場規模以20%以上的速度快速增長,國產數據庫軟件在中國數據庫軟件市場中的份額占比逐年提高。2012年,國產數據庫軟件市場整體規模達3.4億元,比2010年增長32%。國產數據庫軟件在中國數據庫軟件市場的占比約為8%,比2007年翻了一番。
人大金倉、達夢、神舟通用、南大通用等企業的國產數據庫軟件產品的功能和性能都有長足的進步,已經成功應用于政府、軍工、電信、電力、金融、教育等行業,并在政府、電信、電力等局部領域擊敗國外競爭對手。在電子政務領域,由于信息安全有保障、售后服務貼近用戶,國產數據庫軟件逐漸替代Oracle、DB2、Sybase、SQL Server等國外數據庫軟件,加快了政府部門軟硬件全國產化進程。
國產數據庫軟件在越來越多的行業得到應用。在軍工行業,神通數據庫已成功應用于火箭、神舟飛船等型號設計。在電力行業,國家電網調度通信中心采用了達夢數據庫作為基礎平臺。在電信行業,中國聯通統一綜合結算系統采用了神通海量數據管理整體解決方案。在金融行業,中國農業銀行、民族證券采用了人大金倉數據庫。
二、國產數據庫與國外數據庫的差距
雖然國產數據庫產業發展取得了長足的進步,但與歐美發達國家相比,在市場、技術、應用等方面還存在較大的差距。
從市場角度看,國產數據庫在市場宣傳方面做得還不夠,成功應用案例少。國內許多單位的CIO們對國產數據庫認知、認可程度低,采用國產數據庫的單位還很少。
從技術角度看,國產數據庫軟件企業研發投入少,核心技術人員少。Oracle每年研發投入10多億美元,而國產數據庫軟件企業的研發投入一般只有幾千萬元人民幣。Oracle公司的核心技術人員有五六百人,而國產數據庫軟件企業一般只有七八十人。在技術方面,國產數據庫比國外數據庫落后五至八年。
從應用角度看,在簡單應用方面,國產數據庫與國外數據庫沒有差別。兩者差距主要體現在高端應用領域,如電信、金融、社保等。這些高端應用的特點是“大用戶、大數據”。用戶特別多,并發量很大,數據海量。國產數據庫在關鍵技術、產品穩定性等方面與國外數據庫還有一定差距。
三、國產數據庫軟件產業發展對策
建議有關政府部門加強對數據庫軟件在軟件產業中的基礎性作用的認識,進一步加大對國產數據庫軟件研發的資金支持力度。在電子黨務、電子政務、軍隊信息化建設中,同等條件下優先采購國產數據庫軟件。對國產數據庫產品使用過程中出現的問題,應適度寬容。加強協調,注重引導,為國產數據庫軟件發展創造良好的環境。嚴格落實軟件知識產權保護制度,依法打擊盜版等各類侵權行為。鼓勵、支持國產數據庫軟件企業通過并購等方式進行產業鏈整合。支持符合條件的國產數據庫軟件企業上市融資。支持國產數據庫軟件企業開展面向“云計算”、“大數據”的數據庫產品研發和應用推廣。支持數據加工、聯機分析、數據挖掘等數據服務業發展,以帶動國產數據庫軟件產業的發展。國產數據庫軟件起步晚,但近年來發展速度較快,政府部門對國產數據庫軟件要有信心和耐心,要下定決心支持國產數據庫軟件產業的發展。
數據庫軟件范文5
數據庫重構不僅適用于新數據庫開發,也適用于正在進行維護和修改的現有數據倉庫。在數據庫重構過程中要高度結構化和安全化,確保被其支持的應用程序正常運行。出現如下情形時數據庫必須重構。
(1)有太多的行和列數據庫中的表展現了其在性能方面存在的問題,通常數據庫包含一些含有10多億行的表,像這種情形可能更適用于分段數據庫或系統記錄資料庫。
(2)出現多功能表和多用途列用于數據語義的列在很多情況下取決于上下文是否需要重構。例如,使用一個數據列存儲用戶生日還是雇員日期,取決于記錄指代的是一個用戶還是一個雇員。表缺乏內聚力,其中的一列不能完全明確用途,試圖存放來自多個不同實體的數據,這種情況下需對列進行處理。(3)存在冗余信息重復數據展現了數據不一致的可能性,例如,在多個源數據系統中客戶信息是重復的,解決數據重復是數據庫的功能之一。
(4)存在復雜的ETL現象當ETL包中存在太多流動路徑和復雜的變換節點時,故障排除和維護就變得困難。圍繞這些多用途的ETL對象,編寫測試用例會很困難,因此,建立簡單、單一用途的ETL對象集合并使用序對象鏈接它們是非??扇〉?。
(5)存在大型SQL模塊當一個SQL腳本或者預存程序視圖完成太多內容時,它經常會是一個很大的、包含多個SQL語句的腳本。這樣的腳本存在著代碼重復的風險,所以應該分解為一小組獨立的、高內聚低耦合的模塊。
(6)存在不符合的維度有兩個或兩個以上維度,并包含重疊數據的多維度數據模型會引起數據重復和不一致性,必須創造單一的、多功能的維度來避免這個問題。
(7)濫用物化視圖有索引的視圖或物化的視圖是現代關系型數據庫管理系統的一個很強大的功能。明智地使用,它們可以是數據存取和基表物理實現之間的一個有效緩沖區。然而,濫用物化視圖會嚴重地混淆數據庫設計。
(8)物化視圖利用不夠如果數據庫僅僅依賴訪問基表,那么就存在脆弱性的風險。也就是說,這些基表物理實現的輕微變化,會對這些基表的不同訪問器產生意想不到的效應。物化視圖的選擇需要在查詢性能、視圖維修成本和基表靈活性之間取得適當的平衡。
(9)過度依賴文檔數據庫中的表、列、腳本、預存程序、ETL模塊和其他組件,如果在沒有所附文件的情況下難以理解,那么表明它們可能需要重構。和軟件一樣,數據庫中的組件需要自我記錄和自我解釋。干凈的設計可以減少對文檔的需求。
2如何重構
(1)驗證重構是否適當首先應思考如下問題:①這個重構有意義嗎?②現在所做的修改真的需要嗎,是否可向后推遲?③修改后在哪些方面得到優化?
(2)選擇適當的重構一旦確定要進行重構,一定要選擇一個適當的重構。有時候需要評估對重構可能產生影響的數據模型等其他領域。例如,某一個項目團隊可能希望引入列在財務表中添加結余,但是沒有意識到客戶表中已經存在表示結余的列,在這種情況下,移動列將是一個最合適的重構。
(3)棄用原有的架構當用一個產出的數據倉庫重構一個數據模型時,可能需要建立一個過渡或折舊時期,確保所有BI應用能夠正常地工作。在此期間,原始架構和重構架構并行運行。一個BI應用使用原始架構或新架構,但不是兩個都使用。兩個架構的數據必須同步,以確保BI應用無論使用哪個架構都能正常工作。在折舊期,BI應用被修改,并從過時的架構移動到新的架構。最后,過時的架構下線,開始最終測試,確保沒有數據損壞。折舊的過程需要盡可能自動化,以確保重構期間無縫轉變。
(4)在之前、之中、之后測試安全更改數據模型的唯一方法是有一個健康的在任何時候均可運行和重復運行的測試組,并與更改緊密相連。在開始更改之前,要確保所有測試全部通過,并評估測試組的完整性,增加任何希望擁有的測試用例。測試BI應用數據架構的所有方式。此外,要創建一個測試組來驗證數據遷移策略。測試所有BI應用,確保它們在數據或者行為中不發生更改。最為重要的是,為新引入的架構更改增加新的測試,刪除過時或無關的測試。測試自動化是在整個數據庫重構過程中唯一可行的測試或復驗方法。
(5)修改數據庫架構可使用小的、高度凝聚的、腳本化的變化來實現已經計劃了的重構。使用測試驅動數據庫開發方法進行很小的測試,建立一個可以持續使用的回歸測試組。編寫完新代碼并通過新測試,檢查這些更改已經在版本控制系統中。
(6)遷移源數據許多重構需要把數據從舊架構遷移到新架構中,尤其當重構是一個產出的數據倉庫時。移動數據重構是專門針對此項而進行的設計。但有時候,如何提高數據質量是重構的一個目標,可進行一個或多個數據質量重構,例如,采用標準版本或者引入通用格式這樣的重構。數據遷移也應該編寫腳本,但其需要經過測試,以證明支持數據遷移。
(7)重構外部訪問程序通常這涉及讓BI應用適應新架構,但也有可能涉及修改訪問數據倉庫的自定義程序。修改這些外部程序需要遵循規范的重構步驟。
(8)運行所有測試所有測試都必須在重構前進行,所有在重構過程中添加的新測試也需要在完成重構之后全部通過。理想情況下,讓所有測試自動化進行,并且在重構期間重復第運行它們。
(9)控制版本確保向版本控制系統提交所有修改過的文件和新文件,包括任何新部署或修改過的腳本或ETL對象、測試數據、生成代碼、測試用例、文檔和模型。
(10)宣布重構向數據倉庫和商業智能團隊中的每個人宣傳重構。除了直接訪問數據倉庫內部架構的所有團體之外,確保所有人都正確地使用新架構。
3結論
數據庫軟件范文6
【關鍵詞】Oracle;高可用性;數據泵
0 引言
隨著船舶設備軟件的飛速發展,數據庫已經成為其組織和管理數據的必需成員。由于Oracle數據庫相對其他數據庫顯現出穩定性好、安全性高、數據處理性能強等優點,逐漸成為船舶設備軟件數據庫的首選。Oracle數據庫高可用方案往往需要資深的數據庫管理工程師的配合與維護,而船舶設備軟件的操作船員無法實現相關維護。根據Oracle數據庫的高可用方案的功能與使用方法,結合船舶設備的使用特性,提出了一套適用于船舶設備軟件的Oracle數據庫方案,對船舶設備軟件數據庫的應用具有一定的借鑒意義。
1 Oracle高可用方案概述
高可用性有兩種不同的含義,在廣義環境中是指整個系統的高可用性,在狹義方面一般指主機、服務的冗余。高可用性不僅包含了系統本身故障、應用層的故障、網絡故障、人為操作的錯誤等,還包含數據的冗余、容災及計劃的維護時間等。
1.1 Oracle RAC
RAC通過不同的節點使用一個或多個Oracle實例與一個數據庫連接,該數據庫存放于多個節點的公用存儲上,通過高速緩存合并技術使得集群中的每個節點都可以通過高速集群互聯高效的同步其內存高速緩存,從而最大限度的降低磁盤IO,并自動并行處理及均勻分布負載,當其中一個節點發生故障時,可以自動容錯和恢復能力來實現節點的故障切換,從而保證數據庫長時間的高效可用。
1.2 Oracle Data Guard
Data Guard一般包括兩套數據庫環境,一臺主要數據庫,一臺備用數據庫,與RAC不同的是只有一個節點處于活動狀態,所有應用都連接到主服務器上,只有當主服務器發生故障才考慮切換到備用服務器。Oracle Data Guard可以實現數據庫主機及存儲的完全冗余保護,該冗余甚至可以跨地域做成容災保護,是Oracle主推的容災產品。在這種模式下,主數據庫必須運行在歸檔模式下,以保證備用節點的數據一致性,因此該特性并不適合數據倉庫。
2 適用于船舶設備軟件的Oracle數據泵方案
Oracle數據泵方案利用Oracle數據泵技術,結合操作系統腳本與計劃任務,搭建一套適用于船舶設備軟件使用環境的數據庫方案。該方案以Oracle 10g數據庫與Solaris 10操作系統為例進行數據泵的搭建。
2.1 Oracle數據泵技術介紹
Oracle 10g的數據泵技術能夠幫助用戶將數據庫的數據和元數據快速移動到另一個Oracle數據庫中。數據泵導出是使用EXPDP工具將數據庫對象的數據或元數據導出到轉儲文件中;數據泵導入是使用IMPDP工具將轉儲文件中的數據或元數據導入到Oracle數據庫中。數據泵導入導出可以再數據庫用戶之間、數據庫之間進行數據的移動。
2.2 數據泵方案
使用兩臺數據庫服務器,分別安裝Oracle 10g數據庫,每臺服務器擁有獨立的存儲,一臺高配置的服務器作為主數據庫服務器,另外一臺作為備用數據庫服務器。
數據泵方案的基本內容如下:
(1)將主數據庫導入到備用數據庫的命令形成腳本,在備用數據庫所在操作系統通過計劃任務定期運行,而不需要對主數據庫服務器進行任何配置;
(2)在完成主數據庫導入到備用數據庫操作后,使用EXPDP工具將備用數據庫導出到備用數據庫服務器本地文件系統;
(3)每一天夜間對主數據庫進行數據泵導出,導到主數據庫服務器本地文件系統,在主備數據都出現故障時恢復數據使用;
(4)當系統管理員需要對數據庫進行及時備份時,可以直接調用備份腳本;
(5)編寫主數據庫自動啟動腳本,使主數據庫服務器開機后自動啟動數據庫服務,并啟動數據庫監聽;
(6)編寫主數據庫自動關閉腳本,使主數據庫服務器關機時自動關閉數據庫服務;
(7)編寫備用數據庫自動啟動腳本,使備用數據庫服務器開機后自動啟動數據庫服務,但不啟動備用數據庫的監聽程序;
(8)編寫備份數據庫自動關閉腳本,是備用數據庫服務器關機時自動關閉數據庫服務。
備用數據庫同步與備份腳本如圖1所示:
圖1 備用數據庫同步與備份腳本
在使用主數據庫時,主數據庫的監聽程序處于啟動狀態。當發生故障時,關閉主數據庫的監聽程序,啟動備用數據庫的監聽程序,令備用數據庫對外提供服務。
上述備用數據庫從主數據庫中同步數據的腳本運行周期需要適當地選取。不同的數據庫環境同步的時間是不相同的,從幾分鐘到幾十分鐘不等。如果在一次同步尚未結束時,又開始了另一個同步操作,雖然不會出現錯誤,但會出現排隊現象,主數據庫的性能也會降低。選擇同步的周期可以根據使用數據庫的頻率和新增數據的重要性來選取。
另外,數據泵方案使用的是Oracle數據庫的邏輯備份工具,解決的是數據庫數據失效的問題,對于物理文件的恢復不具有解決能力
3 數據泵方案的測試
3.1 測試環境與工具
測試環境的主數據庫機器選擇Sun Fire V490服務器、雙核1500MHz的CPU、8G內存,備數據庫機器選擇Dell OPTIPLEX780臺式機、2926MHz的CPU、2G內存。使用Quest Spotlight On Oracle測試工具監視Oracle數據庫服務性能,包括CPU、內存、網絡的使用情況;Benchmark Factory測試工具測試數據庫性能和擴展性,在非生產環境下模擬成千上萬用戶在實際數據庫上的事務處理。
3.2 測試內容
(1)在備用數據庫上運行腳本,一次將主數據庫scott用戶的所有對象導入備用數據庫。結果:導入成功,耗時4分鐘。
(2)在備用數據庫上運行腳本,僅將主數據庫scott用戶的表數據導入備用數據庫,導入數據量500M。結果:由于備用數據庫在做改變時不斷寫歸檔日志,當歸檔日志空間未滿時,耗時3分鐘;當歸檔日志空間已滿時,不能完成導入。
(3)將備用數據庫改為非歸檔模式,在備用數據庫上運行腳本,僅將主數據庫scott用戶的表數據導入備用數據庫,導入數據量為500M。結果:導入成功,備用數據庫在做改變時不再寫歸檔日志,耗時2分鐘。
(4)在主數據服務器上運行腳本,將主數據庫scott用戶的表數據導出到主數據庫服務器文件系統,即生成dump文件。結果:導出成功,耗時小于2分鐘。
(5)聯機重做日志設置為3組,每組3各成員,每個成員50M。聯機重做日志在備用數據庫所在操作系統上設置計劃任務,每3分鐘同步一次。結果:運行2天后,聯機重做日志寫入出現故障。
(6)聯機重做日志設置為7組,每組3個成員,每個成員200M。聯機重做日志在備用數據庫所在操作系統上設置計劃任務,每5分鐘同步一次。結果:運行8×24小時,正常運行。
3.3 測試結論
數據泵方案能夠滿足功能以及特定的性能需求,操作簡單。數據泵方案的同步過程會不斷的修改備用數據庫,產生大量重做日志,如果重做日志的組數較少,會導致一組日志尚未寫完,又一個寫操作已經來臨,可能導致重做日志寫失敗使重做日志損壞。因此備用數據庫要指定多組重做日志組,每組的成員不能太少,如果備用數據庫處于歸檔模式,很快歸檔空間就會裝滿導致數據庫無法啟動,因此備用數據庫處于非歸檔模式。
4 結束語
通過對Oracle數據泵方案的測試,此方案得到了驗證。Oracle數據泵方案能夠有效的滿足數據庫高可用性,同時兼顧方便船員的使用,充分考慮了不同的使用環境、不同使用需求,提高了設備軟件數據庫的可用性、可維護性。此方案在應用時,用戶應當根據具體需求,考慮調整同步的周期、數據庫日志的配置以及對應的備份策略等方面的問題。
【參考文獻】
[1]呂海波.Oracle內核技術揭密[M].機械工業出版社,2014,09:113-149.