㈠ 資料庫開發工程師的崗位職責
資料庫開發工程師的崗位職責
在當下社會,我們都跟崗位職責有著直接或間接的聯系,崗位職責是組織考核的依據。想必許多人都在為如何制定崗位職責而煩惱吧,以下是我收集整理的資料庫開發工程師的崗位職責,希望能夠幫助到大家。
資料庫開發工程師的崗位職責1
職責:
1、 負責資料庫倉庫模型設計及規劃,數據倉庫架構搭建和優化策略;
2、使用相關ETL工具和BI工具,支持中後台數據轉換模型和技術開發;
3、負責資料庫業務程序開發(包括腳本、函數、存儲過程等)和優化以及數據質量技術保障;
4、根據金融業務的理解和經驗,制定系統和資料庫標准化的日常維護和操作手冊;
5、編寫資料庫設計檔,進行sql代碼規范審核。
任職要求:
1、具有扎實的資料庫基礎知識,開發經驗3年以上;
2、熟練編寫存儲過程、函數、性能優化腳本,能獨立進行排錯、調優;
3、精通oracle或greenplum資料庫開發或管理,有OCP認證優先;
4、溝通能力強,語言表達清晰,思維嚴謹,細致認真,具有良好的團隊合作精神;
5、金融證券行業相關經驗優先。
資料庫開發工程師的崗位職責2
崗位描述:
1、進行業務系統資料庫的規劃、設計、實施,設計並優化資料庫物理建設方案;
2、對資料庫進行管理,負責資料庫應用系統的運營及監控;
3、業務系統資料庫的定期維護和異常處理;
4、對資料庫性能分析與調優,排錯,保證數據安全;
5、對資料庫進行定期備份、和按需恢復;
6、配合其他部門進行的數據處理、查詢,統計和分析工作。
任職資格:
1、計算機相關專業,本科以上學歷;
2、兩年以上相關工作經驗;
3、精通關系資料庫原理,熟悉資料庫系統的規劃、安裝、配置、性能調試;
4、精通sql腳本的編寫,有豐富的資料庫管理、運維調優經驗;
5、熟練使用資料庫管理、分析、設計工具;
6、快速處理系統突發事件的能力,較強的學習和創新能力;
7、良好的溝通能力、團隊合作精神。
資料庫開發工程師的崗位職責3
職責:
1、根據數據倉庫及BI項目的需求,制定ETL相關的設計方案和開發計劃,並進行後續的設計、實施、維護;
2、負責數據倉庫數據模型的開發,發布,測試工作;
3、負責多種類型的數據報表的研發工作,包括鑽取類報表,表格類報表,和圖形化報表的研發,測試和發布工作;
4、承擔數據抽取、清洗、轉化等數據處理程序開發。
任職要求:
1、計算機相關專業本科及以上學歷
2、精通數據倉庫的數據模型設計,熟悉ETL工具如DataStage,有3年以上的實際BI項目經驗;
3、精通Mysql/Oracle/SQLServer資料庫,精通SQL語言,熟練編寫存儲過程,掌握海量數據處理及資料庫性能優化;
4、熟悉Hadoop大數據技術框架及相關技術;
資料庫開發工程師的崗位職責4
職責:
1、參與需求調研,負責開展專項業務分析,數據開發工作;
2、負責數據支撐工作,從事資料庫開發,報表設計和實現;
3、負責相關資料庫設計的編寫等工作;
4、參與項目的實施,負責數據結果提交、測試反饋與優化;
5、運營及決策提供業務分析及數據支持;
6、參與建立採集、轉換、整合數據,與展現開發報表分析的數據設計流程,並應用於實際操作中。
任職資格:
1、本科以上學歷,計算機相關專業,掌握SQL語言,至少熟練使用過Sybase、DB2、Oracle等其中一種資料庫;
2、熟悉ETL的概念和流程,至少熟練使用過一種ETL工具(odi,informatica,kettle等);
3、系統學習過資料庫原理,對關系模型設計有一定認識更佳,熟練具備SQL語言、存儲過程的.編寫能力;
4、良好的邏輯思維能力,敏銳的數據洞察力,較強的總結歸納能力;
5、持有OCP認證、OCM、資料庫工程師、SPSS、SAS、CDA任意一種證書者優先;
6、熟悉db2和sybase者加分,有會計或審計經驗者加分。
資料庫開發工程師的崗位職責5
職責:
1、負責資料庫的安裝、配置、監控、實時備份、恢復和管理;
2、負責數據清理及系統間的數據遷移;
3、根據需要負責資料庫設計包括表結構、表、索引等的設計;
4、負責編寫SQL、觸發器、存儲過程等;
5、負責原有SQL優化,原有存儲過程維護。
工作要求:
1、2年以上資料庫開發或Java軟體開發經驗;
2、熟練使用Linux系統,熟悉表結構設計、SQL優化,熟練編寫存儲過程;
3、熟悉Oracle、Mysql資料庫運行機制、體系架構;
4、掌握Oracle資料庫維護,能對業務需求和故障及時反饋和處理;
5、具較強的責任心和學習能力,有團隊合作精神、溝通協調能力、承壓能力。
資料庫開發工程師的崗位職責6
職責:
1、參與項目需求分析,研究項目技術細節,進行系統框架和核心模塊的詳細設計;編寫相應的技術文檔;
2、根據公司要求規范,編寫相應的技術文檔;編制項目文檔、記錄質量測試結果
3、完成項目初始至終結的全部技術跟蹤協調工作
4、根據開發進度和任務分解完成軟體編碼工作,配合測試工程師進行軟體測試工作;
5、參與客戶溝通、項目需求調研分析並維持良好的客戶關系;編寫需求分析報告。
6、進行用戶現場軟體的部署和實施
7、完成公司領導交辦的其他工作。
崗位要求:
1、計算機相關專業,數學專業優先,本科以上學歷;
2、熟悉Oracle、Sqlserver等資料庫及SQL語言;
3、良好的團隊合作精神和社交技巧及溝通協調能力;
4、能適應經常出差。
;㈡ 想往Oracle資料庫方向發展.請教些問題
我就是運維的,搞運維知識得非常全面,Linux命令得全會,因為要用SQLPLUS,
要會資料庫備份,冷備份,熱備份,RMAN使用,數據導入導出,
ORACLE10G/11G 的操作,主要是表、索引、觸發器建立刪除,數據清理,熟悉SQL語句查詢
ORACLE性能調整,高可用搭建,standby搭建等。。。很多
㈢ oracle資料庫常用的維護方法有哪些
1、1、調整數據結構的設計。這一部分在開發信息系統之前完成,程序員需要考慮是否使用ORACLE資料庫的分區功能,對於經常訪問的資料庫表是否需要建立索引等。 2、2、調整應用程序結構設計。這一部分也是在開發信息系統之前完成,程序員在這一步需
㈣ 資料庫要怎麼維護
資料庫日常維護(參考)
資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分:
一、備份系統數據
SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取數據的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫設備上,而未完成的事務都被回退;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。
1、備份資料庫
每一個資料庫都應在創建之後卸出,從而提供一個裝入基點。在此之後按排定的時間周期表卸出。比如每周五卸出資料庫。對一般資料庫系統卸出資料庫周期建議為每周一次。
除了按計劃周期卸出資料庫之外,還需在每次運行沒有日誌的操作後卸出資料庫。例如:
·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢出);
·每次用 sp_dboption 允許 select into/bulk 做快速拷貝,或用 SELECT INTO 命令創建一個永久性的表,或使用了 WRITETEXT 命令。
卸出資料庫的命令為:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的資料庫名稱,mp_device 是卸出設備的名稱。用系統過程 sp_helpdevice 可以獲得設備的信息。
下面一條命令用來卸出資料庫 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、備份事務日誌
如果事務日誌與資料庫放在同一個設備上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的用戶資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的設備上,因此,可以用 DUMP TRAN 命令單獨備份日誌。
備份事務日誌的周期直接影響數據的恢復程度,因此建議每天備份。
備份事務日誌的命令格式為:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要備份事務的資料庫名稱,mp_device 是備份設備名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設備。
注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會刷新,而變得非常龐大。
對於 master 資料庫和小型資料庫每次運行 DUMP DATEBASE 之後應當運行 DUMP TRANsaction 命令刷新日誌 。
下面一條命令備份資料庫 db160 的事務日誌到備份設備上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、備份資料庫及其日誌間的相互作用
在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關系
如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:數據恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鍾內的數據損失。
但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。
二、萬一系統失敗時恢復資料庫系統
如果用戶資料庫存儲的設備失效,從而資料庫被破壞或不可存取,通過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的設備上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。
要恢復資料庫按如下步驟去做:
1、如果日誌存在於一個分離的設備上,用帶著 NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出被毀壞的或者不可存取的用戶資料庫事務日誌。
2、用下面的查詢檢查設備分配已毀壞資料庫的設備使用情況。必須為同一目的賦同樣的空間塊。
下面的查詢顯示了分配給資料庫 mydb 設備使用和尺寸情況:
SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = 「mydb」)
3、檢查查詢的輸出。在 segmap 列的 『3』代表數據分配,『4』代表日誌分配。size 列代表 2K 數據塊的數目。注意此信息的次序、使用和尺寸部分。例如,輸出為:
segmapSize
--------------------
310240//實際尺寸為:20M
35120//實際尺寸為:10M
45120//實際尺寸為:10M
31024//實際尺寸為:2M
42048//實際尺寸為:4M
4、用 DROP DATABASE 命令刪除毀壞設備上的資料庫。如果系統報錯,用DBCC DBREPAIR 命令的 DROPDB 選項。
5、刪除資料庫後,用 sp_dropdevice 刪除毀壞了的設備。
6、用 DISK INIT 初始化新的資料庫設備。
7、重建資料庫。用 CREATE DATABASE 命令從老的 sysusages 表拷貝所有的行,並包含第一邏輯設備。
對上例,命令為:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其餘入口。在此例中,在datadev1上分配更多的空間,命令為:
ALTER DATABASE mydb ON datadev1=2[page]
9、用 LOAD DATABASE 重新裝入資料庫,然後用 LOAD TRAN 裝入前面卸出的日誌。
LOAD DATABASE 命令語法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的語法是:
LOAD TRANsaction database_name
FROM mp_device
卸出資料庫和事務日誌的預設許可權歸資料庫所有者,且可以傳遞給其他用戶;裝載資料庫和事務的許可權也歸資料庫所有者,但不能傳遞。
二、產生用戶信息表,並為信息表授權;
系統維護人員的另一個日常事務是為用戶創建新的信息表,並為之授權。創建表以及為表授權的方法已經在講過,在此只將有關命令語法寫出來。
·創建表的命令為:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·刪除表的命令格式為:
DROP TABLE table_name
go
·為表授權的命令格式為:
GRANT
ON table_name TO user_name
go
·收回許可權的命令格式為
REVOKE
ON table_name FROM user_name
go
三、監視系統運行狀況,及時處理系統錯誤;
系統管理員的另一項日常工作是監視系統運行情況。主要有以下幾個方面:
1、監視當前用戶以及進程的信息
使用系統過程:sp_who
說明:該命令顯示當前系統所有注冊用戶及進程信息,如下表是某系統的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
從左向右依次顯示:進程號、當前狀態、注冊用戶名、主機名、佔用塊數、資料庫名以及當前命令。
如果監視時發現進程總數接近最大連接數(用系統過程:sp_configure 「user conn」 查看)時,應下掉不活動或無關進程,以保證系統正常運做;另外亦可監視非法用戶或用戶使用不屬於自己使用范圍的資料庫等情況。
2、監視目標佔用空間情況
使用系統過程:sp_spaceused
說明:該過程顯示行數、數據頁數以及當前資料庫中由某個目標或所有目標所佔用的空間。如下表是某資料庫日誌表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要監視的主要目標有:用戶資料庫、資料庫日誌表(syslogs)以及計費原始數據表等。如果發現佔用空間過大,對日誌表要進行轉儲;對其他目標則應擴充空間或清楚垃圾數據。
3、監視 SQL Server 統計數字
使用系統過程:sp_monitor
說明:sp_monitor 顯示SQL Server 的歷史統計數字,下表是某系統的統計數字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次給出該系統本次運行統計的上一次時間、本次時間、間隔秒數、CPU佔用、IO佔用、收發包情況、系統讀入寫出情況等信息
四、保證系統數據安全,周期更改用戶口令;
為保證系統數據的安全,系統管理員必須依據系統的實際情況,執行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
更改用戶口令是通過調用系統過程sp_password 來實現的。Sp_password 的語法為:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登錄口令(老口令),new_password是新口令,loginame是登錄名稱。
在網路搜索:資料庫日常維護(參考)
相 關 文 章
Sybase存儲過程的建立和使用
SYBASE dbcc
電信企業參與競爭的利器-數據倉庫和數據挖掘
SCOUNIX下磁帶機的安裝與備份
StoredProcere(存儲過程)編寫經驗和優化措施
細說SYBASE資料庫日誌
常見資料庫系統之比較 - SYBASE 和 SQL SERVER
SYBASE ASE FOR LINUX安裝及perl連接SYBASE
Sybase資料庫應用(一)
安裝Sybase ASE
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
vaela
㈤ Oracle資料庫無響應故障處理方式
Oracle資料庫無響應故障處理方式
Oracle資料庫無響應故障,簡單地講就是資料庫實例不能響應客戶端發起的請求,客戶端提交一個SQL後,就一直處於等待資料庫實例返回結果的狀態。更嚴重的現象是客戶端根本不能連接到資料庫,發起一個連接請求後,一直處於等待狀態。Oracle資料庫無響應故障怎麼處理呢?下面跟我一起來學習Oracle資料庫無響應故障的處理方法吧!
無響應的故障現象一般有以下幾種:
1.Oracle的進程在等待某個資源或事件
這種現象一般可以從V$SESSION_WAT、V$LATCH、V$LATCHHOLDER等動態視圖中檢查進程正在等待的資源或事件,而被等待的資源或事件,一直都不能被獲取,甚至是很長時間都不可獲得。如果這個正在等待的進程持有了其他的資源,則會引起其他的進程等待,這樣就很可能引起實例中大范圍的會話發生等待。由於進程在等待資源或事件時,通常都處於SLEEP狀態,消耗的CPU資源非常少(在等待latch時要稍微多消耗一些CPU資源),所以從OS來看,CPU的消耗並不高,甚至是非常低。
這種因為等待而引起的個別進程Hang,相對比較容易處理。
2. OracleProcess Spins
所謂Spin,就是指Oracle進程中的代碼在執行某個過程時,陷入了循環。在V$SESSION視圖中,往往可以看到Hang住的會話,一直處於“ACTIVE”狀態。對於這樣的會話,用“alter system kill session ‘sid,serial#’”命令也不能完全斷開會話,會話只能被標記為“killed”,會話會繼續消耗大量的CPU。進程Spins由於是在做循環,CPU的消耗非常大,從OS上明顯可以看到這樣的進程,通常會消耗整個CPU的資源。
而對於這樣的Hang住的會話,處理起來相對比較復雜,並且為了從根本上解決問題,需要超過DBA日常維護所需要的技能。
從故障范圍來看,無響應故障可以分為以下幾種情況:
1. 單個或部分會話(進程)Hang住
這種情況屬於小范圍的故障,業務影響相對較小,一般來說只會影響業務系統的個別模塊。在一個多應用系統的資料庫上面,如果Hang住的會話比較多,則影響的可能是其中的一個應用系統。這里有一個例外,如果Hang住的進程是系統後台進程,如pmon、smon等,則影響的范圍就非常大了,最終甚至會影響整個資料庫及所有應用系統。還有值得注意的是,即使是少部分會話Hang住,也要及時處理,否則極有可能會擴散到整個系統。
2. 單個資料庫實例Hang住
這種情況造成的影響非常大。在這個實例上的所有應用系統均受到嚴重影響,並且在找到根源並最終解決問題之前,資料庫實例往往須要重啟。
3. OPS或RAC中的多個實例或所有實例都Hang住
在這種情況下,即使是OPS或RAC,都已經沒辦法提供高可用特性了。使用這個資料庫的所有應用系統將不能繼續提供服務,這種情況往往須要重啟。
無響應故障成因分析
Oracle資料庫無響應,一般主要由以下幾種原因引起:
1. 資料庫主機負載過高,嚴重超過主機承受能力
比如應用設計不當,資料庫性能低下,活動會話數的大量增加,導致資料庫主機的負載迅速增加,資料庫不能正常操作,並最終Hang住;主機物理內存嚴重不足,引起大量的換頁,特別是在SGA中的內存被大量換出到虛擬內存時,資料庫實例往往就會Hang住。
2. 日常維護不當、不正確的操作引起資料庫Hang住
比如歸檔日誌的存儲空間滿,導致資料庫不能歸檔,引起資料庫Hang住;在一個大並發的繁忙的系
統上,對DML操作比較多的大表進行move、增加外鍵約束等操作也可能使系統在短時間內負載大幅升高,並引起資料庫系統Hang住;不正確的資源計劃(Resource Plan)配置,使進程得不到足夠的CPU等。
3. Oracle資料庫的Bug
幾乎每個版本都存在著會導致資料庫系統Hang住的Bug,這些Bug會在一些特定的條件下觸發,特別是在RAC資料庫中,引起資料庫Hang住的Bug比較多。
4. 其他方面的一些原因
比如在RAC資料庫中,如果一個節點退出或加入到RAC的過程中,當進行Resource Reconfiguration時,會使系統凍結一段時間,也有可能使系統Hang住。
以上所描述的幾種常見的會導致Oracle資料庫實例Hang住的原因中,大部分的情況是可以避免的,只要維護得當,一般不會出現這種故障。對於Oracle資料庫Bug所導致的資料庫無響應故障,由於是在特定的情況下才會觸發,所以如果能夠盡量對資料庫打上最新版本的補丁,並且熟悉當前版本中會導致系統Hang住的Bug以及觸發條件,就能夠最大限度地避免這種故障的發生,提高系統的可用性。
那麼,在資料庫Hang住的情況下,如何去分析並發現導致問題的根源?一方面,由於系統Hang住會導致業務系統不可用,為了能夠盡快地恢復業務,須快速地判斷問題所在,然後Kill掉引起故障的會話和進程,或者資料庫實例不得不重啟以迅速恢復業務;但另一方面,如果只是重啟資料庫或Kill會話和進程來解決問題,在很多情況下是治標不治本的辦法,在以後故障隨時可能會出現。如何在二者之間進行抉擇呢?對於資料庫Hang故障的處理,首先是盡可能地收集到系統Hang住時的狀態數據,然後盡快地恢復業務,恢復業務後分析收集到的數據,找到資料庫系統Hang住的真正原因,然後再進行相應的處理。下一節將詳細描述資料庫系統Hang住後的處理流程。
無響應故障處理流程
對於Oracle無響應故障的處理,我們可以按下圖所示的流程進行。
值得注意的是,上圖並不是一個完整的Oracle資料庫故障處理流程圖,只是處理Oralce資料庫無響應這一類特定的故障的流程,只列出了針對這一特定類型故障處理時的關鍵處理點。不過既然是故障,所以這類故障的處理流程與其他故障的處理流程,有著非常相似的地方。
下面是整個流程的詳細說明:
1. 在出現資料庫無響應故障後,首先確認系統的影響范圍,如上節所描述的',是部分業務系統或模塊還是所有的業務系統都受影響,是不是整個實例或多個實例都無響應。同時應詢問系統維護和開發人員,受影響的系統在出現故障前是否有過變動,包括主機硬體、操作系統、網路、資料庫以及應用等。有時一個細小的變動就可能導致出現資料庫Hang住這樣嚴重的故障。曾經遇到一個庫,應用只是修改了一個SELECT語句就導致了資料庫Hang住。
2. 為了避免由於網路、資料庫監聽或客戶端因素影響分析,建議都登錄到主機上進行操作。
3. 如果主機不能登錄(為了避免干擾流程主線,這里不討論如網路問題這樣也會導致不能連接的故障),嘗試關閉出現問題的業務系統,甚至是所有的業務系統。如果關閉了所有的業務系統之後,仍然不能連接,則只有考慮重新啟動資料庫主機。在資料庫主機重新啟動後,使用操作系統工具或OSW等長期監控操作系統的資源使用,同時監控Oracle資料庫的性能和等待等。
4. 登錄上主機後,先用top、topas等命令簡單觀察一下系統。看看系統的CPU使用、物理內存和虛擬內存的使用、IO使用等情況。
5. 使用SQLPLUS連接資料庫,如果不能連接,則只能從操作系統上觀察系統中是否有異常的現象,比如佔用CPU過高的進程。使用gdb、dbx等debugger工具對資料庫進行system state mp;使用strace、truss等工具檢查異常進程的系統調用;使用pstack、procstack等工具察看異常進程的call stack等。
6. 使用SQLPLUS連接上資料庫後,進行hanganalyze、system state mp等操作;或檢查等待事件、異常會話等正在執行的SQL等待。
7. 找到故障產生的原因,如果暫時找不到原因,盡量收集數據。
8.確良如果應用急須恢復,可通過Kill會話、重啟資料庫實例等方式,先恢復應用。
9. 根據最終診斷結果,對資料庫升級打補丁,或者修改應用等方式從根本上解決問題。
怎樣避免資料庫出現無響應故障
作為Oracle資料庫DBA,除了處理故障之外,更重要的是如何預防故障的發生。根據前面對資料庫無響應故障的成因分析,在日常的維護工作中,須做到以下幾點:
1. 進行正確的維護操作
很多的資料庫無響應故障都是由於不正確的維護操作引起的。應避免在業務高峰期做大的維護操作,比如像move、加主外鍵約束等會長時間鎖表的操作。如果的確需要,盡量使用正確的操作方法。比如用ONLINE方式重建索引;建主鍵、唯一鍵約束時先建索引,然後在建約束時指定新建的索引,等等。也就是保證系統的並發性、可伸縮性,避免系統串列操作的出現。
2. 優化應用設計,優化資料庫性能
為避免性能問題導致在業務高峰期資料庫不能及時有效處理來自業務的請求,甚至於完全Hang住。對於資料庫中存在串列訪問的部分進行優化,比如latch、enqueue,還包括不合理的sequence設計等。特別是在RAC資料庫中,嚴重串列訪問等待往往更容易引起嚴重的性能問題。優化應用設計,使資料庫具有更好的可伸縮性和並行處理能力,能夠有效地避免性能問題引起的資料庫Hang住。
3. 利用監控系統隨時監控系統負載
遇到系統負載過高,內存不足,OS中虛擬內存換頁很頻繁等情況時,及時採取措施;監控Oracle資料庫的核心進程,如pmon、smon等,看是否有異常,如過高的CPU消耗。出現異常應立即處理;監控歸檔空間和日誌切換;監控資料庫中的等待事件,比如是否有大量的enqueue、log file switch (archiving needed)、resmgr:become active等待事件等。
4. 為資料庫打上補丁
很多的無響應故障是由於Oracle的Bug引起的,資料庫DBA應關注當前版本中有哪些Bug會導致資料庫Hang住,盡量為資料庫打上解決這些Bug的補丁。
;㈥ Oracle資料庫服務方式
Oracle資料庫服務服務方
按照距離:有遠程的,現場的
按照次數:包年的,按次數的
具體的服務像,資料庫安全,資料庫日常維護,資料庫健康檢查,資料庫性能優化,資料庫升級,數據遷移,RAC安裝,資料庫規劃,數據集中,資料庫備份,歷史資料庫數據挖掘等這些,具體的你可以自己詳細咨詢了解一下。
㈦ 資料庫維護和管理是哪些內容
一般來說 維護的工作就是日常的監控和備份恢復工作。也有安裝,配置,啟動,關閉,優化的工作。可以查看你用的資料庫的管理員手冊,一般都有這樣的日常admin工作的清單。資料庫維護是指當一個資料庫被創建以後的工作都叫做資料庫維護。包括備份系統數據、恢復資料庫系統、產生用戶信息表,並為信息表授權、監視系統運行狀況,及時處理系統錯誤、保證系統數據安全,周期更改用戶口令。
㈧ 資料庫管理員工作的基本職責說明
資料庫管理員負責各系統數據的災備工作,研究事務所的數據和信息安全。下面是我整理的資料庫管理員工作的基本職責說明。
資料庫管理員工作的基本職責說明1
職責
1、負責資料庫管理系統的運維管理,完成資料庫安裝、監控、備份、測試、恢復等基本工作,從而保證資料庫管理系統的穩定性、安全性和高性能;
2、監視監控資料庫的警告日誌,定期做備份審查、歸檔和刪除;
3、監控資料庫的日常會話情況,及時發現異常會話進程並積極採取有效處理措施予以解決,從而避免對業務運營造成影響;
4、監控資料庫的碎片和剩餘表空間情況,及時掌握表空間的擴展速度以及剩餘空間分布情況,根據變化動態調整資料庫的存儲方案以優化資源使用;若有需要提前做出存儲介質擴容的方案規劃和未來存儲需求計劃;
5、關注資料庫管理系統SQL Server版本的升級信息和與SQL Server相關的漏洞補丁信息,在測試環境中確認不會對業務運營造成影響的前提下實施生產環境下的SQL Server版本升級和補丁補漏,並對整個升級補漏過程進行監控和日誌審查,確認升級補漏真正成功完成;
6、制定資料庫備份計劃,制定災難恢復計劃中的數據恢復相關要求並定期演練,確保災難出現時能對資料庫數據進行有效恢復;
7、對資料庫的備份策略要根據業務要求和實際情況進行更改,對資料庫的日常備份作業執行進行監控和狀態確認,對資料庫的備份數據進行驗證和介質存放管理,與資料庫的設計廠商保持聯絡和維持技術溝通;
8、制定資料庫用戶管理要求,建立資料庫底層結果和訪問模型,制定資料庫性能監控標准和指標;對通過資料庫管理系統進行的任何針對資料庫對象的更改進行統一管理;
9、使用SQL語句對資料庫進行管理維護和性能優化;
10、當發現不同用戶需求之間互相抵觸進而造成進程死鎖時,進行處理的同時協助相關人員協調用戶需求,配合應用系統的資料庫設計人員對系統資源進行合理分配;
11、負責資料庫管理系統的管理用戶批准和其對應的管理許可權設置,採取措施防止資料庫被未經授權的訪問和破壞;
12、協助有關部門配合相關崗位完成U9系統的項目實施和應用升級、治木軟體系統的項目實施和應用升級;
13、完成信息部經理交代的有關任務,協助公司各部門完成相關的工作;
任職要求
1、本科以上學歷,計算機相關專業,具備專業的計算機應用知識,年齡不限,性別不限,有SQL Server認證者(MCSA)優先;
2、熟悉SQL Server資料庫平台下的數據備份/數據恢復,了解資料庫性能監控和優化,掌握SQL代碼編寫,對資料庫安全性有一定認識,理解資料庫設計,理解索引設計、索引維護和查詢引擎, 懂得容量監控與規劃;
3、思維清晰,具備優秀的溝通理解能力;邏輯推算及動手能力強,有獨檔一面的工作能力,且能承受較大的工作壓力;
資料庫管理員工作的基本職責說明2
職責:
1.負責資料庫的安裝配置及升級改造,性能監控及優化,故障診斷和排除,數據遷移,資料庫備份、復制、鏡像等容災方案的制定和實施,以及資料庫的安全管理、帳戶許可權管理;
2.維護線上業務核心資料庫的7*24安全、穩定運行;
3.負責資料庫的架構規劃、評估、實施,實現高可用、可擴展架構;
4.熟悉MySQL的運行機制和體系架構, 精通/熟悉SQL,熟悉資料庫設計與優化;
5.對資料庫新增內容進行數據分析和挖掘;
任職要求:
1.熟悉資料庫管理工具,如Navicat等輕量化管理工具;
2.熟練使用MySql,Oracle等資料庫相關工具;
3.參與MYSQL腳本管理、SQL Advisor、數據質量管理等工具與平台的開發與實現;
4.至少熟悉java或Python中的一種開發語言
資料庫管理員工作的基本職責說明3
職責:
1、負責公司資料庫日常運行監控、管理和性能分析,並進行故障處理和優化。
2、快速處理解決資料庫系統運行中出現的故障和問題,保證業務數據安全、可用;
3、負責Oracle資料庫的日常運行維護、備份恢復、升級優化、擴容遷移和安全管理工作;
4、為架構/開發團隊提供Oracle資料庫相關的技術支持服務,包括對象設計、SQL編寫規范制定、指導、審核等;
5、負責Oracle資料庫平台架構和高可用方案的規劃設計工作,並通過分析業務發展趨勢,做出相應的容量規劃;
6、負責Oracle資料庫的業務數據分析與挖掘、性能分析與系統優化、問題跟蹤與管理;
7、負責系統軟、硬體的部署、監控以及調優,包括 JVM 的調優、中間件調優、底層硬體設備的優化;
8、撰寫並維護工作相關的資料庫設計文檔;
任職要求:
1、計算機或者相關專業本科畢業,5年以上ORACLE資料庫維護和優化經驗;
2、有大型在線交易系統和企業應用系統(例如:ERP、SRM、WMS等)資料庫規劃設計和優化經驗;
3、熟練安裝搭建資料庫伺服器及集群系統、雙機熱備,包括SQL Server和Oracle;
4、精通 Oracle資料庫原理和運行機制,具有豐富的管理與調優經驗;
5、精通RAC、Data Guard、OGG配置管理以及故障排除;
6、熟悉linux ,AIX環境下資料庫運行維護;熟悉VERITAS SF文件系統;
7、精通Oracle資料庫11g/12c分庫,分表,SQL解析,數據路由等。
8、為人正直,工作責任心強,良好的溝通和為人處事的能力、良好的團隊合作精神;
9、持有OCP證書;
10、擁有Ansible、python經驗者或擁有OCM等證書者優先考慮。
資料庫管理員工作的基本職責說明4
職責:
1、負責公司資料庫架構規劃、容量規劃、系統調優;
2、負責資料庫日常運維、故障處理,備份恢復、性能調優及補丁升級等;
3、規劃、設計、評審和優化資料庫設計方案;
4、配合研發制定資料庫技術方案,分庫分表策略,數據遷移方案 ;
5、指導開發人員完成資料庫建模、資料庫索引優化,資料庫操作語句優化;
任職要求:
1、計算機相關專業本科及以上學歷;
2、五年以上DBA相關經驗;
3、精通MySQL資料庫的在Linux下的安裝布署、開發維護、管理及性能調優;
4、熟悉MySQL存儲引擎InnoDB、能夠進行SQL語句和讀寫分離的優化分析/設計,並具有高並發下讀寫分離維護經驗。;
5、熟悉MySQL事務和鎖,能進行鎖分析和分析優化;
6、熟悉其他至少兩種關系型資料庫SQL Server/Oracle/Postgresql;
7、熟悉ETL概念及過程,有一定的存儲過程或ETL相關的開發經驗;
8、熟悉Linux,熟悉腳本編寫,有自動化經驗;掌握至少一門腳本語言(Shell、Python、Perl);
9、熟悉java開發優先考慮。
10、熟悉NoSql優先考慮。
資料庫管理員工作的基本職責說明5
職責:
1、負責系統資料庫(Oracle、Mysql為主)的資料庫規劃、部署、優化、故障排查;日常運維及管理工作;
2、負責資料庫的存儲規劃管理,協助系統規劃設計、防火牆等網路安全設備的安裝調試、故障排除、安裝、配置、升級與遷移;
3、負責公司項目數據備份策略制定、實施等相關信息安全工作;
4、負責制定和實施資料庫備份恢復策略;
5、負責資料庫監控,性能檢查和優化工作;
6、負責診斷、故障檢測和解決任何資料庫相關的問題,配合其他資料庫相關管理和維護工作。
7、配合開發人員及其他項目組開展日常技術支持、故障排查、系統日常維護
任職資格:
1、熟悉資料庫結構設計,對系統架構和資料庫理論有較好的理解;
2、熟悉Oracle或Mysql資料庫體系結構和性能優化;
3、熟悉SQL優化原理,具備較好的SQL優化能力;
4、熟悉一種或者多種主流的UNIX/LINUX系統;
㈨ 資料庫維護的資料庫維護內容
資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分: SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取數據的可能性。SQL Server 提供了兩種不同類型的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫設備上,而未完成的事務都被回退;另一類是人工完成的恢復,這是通過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。
1、備份資料庫
每一個資料庫都應在創建之後卸出,從而提供一個裝入基點。在此之後按排定的時間周期表卸出。比如每周五卸出資料庫。對一般資料庫系統卸出資料庫周期建議為每周一次。
除了按計劃周期卸出資料庫之外,還需在每次運行沒有日誌的操作後卸出資料庫。例如:
·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢出);
·每次用 sp_dboption 允許 select into/bulk 做快速拷貝,或用 SELECT INTO 命令創建一個永久性的表,或使用了 WRITETEXT 命令。
卸出資料庫的命令為:
DUMP DATABASE database_name
TO mp_device
database_name 是要卸出的資料庫名稱,mp_device 是卸出設備的名稱。用系統過程 sp_helpdevice 可以獲得設備的信息。
下面一條命令用來卸出資料庫 my_db :
DUMP DATABASE my_db
TO db_bk_dev
2、備份事務日誌
如果事務日誌與資料庫放在同一個設備上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的用戶資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的設備上,因此,可以用 DUMP TRAN 命令單獨備份日誌。
備份事務日誌的周期直接影響數據的恢復程度,因此建議每天備份。
備份事務日誌的命令格式為:
DUMP TRANsaction database_name
[TO mp_device]
[WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
其中 database_name 是要備份事務的資料庫名稱,mp_device 是備份設備名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設備。
注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會刷新,而變得非常龐大。
對於 master 資料庫和小型資料庫每次運行 DUMP DATEBASE 之後應當運行 DUMP TRANsaction 命令刷新日誌 。
下面一條命令備份資料庫 db160 的事務日誌到備份設備上:
DUMP TRANsaction db160
TO db_log_bk_dev
WITH TRUNCATE_ONLY
3、備份資料庫及其日誌間的相互作用
在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關系
如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:數據恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鍾內的數據損失。
但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。 如果用戶資料庫存儲的設備失效,從而資料庫被破壞或不可存取,通過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的設備上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。
要恢復資料庫按如下步驟去做:
1、如果日誌存在於一個分離的設備上,用帶著 NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出被毀壞的或者不可存取的用戶資料庫事務日誌。
2、用下面的查詢檢查設備分配已毀壞資料庫的設備使用情況。必須為同一目的賦同樣的空間塊。
下面的查詢顯示了分配給資料庫 mydb 設備使用和尺寸情況:
SELECT segmap,size FROM sysusages
WHERE dbid =
( SELECT dbid FROM sysdatabases WHERE name = 「mydb」)
3、檢查查詢的輸出。在 segmap 列的 『3』代表數據分配,『4』代表日誌分配。size 列代表 2K 數據塊的數目。注意此信息的次序、使用和尺寸部分。例如,輸出為:
segmapSize
--------------------
310240//實際尺寸為:20M
35120//實際尺寸為:10M
45120//實際尺寸為:10M
31024//實際尺寸為:2M
42048//實際尺寸為:4M
4、用 DROP DATABASE 命令刪除毀壞設備上的資料庫。如果系統報錯,用DBCC DBREPAIR 命令的 DROPDB 選項。
5、刪除資料庫後,用 sp_dropdevice 刪除毀壞了的設備。
6、用 DISK INIT 初始化新的資料庫設備。
7、重建資料庫。用 CREATE DATABASE 命令從老的 sysusages 表拷貝所有的行,並包含第一邏輯設備。
對上例,命令為:
CREATE DATABASE mydb
ON datadev1=20,datadev2=10
LOG ON logdev1=10
8、用 ALTER DATABASE 命令重建其餘入口。在此例中,在datadev1上分配更多的空間,命令為:
ALTER DATABASE mydb ON datadev1=2[page]
9、用 LOAD DATABASE 重新裝入資料庫,然後用 LOAD TRAN 裝入前面卸出的日誌。
LOAD DATABASE 命令語法是:
LOAD DATABASE database_name
FROM mp_device
LOAD TRANsaction 命令的語法是:
LOAD TRANsaction database_name
FROM mp_device
卸出資料庫和事務日誌的預設許可權歸資料庫所有者,且可以傳遞給其他用戶;裝載資料庫和事務的許可權也歸資料庫所有者,但不能傳遞。 系統維護人員的另一個日常事務是為用戶創建新的信息表,並為之授權。創建表以及為表授權的方法已經在講過,在此只將有關命令語法寫出來。
·創建表的命令為:
CREATE TABLE table_name
( column_1 datatype [NULL | NOT NULL | IDENTITY],
column_2 ……
)
go
ALTER TABLE table_name
ADD PRIMARY KEY (column_list)
go
·刪除表的命令格式為:
DROP TABLE table_name
go
·為表授權的命令格式為:
GRANT {ALL|permission_list}
ON table_name TO user_name
go
·收回許可權的命令格式為
REVOKE {ALL|permission_list}
ON table_name FROM user_name
go 系統管理員的另一項日常工作是監視系統運行情況。主要有以下幾個方面:
1、監視當前用戶以及進程的信息
使用系統過程:sp_who
說明:該命令顯示當前系統所有注冊用戶及進程信息,如下表是某系統的信息。
---------------------------------------------------------------
2SleepingNULL0MasterNETWORK HANDLE
3SleepingNULL0MasterDEADLOCK TUNE
4SleepingNULL0MasterMIRROR HANDLER
SLEEP
從左向右依次顯示:進程號、當前狀態、注冊用戶名、主機名、佔用塊數、資料庫名以及當前命令。
如果監視時發現進程總數接近最大連接數(用系統過程:sp_configure 「user conn」 查看)時,應下掉不活動或無關進程,以保證系統正常運做;另外亦可監視非法用戶或用戶使用不屬於自己使用范圍的資料庫等情況。
2、監視目標佔用空間情況
使用系統過程:sp_spaceused
說明:該過程顯示行數、數據頁數以及當前資料庫中由某個目標或所有目標所佔用的空間。如下表是某資料庫日誌表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNot avail32KB32KB0KBNot avail
日常要監視的主要目標有:用戶資料庫、資料庫日誌表(syslogs)以及計費原始數據表等。如果發現佔用空間過大,對日誌表要進行轉儲;對其他目標則應擴充空間或清楚垃圾數據。
3、監視 SQL Server 統計數字
使用系統過程:sp_monitor
說明:sp_monitor 顯示SQL Server 的歷史統計數字,下表是某系統的統計數字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May 13 2000 1:27PMMay 13 2000 3:01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3(2)
上表依次給出該系統本次運行統計的上一次時間、本次時間、間隔秒數、CPU佔用、IO佔用、收發包情況、系統讀入寫出情況等信息 為保證系統數據的安全,系統管理員必須依據系統的實際情況,執行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
更改用戶口令是通過調用系統過程sp_password 來實現的。Sp_password 的語法為:
sp_password caller_password,new_password [,loginame]
其中caller_password 是登錄口令(老口令),new_password是新口令,loginame是登錄名稱。
㈩ 如何保證oracle資料庫的安全性
資料庫安全性問題一直是圍繞著資料庫管理員的惡夢,資料庫數據的丟失
以及資料庫被非法用戶的侵入使得資料庫管理員身心疲憊不堪。本文圍繞數據
庫的安全性問題提出了一些安全性策略,希望對資料庫管理員有所幫助,不再
夜夜惡夢。資料庫安全性問題應包括兩個部分:
一、資料庫數據的安全
它應能確保當資料庫系統DownTime時,當資料庫數據存儲媒體被破
壞時以及當資料庫用戶誤操作時,資料庫數據信息不至於丟失。
二、資料庫系統不被非法用戶侵入
它應盡可能地堵住潛在的各種漏洞,防止非法用戶利用它們侵入數據
庫系統。
對於資料庫數據的安全問題,資料庫管理員可以參考有關系統雙機
熱備份功能以及資料庫的備份和恢復的資料。
以下就資料庫系統不被非法用戶侵入這個問題作進一步的闡述。
組和安全性:
在操作系統下建立用戶組也是保證資料庫安全性的一種有效方法。
Oracle程序為了安全性目的一般分為兩類:一類所有的用戶都可執行,
另一類只DBA可執行。在Unix環境下組設置的配置文件是/etc/group,
關於這個文件如何配置,請參閱Unix的有關手冊,以下是保證安全性的
幾種方法:
(1) 在安裝Oracle Server前,創建資料庫管理員組(DBA)而且
分配root和Oracle軟體擁有者的用戶ID給這個組。DBA能執
行的程序只有710許可權。在安裝過程中SQL*DBA系統許可權命令
被自動分配給DBA組。
(2) 允許一部分Unix用戶有限制地訪問Oracle伺服器系統,增加
一個由授權用戶組的Oracle組,確保給Oracle伺服器實用例
程Oracle組ID,公用的可執行程序,比如SQL*Plus,SQL*Fo
rms等,應該可被這組執行,然後該這個實用常式的許可權為
710,它將允許同組的用戶執行,而其他用戶不能。
(3) 改那些不會影響資料庫安全性的程序的許可權為711。
註:在我們的系統中為了安裝和調試的方便,Oracle資料庫中
的兩個具有DBA許可權的用戶Sys和System的預設密碼是manager。
為了您資料庫系統的安全,我們強烈建議您該掉這兩個用戶的
密碼,具體操作如下:
在SQL*DBA下鍵入:
alter user sys indentified by password;
alter user system indentified by password;
其中password為您為用戶設置的密碼。
Oracle伺服器實用常式的安全性:
以下是保護Oracle伺服器不被非法用戶使用的幾條建議:
(1) 確保$ORACLE_HOME/bin目錄下的所有程序的擁有權歸Oracle
軟體擁有者所有;
(2) 給所有用戶實用便程(sqiplus,sqiforms,exp,imp等)711權
限,使伺服器上所有的用戶都可訪問Oracle伺服器;
(3) 給所有的DBA實用常式(比如SQL*DBA)700許可權。Oracle伺服器
和Unix組當訪問本地的伺服器時,您可以通過在操作系統下把
Oracle伺服器的角色映射到Unix的組的方式來使用Unix管理服
務器的安全性,這種方法適應於本地訪問。
在Unix中指定Oracle伺服器角色的格式如下:
ora_sid_role[_dla]
其中
sid 是您Oracle資料庫的oracle_sid;
role 是Oracle伺服器中角色的名字;
d (可選)表示這個角色是預設值;
a (可選)表示這個角色帶有WITH ADMIN選項,
您只可以把這個角色授予其他角色,不能是其他用戶。
以下是在/etc/group文件中設置的例子:
ora_test_osoper_d:NONE:1:jim,narry,scott
ora_test_osdba_a:NONE:3:pat
ora_test_role1:NONE:4:bob,jane,tom,mary,jim
bin: NONE:5:root,oracle,dba
root:NONE:7:root
片語「ora_test_osoper_d」表示組的名字;片語「NONE」表示這
個組的密碼;數字1表示這個組的ID;接下來的是這個組的成員。前兩
行是Oracle伺服器角色的例子,使用test作為sid,osoper和osdba作
為Oracle伺服器角色的名字。osoper是分配給用戶的預設角色,osdba
帶有WITH ADMIN選項。為了使這些資料庫角色起作用,您必須shutdown
您的資料庫系統,設置Oracle資料庫參數文件initORACLE_SID.ora中
os_roles參數為True,然後重新啟動您的資料庫。如果您想讓這些角色
有connect internal許可權,運行orapwd為這些角色設置密碼。當您嘗
試connect internal時,您鍵入的密碼表示了角色所對應的許可權。
SQL*DBA命令的安全性:
如果您沒有SQL*PLUS應用程序,您也可以使用SQL*DBA作SQL查權
限相關的命令只能分配給Oracle軟體擁有者和DBA組的用戶,因為這些
命令被授予了特殊的系統許可權。
(1) startup
(2) shutdown
(3) connect internal
資料庫文件的安全性:
Oracle軟體的擁有者應該這些資料庫文件
($ORACLE_HOME/dbs/*.dbf)設置這些文件的使用許可權為0600:文件的
擁有者可讀可寫,同組的和其他組的用戶沒有寫的許可權。
Oracle軟體的擁有者應該擁有包含資料庫文件的目錄,為了增加
安全性,建議收回同組和其他組用戶對這些文件的可讀許可權。
網路安全性:
當處理網路安全性時,以下是額外要考慮的幾個問題。
(1) 在網路上使用密碼
在網上的遠端用戶可以通過加密或不加密方式鍵入密碼,
當您用不加密方式鍵入密碼時,您的密碼很有可能被非法用
戶截獲,導致破壞了系統的安全性。
(2) 網路上的DBA許可權控制
您可以通過下列兩種方式對網路上的DBA許可權進行控制:
A 設置成拒絕遠程DBA訪問;
B 通過orapwd給DBA設置特殊的密碼。
建立安全性策略:
系統安全性策略
(1) 管理資料庫用戶
資料庫用戶是訪問Oracle資料庫信息的途徑,因此,
應該很好地維護管理資料庫用戶的安全性。按照資料庫系統
的大小和管理資料庫用戶所需的工作量,資料庫安全性管理
者可能只是擁有create,alter,或drop資料庫用戶的一個
特殊用戶,或者是擁有這些許可權的一組用戶,應注意的是,只
有那些值得信任的個人才應該有管理資料庫用戶的許可權。
(2) 用戶身份確認
資料庫用戶可以通過操作系統,網路服務,或資料庫進行
身份確認,通過主機操作系統進行用戶身份認證的優點有:
A 用戶能更快,更方便地聯入資料庫;
B 通過操作系統對用戶身份確認進行集中控制:如果操作
系統與資料庫用戶信息一致,那麼Oracle無須存儲和管
理用戶名以及密碼;
C 用戶進入資料庫和操作系統審計信息一致。
(3) 操作系統安全性
A 資料庫管理員必須有create和delete文件的操作系統許可權;
B 一般資料庫用戶不應該有create或delete與資料庫相關文
件的操作系統許可權;
C 如果操作系統能為資料庫用戶分配角色,那麼安全性管理者
必須有修改操作系統帳戶安全性區域的操作系統許可權。
數據的安全性策略:
數據的生考慮應基於數據的重要性。如果數據不是很重要,那麼數
據的安全性策略可以稍稍放鬆一些。然而,如果數據很重要,那麼應該
有一謹慎的安全性策略,用它來維護對數據對象訪問的有效控制。
用戶安全性策略:
(1) 一般用戶的安全性
A 密碼的安全性
如果用戶是通過資料庫進行用戶身份的確認,那麼建議
使用密碼加密的方式與資料庫進行連接。這種方式的設置方
法如下:
在客戶端的oracle.ini文件中設置
ora_encrypt_login數為true;
在伺服器端的initORACLE_SID.ora文件中設置
dbling_encypt_login參數為true。
B 許可權管理
對於那些用戶很多,應用程序和數據對象很豐富的數據
庫,應充分利用「角色」這個機制所帶的方便性對許可權進行
有效管理。對於復雜的系統環境,「角色」能大大地簡化權
限的管理。
(2) 終端用戶的安全性
您必須針對終端用戶制定安全性策略。例如,對於一個有
很多用戶的大規模資料庫,安全性管理者可以決定用戶組分類,
為這些用戶組創建用戶角色,把所需的許可權和應用程序角色授
予每一個用戶角色,以及為用戶分配相應的用戶角色。當處理
特殊的應用要求時,安全性管理者也必須明確地把一些特定的
許可權要求授予給用戶。您可以使用「角色」對終端用戶進行權
限管理。
資料庫管理者安全性策略:
(1) 保護作為sys和system用戶的連接
當資料庫創建好以後,立即更改有管理許可權的sys和system用
戶的密碼,防止非法用戶訪問資料庫。當作為sys和system用戶
連入資料庫後,用戶有強大的許可權用各種方式對資料庫進行改動。
(2) 保護管理者與資料庫的連接
應該只有資料庫管理者能用管理許可權連入資料庫,當以sysdba
或startup,shutdown,和recover或資料庫對象(例如create,
drop,和delete等)進行沒有任何限制的操作。
(3) 使用角色對管理者許可權進行管理
應用程序開發者的安全性策略:
(1) 應用程序開發者和他們的許可權
資料庫應用程序開發者是唯一一類需要特殊許可權組完成自己
工作的資料庫用戶。開發者需要諸如create table,create
procere等系統許可權,然而,為了限制開發者對資料庫的操作,
只應該把一些特定的系統許可權授予開發者。
(2) 應用程序開發者的環境
A 程序開發者不應與終端用戶競爭資料庫資源;
B 用程序開發者不能損害資料庫其他應用產品。
(3) free和controlled應用程序開發
應用程序開發者有一下兩種許可權:
A free development
應用程序開發者允許創建新的模式對象,包括table,index,
procere,package等,它允許應用程序開發者開發獨立於其
他對象的應用程序。
B controlled development
應用程序開發者不允許創建新的模式對象。所有需要table,
indes procere等都由資料庫管理者創建,它保證了數據
庫管理者能完全控制數據空間的使用以及訪問資料庫信息的
途徑。但有時應用程序開發者也需這兩種許可權的混和。
(4) 應用程序開發者的角色和許可權
資料庫安全性管理者能創建角色來管理典型的應用程序開
發者的許可權要求。
A create系統許可權常常授予給應用程序開發者,以到於
他們能創建他的數據對象。
B 數據對象角色幾乎不會授予給應用程序開發者使用的
角色。
(5) 加強應用程序開發者的空間限制
作為資料庫安全性管理者,您應該特別地為每個應用程
序開發者設置以下的一些限制:
A 開發者可以創建table或index的表空間;
B 在每一個表空間中,開發者所擁有的空間份額。應用程
序管理者的安全在有許多資料庫應用程序的資料庫系統
中,您可能需要一應用程序管理者,應用程序管理者應
負責以下的任務:
C 為每一個應用程序創建角色以及管理每一個應用程序
的角色;
D 創建和管理資料庫應用程序使用的數據對象;
E 需要的話,維護和更新應用程序代碼和Oracle的存儲
過程和程序包。