Oracle DBA的一天
通過查詢基本視圖,確認數(shù)據(jù)庫和實例處于正常運行狀態(tài),可以對外提供數(shù)據(jù)服務(wù)。
查詢返回實例名稱、狀態(tài),正常狀態(tài)應(yīng)為Open。
輔助查詢,實例當(dāng)前會話數(shù)和啟動最高連接會話數(shù)量。
查詢數(shù)據(jù)庫連接數(shù)以實例和用戶分組。
查詢給定參數(shù)的設(shè)置值,示例參數(shù)缺省值為300,通常中等規(guī)模數(shù)據(jù)庫推薦設(shè)置為1000。
修改給定的初始化參數(shù),RAC環(huán)境需要注意SID參數(shù)。
為了解決特殊問題,有時需要設(shè)置以下劃線開頭的隱含參數(shù)。
示例關(guān)閉了11.2版本中引入的Cardinality Feedback - 基數(shù)反饋特性。
當(dāng)連接數(shù)據(jù)庫實例出現(xiàn)緩慢、掛起等現(xiàn)象,需要進行診斷和分析,甚至可能需要重新啟動數(shù)據(jù)庫實例。
示范命令,通過采集系統(tǒng)的Hang信息、系統(tǒng)狀態(tài)信息等,可以分析系統(tǒng)掛起的原因,間隔采樣,可以用于對比變化,輔助分析。
如果在數(shù)據(jù)庫關(guān)閉、啟動時遇到阻塞、掛起等,可以通過示范命令進行跟蹤,獲取跟蹤文件進行分析。
如果數(shù)據(jù)庫出現(xiàn)異常需要重新啟動,可以通過示范命令執(zhí)行檢查點、歸檔命令,然后嘗試以立即方式關(guān)閉數(shù)據(jù)庫。
如果立即方式不能順利關(guān)閉數(shù)據(jù)庫,強制的關(guān)閉方式為abort。示范命令可以通過分步驟的方式執(zhí)行數(shù)據(jù)庫啟動。
當(dāng)連接數(shù)據(jù)庫出現(xiàn)異常,需要檢測包括網(wǎng)絡(luò)連通性,監(jiān)聽器狀態(tài)等信息。
在安裝具有Oracle客戶端的環(huán)境,可以通過tnsping工具測試配置的服務(wù)名稱,觀察網(wǎng)絡(luò)是否連通以及響應(yīng)時間。
在數(shù)據(jù)庫服務(wù)器上,可以通過lsnrctl工具檢查監(jiān)聽狀態(tài)和服務(wù)信息,具體的監(jiān)聽服務(wù)名稱可以在最后定義修改。
在服務(wù)器上,可以通過adrci工具,顯示各類告警文件,檢查監(jiān)聽器日志,可以診斷監(jiān)聽問題。
日志狀態(tài)檢查檢查數(shù)據(jù)庫各類日志信息,確認數(shù)據(jù)庫實例、集群等是否出現(xiàn)錯誤、告警,如存在問題,則需要進一步分析和應(yīng)對。
2.1告警日志
根據(jù)示例找到告警日志,檢查實例是否存在 ORA- 錯誤提示等。11G:
12C:
在相應(yīng)路徑找到RAC集群日志,檢查是否存在錯誤提示信息等。
在相應(yīng)路徑找到ASM日志,檢查是否存在錯誤提示信息等。
獲取會話產(chǎn)生或全局轉(zhuǎn)儲位置,在診斷時需檢查最近日期文件內(nèi)容。
確保資源狀態(tài)顯示在線。
當(dāng)遇到 ORA- 錯誤,而數(shù)據(jù)庫的輸出信息不足時,可以采用errorstack進行跟蹤,采集更詳細的轉(zhuǎn)儲信息。
示例顯示了對ORA-600錯誤設(shè)置跟蹤,并關(guān)閉。
Oracle REDO日志是數(shù)據(jù)庫的核心組件,檢查其狀態(tài),維護其成員,監(jiān)控其歸檔,審核其性能,是DBA的重要工作。
查詢?nèi)罩窘M號、序號,是否歸檔完成和狀態(tài)信息,如多組日志顯示ACTIVE狀態(tài),則可能說明數(shù)據(jù)庫存在IO方面的性能問題。
查看日志組和成員信息。
在日志切換頻繁時,可能需要增加日志組或者加大日志大小。
切換日志組,開始寫入下一個日志組。
對當(dāng)前日志組執(zhí)行歸檔,切換到下一個日志組,
在RAC會對所有實例執(zhí)行歸檔,Thread參數(shù)指定歸檔實例。
刪除指定日志組或日志成員,注意只能對INACTIVE狀態(tài)的日志執(zhí)行刪除操作。
檢查數(shù)據(jù)庫是否處于歸檔模式。
示例步驟在MOUNT狀態(tài)改變歸檔模式,注意啟動歸檔模式之后
務(wù)必制訂備份歸檔的日常策略,防止磁盤空間被耗盡。
如果數(shù)據(jù)庫因歸檔耗盡空間,可以指定另外的歸檔路徑,以盡快歸檔日志,恢復(fù)數(shù)據(jù)庫運行。
確保數(shù)據(jù)存儲空間可用,定期檢查表空間余量,進行表空間和文件維護。
查看數(shù)據(jù)庫表空間的使用信息。
查看數(shù)據(jù)庫表空間的剩余空間。
查看數(shù)據(jù)庫表空間的數(shù)據(jù)文件信息。
對數(shù)據(jù)庫的表空間容量進行擴容。
Lock/Latch是數(shù)據(jù)庫控制并發(fā)的核心手段,檢查相關(guān)信息可以監(jiān)控數(shù)據(jù)庫的事務(wù)和運行狀況。
查看鎖會話ID,類型,持有時間等,
注意如果block >1,可能意味著阻塞了其他會話。
在數(shù)據(jù)庫出現(xiàn)鎖競爭和阻塞時,需要排查和處理鎖定,必要時通過Kill阻塞進程消除鎖定。
查詢當(dāng)前鎖事物中阻塞會話與被阻塞會話的sid,sql_id和狀態(tài)信息
通過sqlid查詢得到SQL文本,例如通過sqlid查詢出阻塞的SQL語句。
通過sid查詢阻塞對象的詳細信息如對象名稱,所屬用戶等
在Oracle實例內(nèi)殺死阻塞的會話進程,其中sid,serial# 為中止會話對應(yīng)信息,來自v$session。
有時對于活動進程,在系統(tǒng)層面中止更為快速安全,示例找到系統(tǒng)進程號,然后kill中止。
注意:無論何時,需要認真分析,并且避免誤殺重要后臺進程。
檢查數(shù)據(jù)庫閂的使用情況,misses、SPIN_GETS統(tǒng)計高的,需要關(guān)注。
僅供學(xué)習(xí):通過獲得Latch的地址,找到該Latch守護的X$BH中相關(guān)的Buffer。
Wait和Statistics數(shù)據(jù)分別代表了數(shù)據(jù)庫的等待和運行數(shù)據(jù),觀察這些數(shù)據(jù)以了解數(shù)據(jù)庫的等待瓶頸和健康程度。
通過等待事件和等待時間,了解數(shù)據(jù)庫當(dāng)前連接會話的等待情況。
注意,如果會話眾多,需要限定查詢輸出行數(shù)。
查看當(dāng)前數(shù)據(jù)中TOP10等待事件信息,需要分析和關(guān)注非空閑的顯著等待。
查詢數(shù)據(jù)庫會話的統(tǒng)計信息數(shù)據(jù),示例查詢了Redo的大小,SID需要提供。
查詢整個系統(tǒng)的統(tǒng)計數(shù)據(jù),示例顯示數(shù)據(jù)庫實例啟動以來的REDO日志生成量。
表、索引、分區(qū)、約束等是數(shù)據(jù)庫的核心存儲對象,其核心信息和對象維護是DBA重要的日常工作。
查看表的基本信息數(shù)據(jù):屬主,表名,記錄行數(shù)等。
根據(jù)提供的表名和用戶(需大寫),查詢表的表結(jié)構(gòu)信息(建表語句)。
查詢給定用戶、給定表(需大寫),查詢最后的統(tǒng)計信息分析收集時間。統(tǒng)計信息影響執(zhí)行計劃,當(dāng)SQL執(zhí)行異常時,需要重點分析統(tǒng)計信息。
收集統(tǒng)計信息是一項復(fù)雜任務(wù),需要詳細設(shè)計,示例對給出用戶、表名的對象采集統(tǒng)計信息
查詢索引的基本信息,示例輸出包括葉塊數(shù)和聚簇因子等,如聚簇因子過高接近行數(shù)可能代表索引效率不高。
根據(jù)提供的表名和用戶名,查詢索引的建立語句。
根據(jù)給定的用戶名,表名稱(需大寫),查詢索引信息,尤其應(yīng)關(guān)注最后分析時間。
收集統(tǒng)計信息是一項復(fù)雜任務(wù),示例對給出用戶、索引名的對象采集統(tǒng)計信息。
查看分區(qū)表的基本信息:分區(qū)類型,數(shù)量,邊界值等。
根據(jù)給定的分區(qū)表名、用戶(需大寫),查詢分區(qū)表的結(jié)構(gòu)信息(建表語句)。
查看分區(qū)表的統(tǒng)計信息收集時間,以及對分區(qū)表進行手工收集統(tǒng)計信息,注意分區(qū)表統(tǒng)計信息收集非常復(fù)雜,需要深入研究做出正確策略,示例僅提供最簡單的采集命令。
查詢指定數(shù)據(jù)表的約束信息,包括名稱和類型。
檢查數(shù)據(jù)庫中的失效對象信息,通常運行健康的數(shù)據(jù)庫中不應(yīng)有失效的對象。
閃回查詢功能對于恢復(fù)DML及部分DDL誤操作非常便利,DBA必備技能。
7.13.1時間閃回
閃回表數(shù)據(jù),基于時間點的表數(shù)據(jù)閃回查詢。
閃回表數(shù)據(jù),基于scn的表數(shù)據(jù)查詢,需要提供SCN,如果不明確SCN,可以通過時間點閃回查詢。
閃回刪除操作,對已經(jīng)刪除的表進行閃回回復(fù)并重命名。
通過AWR報告了解日常高峰時段數(shù)據(jù)庫各項指標(biāo)和運行狀況,通過對比報告觀察和基線的變化,通過趨勢分析持續(xù)關(guān)注數(shù)據(jù)庫日常運行狀態(tài)。
生成本地AWR報告信息,需要根據(jù)提示輸入相應(yīng)的信息。
生成指定實例AWR報告
生成本地AWR時間段對比報告
生成指定實例AWR時間段對比報告
使用awrextr腳本將AWR性能數(shù)據(jù)導(dǎo)出,可以用于留錯或者異地分析。
通過awrload,可以將導(dǎo)出的AWR性能數(shù)據(jù)導(dǎo)入到其他數(shù)據(jù)庫中,便于集中和分析。
對TOP SQL進行持續(xù)關(guān)注和分析,通過SQL報告分析SQL的效率、性能,并做出報告和優(yōu)化建議等。
生成本地SQLReport報告
生成指定實例SQLRerport報告
生成當(dāng)前會話的SQL Monitor Report
生成指定SQL_ID的SQL Monitor Report
示例通過explain plan for方法獲取SQL執(zhí)行計劃
通過SQL*Plus的 autotrace 功能獲取SQL執(zhí)行計劃。
通過DBMSXPLAN包獲取SQL執(zhí)行計劃,sqlid 需要提供。
通過10053事件來查看執(zhí)行計劃和詳細的SQL解析過程,trace文件提供了Oracle如何選擇執(zhí)行計劃的原因。
查詢SQL語句的綁定變量以及歷史綁定變量值信息,需要給定SQL_ID信息。
檢查數(shù)據(jù)庫定時任務(wù)執(zhí)行情況,確保后臺任務(wù)正確執(zhí)行,尤其應(yīng)關(guān)注統(tǒng)計信息收集等核心任務(wù)。
查詢用戶的定時任務(wù)(job)信息,確保任務(wù)在期望的時間成功執(zhí)行,這是DBA的重要工作之一。
查詢系統(tǒng)定時調(diào)度信息,查詢顯示了任務(wù)名稱、初始啟動日期以及重復(fù)間隔。
11g之后增加的字典表,記錄每個在7天和30天維護任務(wù)的統(tǒng)計信息,查詢顯示名稱和平均執(zhí)行時間。
關(guān)閉和開啟oralce 10g 統(tǒng)計信息自動采集任務(wù)
關(guān)閉和開啟Oralce 11g 統(tǒng)計信息自動采集任務(wù)
數(shù)據(jù)備份重于一切,日常應(yīng)檢查備份執(zhí)行情況,并檢查備份的有效性,確保備份能夠保障數(shù)據(jù)安全,備份安全加密也應(yīng)兼顧。
將數(shù)據(jù)庫全庫導(dǎo)出導(dǎo)入(示例以及以下示例顯示的是非Windows環(huán)境),
通過提供的用戶,執(zhí)行全庫導(dǎo)出。需要注意存儲位置和空間。
將數(shù)據(jù)庫按指定用戶導(dǎo)出
將數(shù)據(jù)庫按指定表導(dǎo)出
將數(shù)據(jù)庫全庫導(dǎo)出導(dǎo)入, 注意directory是數(shù)據(jù)庫中創(chuàng)建的對象,指定服務(wù)器上的存儲位置。
將數(shù)據(jù)庫進行按用戶導(dǎo)出和導(dǎo)入示例,impdp示例中,分別重新映射了導(dǎo)入的Schema和表空間。
將數(shù)據(jù)庫進行按表導(dǎo)出和導(dǎo)入
檢查備份集信息,確保備份有效和及時是DBA的重要工作之一。RMAN的備份信息記錄在控制文件中。
控制文件對數(shù)據(jù)庫十分重要,建議啟動控制文件的自動備份,示范顯示的是通過RMAN的設(shè)置。
通過RMAN或者SQL命令手動備份控制文件,備份的是控制文件的二進制拷貝。
通過以上命令轉(zhuǎn)儲控制文件二進制信息到文本,研究這些信息,可以極大加深對于數(shù)據(jù)庫的了解。
通過SQL命令轉(zhuǎn)儲控制文件到文本,可以用于重建控制文件。
對于DBA備份是第一重要的工作,在歸檔模式下,
執(zhí)行全庫備份可以簡化為示例的一個命令(需要根據(jù)容量進行分片)。
基本信息包括版本、組件、補丁集等信息,定期檢查數(shù)據(jù)庫信息并登記在案是數(shù)據(jù)庫生命周期管理的重要內(nèi)容之一。
查看數(shù)據(jù)庫的版本信息
查看數(shù)據(jù)庫的組件信息
如果使用了ASM管理,可以通過示例查看ASM磁盤及磁盤組容量等信息。
查詢數(shù)據(jù)庫的版本升級歷史信息。
查詢數(shù)據(jù)庫補丁歷史信息,是系統(tǒng)級的命令工具。
GO HOME!
下一篇:ORACLE DG 日志傳輸?shù)耐V古c恢復(fù)