大型EAI项目中的ORACLE 数据库管理(ZT)
生活随笔
收集整理的這篇文章主要介紹了
大型EAI项目中的ORACLE 数据库管理(ZT)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
數(shù)據(jù)庫在大型EAI(企業(yè)應(yīng)用集成)項(xiàng)目中扮演著至關(guān)重要的角色。目前許多企業(yè)都迫切需要將其自身傳統(tǒng)的管理與運(yùn)作模式轉(zhuǎn)化為先進(jìn)、高效的信息化管理與運(yùn)作模式。在實(shí)施企業(yè)信息化的過程中,怎樣將該企業(yè)原有大量數(shù)據(jù)有機(jī)的結(jié)合起來以供應(yīng)用軟件使用是一件十分重要的事情。不夸張的說,數(shù)據(jù)庫是項(xiàng)目實(shí)施成敗的決定性因素之一,維護(hù)好數(shù)據(jù)庫、對其進(jìn)行有效的優(yōu)化使其在項(xiàng)目中充分發(fā)揮其作用正是我需要做的事情。EAI以下我們以O(shè)RACLE8.1.7為例介紹一下大型EAI項(xiàng)目中的數(shù)據(jù)庫管理問題。
維護(hù)數(shù)據(jù)庫
一般來說,數(shù)據(jù)庫的維護(hù)任務(wù)是由專職的DBA(數(shù)據(jù)庫管理員)來擔(dān)當(dāng),如果人員緊張也可以由有數(shù)據(jù)庫經(jīng)驗(yàn)的開發(fā)人員來兼職這項(xiàng)工作。數(shù)據(jù)庫管理員的職責(zé)包括以下幾點(diǎn):
1. 在項(xiàng)目初期參加需求分析工作,分析企業(yè)的數(shù)據(jù)情況;
2. 協(xié)同系統(tǒng)設(shè)計(jì)人員做好數(shù)據(jù)庫的設(shè)計(jì)工作;
3. 維護(hù)使用數(shù)據(jù)庫用戶的權(quán)限等,同是保證數(shù)據(jù)庫重數(shù)據(jù)及程序的一致性;
4. 定期備份數(shù)據(jù)庫;
5. 優(yōu)化數(shù)據(jù)庫各項(xiàng)參數(shù),使數(shù)據(jù)庫處于最優(yōu)的運(yùn)行狀態(tài);
1. 管理用戶
在數(shù)據(jù)庫的維護(hù)工作中管理用戶是一件很重要的事情,做好用戶·的管理不僅可以保證數(shù)據(jù)庫的安全性而且可以保證數(shù)據(jù)庫在項(xiàng)目實(shí)·施工程中和今后系統(tǒng)運(yùn)行中數(shù)據(jù)的一致性。
數(shù)據(jù)庫管理的工作是由專職的DBA(數(shù)據(jù)庫管理員)來負(fù)責(zé)的。由于項(xiàng)目的規(guī)模比較大,參與項(xiàng)目的角色自然會比較多,但一般可劃分為幾個大角色,即開發(fā)角色、測試角色、瀏覽角色。開發(fā)角色是指項(xiàng)目的程序開發(fā)人員,他們每人負(fù)責(zé)開發(fā)一個或多個模塊,需要對數(shù)據(jù)庫中和本模塊有關(guān)的數(shù)據(jù)進(jìn)行添加、修改、刪除,同時也會根據(jù)其需要在數(shù)據(jù)庫中建立相應(yīng)的trigger、procedure、package等,所以要給其分配connect和resource系統(tǒng)角色,必要時可以給其分配select_catalog_role角色,并根據(jù)每個人的需要分配對trigger、procedure、package等操作的權(quán)限,至于對象權(quán)限一定要將模塊相關(guān)的表的_delete、_update、_insert權(quán)限賦予相關(guān)的開發(fā)人員;測試角色是指項(xiàng)目的測試人員,他們每人負(fù)責(zé)的整個系統(tǒng)的一個或多個模塊進(jìn)行各個級別的測試,需要對數(shù)據(jù)庫中和本模塊有關(guān)的數(shù)據(jù)進(jìn)行添加、修改、刪除,一般情況下不需要對trigger、procedure、package的操作權(quán)限,至于對象權(quán)限可以根據(jù)需求要將模塊相關(guān)的表的_delete、_update、_insert權(quán)限賦予相關(guān)的測試人員;瀏覽角色是指項(xiàng)目中除開發(fā)角色、測試角色的其他角色,例如:項(xiàng)目經(jīng)理、需求分析人員、設(shè)計(jì)人員等,他們需要經(jīng)常查看數(shù)據(jù)庫中的數(shù)據(jù)及程序以便了解項(xiàng)目的情況和控制項(xiàng)目的進(jìn)度,可以賦予他們對數(shù)據(jù)和程序包的查看權(quán)限。
在權(quán)限的維護(hù)方面一定要慎重,應(yīng)該在項(xiàng)目進(jìn)展的不同階段及時清理過期的權(quán)限保證數(shù)據(jù)庫用戶的準(zhǔn)確性和一致性。
2 . 定期備份數(shù)據(jù)庫
Oracle數(shù)據(jù)庫是一種大型關(guān)系型的數(shù)據(jù)庫,可以存貯達(dá)到存貯TB的數(shù)據(jù),保證這些數(shù)據(jù)的安全尤其至關(guān)重要的,我們一直采用Oracle作為我們項(xiàng)目的數(shù)據(jù)庫系統(tǒng),在這里我們介紹一下Oracle數(shù)據(jù)庫的備份方法。Oracle的內(nèi)核提供數(shù)據(jù)庫的備份和恢復(fù)機(jī)制,SQL*DBA按表空間進(jìn)行數(shù)據(jù)的備份和恢復(fù)。Oracle提供兩種方式:備份恢復(fù)和向前滾動,保證意外故障恢復(fù)數(shù)據(jù)庫的一致性和完整性。
1. 份恢復(fù)方式
對數(shù)據(jù)庫的某個一致狀態(tài)建立副本,并儲存在介質(zhì)上脫機(jī)保存,以此作為數(shù)據(jù)庫恢復(fù)的基礎(chǔ)。現(xiàn)以O(shè)racle實(shí)用程序Export/Import來介紹備份恢復(fù)方式。
Export/Import是Oracle提供的兩個互補(bǔ)性程序,即卸載和裝載。它們既完成數(shù)據(jù)庫與操作系統(tǒng)文件的互為轉(zhuǎn)載,同時可以有效地回收數(shù)據(jù)庫的碎片,提供不同版本間Oracle 數(shù)據(jù)傳送的手段,進(jìn)行不同用戶間的數(shù)據(jù)傳送。
Export數(shù)據(jù)卸載,將數(shù)據(jù)從Oracle寫到指定的操作系統(tǒng)文件進(jìn)行備份。卸載的對象、內(nèi)容與數(shù)量有三種模式:TABLE MODE(表模式)、USER MODE(用戶模式)、FULL DATABASEM ODE(所有數(shù)據(jù)庫模式)。使用方式既可用交互方式,也可采用命令行方式,以關(guān)鍵字=值 將所需信息在命令行中逐一描述來進(jìn)行卸載。Export要求用戶具有CONNECT或DBA特權(quán)。
Import與Export互逆,將操作系統(tǒng)文件重新裝載至Oracle數(shù)據(jù)庫中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特權(quán),且可選擇部分或全部裝入。
Export/Import非常方便,系統(tǒng)開銷小,它的限制是輸出的操作系統(tǒng)文件采用專門的壓縮方式存放,僅提供給Import使用。
也可采用SQL*PLUS和SQL*LOADER實(shí)用工具進(jìn)行備份。使用SQL*PLUS的SPOOL命令通過脫機(jī)定向輸出,使用PLUS格式化結(jié)果,形成指定格式的ASCII文件,需要時可用SQL*LOADER 進(jìn)行加載。它的方便之處是ASCII文件可以編輯,可方便地加載至其他數(shù)據(jù)庫(如FoxPro、 Sybase中)。
2. 前滾動方式
Oracle提供向前滾動方式,使建立備份后成功的事務(wù)不會丟失。恢復(fù)的基礎(chǔ)是數(shù)據(jù)庫的某個一致性狀態(tài)(即方式1完成的備份恢復(fù)),恢復(fù)的依據(jù)是存檔的重作記錄文件。啟動重作記錄文件方法如下:
(1)啟動Oracle;
(2)連接Oracle:CONNECT SYSTEM/PASSWORD;
(3)啟動ARCHIVE LOG。
出現(xiàn)介質(zhì)故障時,可用SQL*DBA的RECOVER命令,利用存檔的重作記錄文件恢復(fù)一個或多個表空間。RECOVER命令對DATABASE或TABLASPACE進(jìn)行恢復(fù)。前者要求SQL*DBA START UP已被排斥方式裝載且未被打開; 后者對無活躍回退段的表空間執(zhí)行脫機(jī),要求數(shù)據(jù)庫已裝載且被打開。
由于向前滾動方式恢復(fù)的依據(jù)是存檔的重作記錄文件,因而系統(tǒng)開銷大,但恢復(fù)的是建立備份以后的成功事務(wù),所以恢復(fù)的程度更高、更完備。
3.優(yōu)化數(shù)據(jù)庫
優(yōu)化策略
---保證數(shù)據(jù)庫能在最佳的性能狀態(tài)下運(yùn)行對于整個項(xiàng)目來說是至關(guān)重要的,在開發(fā)工作開始之前就應(yīng)該考慮數(shù)據(jù)庫的優(yōu)化策略。優(yōu)化策略一般包括服務(wù)器操作系統(tǒng)參數(shù)調(diào)整、數(shù)據(jù)庫參數(shù)調(diào)整、網(wǎng)絡(luò)性能調(diào)整、應(yīng)用程序SQL語句分析及設(shè)計(jì)等幾個方面,其中應(yīng)用程序的分析與設(shè)計(jì)是在信息系統(tǒng)開發(fā)之前完成的。
----分析評價Oracle數(shù)據(jù)庫性能主要有數(shù)據(jù)庫吞吐量、數(shù)據(jù)庫用戶響應(yīng)時間兩項(xiàng)指標(biāo)。數(shù)據(jù)庫用戶響應(yīng)時間又可以分為系統(tǒng)服務(wù)時間和用戶等待時間兩項(xiàng),即:
----數(shù)據(jù)庫用戶響應(yīng)時間=系統(tǒng)服務(wù)時間+用戶等待時間
----因此,獲得滿意的用戶響應(yīng)時間有兩個途徑:一是減少系統(tǒng)服務(wù)時間,即提高數(shù)據(jù)庫的吞吐量;二是減少用戶等待時間,即減少用戶訪問同一數(shù)據(jù)庫資源的沖突率。
----數(shù)據(jù)庫性能優(yōu)化包括如下幾個部分:
----1. 調(diào)整數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 這一部分是我們在開發(fā)整個系統(tǒng)之前要做的事情,開發(fā)人員需要考慮是否使用Oracle數(shù)據(jù)庫的分區(qū)功能,對于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引等等。
----2. 調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì) 這一部分也是我們在開發(fā)整個系統(tǒng)之前要做的事情。開發(fā)人員在這一步需要考慮應(yīng)用程序使用什么樣的體系結(jié)構(gòu),是使用傳統(tǒng)的Client/Server兩層體系結(jié)構(gòu),還是使用Browser/Web/Database的三層體系結(jié)構(gòu)。不同的應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫資源是不同的。在這里我們選擇Client/Server模式。
----3. 調(diào)整數(shù)據(jù)庫SQL語句 數(shù)據(jù)庫端應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫中的SQL語句執(zhí)行,因此SQL語句的執(zhí)行效率最終決定了Oracle數(shù)據(jù)庫的性能。 Oracle公司提供了Oracle語句優(yōu)化器(Oracle Optimizer)和行鎖管理器(Row-Level Manager)來調(diào)整優(yōu)化SQL語句,這兩者都是非常好的優(yōu)化工具。
----4. 調(diào)整服務(wù)器內(nèi)存分配 內(nèi)存分配是在信息系統(tǒng)運(yùn)行過程中優(yōu)化配置的。數(shù)據(jù)庫管理員根據(jù)數(shù)據(jù)庫的運(yùn)行狀況不僅可以調(diào)整數(shù)據(jù)庫系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大小,而且還可以調(diào)整程序全局區(qū)(PGA區(qū))的大小。
----5. 調(diào)整硬盤I/O 這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫管理員可以將組成同一個表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O 負(fù)載均衡。
----6. 調(diào)整操作系統(tǒng)參數(shù) 例如:運(yùn)行在Unix操作系統(tǒng)上的 Oracle數(shù)據(jù)庫,可以調(diào)整Unix數(shù)據(jù)緩沖區(qū)的大小、每個進(jìn)程所能使用的內(nèi)存大小等參數(shù)。
----實(shí)際上,上述數(shù)據(jù)庫優(yōu)化措施之間是相互聯(lián)系的。Oracle 數(shù)據(jù)庫性能惡化的表現(xiàn)基本上都是用戶響應(yīng)時間比較長,需要用戶長時間的等待。而性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結(jié)果,這就需要數(shù)據(jù)庫管理員有比較全面的計(jì)算機(jī)知識,能夠敏感地察覺到影響數(shù)據(jù)庫性能的主要原因所在。另外,良好的數(shù)據(jù)庫管理工具對于優(yōu)化數(shù)據(jù)庫性能也是很重要的。
性能優(yōu)化工具
---- 下面介紹幾種Oracle數(shù)據(jù)庫常用的數(shù)據(jù)庫性能優(yōu)化工具:
----1. Oracle數(shù)據(jù)庫在線數(shù)據(jù)字典 Oracle在線數(shù)據(jù)字典能夠反映出Oracle的動態(tài)運(yùn)行情況,對于調(diào)整數(shù)據(jù)庫性能是很有幫助的。
----2. 操作系統(tǒng)工具 例如使用Unix操作系統(tǒng)的Vmstat、 Iostat等命令可以查看到系統(tǒng)級內(nèi)存和硬盤I/O的使用情況,這些工具能夠幫助管理員弄清楚系統(tǒng)瓶頸出現(xiàn)在什么地方。
----3. SQL語言跟蹤工具(SQL Trace Facility)
----SQL語言跟蹤工具可以記錄SQL語句的執(zhí)行情況,管理員可以使用虛擬表來調(diào)整實(shí)例,并使用SQL語句跟蹤文件調(diào)整應(yīng)用程序性能。SQL語言跟蹤工具將結(jié)果輸出成一個操作系統(tǒng)的文件,管理員可以使用TKPROF工具查看這些文件。
---- 4. Oracle Enterprise Manager(OEM) 這是一個圖形的用戶管理界面,用戶可以使用它方便地進(jìn)行數(shù)據(jù)庫管理而不必記住復(fù)雜的Oracle數(shù)據(jù)庫管理的命令。
----5. Explain Plan——SQL語言優(yōu)化命令 使用這個命令可以幫助程序員寫出高效的SQL語言。
4.系統(tǒng)性能評估
----信息系統(tǒng)的類型不同,需要關(guān)注的數(shù)據(jù)庫參數(shù)也是不同的。數(shù)據(jù)庫管理員需要根據(jù)自己的信息系統(tǒng)類型來著重考慮不同的數(shù)據(jù)庫參數(shù)。
----1. 在線事務(wù)處理信息系統(tǒng)(OLTP) 這種類型的信息系統(tǒng)一般需要有大量的_insert、_update操作,典型的系統(tǒng)包括民航機(jī)票發(fā)售系統(tǒng)、銀行儲蓄系統(tǒng)等。OLTP系統(tǒng)需要保證數(shù)據(jù)庫的并發(fā)性、可靠性和最終用戶的速度,這類系統(tǒng)使用的Oracle數(shù)據(jù)庫需主要考慮以下參數(shù):
數(shù)據(jù)庫回滾段是否足夠;
是否需要建立Oracle數(shù)據(jù)庫索引、聚集、散列;
系統(tǒng)全局區(qū)(SGA)大小是否足夠;
SQL語句是否高效。
----2. 數(shù)據(jù)倉庫系統(tǒng)(Data Warehousing) 這種信息系統(tǒng)的主要任務(wù)是從Oracle的海量數(shù)據(jù)中進(jìn)行查詢,以得到數(shù)據(jù)之間的某些規(guī)律。數(shù)據(jù)庫管理員需要為這種類型的Oracle數(shù)據(jù)庫著重考慮下述參數(shù):
是否采用B*索引或者Bitmap索引;
是否采用并行SQL查詢以提高查詢效率;
是否采用PL/SQL函數(shù)編寫存儲過程;
有必要的話,需要建立并行數(shù)據(jù)庫以提高數(shù)據(jù)庫的查詢效率。
5.系統(tǒng)參數(shù)的調(diào)整
----1. CPU參數(shù)
---- CPU是服務(wù)器的一項(xiàng)重要資源,服務(wù)器良好的工作狀態(tài)表現(xiàn)為在工作高峰時CPU的使用率高于90%。如果空閑時間CPU使用率就在90%以上,說明服務(wù)器缺乏CPU資源;如果工作高峰時CPU使用率仍然很低,則說明服務(wù)器CPU 資源還比較充足。
----使用操作命令可以看到CPU的使用情況,一般Unix操作系統(tǒng)的服務(wù)器,可以使用sar-u命令查看CPU的使用率;NT操作系統(tǒng)的服務(wù)器,可以使用NT的性能管理器來查看CPU的使用率。
----數(shù)據(jù)庫管理員可以通過查看v$sysstat數(shù)據(jù)字典中的 “CPU used by this session”統(tǒng)計(jì)項(xiàng)得知Oracle數(shù)據(jù)庫使用的CPU時間;查看“OS User level CPU time”統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)用戶狀態(tài)下的CPU時間;查看“OS System call CPU time” 統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)系統(tǒng)狀態(tài)下的CPU時間,操作系統(tǒng)總的CPU時間就是用戶狀態(tài)和系統(tǒng)狀態(tài)時間之和。如果Oracle數(shù)據(jù)庫使用的CPU時間占操作系統(tǒng)總CPU時間的90%以上,就說明服務(wù)器CPU基本上被Oracle數(shù)據(jù)庫使用著,這是合理的,反之,則說明服務(wù)器CPU被其他程序占用過多,Oracle數(shù)據(jù)庫無法得到更多的CPU時間。
---- 2. 內(nèi)存參數(shù)
----內(nèi)存參數(shù)的調(diào)整主要是指Oracle數(shù)據(jù)庫的系統(tǒng)全局區(qū)(SGA)的調(diào)整。SGA主要由3部分構(gòu)成:共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)。
----共享池由兩部分構(gòu)成:共享SQL區(qū)和數(shù)據(jù)字典緩沖區(qū)。共享SQL區(qū)是存放用戶SQL命令的區(qū)域,數(shù)據(jù)字典緩沖區(qū)則存放數(shù)據(jù)庫運(yùn)行的動態(tài)信息。
總結(jié)
在大型EAI項(xiàng)目的實(shí)施過程中,數(shù)據(jù)庫的維護(hù)是一項(xiàng)艱巨的任務(wù),用戶權(quán)限的管理、數(shù)據(jù)庫的定期備份、數(shù)據(jù)庫的優(yōu)化都是十分重要的環(huán)節(jié)。數(shù)據(jù)庫的維護(hù)不僅需要DBA的認(rèn)真負(fù)責(zé),也需要項(xiàng)目所有成員的積極配合,只有這樣才能保質(zhì)保量的滿足整個系統(tǒng)對數(shù)據(jù)的要求,保證項(xiàng)目實(shí)施成功。
http://middleware.csdn.net/page/a21326af-a868-443f-b3e0-d4338d7cfdd3
維護(hù)數(shù)據(jù)庫
一般來說,數(shù)據(jù)庫的維護(hù)任務(wù)是由專職的DBA(數(shù)據(jù)庫管理員)來擔(dān)當(dāng),如果人員緊張也可以由有數(shù)據(jù)庫經(jīng)驗(yàn)的開發(fā)人員來兼職這項(xiàng)工作。數(shù)據(jù)庫管理員的職責(zé)包括以下幾點(diǎn):
1. 在項(xiàng)目初期參加需求分析工作,分析企業(yè)的數(shù)據(jù)情況;
2. 協(xié)同系統(tǒng)設(shè)計(jì)人員做好數(shù)據(jù)庫的設(shè)計(jì)工作;
3. 維護(hù)使用數(shù)據(jù)庫用戶的權(quán)限等,同是保證數(shù)據(jù)庫重數(shù)據(jù)及程序的一致性;
4. 定期備份數(shù)據(jù)庫;
5. 優(yōu)化數(shù)據(jù)庫各項(xiàng)參數(shù),使數(shù)據(jù)庫處于最優(yōu)的運(yùn)行狀態(tài);
1. 管理用戶
在數(shù)據(jù)庫的維護(hù)工作中管理用戶是一件很重要的事情,做好用戶·的管理不僅可以保證數(shù)據(jù)庫的安全性而且可以保證數(shù)據(jù)庫在項(xiàng)目實(shí)·施工程中和今后系統(tǒng)運(yùn)行中數(shù)據(jù)的一致性。
數(shù)據(jù)庫管理的工作是由專職的DBA(數(shù)據(jù)庫管理員)來負(fù)責(zé)的。由于項(xiàng)目的規(guī)模比較大,參與項(xiàng)目的角色自然會比較多,但一般可劃分為幾個大角色,即開發(fā)角色、測試角色、瀏覽角色。開發(fā)角色是指項(xiàng)目的程序開發(fā)人員,他們每人負(fù)責(zé)開發(fā)一個或多個模塊,需要對數(shù)據(jù)庫中和本模塊有關(guān)的數(shù)據(jù)進(jìn)行添加、修改、刪除,同時也會根據(jù)其需要在數(shù)據(jù)庫中建立相應(yīng)的trigger、procedure、package等,所以要給其分配connect和resource系統(tǒng)角色,必要時可以給其分配select_catalog_role角色,并根據(jù)每個人的需要分配對trigger、procedure、package等操作的權(quán)限,至于對象權(quán)限一定要將模塊相關(guān)的表的_delete、_update、_insert權(quán)限賦予相關(guān)的開發(fā)人員;測試角色是指項(xiàng)目的測試人員,他們每人負(fù)責(zé)的整個系統(tǒng)的一個或多個模塊進(jìn)行各個級別的測試,需要對數(shù)據(jù)庫中和本模塊有關(guān)的數(shù)據(jù)進(jìn)行添加、修改、刪除,一般情況下不需要對trigger、procedure、package的操作權(quán)限,至于對象權(quán)限可以根據(jù)需求要將模塊相關(guān)的表的_delete、_update、_insert權(quán)限賦予相關(guān)的測試人員;瀏覽角色是指項(xiàng)目中除開發(fā)角色、測試角色的其他角色,例如:項(xiàng)目經(jīng)理、需求分析人員、設(shè)計(jì)人員等,他們需要經(jīng)常查看數(shù)據(jù)庫中的數(shù)據(jù)及程序以便了解項(xiàng)目的情況和控制項(xiàng)目的進(jìn)度,可以賦予他們對數(shù)據(jù)和程序包的查看權(quán)限。
在權(quán)限的維護(hù)方面一定要慎重,應(yīng)該在項(xiàng)目進(jìn)展的不同階段及時清理過期的權(quán)限保證數(shù)據(jù)庫用戶的準(zhǔn)確性和一致性。
2 . 定期備份數(shù)據(jù)庫
Oracle數(shù)據(jù)庫是一種大型關(guān)系型的數(shù)據(jù)庫,可以存貯達(dá)到存貯TB的數(shù)據(jù),保證這些數(shù)據(jù)的安全尤其至關(guān)重要的,我們一直采用Oracle作為我們項(xiàng)目的數(shù)據(jù)庫系統(tǒng),在這里我們介紹一下Oracle數(shù)據(jù)庫的備份方法。Oracle的內(nèi)核提供數(shù)據(jù)庫的備份和恢復(fù)機(jī)制,SQL*DBA按表空間進(jìn)行數(shù)據(jù)的備份和恢復(fù)。Oracle提供兩種方式:備份恢復(fù)和向前滾動,保證意外故障恢復(fù)數(shù)據(jù)庫的一致性和完整性。
1. 份恢復(fù)方式
對數(shù)據(jù)庫的某個一致狀態(tài)建立副本,并儲存在介質(zhì)上脫機(jī)保存,以此作為數(shù)據(jù)庫恢復(fù)的基礎(chǔ)。現(xiàn)以O(shè)racle實(shí)用程序Export/Import來介紹備份恢復(fù)方式。
Export/Import是Oracle提供的兩個互補(bǔ)性程序,即卸載和裝載。它們既完成數(shù)據(jù)庫與操作系統(tǒng)文件的互為轉(zhuǎn)載,同時可以有效地回收數(shù)據(jù)庫的碎片,提供不同版本間Oracle 數(shù)據(jù)傳送的手段,進(jìn)行不同用戶間的數(shù)據(jù)傳送。
Export數(shù)據(jù)卸載,將數(shù)據(jù)從Oracle寫到指定的操作系統(tǒng)文件進(jìn)行備份。卸載的對象、內(nèi)容與數(shù)量有三種模式:TABLE MODE(表模式)、USER MODE(用戶模式)、FULL DATABASEM ODE(所有數(shù)據(jù)庫模式)。使用方式既可用交互方式,也可采用命令行方式,以關(guān)鍵字=值 將所需信息在命令行中逐一描述來進(jìn)行卸載。Export要求用戶具有CONNECT或DBA特權(quán)。
Import與Export互逆,將操作系統(tǒng)文件重新裝載至Oracle數(shù)據(jù)庫中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特權(quán),且可選擇部分或全部裝入。
Export/Import非常方便,系統(tǒng)開銷小,它的限制是輸出的操作系統(tǒng)文件采用專門的壓縮方式存放,僅提供給Import使用。
也可采用SQL*PLUS和SQL*LOADER實(shí)用工具進(jìn)行備份。使用SQL*PLUS的SPOOL命令通過脫機(jī)定向輸出,使用PLUS格式化結(jié)果,形成指定格式的ASCII文件,需要時可用SQL*LOADER 進(jìn)行加載。它的方便之處是ASCII文件可以編輯,可方便地加載至其他數(shù)據(jù)庫(如FoxPro、 Sybase中)。
2. 前滾動方式
Oracle提供向前滾動方式,使建立備份后成功的事務(wù)不會丟失。恢復(fù)的基礎(chǔ)是數(shù)據(jù)庫的某個一致性狀態(tài)(即方式1完成的備份恢復(fù)),恢復(fù)的依據(jù)是存檔的重作記錄文件。啟動重作記錄文件方法如下:
(1)啟動Oracle;
(2)連接Oracle:CONNECT SYSTEM/PASSWORD;
(3)啟動ARCHIVE LOG。
出現(xiàn)介質(zhì)故障時,可用SQL*DBA的RECOVER命令,利用存檔的重作記錄文件恢復(fù)一個或多個表空間。RECOVER命令對DATABASE或TABLASPACE進(jìn)行恢復(fù)。前者要求SQL*DBA START UP已被排斥方式裝載且未被打開; 后者對無活躍回退段的表空間執(zhí)行脫機(jī),要求數(shù)據(jù)庫已裝載且被打開。
由于向前滾動方式恢復(fù)的依據(jù)是存檔的重作記錄文件,因而系統(tǒng)開銷大,但恢復(fù)的是建立備份以后的成功事務(wù),所以恢復(fù)的程度更高、更完備。
3.優(yōu)化數(shù)據(jù)庫
優(yōu)化策略
---保證數(shù)據(jù)庫能在最佳的性能狀態(tài)下運(yùn)行對于整個項(xiàng)目來說是至關(guān)重要的,在開發(fā)工作開始之前就應(yīng)該考慮數(shù)據(jù)庫的優(yōu)化策略。優(yōu)化策略一般包括服務(wù)器操作系統(tǒng)參數(shù)調(diào)整、數(shù)據(jù)庫參數(shù)調(diào)整、網(wǎng)絡(luò)性能調(diào)整、應(yīng)用程序SQL語句分析及設(shè)計(jì)等幾個方面,其中應(yīng)用程序的分析與設(shè)計(jì)是在信息系統(tǒng)開發(fā)之前完成的。
----分析評價Oracle數(shù)據(jù)庫性能主要有數(shù)據(jù)庫吞吐量、數(shù)據(jù)庫用戶響應(yīng)時間兩項(xiàng)指標(biāo)。數(shù)據(jù)庫用戶響應(yīng)時間又可以分為系統(tǒng)服務(wù)時間和用戶等待時間兩項(xiàng),即:
----數(shù)據(jù)庫用戶響應(yīng)時間=系統(tǒng)服務(wù)時間+用戶等待時間
----因此,獲得滿意的用戶響應(yīng)時間有兩個途徑:一是減少系統(tǒng)服務(wù)時間,即提高數(shù)據(jù)庫的吞吐量;二是減少用戶等待時間,即減少用戶訪問同一數(shù)據(jù)庫資源的沖突率。
----數(shù)據(jù)庫性能優(yōu)化包括如下幾個部分:
----1. 調(diào)整數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì) 這一部分是我們在開發(fā)整個系統(tǒng)之前要做的事情,開發(fā)人員需要考慮是否使用Oracle數(shù)據(jù)庫的分區(qū)功能,對于經(jīng)常訪問的數(shù)據(jù)庫表是否需要建立索引等等。
----2. 調(diào)整應(yīng)用程序結(jié)構(gòu)設(shè)計(jì) 這一部分也是我們在開發(fā)整個系統(tǒng)之前要做的事情。開發(fā)人員在這一步需要考慮應(yīng)用程序使用什么樣的體系結(jié)構(gòu),是使用傳統(tǒng)的Client/Server兩層體系結(jié)構(gòu),還是使用Browser/Web/Database的三層體系結(jié)構(gòu)。不同的應(yīng)用程序體系結(jié)構(gòu)要求的數(shù)據(jù)庫資源是不同的。在這里我們選擇Client/Server模式。
----3. 調(diào)整數(shù)據(jù)庫SQL語句 數(shù)據(jù)庫端應(yīng)用程序的執(zhí)行最終將歸結(jié)為數(shù)據(jù)庫中的SQL語句執(zhí)行,因此SQL語句的執(zhí)行效率最終決定了Oracle數(shù)據(jù)庫的性能。 Oracle公司提供了Oracle語句優(yōu)化器(Oracle Optimizer)和行鎖管理器(Row-Level Manager)來調(diào)整優(yōu)化SQL語句,這兩者都是非常好的優(yōu)化工具。
----4. 調(diào)整服務(wù)器內(nèi)存分配 內(nèi)存分配是在信息系統(tǒng)運(yùn)行過程中優(yōu)化配置的。數(shù)據(jù)庫管理員根據(jù)數(shù)據(jù)庫的運(yùn)行狀況不僅可以調(diào)整數(shù)據(jù)庫系統(tǒng)全局區(qū)(SGA區(qū))的數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)和共享池的大小,而且還可以調(diào)整程序全局區(qū)(PGA區(qū))的大小。
----5. 調(diào)整硬盤I/O 這一步是在信息系統(tǒng)開發(fā)之前完成的。數(shù)據(jù)庫管理員可以將組成同一個表空間的數(shù)據(jù)文件放在不同的硬盤上,做到硬盤之間I/O 負(fù)載均衡。
----6. 調(diào)整操作系統(tǒng)參數(shù) 例如:運(yùn)行在Unix操作系統(tǒng)上的 Oracle數(shù)據(jù)庫,可以調(diào)整Unix數(shù)據(jù)緩沖區(qū)的大小、每個進(jìn)程所能使用的內(nèi)存大小等參數(shù)。
----實(shí)際上,上述數(shù)據(jù)庫優(yōu)化措施之間是相互聯(lián)系的。Oracle 數(shù)據(jù)庫性能惡化的表現(xiàn)基本上都是用戶響應(yīng)時間比較長,需要用戶長時間的等待。而性能惡化的原因卻是多種多樣的,有時是多個因素共同造成了性能惡化的結(jié)果,這就需要數(shù)據(jù)庫管理員有比較全面的計(jì)算機(jī)知識,能夠敏感地察覺到影響數(shù)據(jù)庫性能的主要原因所在。另外,良好的數(shù)據(jù)庫管理工具對于優(yōu)化數(shù)據(jù)庫性能也是很重要的。
性能優(yōu)化工具
---- 下面介紹幾種Oracle數(shù)據(jù)庫常用的數(shù)據(jù)庫性能優(yōu)化工具:
----1. Oracle數(shù)據(jù)庫在線數(shù)據(jù)字典 Oracle在線數(shù)據(jù)字典能夠反映出Oracle的動態(tài)運(yùn)行情況,對于調(diào)整數(shù)據(jù)庫性能是很有幫助的。
----2. 操作系統(tǒng)工具 例如使用Unix操作系統(tǒng)的Vmstat、 Iostat等命令可以查看到系統(tǒng)級內(nèi)存和硬盤I/O的使用情況,這些工具能夠幫助管理員弄清楚系統(tǒng)瓶頸出現(xiàn)在什么地方。
----3. SQL語言跟蹤工具(SQL Trace Facility)
----SQL語言跟蹤工具可以記錄SQL語句的執(zhí)行情況,管理員可以使用虛擬表來調(diào)整實(shí)例,并使用SQL語句跟蹤文件調(diào)整應(yīng)用程序性能。SQL語言跟蹤工具將結(jié)果輸出成一個操作系統(tǒng)的文件,管理員可以使用TKPROF工具查看這些文件。
---- 4. Oracle Enterprise Manager(OEM) 這是一個圖形的用戶管理界面,用戶可以使用它方便地進(jìn)行數(shù)據(jù)庫管理而不必記住復(fù)雜的Oracle數(shù)據(jù)庫管理的命令。
----5. Explain Plan——SQL語言優(yōu)化命令 使用這個命令可以幫助程序員寫出高效的SQL語言。
4.系統(tǒng)性能評估
----信息系統(tǒng)的類型不同,需要關(guān)注的數(shù)據(jù)庫參數(shù)也是不同的。數(shù)據(jù)庫管理員需要根據(jù)自己的信息系統(tǒng)類型來著重考慮不同的數(shù)據(jù)庫參數(shù)。
----1. 在線事務(wù)處理信息系統(tǒng)(OLTP) 這種類型的信息系統(tǒng)一般需要有大量的_insert、_update操作,典型的系統(tǒng)包括民航機(jī)票發(fā)售系統(tǒng)、銀行儲蓄系統(tǒng)等。OLTP系統(tǒng)需要保證數(shù)據(jù)庫的并發(fā)性、可靠性和最終用戶的速度,這類系統(tǒng)使用的Oracle數(shù)據(jù)庫需主要考慮以下參數(shù):
數(shù)據(jù)庫回滾段是否足夠;
是否需要建立Oracle數(shù)據(jù)庫索引、聚集、散列;
系統(tǒng)全局區(qū)(SGA)大小是否足夠;
SQL語句是否高效。
----2. 數(shù)據(jù)倉庫系統(tǒng)(Data Warehousing) 這種信息系統(tǒng)的主要任務(wù)是從Oracle的海量數(shù)據(jù)中進(jìn)行查詢,以得到數(shù)據(jù)之間的某些規(guī)律。數(shù)據(jù)庫管理員需要為這種類型的Oracle數(shù)據(jù)庫著重考慮下述參數(shù):
是否采用B*索引或者Bitmap索引;
是否采用并行SQL查詢以提高查詢效率;
是否采用PL/SQL函數(shù)編寫存儲過程;
有必要的話,需要建立并行數(shù)據(jù)庫以提高數(shù)據(jù)庫的查詢效率。
5.系統(tǒng)參數(shù)的調(diào)整
----1. CPU參數(shù)
---- CPU是服務(wù)器的一項(xiàng)重要資源,服務(wù)器良好的工作狀態(tài)表現(xiàn)為在工作高峰時CPU的使用率高于90%。如果空閑時間CPU使用率就在90%以上,說明服務(wù)器缺乏CPU資源;如果工作高峰時CPU使用率仍然很低,則說明服務(wù)器CPU 資源還比較充足。
----使用操作命令可以看到CPU的使用情況,一般Unix操作系統(tǒng)的服務(wù)器,可以使用sar-u命令查看CPU的使用率;NT操作系統(tǒng)的服務(wù)器,可以使用NT的性能管理器來查看CPU的使用率。
----數(shù)據(jù)庫管理員可以通過查看v$sysstat數(shù)據(jù)字典中的 “CPU used by this session”統(tǒng)計(jì)項(xiàng)得知Oracle數(shù)據(jù)庫使用的CPU時間;查看“OS User level CPU time”統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)用戶狀態(tài)下的CPU時間;查看“OS System call CPU time” 統(tǒng)計(jì)項(xiàng)得知操作系統(tǒng)系統(tǒng)狀態(tài)下的CPU時間,操作系統(tǒng)總的CPU時間就是用戶狀態(tài)和系統(tǒng)狀態(tài)時間之和。如果Oracle數(shù)據(jù)庫使用的CPU時間占操作系統(tǒng)總CPU時間的90%以上,就說明服務(wù)器CPU基本上被Oracle數(shù)據(jù)庫使用著,這是合理的,反之,則說明服務(wù)器CPU被其他程序占用過多,Oracle數(shù)據(jù)庫無法得到更多的CPU時間。
---- 2. 內(nèi)存參數(shù)
----內(nèi)存參數(shù)的調(diào)整主要是指Oracle數(shù)據(jù)庫的系統(tǒng)全局區(qū)(SGA)的調(diào)整。SGA主要由3部分構(gòu)成:共享池、數(shù)據(jù)緩沖區(qū)、日志緩沖區(qū)。
----共享池由兩部分構(gòu)成:共享SQL區(qū)和數(shù)據(jù)字典緩沖區(qū)。共享SQL區(qū)是存放用戶SQL命令的區(qū)域,數(shù)據(jù)字典緩沖區(qū)則存放數(shù)據(jù)庫運(yùn)行的動態(tài)信息。
總結(jié)
在大型EAI項(xiàng)目的實(shí)施過程中,數(shù)據(jù)庫的維護(hù)是一項(xiàng)艱巨的任務(wù),用戶權(quán)限的管理、數(shù)據(jù)庫的定期備份、數(shù)據(jù)庫的優(yōu)化都是十分重要的環(huán)節(jié)。數(shù)據(jù)庫的維護(hù)不僅需要DBA的認(rèn)真負(fù)責(zé),也需要項(xiàng)目所有成員的積極配合,只有這樣才能保質(zhì)保量的滿足整個系統(tǒng)對數(shù)據(jù)的要求,保證項(xiàng)目實(shí)施成功。
http://middleware.csdn.net/page/a21326af-a868-443f-b3e0-d4338d7cfdd3
轉(zhuǎn)載于:https://www.cnblogs.com/chinhr/archive/2007/09/27/908260.html
總結(jié)
以上是生活随笔為你收集整理的大型EAI项目中的ORACLE 数据库管理(ZT)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡的安全码是什么?那些你不知道的事关
- 下一篇: 邮政公务卡怎么样?邮政公务卡优势介绍