![OracleDBA日常工作手冊_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/8327cff9-ce4e-4970-a5fa-88b8493b5e60/8327cff9-ce4e-4970-a5fa-88b8493b5e601.gif)
![OracleDBA日常工作手冊_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/8327cff9-ce4e-4970-a5fa-88b8493b5e60/8327cff9-ce4e-4970-a5fa-88b8493b5e602.gif)
![OracleDBA日常工作手冊_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/8327cff9-ce4e-4970-a5fa-88b8493b5e60/8327cff9-ce4e-4970-a5fa-88b8493b5e603.gif)
![OracleDBA日常工作手冊_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/8327cff9-ce4e-4970-a5fa-88b8493b5e60/8327cff9-ce4e-4970-a5fa-88b8493b5e604.gif)
![OracleDBA日常工作手冊_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/14/8327cff9-ce4e-4970-a5fa-88b8493b5e60/8327cff9-ce4e-4970-a5fa-88b8493b5e605.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、Oracle DBA日常工作手冊第一章 . 事前階段一 、 日常工作每天應做工作內(nèi)容1、工作內(nèi)容日常環(huán)境監(jiān)控1.1系統(tǒng)運行環(huán)境監(jiān)控檢查文件系統(tǒng)以及oracle數(shù)據(jù)庫數(shù)據(jù)文件所在卷的使用(剩余空間),如果文件系統(tǒng)的剩余空間小于20%,需要刪除不用的文件以釋放空間;UNIX系統(tǒng)的文件系統(tǒng)及數(shù)據(jù)文件所在卷的空間使用率:su oraprod或者su - oratestAIX、linux查看磁盤空間:df k HP-UX查看磁盤空間:bdf1.2數(shù)據(jù)庫運行狀況監(jiān)控 外部確認所有的INSTANCE狀態(tài)正常(保證實例正常),檢查Oracle實例核心后臺進程是否都存在、狀態(tài)是否正常$ ps -ef|grep
2、oraprod查看數(shù)據(jù)庫實例是否能正常連接、訪問SQL> select status,instance_name from v$instance;監(jiān)聽是否正常$ lsnrctl status 內(nèi)部是否所有表空間都處于online狀態(tài)SQL> select tablespace_name,status from dba_tablespaces;select file#,status,name from v$datafile_header; select file_name,status,tablespace_name from dba_data_files;如果數(shù)據(jù)文件的STATUS
3、列不是AVAILABLE或者ONLINE,那么就要采取相應的措施,如對該數(shù)據(jù)文件進行恢復操作,或重建該數(shù)據(jù)文件所在的表空間。Oracle數(shù)據(jù)庫日志文件是否正常SQL> Select * from v$log;SQL> Select * from v$logfile;1).檢查trace文件記錄alert和trace文件中的錯誤。 telnet su oraprod在oraprod用戶下$ cd到bdump目錄,通常是$ORACLE_BASE/admin/<SID>/bdump 使用Unix的tail -f命令來查看aler
4、t_<SID>.log文件 如果發(fā)現(xiàn)任何新的ORA- 錯誤,記錄并解決2).查看DBSNMP 的運行情況 檢查每個被管理機器的DBSNMP進程并將它們記錄到日志中。 在UNIX 中,在命令行中,鍵入ps ef | grep dbsnmp,將回看到2 個 DBSNMP 進程在運行。如果沒有,重啟DBSNMP。(注意:此步驟在oraprod下只有1個進程,需要研究)3). 檢查回滾段 回滾段的狀態(tài)一般是在線的,除了一些為復雜工作準備的專用段一般狀態(tài)是離線的。a) 每個數(shù)據(jù)庫都有一個回滾段名字的列表。 b) 你可以用V$ROLL
5、STAT 來查詢在線或是離線的回滾段的現(xiàn)在狀態(tài); 日常操作1).不要在服務器上直接執(zhí)行rm操作當有文件需要刪除時,把這些文件mv到一個規(guī)定的文件夾,然后CD進入此文件夾再進行刪除操作。(注意:在rm日志文件時直接rm即可,若rm文件夾一定要rm r)2).數(shù)據(jù)庫備份校驗命令:rman target /連接到數(shù)據(jù)庫,rman>restore database validate;3).查看數(shù)據(jù)庫連接信息定時對數(shù)據(jù)庫的連接情況進行檢查,看與數(shù)據(jù)庫建立的會話數(shù)目是不是正常,如果建立了過多的連接,會消耗數(shù)據(jù)庫的資源。同時,對一些“掛死”的連接,可能需要手工進行清理。以下的SQL語句列出當前數(shù)據(jù)庫建
6、立的會話情況:Select count(*) from v$session; 查看當前會話連接數(shù)select sid,serial#,username,program,machine,status from v$session;其中, SID 會話(session)的ID號; SERIAL# 會話的序列號,和SID一起用來唯一標識一個會話; USERNAME 建立該會話的用戶名; PROGRAM 這個會話是用什么工具連接到數(shù)據(jù)庫的; STATUS 當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務,INACTIVE表示當前會話沒有執(zhí)行任何操作; 如果DBA要手工斷開某個會話,則執(zhí)行: a
7、lter system kill session 'SID,SERIAL#' 注意: USERNAME列為空的會話,是Oracle的后臺進程,不要對這些會話進行任何操作4).查看并發(fā)會話量并發(fā)會話量正常時段為60以下,查詢系統(tǒng)在20以下,如果超過這些指標,則認為系統(tǒng)有阻塞情況,需要查找原因,引起關注。查詢系統(tǒng)并發(fā)的腳本為:select count(1) from v$session where status='ACTIVE' and username not in('SYS','SYSTEM');5).查看是否有僵死進程selec
8、t spid from v$process where addr not in (select paddr from v$session);有些僵死進程有阻塞其他業(yè)務的正常運行,定期殺掉僵死進程6).檢查數(shù)據(jù)庫定時作業(yè)的完成情況如果數(shù)據(jù)庫使用了Oracle的JOB來完成一些定時作業(yè),要對這些JOB的運行情況進行檢查:select job,log_user,last_date,failuresfrom dba_jobs;如果FAILURES列是一個大于0的數(shù)的話,說明JOB運行失敗,要進一步的檢查。7).控制文件的備份在數(shù)據(jù)庫結構發(fā)生變化時,如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,
9、都會造成Oracle數(shù)據(jù)庫控制文件的變化,DBA應及進行控制文件的備份,備份方法是: 執(zhí)行SQL語句:alter database backup controlfile to '/home/backup/control.bak' 或: alter database backup controlfile to trace; 這樣,會在USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL命令。8).數(shù)據(jù)庫壞塊的處理當Oracle數(shù)據(jù)庫出現(xiàn)壞塊時,Oracle會在警告日志文件(alert_SID.log)中記錄壞塊的信息: ORA-01578
10、: ORACLE data block corrupted (file # 7, block # <BLOCK>)ORA-01110: data file <AFN>: '/oracle1/oradata/V920/oradata/V816/users01.dbf' 其中,AFN代表壞塊所在數(shù)據(jù)文件的絕對文件號,<BLOCK>代表壞塊是數(shù)據(jù)文件上的第幾個數(shù)據(jù)塊出現(xiàn)這種情況時,應該首先檢查是否是硬件及操作系統(tǒng)上的故障導致Oracle數(shù)據(jù)庫出現(xiàn)壞塊。在排除了數(shù)據(jù)庫以外的原因后,再對發(fā)生壞塊的數(shù)據(jù)庫對象進行處理。解決方式:1確定發(fā)生壞塊的數(shù)據(jù)庫對象
11、 SELECT tablespace_name,segment_type,owner,segment_nameFROM dba_extentsWHERE file_id = <AFN>AND <BLOCK> between block_id AND block_id+blocks-1;2決定修復方法 如果發(fā)生壞塊的對象是一個索引,那么可以直接把索引DROP掉后,再根據(jù)表里的記錄進行重建; 如果發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個表DROP掉后重建; 如果有數(shù)據(jù)庫的備份,則恢復數(shù)據(jù)庫的方法來進行修復; 如果表里的記錄沒
12、有其它辦法恢復,那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)塊上的記錄取出來,然后對這個表進行重建。 3用Oracle提供的DBMS_REPAIR包標記出壞塊 exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('<schema>','<tablename>'); 4使用Create table as select命令將表中其它塊上的記錄保存到另一張表上 create table corrupt_table_bak as select * from corrupt_table; 5用DROP TABLE命令刪除有壞塊
13、的表 drop table corrupt_table; 6用alter table rename命令恢復原來的表 alter table corrupt_table_bak rename to corrupt_table; 7如果表上存在索引,則要重建表上的索引 1.3 檢查oracle數(shù)據(jù)庫表空間的使用情況 檢查表空間的使用情況1、查詢表空間的總容量select tablespace_name,sum(bytes)/1024/1024 MB from dba_data_filesgroup by tablespace_name;2、查詢表空間未使用的大小select tablespace_
14、name,sum(bytes)/1024/1024 MB from dba_free_spacegroup by tablespace_name;3、(一)查看表空間已經(jīng)使用的百分比select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB",round(a.bytes-b.bytes)/a.bytes)*100,2)"percent_used"
15、; from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_nameorder by (a.bytes-b.bytes)/a.bytes) desc (二)查看表空間空閑百分比se
16、lect a.tablespace_name,round(a.total_size) "total_size(MB)",round(a.total_size)-round(b.free_size,3) "used_size(MB)",round(b.free_size,3) "free_size(MB)",round(b.free_size/total_size*100,2)|'%' free_ratefrom (select tablespace_name,sum(bytes)/1024/1024 total_siz
17、e from dba_data_files group by tablespace_name) a,(select tablespace_name,sum(bytes)/1024/1024 free_size from dba_free_space group by tablespace_name) bwhere a.tablespace_name=b.tablespace_name(+); (三) 表空間碎片查詢select tablespace_name,Sqrt(max(blocks)/ sum(blocks) * (100/Sqrt(Sqrt(count(blocks) FSFI,co
18、unt(blocks),sum(blocks),max(blocks)from sys.dba_free_space group by tablespace_name;表空間的碎片合并:alter tablespace tablespace_name coalesce; 然后再執(zhí)行查看表空間碎片的SQL語句,看表空間的碎片有沒有減少。如果沒有效果,并且表空間對表空間的擴充對表空間的數(shù)據(jù)文件大小進行擴展,或向表空間增加數(shù)據(jù)文件,具體操作見“存儲管理”部份。 查看oracle數(shù)據(jù)庫的表空間包含的數(shù)據(jù)文件與增加或者刪除數(shù)據(jù)文件1、查看表空間中包含的數(shù)據(jù)文件以及數(shù)據(jù)文件的狀態(tài)與是否自動擴展大小sele
19、ct file_name,tablespace_name,status,autoextensible,increment_by,bytes/1024/1024 bytes from dba_data_files2、增加數(shù)據(jù)文件alter tablespace WANJINadd datafile 'E:U01APPORACLEORADATAWANJINDBAWANJIN3.DBF'size 10M (autoextend on maxsize 20G)上述語句解釋:向WANJIN表空間中增加一個10M大小,最大自動擴展到20G的一個數(shù)據(jù)文件,括號內(nèi)的命令可以不執(zhí)行直接更改數(shù)據(jù)文
20、件的大?。篴lter tablespace WANJINDatafile E:U01APPORACLEORADATAWANJINDBAWANJIN3.DBF resize=100M3、刪除表空間數(shù)據(jù)文件Alter tablespace WANJINDrop datafile E:U01APPORACLEORADATAWANJINDBAWANJIN3.DBF4、檢查無效的數(shù)據(jù)庫對象 SELECT owner, object_name, object_type FROM dba_objects WHERE status=INVALID5、檢查不起作用的約束 SELEC
21、T owner, constraint_name, table_name, constraint_type, status FROM dba_constraints WHERE status = 'DISABLED AND constraint_type = 'P' 6、檢查無效的trigger SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED7、檢查數(shù)據(jù)庫控制文件
22、在數(shù)據(jù)庫已經(jīng)啟動的情況下:select * from v$controlfile如果數(shù)據(jù)庫沒有啟動則: SQL>show parameter control_files;8、查看參數(shù)文件是否存在SQL>show parameter spfile;9、查看緩沖區(qū)命中率緩沖區(qū)命中率應該保證在95%以上。Select 1-(sum(decode(name,'physical reads',value,0)/(sum(decode(name,'db block gets',value,0)+(sum(decode(name,'consistent g
23、ets',value,0) "Buffer Hite Rate" from v$sysstat;10).檢查數(shù)據(jù)庫等待事件如果數(shù)據(jù)庫長時間持續(xù)出現(xiàn)大量像buffer busy waits、db file scattered read、db file sequential read、enqueue、free buffer waits、latch free、log file sync、log file paralle write等等非空閑待事件時,需要對其進行分析,可能存在問題的語句。Select sid,event,p1,p2,p3,WAIT_TIME,SECONDS
24、_IN_WAIT from v$session_wait where event not like 'SQL%' and event not like 'rdbms%'11).檢查數(shù)據(jù)庫鎖表情況select sid,serial#,username,SCHEMANAME,osuser,MACHINE,terminal,PROGRAM,owner,object_name,object_type,o.object_id from dba_objects o,v$locked_object l,v$session s where o.object_id=l.objec
25、t_id and s.sid=l.session_id;解鎖處理:alter system kill session '&sid,&serial#'2、工作內(nèi)容日常性能監(jiān)控2.1 間隔一段時間使用操作系統(tǒng)top等工具監(jiān)控UNIX操作系統(tǒng)資源動態(tài)運行狀況CPU、內(nèi)存、網(wǎng)絡、IO、進程、頁面交換等主要活動監(jiān)控: top、topas、vmstat、sar、iostat等2.2間隔一段時間對數(shù)據(jù)庫性能進行監(jiān)控Oracle 11g 圖形工具Performance Manager監(jiān)控頂層會話及頂層SQL1 打開OEM控制臺,選中要監(jiān)控的數(shù)據(jù)庫(oracle中OEM后臺進程運
26、行命令:Windows:dos下執(zhí)行emctl start dbconsoleLinux在su - oraprod下執(zhí)行emctl start dbconsole網(wǎng)址是: https:/localhost:1158/em/查看oracle版本命令:select banner from sys.v_$version;)2 介紹OEM主要內(nèi)容Oracle 11g的OEM主要監(jiān)控:主機CPU,IO情況,Oracle數(shù)據(jù)庫進程情況,SQL相應時間等;登錄Oracle 11g OEM,選擇性能其它監(jiān)視鏈接:頂級活動點擊“頂級會話”中的“活動百分比”較高的“會話ID” 點擊該會話ID對應的SQL ID,查
27、看該頂級會話中SQL的詳細信息點擊“計劃”“表”標簽,查看該SQL語句的詳細執(zhí)行計劃瀏覽該頂層會話對應SQL語句的詳細信息3、工作內(nèi)容日常數(shù)據(jù)庫管理3.1一天內(nèi)間隔一定時間運行檢查警告日志文件中最新錯誤信息Linux、Unix系列平臺:vi $ORACLE_BASE/<SID>/bdump/alert_<sid>.log輸入:“/ORA” 回車進行查找(此步驟為在.log文件中搜索包含該內(nèi)容的語句)系統(tǒng)運行狀況快照采集每天根據(jù)實際情況,在以下三個階段手工運行Statspack快照采集,輸出快照報表:l 正常工作壓力下l 每天業(yè)務最高峰期l 特殊業(yè)務運行階段Oracle
28、11g OEM圖形管理工具實現(xiàn)系統(tǒng)快照采集Oracle 11g OEM圖形工具自動執(zhí)行快照采集,缺省1小時收集一次,可以根據(jù)實際情況修改收集間隔時間、降低對系統(tǒng)性能影響。系統(tǒng)快照自動收集時間、間隔、保留期限設置登錄Oracle10g OEM,選擇服務器自動工作量資料檔案庫點擊編輯,查看或修改快照收集時間及間隔 Oracle11g缺省系統(tǒng)快照每隔一小時執(zhí)行一次,保留最近8天的所有快照,可根據(jù)實際情況修改調(diào)整,點確定后保存所做修改。創(chuàng)建當前時間點系統(tǒng)快照點擊管理快照和保留的快照集下面的當前快照ID選擇起始快照,點擊創(chuàng)建選擇“是”開始執(zhí)行快照創(chuàng)建快照在當前時間點成功創(chuàng)建。輸出兩個快照時間點之間的快照
29、信息報表把“創(chuàng)建保留的快照集”改為“查看報告”,選擇起始快照號,點擊“開始”選擇結束快照號,點擊“確定”開始創(chuàng)建兩個快照時間點之間的所有統(tǒng)計信息報告另存該輸出快照報告為HTML文件注:生成的統(tǒng)計信息快照報告放在專門目錄下,定期對其整理、分析,作為EAS數(shù)據(jù)庫運行整體狀況及問題診斷的依據(jù)。3.2 每天工作結束后、系統(tǒng)空閑時運行 圖形界面查看表空間使用率 Oracle 11g OEM表空間管理登錄OEM后選擇主目錄空間概要數(shù)據(jù)庫大小在該界面下可以看到表空間使用率,以及可以添加表空間和增加數(shù)據(jù)文件。數(shù)據(jù)庫備份及日志清理數(shù)據(jù)庫備份主要提供兩種方式,物理備份及邏輯備份,物理備份主要使用Oracle RM
30、AN工具,邏輯備份主要使用Oracle導出工具Exp及Expdp。Oracle 物理備份(RMAN)該方式下周一到周五每天做一次增量備份,并檢查備份是否正確,同時清理歸檔日志。Oracle11g OEM圖形化方式設置RMAN備份自動執(zhí)行任務RMAN備份主要參數(shù)設置登錄11g OEM,選擇:可用性 備份/恢復/備份設置磁盤設備備份路徑、并行度指定(根據(jù)服務器cpu個數(shù)匹配)在這里的的用戶名和密碼是操作系統(tǒng)的用戶和密碼;備份策略設置主要是指定備份磁盤位置及備份保留時間,下圖設置中為周備份策略考慮,保留最近7天備份。兩種RMAN自動調(diào)度備份策略1) 使用Oracle建議的自動調(diào)度備份策略選擇可用性管
31、理調(diào)度備份選擇“調(diào)度Oracle建議的備份”選擇備份目標介質(zhì),缺省備份到磁盤介質(zhì)該備份策略內(nèi)容描述設置該策略執(zhí)行數(shù)據(jù)庫全量或增量備份的調(diào)度時間調(diào)度oracle建議的備份:復查2) 自定義RMAN自動備份策略選擇“可用性管理調(diào)度備份調(diào)度定制備份”選擇備份類型、歸檔日志、過時備份清理策略 備份目標介質(zhì)設置(缺省使用前面“備份設置”中設置的參數(shù))備份自動執(zhí)行的調(diào)度備份設置信息復查,確定后提交作業(yè)通過查看作業(yè)可以了解備份任務進展情況。3) 查看當前數(shù)據(jù)庫RMAN備份信息選擇可用性管理備份報告,可以查看所有備份執(zhí)行情況注:前面描述的是數(shù)據(jù)庫全量備份的調(diào)度策略設置,增量備份的調(diào)度策略設置方法類似,只需要在
32、備份類型中選擇增量備份即可。設置完成后EAS數(shù)據(jù)庫自動備份策略為一周一次全量備份,在星期六晚上12點進行。周一到周五每天晚上12點執(zhí)行一次增量備份,保留最近7天備份,過期備份、歸檔日志自動刪除。Oracle邏輯備份(EXP/EXPDP)1) 操作系統(tǒng)級設置自動備份任務root用戶登錄操作系統(tǒng),運行crontab e,添加以下內(nèi)容:50 23 * * 1-6 su oracle -c /usr/app/oracle/expdp/eas_expdp_MontoSat.sh > /dev/null 2>&1#星期一到星期六晚上11點50導出數(shù)據(jù)50 23 * * 0 su ora
33、cle -c /usr/app/oracle/expdp/eas_expdp_Sunday.sh > /dev/null 2>&1#星期日11點50開始導出數(shù)據(jù),并刪除上周一到周六導出的備份數(shù)據(jù)。2) 邏輯備份腳本邏輯備份腳本 eas_expdp_MontoSat.sh(星期一到星期六)#!/bin/sh#=# SCRIPT : eas_expdp_MontoSat.sh# AUTHOR : James_jiang# Date : 2007-10-10# REV : 1.0# PLATFORM : AIX Linux Solaris HpUnix# PURPOSE : Th
34、is script is used to run logic backup.# Copyright(c) 2007 Kingdee Co.,Ltd.# All Rights Reserved#=DAY=date +%aFILE_TARGET=eas_expdp_expr $DAY'.dmpFILE_LOG=eas_expdp_expr $DAY.log export FILE_TARGET FILE_LOG expdp salhr/salhr schemas=salhr directory=eas_expdp_dir dumpfile=$FILE_TARGET logfile=$FIL
35、E_LOG job_name=cases_export parallel=4 邏輯備份腳本 eas_expdp_Sunday.sh(星期日)sqlplus "/as sysdba"SQL>create directory eas_expdp_dir as '/usr/app/oracle/expdp'SQL>grant read,write on directory eas_expdp_dir to salhr;Oracle10g 版本邏輯備份使用expdp工具,在部署導出自動任務前需創(chuàng)建導出dmp文件存放目錄并授權給EAS數(shù)據(jù)庫用戶:#!/bi
36、n/sh#=# SCRIPT : eas_expdp_Sunday.sh# AUTHOR : James_jiang# Date : 2007-10-10# REV : 1.0# PLATFORM : AIX Linux Solaris HpUnix# PURPOSE : This script is used to run logic backup.#=DAY=date +%aFILE_TARGET=eas_expdp_expr $DAY.dmpFILE_LOG=eas_expdp_expr $DAY.log export FILE_TARGET FILE_LOG cd /usr/app/o
37、racle/expdprm -f eas_expdp*.dmp eas_expdp*.logexpdp salhr/salhr schemas=salhr directory=eas_expdp_dir dumpfile=$FILE_TARGET logfile=$FILE_LOG job_name=cases_export parallel=4 附: 上述腳本中導出路徑 /usr/app/oracle/expdp需根據(jù)現(xiàn)場實際情況修改,備份腳本eas_expdp_MontoSat.sh、eas_expdp_Sunday.sh需賦予可執(zhí)行權限。Expdp導出目錄需要創(chuàng)建,具體方法請參看本文檔
38、四 日常工作數(shù)據(jù)庫第一次安裝部署后需做的工作根據(jù)監(jiān)控信息,對需要的表、索引統(tǒng)計分析.1 Oracle9i 自動化腳本方式對表、索引進行統(tǒng)計分析Oracle9i缺省不對表進行改動監(jiān)控,如果需要根據(jù)監(jiān)控信息來判斷是否需對表進行重新統(tǒng)計分析,則需要手工打開表監(jiān)控開關,如下:打開表監(jiān)控開關:alter table 表名 monitoring;/監(jiān)控表信息記錄在sys.dba_tab_modifications視圖中根據(jù)監(jiān)控信息對用戶統(tǒng)計信息分析收集腳本:dbms_stats.gather_schema_stats(ownname=>'nmeas',options=>'
39、;GATHER AUTO').2 Oracle10g 自動化任務表、索引統(tǒng)計分析方式Oracle10g 缺省自動對所有表變動進行監(jiān)控,并自動執(zhí)行所有用戶統(tǒng)計分析,可以禁止該缺省方式,在dbconsole中手工配置對特定用戶統(tǒng)計分析任務。Oracle10g禁用、啟用缺省數(shù)據(jù)庫自動統(tǒng)計信息分析收集任務:exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB');Oracle10g OEM圖形工具自定義配置統(tǒng)計分析任
40、務登錄OEM,選擇管理統(tǒng)計信息管理管理優(yōu)化程序統(tǒng)計信息選擇“操作”搜集優(yōu)化程序統(tǒng)計信息選擇“方案”,點擊下一步設置用戶統(tǒng)計信息分析自動執(zhí)行的時間調(diào)度示例中設置的是從2007-03-29開始,每天晚上12點自動執(zhí)行用戶NMEAS統(tǒng)計信息分析,用戶統(tǒng)計信息分析任務設置完整欄目顯示提交完成任務設置查看數(shù)據(jù)庫中所有自動調(diào)度任務執(zhí)行情況OEM中選擇欄目:管理統(tǒng)計信息管理(管理優(yōu)化程序統(tǒng)計信息)選擇相關鏈接作業(yè)調(diào)度程序注:上述配置的自動統(tǒng)計分析任務利用Oracle自動監(jiān)控來判斷哪些對象改動較大,需要重新進行統(tǒng)計分析。然后在調(diào)度的時間對其重新進行統(tǒng)計分析。二 、日常工作每隔一周工作內(nèi)容1. 文件整理工作n
41、警告日志、跟蹤文件、dump文件清理n 備份文件整理n Statspack統(tǒng)計分析報告整理2. 數(shù)據(jù)庫全量備份2.1 Oracle 9i RMAN自動化腳本方式全量備份Rman備份命令寫到一個腳本中,在命令行中執(zhí)行這個腳本RMAN TARGET / NOCATALOG sys/oracle CMDFILE e: backup_incre_0.rcv LOG e: backup_incre_0.log數(shù)據(jù)庫完全備份腳本: backup_full_0.rcvrun allocate channel c1 type DISK ;backup incremental level = 0 format
42、'f:rman_bakincre_0_%d_%s_%p.bak'(database include current controlfile);backup format 'f:rman_bakarch%u_%s_%p.bak'(archivelog from time 'sysdate-1' all delete input);刪除過期備份:RMAN>delete expired backup;2.2 Oracle 10g OEM 圖形方式創(chuàng)建RMAN全量備份數(shù)據(jù)庫任務具體方法、步驟請參看數(shù)據(jù)庫日常工作每天應做工作內(nèi)容中RMAN備份部分3.
43、 根據(jù)一周數(shù)據(jù)增長率分析預留數(shù)據(jù)文件下一周所需增長空間3.1 SQL腳本方式查看數(shù)據(jù)文件空間使用率查看腳本:SELECT df.tablespace_name, ROUND (df.BYTES / 1024 / 1024) "total(MB)", ROUND (df.BYTES - x.free) / 1024 / 1024) "used(MB)", ROUND (x.hw / 1024 / 1024) hwatermarker, ROUND (x.free / 1024 / 1024) "free(MB)", df.file_na
44、me FROM dba_data_files df, (SELECT file_id, MAX (block_id * p.VALUE) hw, SUM (BYTES) free FROM dba_free_space, v$parameter p WHERE p.NAME = 'db_block_size' GROUP BY file_id) x WHERE x.file_id = df.file_idORDER BY 1, 23.2 Oracle 9i OEM 數(shù)據(jù)文件管理3.3 Oracle 10g OEM 數(shù)據(jù)文件管理4. 索引使用情況及碎片分析4.1表包含的索引及相關
45、列檢查1、 表及索引創(chuàng)建、修改日期檢查EAS用戶登錄到數(shù)據(jù)庫,執(zhí)行語句:SQL>SELECT OBJECT_NAME,OBJECT_TYPE,CREATED,LAST_DDL_TIME,STATUS FROM USER_OBJECTS;2、 表包含的索引及索引相關列檢查SQL> SELECT INDEX_NAME,TABLE_NAME,COLUMN_NAME FROM USER_IND_COLUMNS WHERE TABLE_NAME LIKE 'T_%' ORDER BY TABLE_NAME;3、 特定表及其關聯(lián)索引、列詳細信息檢查SELECT A.TABLE_
46、NAME,A.INDEX_NAME,COLUMN_NAME,CREATED,LAST_DDL_TIME,LAST_ANALYZED FROM USER_IND_COLUMNS A,USER_OBJECTS B,USER_INDEXES C WHERE A.INDEX_NAME=B.OBJECT_NAME AND B.OBJECT_NAME=C.INDEX_NAMEAND C.TABLE_NAME IN('','')注:如需輸出語句執(zhí)行結果信息,可在語句執(zhí)行前spool tableindex.list,執(zhí)行完成后再spool off;4.2自動化腳本方式對索引進行
47、碎片分析每周監(jiān)測一次索引的碎片情況,根據(jù)情況制定索引的重建頻率以提高索引使用效率。1、產(chǎn)生EAS用戶分析索引的腳本:SQL>select 'analyze index ' | index_name |' VALIDATE STRUCTURE' from user_indexes; 2、執(zhí)行EAS用戶下所有索引分析:SQL> analyze index <index_name> VALIDATE STRUCTURE;.3、基于分析結果,查看索引碎片率:SQL> select name,del_lf_rows_len,lf_rows_l
48、en,(del_lf_rows_len/lf_rows_len)*100 from index_stats;索引碎片率(%) = (被刪除的索引長度/索引總長)*100 4、對碎片率高的索引執(zhí)行重建整理SQL> alter index <索引名> rebuild; 4.3打開索引自動監(jiān)控開關如數(shù)據(jù)庫中新增加、修改了索引,則可以打開這些索引的自動監(jiān)控。監(jiān)測索引的使用情況,根據(jù)使用情況,刪除未使用的索引,并添加能提高查詢和處理性能的索引。 SQL> alter index <索引名> monitoring usage; SQL> alter index &
49、lt;索引名> nomonitoring usage;SQL> select index_name,used from v$object_usage;5. 對用戶所有表、索引進行統(tǒng)計分析5.1 查詢EAS用戶所有表、索引的最新統(tǒng)計分析時間表:SQL>select table_name,last_analyzed from user_tables order by 2;索引:SQL>select table_name,index_name,last_analyzed from user_indexes order by 1,3注:last_analyzed字段顯示的日期太
50、老,則表明該表或索引最近未做統(tǒng)計分析,如果恰好最近大量更新、導入或刪除了記錄,需要重新對其執(zhí)行統(tǒng)計分析。5.2 自動化腳本方式對所有表、索引統(tǒng)計分析對用戶所有對象進行完整統(tǒng)計信息分析收集腳本:dbms_stats.gather_schema_stats(ownname=>'nmeas',method_opt=>'FOR ALL INDEXED COLUMNS SIZE auto',estimate_percent =>100,degree=>DBMS_STATS.DEFAULT_DEGREE,cascade=>true) 9i需(加
51、入crontab或bat任務)5.3 Oracle 10g OEM圖形化自定義對所有表、索引統(tǒng)計分析的自動化調(diào)度任務登錄OEM,選擇管理統(tǒng)計信息管理管理優(yōu)化程序統(tǒng)計信息“操作”搜集優(yōu)化程序統(tǒng)計信息范圍選項方案中選擇“定制選項”添加用來做統(tǒng)計信息收集的EAS用戶配置周統(tǒng)計信息收集Oracle相關參數(shù)配置周統(tǒng)計信息收集任務執(zhí)行的調(diào)度時間(下圖中配置的為每周星期六晚上12點自動執(zhí)行統(tǒng)計信息搜集)瀏覽周統(tǒng)計信息收集任務配置的完整信息提交完成周統(tǒng)計信息收集任務配置注: 每周末EAS用戶下所有表、索引通過上述任務執(zhí)行完整的統(tǒng)計分析。6. 導出表、索引最新統(tǒng)計分析數(shù)據(jù)將導出的統(tǒng)計分析數(shù)據(jù)導入測試庫,可以在測
52、試庫重新構建性能關鍵或所有sql語句執(zhí)行計劃、與基準執(zhí)行計劃進行比較。導出用戶當前統(tǒng)計信息:exec dbms_stats.export_schema_stats('nmeas','stats_export')注:存儲導出信息的表stats_export需在安裝部署EAS后臺數(shù)據(jù)庫時創(chuàng)建??梢钥紤]與周統(tǒng)計信息收集放在同一job中7. 性能報告分析就一周來的statspack報告進行整理、分析,主要關注:n 數(shù)據(jù)庫整體性能狀況指標n 數(shù)據(jù)庫主要等待事件n 最消耗cpu、內(nèi)存資源、I/O的SQL語句三 、 日常工作每月應做工作內(nèi)容1. 性能全面分析全面分析一次STATSPACK報告n 數(shù)據(jù)庫主要性能指標n 數(shù)據(jù)庫主要等待事件n 最消耗cpu、內(nèi)存資源、I/O的SQL語句 空間使用增長的全面分析n 確定是否需要擴充存儲空間n 考慮預留足夠下個月使用的空間2. 備份數(shù)據(jù)轉備將一個月以來的Rman
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫州市南浦小學2022年藝術節(jié)活動方案范文
- 環(huán)保教育培養(yǎng)下一代綠色生活意識
- 現(xiàn)代教育技術助力創(chuàng)新教學方法的推廣
- 現(xiàn)代辦公家具中的穩(wěn)固與美觀并存
- 國慶節(jié)成都漢服活動方案
- 現(xiàn)代遠程教育在海外的發(fā)展趨勢分析
- 汽車行業(yè)的社交媒體廣告投放策略
- 國慶節(jié)旅游宣傳活動方案
- 溫控技術在綠色辦公樓宇的革新發(fā)展
- 現(xiàn)代建筑設計的情感化表達
- 2024年海南公務員考試申論試題(A卷)
- 中醫(yī)培訓課件:《經(jīng)穴推拿術》
- 臨床藥師進修匯報課件
- 北京市首都師大附中2025屆數(shù)學高三第一學期期末達標測試試題含解析
- 專升本-英語高頻詞匯
- 《修辭立其誠》課件+2023-2024學年統(tǒng)編版高中語文選擇性必修中冊
- excel培訓課件教學
- 2024年貴州省高職(??疲┓诸惪荚囌惺罩新毊厴I(yè)生文化綜合考試語文試題
- 政治丨廣東省2025屆高中畢業(yè)班8月第一次調(diào)研考試廣東一調(diào)政治試卷及答案
- 項目三任務3:超聲波雷達的故障診斷與處理(課件)
- 派出所績效考核總結分析報告
評論
0/150
提交評論