OracleDBA日常工作手冊(cè)_第1頁(yè)
OracleDBA日常工作手冊(cè)_第2頁(yè)
OracleDBA日常工作手冊(cè)_第3頁(yè)
OracleDBA日常工作手冊(cè)_第4頁(yè)
OracleDBA日常工作手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Oracle DBA日常工作手冊(cè)第一章 . 事前階段一 、 日常工作每天應(yīng)做工作內(nèi)容1、工作內(nèi)容日常環(huán)境監(jiān)控1.1系統(tǒng)運(yùn)行環(huán)境監(jiān)控檢查文件系統(tǒng)以及oracle數(shù)據(jù)庫(kù)數(shù)據(jù)文件所在卷的使用(剩余空間),如果文件系統(tǒng)的剩余空間小于20%,需要?jiǎng)h除不用的文件以釋放空間;UNIX系統(tǒng)的文件系統(tǒng)及數(shù)據(jù)文件所在卷的空間使用率:su oraprod或者su - oratestAIX、linux查看磁盤(pán)空間:df k HP-UX查看磁盤(pán)空間:bdf1.2數(shù)據(jù)庫(kù)運(yùn)行狀況監(jiān)控 外部確認(rèn)所有的INSTANCE狀態(tài)正常(保證實(shí)例正常),檢查Oracle實(shí)例核心后臺(tái)進(jìn)程是否都存在、狀態(tài)是否正常$ ps -ef|grep

2、oraprod查看數(shù)據(jù)庫(kù)實(shí)例是否能正常連接、訪問(wèn)SQL> select status,instance_name from v$instance;監(jiān)聽(tīng)是否正常$ 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,那么就要采取相應(yīng)的措施,如對(duì)該數(shù)據(jù)文件進(jìn)行恢復(fù)操作,或重建該數(shù)據(jù)文件所在的表空間。Oracle數(shù)據(jù)庫(kù)日志文件是否正常SQL> Select * from v$log;SQL> Select * from v$logfile;1).檢查trace文件記錄alert和trace文件中的錯(cuò)誤。 telnet su oraprod在oraprod用戶下$ cd到bdump目錄,通常是$ORACLE_BASE/admin/<SID>/bdump 使用Unix的tail -f命令來(lái)查看aler

4、t_<SID>.log文件 如果發(fā)現(xiàn)任何新的ORA- 錯(cuò)誤,記錄并解決2).查看DBSNMP 的運(yùn)行情況 檢查每個(gè)被管理機(jī)器的DBSNMP進(jìn)程并將它們記錄到日志中。 在UNIX 中,在命令行中,鍵入ps ef | grep dbsnmp,將回看到2 個(gè) DBSNMP 進(jìn)程在運(yùn)行。如果沒(méi)有,重啟DBSNMP。(注意:此步驟在oraprod下只有1個(gè)進(jìn)程,需要研究)3). 檢查回滾段 回滾段的狀態(tài)一般是在線的,除了一些為復(fù)雜工作準(zhǔn)備的專(zhuān)用段一般狀態(tài)是離線的。a) 每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)回滾段名字的列表。 b) 你可以用V$ROLL

5、STAT 來(lái)查詢?cè)诰€或是離線的回滾段的現(xiàn)在狀態(tài); 日常操作1).不要在服務(wù)器上直接執(zhí)行rm操作當(dāng)有文件需要?jiǎng)h除時(shí),把這些文件mv到一個(gè)規(guī)定的文件夾,然后CD進(jìn)入此文件夾再進(jìn)行刪除操作。(注意:在rm日志文件時(shí)直接rm即可,若rm文件夾一定要rm r)2).數(shù)據(jù)庫(kù)備份校驗(yàn)命令:rman target /連接到數(shù)據(jù)庫(kù),rman>restore database validate;3).查看數(shù)據(jù)庫(kù)連接信息定時(shí)對(duì)數(shù)據(jù)庫(kù)的連接情況進(jìn)行檢查,看與數(shù)據(jù)庫(kù)建立的會(huì)話數(shù)目是不是正常,如果建立了過(guò)多的連接,會(huì)消耗數(shù)據(jù)庫(kù)的資源。同時(shí),對(duì)一些“掛死”的連接,可能需要手工進(jìn)行清理。以下的SQL語(yǔ)句列出當(dāng)前數(shù)據(jù)庫(kù)建

6、立的會(huì)話情況:Select count(*) from v$session; 查看當(dāng)前會(huì)話連接數(shù)select sid,serial#,username,program,machine,status from v$session;其中, SID 會(huì)話(session)的ID號(hào); SERIAL# 會(huì)話的序列號(hào),和SID一起用來(lái)唯一標(biāo)識(shí)一個(gè)會(huì)話; USERNAME 建立該會(huì)話的用戶名; PROGRAM 這個(gè)會(huì)話是用什么工具連接到數(shù)據(jù)庫(kù)的; STATUS 當(dāng)前這個(gè)會(huì)話的狀態(tài),ACTIVE表示會(huì)話正在執(zhí)行某些任務(wù),INACTIVE表示當(dāng)前會(huì)話沒(méi)有執(zhí)行任何操作; 如果DBA要手工斷開(kāi)某個(gè)會(huì)話,則執(zhí)行: a

7、lter system kill session 'SID,SERIAL#' 注意: USERNAME列為空的會(huì)話,是Oracle的后臺(tái)進(jìn)程,不要對(duì)這些會(huì)話進(jìn)行任何操作4).查看并發(fā)會(huì)話量并發(fā)會(huì)話量正常時(shí)段為60以下,查詢系統(tǒng)在20以下,如果超過(guò)這些指標(biāo),則認(rèn)為系統(tǒng)有阻塞情況,需要查找原因,引起關(guān)注。查詢系統(tǒng)并發(fā)的腳本為:select count(1) from v$session where status='ACTIVE' and username not in('SYS','SYSTEM');5).查看是否有僵死進(jìn)程selec

8、t spid from v$process where addr not in (select paddr from v$session);有些僵死進(jìn)程有阻塞其他業(yè)務(wù)的正常運(yùn)行,定期殺掉僵死進(jìn)程6).檢查數(shù)據(jù)庫(kù)定時(shí)作業(yè)的完成情況如果數(shù)據(jù)庫(kù)使用了Oracle的JOB來(lái)完成一些定時(shí)作業(yè),要對(duì)這些JOB的運(yùn)行情況進(jìn)行檢查:select job,log_user,last_date,failuresfrom dba_jobs;如果FAILURES列是一個(gè)大于0的數(shù)的話,說(shuō)明JOB運(yùn)行失敗,要進(jìn)一步的檢查。7).控制文件的備份在數(shù)據(jù)庫(kù)結(jié)構(gòu)發(fā)生變化時(shí),如增加了表空間,增加了數(shù)據(jù)文件或重做日志文件這些操作,

9、都會(huì)造成Oracle數(shù)據(jù)庫(kù)控制文件的變化,DBA應(yīng)及進(jìn)行控制文件的備份,備份方法是: 執(zhí)行SQL語(yǔ)句:alter database backup controlfile to '/home/backup/control.bak' 或: alter database  backup controlfile to trace; 這樣,會(huì)在USER_DUMP_DEST(初始化參數(shù)文件中指定)目錄下生成創(chuàng)建控制文件的SQL命令。8).數(shù)據(jù)庫(kù)壞塊的處理當(dāng)Oracle數(shù)據(jù)庫(kù)出現(xiàn)壞塊時(shí),Oracle會(huì)在警告日志文件(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ù)文件的絕對(duì)文件號(hào),<BLOCK>代表壞塊是數(shù)據(jù)文件上的第幾個(gè)數(shù)據(jù)塊出現(xiàn)這種情況時(shí),應(yīng)該首先檢查是否是硬件及操作系統(tǒng)上的故障導(dǎo)致Oracle數(shù)據(jù)庫(kù)出現(xiàn)壞塊。在排除了數(shù)據(jù)庫(kù)以外的原因后,再對(duì)發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象進(jìn)行處理。解決方式:1確定發(fā)生壞塊的數(shù)據(jù)庫(kù)對(duì)象

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ù)方法 如果發(fā)生壞塊的對(duì)象是一個(gè)索引,那么可以直接把索引DROP掉后,再根據(jù)表里的記錄進(jìn)行重建; 如果發(fā)生壞塊的表的記錄可以根據(jù)其它表的記錄生成的話,那么可以直接把這個(gè)表DROP掉后重建; 如果有數(shù)據(jù)庫(kù)的備份,則恢復(fù)數(shù)據(jù)庫(kù)的方法來(lái)進(jìn)行修復(fù); 如果表里的記錄沒(méi)

12、有其它辦法恢復(fù),那么壞塊上的記錄就丟失了,只能把表中其它數(shù)據(jù)塊上的記錄取出來(lái),然后對(duì)這個(gè)表進(jìn)行重建。 3用Oracle提供的DBMS_REPAIR包標(biāo)記出壞塊 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命令恢復(fù)原來(lái)的表 alter table corrupt_table_bak rename to corrupt_table; 7如果表上存在索引,則要重建表上的索引 1.3 檢查oracle數(shù)據(jù)庫(kù)表空間的使用情況 檢查表空間的使用情況1、查詢表空間的總?cè)萘縮elect 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語(yǔ)句,看表空間的碎片有沒(méi)有減少。如果沒(méi)有效果,并且表空間對(duì)表空間的擴(kuò)充對(duì)表空間的數(shù)據(jù)文件大小進(jìn)行擴(kuò)展,或向表空間增加數(shù)據(jù)文件,具體操作見(jiàn)“存儲(chǔ)管理”部份。 查看oracle數(shù)據(jù)庫(kù)的表空間包含的數(shù)據(jù)文件與增加或者刪除數(shù)據(jù)文件1、查看表空間中包含的數(shù)據(jù)文件以及數(shù)據(jù)文件的狀態(tài)與是否自動(dòng)擴(kuò)展大小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)上述語(yǔ)句解釋?zhuān)合騑ANJIN表空間中增加一個(gè)10M大小,最大自動(dòng)擴(kuò)展到20G的一個(gè)數(shù)據(jù)文件,括號(hào)內(nèi)的命令可以不執(zhí)行直接更改數(shù)據(jù)文

20、件的大?。篴lter tablespace WANJINDatafile E:U01APPORACLEORADATAWANJINDBAWANJIN3.DBF resize=100M3、刪除表空間數(shù)據(jù)文件Alter tablespace WANJINDrop datafile E:U01APPORACLEORADATAWANJINDBAWANJIN3.DBF4、檢查無(wú)效的數(shù)據(jù)庫(kù)對(duì)象 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、檢查無(wú)效的trigger SELECT owner, trigger_name, table_name, status FROM dba_triggers WHERE status = 'DISABLED7、檢查數(shù)據(jù)庫(kù)控制文件

22、在數(shù)據(jù)庫(kù)已經(jīng)啟動(dòng)的情況下:select * from v$controlfile如果數(shù)據(jù)庫(kù)沒(méi)有啟動(dòng)則: SQL>show parameter control_files;8、查看參數(shù)文件是否存在SQL>show parameter spfile;9、查看緩沖區(qū)命中率緩沖區(qū)命中率應(yīng)該保證在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ù)庫(kù)等待事件如果數(shù)據(jù)庫(kù)長(zhǎng)時(shí)間持續(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等等非空閑待事件時(shí),需要對(duì)其進(jìn)行分析,可能存在問(wèn)題的語(yǔ)句。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ù)庫(kù)鎖表情況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 間隔一段時(shí)間使用操作系統(tǒng)top等工具監(jiān)控UNIX操作系統(tǒng)資源動(dòng)態(tài)運(yùn)行狀況CPU、內(nèi)存、網(wǎng)絡(luò)、IO、進(jìn)程、頁(yè)面交換等主要活動(dòng)監(jiān)控: top、topas、vmstat、sar、iostat等2.2間隔一段時(shí)間對(duì)數(shù)據(jù)庫(kù)性能進(jìn)行監(jiān)控Oracle 11g 圖形工具Performance Manager監(jiān)控頂層會(huì)話及頂層SQL1 打開(kāi)OEM控制臺(tái),選中要監(jiān)控的數(shù)據(jù)庫(kù)(oracle中OEM后臺(tái)進(jìn)程運(yùn)

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)控:主機(jī)CPU,IO情況,Oracle數(shù)據(jù)庫(kù)進(jìn)程情況,SQL相應(yīng)時(shí)間等;登錄Oracle 11g OEM,選擇性能其它監(jiān)視鏈接:頂級(jí)活動(dòng)點(diǎn)擊“頂級(jí)會(huì)話”中的“活動(dòng)百分比”較高的“會(huì)話ID” 點(diǎn)擊該會(huì)話ID對(duì)應(yīng)的SQL ID,查

27、看該頂級(jí)會(huì)話中SQL的詳細(xì)信息點(diǎn)擊“計(jì)劃”“表”標(biāo)簽,查看該SQL語(yǔ)句的詳細(xì)執(zhí)行計(jì)劃瀏覽該頂層會(huì)話對(duì)應(yīng)SQL語(yǔ)句的詳細(xì)信息3、工作內(nèi)容日常數(shù)據(jù)庫(kù)管理3.1一天內(nèi)間隔一定時(shí)間運(yùn)行檢查警告日志文件中最新錯(cuò)誤信息Linux、Unix系列平臺(tái):vi $ORACLE_BASE/<SID>/bdump/alert_<sid>.log輸入:“/ORA” 回車(chē)進(jìn)行查找(此步驟為在.log文件中搜索包含該內(nèi)容的語(yǔ)句)系統(tǒng)運(yùn)行狀況快照采集每天根據(jù)實(shí)際情況,在以下三個(gè)階段手工運(yùn)行Statspack快照采集,輸出快照?qǐng)?bào)表:l 正常工作壓力下l 每天業(yè)務(wù)最高峰期l 特殊業(yè)務(wù)運(yùn)行階段Oracle

28、11g OEM圖形管理工具實(shí)現(xiàn)系統(tǒng)快照采集Oracle 11g OEM圖形工具自動(dòng)執(zhí)行快照采集,缺省1小時(shí)收集一次,可以根據(jù)實(shí)際情況修改收集間隔時(shí)間、降低對(duì)系統(tǒng)性能影響。系統(tǒng)快照自動(dòng)收集時(shí)間、間隔、保留期限設(shè)置登錄Oracle10g OEM,選擇服務(wù)器自動(dòng)工作量資料檔案庫(kù)點(diǎn)擊編輯,查看或修改快照收集時(shí)間及間隔 Oracle11g缺省系統(tǒng)快照每隔一小時(shí)執(zhí)行一次,保留最近8天的所有快照,可根據(jù)實(shí)際情況修改調(diào)整,點(diǎn)確定后保存所做修改。創(chuàng)建當(dāng)前時(shí)間點(diǎn)系統(tǒng)快照點(diǎn)擊管理快照和保留的快照集下面的當(dāng)前快照ID選擇起始快照,點(diǎn)擊創(chuàng)建選擇“是”開(kāi)始執(zhí)行快照創(chuàng)建快照在當(dāng)前時(shí)間點(diǎn)成功創(chuàng)建。輸出兩個(gè)快照時(shí)間點(diǎn)之間的快照

29、信息報(bào)表把“創(chuàng)建保留的快照集”改為“查看報(bào)告”,選擇起始快照號(hào),點(diǎn)擊“開(kāi)始”選擇結(jié)束快照號(hào),點(diǎn)擊“確定”開(kāi)始創(chuàng)建兩個(gè)快照時(shí)間點(diǎn)之間的所有統(tǒng)計(jì)信息報(bào)告另存該輸出快照?qǐng)?bào)告為HTML文件注:生成的統(tǒng)計(jì)信息快照?qǐng)?bào)告放在專(zhuān)門(mén)目錄下,定期對(duì)其整理、分析,作為EAS數(shù)據(jù)庫(kù)運(yùn)行整體狀況及問(wèn)題診斷的依據(jù)。3.2 每天工作結(jié)束后、系統(tǒng)空閑時(shí)運(yùn)行 圖形界面查看表空間使用率 Oracle 11g OEM表空間管理登錄OEM后選擇主目錄空間概要數(shù)據(jù)庫(kù)大小在該界面下可以看到表空間使用率,以及可以添加表空間和增加數(shù)據(jù)文件。數(shù)據(jù)庫(kù)備份及日志清理數(shù)據(jù)庫(kù)備份主要提供兩種方式,物理備份及邏輯備份,物理備份主要使用Oracle RM

30、AN工具,邏輯備份主要使用Oracle導(dǎo)出工具Exp及Expdp。Oracle 物理備份(RMAN)該方式下周一到周五每天做一次增量備份,并檢查備份是否正確,同時(shí)清理歸檔日志。Oracle11g OEM圖形化方式設(shè)置RMAN備份自動(dòng)執(zhí)行任務(wù)RMAN備份主要參數(shù)設(shè)置登錄11g OEM,選擇:可用性 備份/恢復(fù)/備份設(shè)置磁盤(pán)設(shè)備備份路徑、并行度指定(根據(jù)服務(wù)器cpu個(gè)數(shù)匹配)在這里的的用戶名和密碼是操作系統(tǒng)的用戶和密碼;備份策略設(shè)置主要是指定備份磁盤(pán)位置及備份保留時(shí)間,下圖設(shè)置中為周備份策略考慮,保留最近7天備份。兩種RMAN自動(dòng)調(diào)度備份策略1) 使用Oracle建議的自動(dòng)調(diào)度備份策略選擇可用性管

31、理調(diào)度備份選擇“調(diào)度Oracle建議的備份”選擇備份目標(biāo)介質(zhì),缺省備份到磁盤(pán)介質(zhì)該備份策略內(nèi)容描述設(shè)置該策略執(zhí)行數(shù)據(jù)庫(kù)全量或增量備份的調(diào)度時(shí)間調(diào)度oracle建議的備份:復(fù)查2) 自定義RMAN自動(dòng)備份策略選擇“可用性管理調(diào)度備份調(diào)度定制備份”選擇備份類(lèi)型、歸檔日志、過(guò)時(shí)備份清理策略 備份目標(biāo)介質(zhì)設(shè)置(缺省使用前面“備份設(shè)置”中設(shè)置的參數(shù))備份自動(dòng)執(zhí)行的調(diào)度備份設(shè)置信息復(fù)查,確定后提交作業(yè)通過(guò)查看作業(yè)可以了解備份任務(wù)進(jìn)展情況。3) 查看當(dāng)前數(shù)據(jù)庫(kù)RMAN備份信息選擇可用性管理備份報(bào)告,可以查看所有備份執(zhí)行情況注:前面描述的是數(shù)據(jù)庫(kù)全量備份的調(diào)度策略設(shè)置,增量備份的調(diào)度策略設(shè)置方法類(lèi)似,只需要在

32、備份類(lèi)型中選擇增量備份即可。設(shè)置完成后EAS數(shù)據(jù)庫(kù)自動(dòng)備份策略為一周一次全量備份,在星期六晚上12點(diǎn)進(jìn)行。周一到周五每天晚上12點(diǎn)執(zhí)行一次增量備份,保留最近7天備份,過(guò)期備份、歸檔日志自動(dòng)刪除。Oracle邏輯備份(EXP/EXPDP)1) 操作系統(tǒng)級(jí)設(shè)置自動(dòng)備份任務(wù)root用戶登錄操作系統(tǒng),運(yùn)行crontab e,添加以下內(nèi)容:50 23 * * 1-6 su oracle -c /usr/app/oracle/expdp/eas_expdp_MontoSat.sh > /dev/null 2>&1#星期一到星期六晚上11點(diǎn)50導(dǎo)出數(shù)據(jù)50 23 * * 0 su ora

33、cle -c /usr/app/oracle/expdp/eas_expdp_Sunday.sh > /dev/null 2>&1#星期日11點(diǎn)50開(kāi)始導(dǎo)出數(shù)據(jù),并刪除上周一到周六導(dǎo)出的備份數(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工具,在部署導(dǎo)出自動(dòng)任務(wù)前需創(chuàng)建導(dǎo)出dmp文件存放目錄并授權(quán)給EAS數(shù)據(jù)庫(kù)用戶:#!/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 附: 上述腳本中導(dǎo)出路徑 /usr/app/oracle/expdp需根據(jù)現(xiàn)場(chǎng)實(shí)際情況修改,備份腳本eas_expdp_MontoSat.sh、eas_expdp_Sunday.sh需賦予可執(zhí)行權(quán)限。Expdp導(dǎo)出目錄需要?jiǎng)?chuàng)建,具體方法請(qǐng)參看本文檔

38、四 日常工作數(shù)據(jù)庫(kù)第一次安裝部署后需做的工作根據(jù)監(jiān)控信息,對(duì)需要的表、索引統(tǒng)計(jì)分析.1 Oracle9i 自動(dòng)化腳本方式對(duì)表、索引進(jìn)行統(tǒng)計(jì)分析Oracle9i缺省不對(duì)表進(jìn)行改動(dòng)監(jiān)控,如果需要根據(jù)監(jiān)控信息來(lái)判斷是否需對(duì)表進(jìn)行重新統(tǒng)計(jì)分析,則需要手工打開(kāi)表監(jiān)控開(kāi)關(guān),如下:打開(kāi)表監(jiān)控開(kāi)關(guān):alter table 表名 monitoring;/監(jiān)控表信息記錄在sys.dba_tab_modifications視圖中根據(jù)監(jiān)控信息對(duì)用戶統(tǒng)計(jì)信息分析收集腳本:dbms_stats.gather_schema_stats(ownname=>'nmeas',options=>'

39、;GATHER AUTO').2 Oracle10g 自動(dòng)化任務(wù)表、索引統(tǒng)計(jì)分析方式Oracle10g 缺省自動(dòng)對(duì)所有表變動(dòng)進(jìn)行監(jiān)控,并自動(dòng)執(zhí)行所有用戶統(tǒng)計(jì)分析,可以禁止該缺省方式,在dbconsole中手工配置對(duì)特定用戶統(tǒng)計(jì)分析任務(wù)。Oracle10g禁用、啟用缺省數(shù)據(jù)庫(kù)自動(dòng)統(tǒng)計(jì)信息分析收集任務(wù):exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB');Oracle10g OEM圖形工具自定義配置統(tǒng)計(jì)分析任

40、務(wù)登錄OEM,選擇管理統(tǒng)計(jì)信息管理管理優(yōu)化程序統(tǒng)計(jì)信息選擇“操作”搜集優(yōu)化程序統(tǒng)計(jì)信息選擇“方案”,點(diǎn)擊下一步設(shè)置用戶統(tǒng)計(jì)信息分析自動(dòng)執(zhí)行的時(shí)間調(diào)度示例中設(shè)置的是從2007-03-29開(kāi)始,每天晚上12點(diǎn)自動(dòng)執(zhí)行用戶NMEAS統(tǒng)計(jì)信息分析,用戶統(tǒng)計(jì)信息分析任務(wù)設(shè)置完整欄目顯示提交完成任務(wù)設(shè)置查看數(shù)據(jù)庫(kù)中所有自動(dòng)調(diào)度任務(wù)執(zhí)行情況OEM中選擇欄目:管理統(tǒng)計(jì)信息管理(管理優(yōu)化程序統(tǒng)計(jì)信息)選擇相關(guān)鏈接作業(yè)調(diào)度程序注:上述配置的自動(dòng)統(tǒng)計(jì)分析任務(wù)利用Oracle自動(dòng)監(jiān)控來(lái)判斷哪些對(duì)象改動(dòng)較大,需要重新進(jìn)行統(tǒng)計(jì)分析。然后在調(diào)度的時(shí)間對(duì)其重新進(jìn)行統(tǒng)計(jì)分析。二 、日常工作每隔一周工作內(nèi)容1. 文件整理工作n

41、警告日志、跟蹤文件、dump文件清理n 備份文件整理n Statspack統(tǒng)計(jì)分析報(bào)告整理2. 數(shù)據(jù)庫(kù)全量備份2.1 Oracle 9i RMAN自動(dòng)化腳本方式全量備份Rman備份命令寫(xiě)到一個(gè)腳本中,在命令行中執(zhí)行這個(gè)腳本RMAN TARGET / NOCATALOG sys/oracle CMDFILE e: backup_incre_0.rcv LOG e: backup_incre_0.log數(shù)據(jù)庫(kù)完全備份腳本: 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);刪除過(guò)期備份:RMAN>delete expired backup;2.2 Oracle 10g OEM 圖形方式創(chuàng)建RMAN全量備份數(shù)據(jù)庫(kù)任務(wù)具體方法、步驟請(qǐng)參看數(shù)據(jù)庫(kù)日常工作每天應(yīng)做工作內(nèi)容中RMAN備份部分3.

43、 根據(jù)一周數(shù)據(jù)增長(zhǎng)率分析預(yù)留數(shù)據(jù)文件下一周所需增長(zhǎng)空間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表包含的索引及相關(guān)

45、列檢查1、 表及索引創(chuàng)建、修改日期檢查EAS用戶登錄到數(shù)據(jù)庫(kù),執(zhí)行語(yǔ)句:SQL>SELECT OBJECT_NAME,OBJECT_TYPE,CREATED,LAST_DDL_TIME,STATUS FROM USER_OBJECTS;2、 表包含的索引及索引相關(guān)列檢查SQL> SELECT INDEX_NAME,TABLE_NAME,COLUMN_NAME FROM USER_IND_COLUMNS WHERE TABLE_NAME LIKE 'T_%' ORDER BY TABLE_NAME;3、 特定表及其關(guān)聯(lián)索引、列詳細(xì)信息檢查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('','')注:如需輸出語(yǔ)句執(zhí)行結(jié)果信息,可在語(yǔ)句執(zhí)行前spool tableindex.list,執(zhí)行完成后再spool off;4.2自動(dòng)化腳本方式對(duì)索引進(jìn)行

47、碎片分析每周監(jiān)測(cè)一次索引的碎片情況,根據(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、基于分析結(jié)果,查看索引碎片率:SQL> select name,del_lf_rows_len,lf_rows_l

48、en,(del_lf_rows_len/lf_rows_len)*100 from index_stats;索引碎片率(%) = (被刪除的索引長(zhǎng)度/索引總長(zhǎng))*100 4、對(duì)碎片率高的索引執(zhí)行重建整理SQL> alter index <索引名> rebuild; 4.3打開(kāi)索引自動(dòng)監(jiān)控開(kāi)關(guān)如數(shù)據(jù)庫(kù)中新增加、修改了索引,則可以打開(kāi)這些索引的自動(dòng)監(jiān)控。監(jiān)測(cè)索引的使用情況,根據(jù)使用情況,刪除未使用的索引,并添加能提高查詢和處理性能的索引。 SQL> alter index <索引名> monitoring usage; SQL> alter index &

49、lt;索引名> nomonitoring usage;SQL> select index_name,used from v$object_usage;5. 對(duì)用戶所有表、索引進(jìn)行統(tǒng)計(jì)分析5.1 查詢EAS用戶所有表、索引的最新統(tǒng)計(jì)分析時(shí)間表: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)計(jì)分析,如果恰好最近大量更新、導(dǎo)入或刪除了記錄,需要重新對(duì)其執(zhí)行統(tǒng)計(jì)分析。5.2 自動(dòng)化腳本方式對(duì)所有表、索引統(tǒng)計(jì)分析對(duì)用戶所有對(duì)象進(jìn)行完整統(tǒng)計(jì)信息分析收集腳本: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任務(wù))5.3 Oracle 10g OEM圖形化自定義對(duì)所有表、索引統(tǒng)計(jì)分析的自動(dòng)化調(diào)度任務(wù)登錄OEM,選擇管理統(tǒng)計(jì)信息管理管理優(yōu)化程序統(tǒng)計(jì)信息“操作”搜集優(yōu)化程序統(tǒng)計(jì)信息范圍選項(xiàng)方案中選擇“定制選項(xiàng)”添加用來(lái)做統(tǒng)計(jì)信息收集的EAS用戶配置周統(tǒng)計(jì)信息收集Oracle相關(guān)參數(shù)配置周統(tǒng)計(jì)信息收集任務(wù)執(zhí)行的調(diào)度時(shí)間(下圖中配置的為每周星期六晚上12點(diǎn)自動(dòng)執(zhí)行統(tǒng)計(jì)信息搜集)瀏覽周統(tǒng)計(jì)信息收集任務(wù)配置的完整信息提交完成周統(tǒng)計(jì)信息收集任務(wù)配置注: 每周末EAS用戶下所有表、索引通過(guò)上述任務(wù)執(zhí)行完整的統(tǒng)計(jì)分析。6. 導(dǎo)出表、索引最新統(tǒng)計(jì)分析數(shù)據(jù)將導(dǎo)出的統(tǒng)計(jì)分析數(shù)據(jù)導(dǎo)入測(cè)試庫(kù),可以在測(cè)

52、試庫(kù)重新構(gòu)建性能關(guān)鍵或所有sql語(yǔ)句執(zhí)行計(jì)劃、與基準(zhǔn)執(zhí)行計(jì)劃進(jìn)行比較。導(dǎo)出用戶當(dāng)前統(tǒng)計(jì)信息:exec dbms_stats.export_schema_stats('nmeas','stats_export')注:存儲(chǔ)導(dǎo)出信息的表stats_export需在安裝部署EAS后臺(tái)數(shù)據(jù)庫(kù)時(shí)創(chuàng)建??梢钥紤]與周統(tǒng)計(jì)信息收集放在同一job中7. 性能報(bào)告分析就一周來(lái)的statspack報(bào)告進(jìn)行整理、分析,主要關(guān)注:n 數(shù)據(jù)庫(kù)整體性能狀況指標(biāo)n 數(shù)據(jù)庫(kù)主要等待事件n 最消耗cpu、內(nèi)存資源、I/O的SQL語(yǔ)句三 、 日常工作每月應(yīng)做工作內(nèi)容1. 性能全面分析全面分析一次STATSPACK報(bào)告n 數(shù)據(jù)庫(kù)主要性能指標(biāo)n 數(shù)據(jù)庫(kù)主要等待事件n 最消耗cpu、內(nèi)存資源、I/O的SQL語(yǔ)句 空間使用增長(zhǎng)的全面分析n 確定是否需要擴(kuò)充存儲(chǔ)空間n 考慮預(yù)留足夠下個(gè)月使用的空間2. 備份數(shù)據(jù)轉(zhuǎn)備將一個(gè)月以來(lái)的Rman

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論