版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
密級:保密
OraclelOg數(shù)據(jù)庫
日常維護手冊
目錄
1.檢查數(shù)據(jù)庫基本狀況4
1.1.檢查ORACLE實例狀態(tài)4
1.2.檢查ORACLE服務進程4
1.3.檢查ORACLE監(jiān)聽狀態(tài)5
2.檢查系統(tǒng)和ORACLE日志文件6
2.1.檢查操作系統(tǒng)日志文件6
2.2.檢查ORACLE日志文件6
2.3.檢查ORACLE核心轉(zhuǎn)儲書目7
2.4.檢行ROOT用戶和ORACLE用戶的EMAIL7
3.檢查ORACLE對象狀態(tài)7
3.1.檢查ORACLE限制文件狀態(tài)7
3.2.檢查ORACLE在線日志狀態(tài)7
3.3.檢查ORACLE表空間的狀態(tài)8
3.4.檢查ORACLE全部數(shù)據(jù)文件狀態(tài)8
3.5.檢查無效對象9
3.6.檢查全部回滾段狀態(tài)9
4.檢查ORACLE相關(guān)資源的運用狀況10
4.1.檢行ORACLE初始化文件中相關(guān)參數(shù)值10
4.2.檢查數(shù)據(jù)庫連接狀況11
4.3.檢查系統(tǒng)磁盤空間12
4.4.檢查表空間運用狀況12
4.5.檢查一些擴展異樣的對象13
4.6.檢查SYSTEM表空間內(nèi)的內(nèi)容13
4.7.檢查對象的下一擴展與表空間的最大擴展值14
5.檢查ORACLE數(shù)據(jù)庫備份結(jié)果14
5.1.檢查數(shù)據(jù)庫備份日志信息14
5.2.檢查BACKUP卷中文件產(chǎn)生的時間15
5.3.檢查ORACLE用戶的EMAIL15
6.檢查ORACLE數(shù)據(jù)庫性能15
6.1.檢查數(shù)據(jù)庫的等待事務15
6.2.DISKREAD最高的SQL語句的獲得15
6.3.查找前十條性能差的SQL15
6.4.等待時間最多的5個系統(tǒng)等待事務的獲得16
6.5.檢查運行很久的SQL16
6.6.檢查消耗CPU最高的進程16
6.7.檢查碎片程度高的表16
6.8.檢查表空間的I/O比例17
6.9.檢查文件系統(tǒng)的I/O比例17
6.10.檢查死鎖及處理17
6.11.檢查數(shù)據(jù)庫CPU、I/O、內(nèi)存性能17
6.12.查看是否有僵死進程19
6.13.檢查行鏈接/遷移19
6.14.定期做統(tǒng)計分析19
6.15.檢查緩沖區(qū)命中率19
6.16.檢查共享池命中率20
6.17.檢查排序區(qū)20
6.18.檢查日志緩沖區(qū)20
7.檢查數(shù)據(jù)庫平安性21
7.1.檢查系統(tǒng)平安日志信息21
7.2.檢查用戶修改密碼21
8.其他檢查21
8.1.檢查當前CRONTAB任務是否正常22
8.2.ORACLEJOB是否有失敗22
8.3.監(jiān)控數(shù)據(jù)量的增長狀況22
8.4.檢查失效的索引23
8.5.檢查不起作用的約束23
8.6.檢查無效的TRIGGER23
巡檢內(nèi)容
1.檢查數(shù)據(jù)庫基本狀況
在本節(jié)中主要對數(shù)據(jù)庫的基本狀況進行檢查,其中包含:檢查Oracle實例狀態(tài),檢查
Oracle服務進程,檢查Oracle監(jiān)聽進程,共三個部分。
1.1.檢查Oracle實例狀態(tài)
SQL>selectinstance_name,host_name,startup_time,status,database_statusfromv$instance;
INSTANCE_NAMEHOST_NAMESTARTUP.TIMESTATUSDATABASE_STATUS
CKDBAS142009-5-79:3OPENACTIVE
其中“STATUS”表示Oracle當前的實例狀態(tài),必需為“OPEN”:“DATABASE_STATUS”表示
Oracle當前數(shù)據(jù)庫的狀態(tài),必需為“ACTIVE”。
SQL>selectname,log_mode,open_m(xlefromv$database;
NAMELOG.MODEOPEN.MODE
CKDBARCHIVELOGREADWRITE
其中“LOG_MODE”表示Oracle當前的歸檔方式。“ARCHIVELOG”表示數(shù)據(jù)庫運行在歸檔模
式下,“NOARCHIVELOG”表示數(shù)據(jù)庫運行在非歸檔模式下。在我們的系統(tǒng)中數(shù)據(jù)庫必需運
行在歸檔方式下。
1.2.檢查Oracle服務進程
$ps-eflgrepora_|grep-vgrep&&ps-ef|grepora_|grep-vgreplwc-1
oracle296010May07?00:01:02ora_pmon_CKDB
oracle296210May07?00:00:22ora_psp0_CKDB
oracle296410May07?00:00:00ora_mman_CKDB
oracle296610May07?00:03:20ora_dbw0_CKDB
oracle296810May07?00:04:29ora_lgwr_CKDB
oracle297010May07?00:10:31ora_ckpt_CKDB
oracle297210May07?00:03:45ora_smon_CKDB
oracle297410May07?00:00:00ora_reco_CKDB
oracle297610May07?00:01:24ora_cjq0_CKDB
oracle297810May07?00:06:17ora_mmon_CKDB
oracle298010May07?00:07:26ora_mmnl_CKDB
oracle298210May07?00:00:00ora_d000_CKDB
oracle298410May07?00:00:00ora_s000_CKDB
oracle299410May07?00:00:28ora_arcO_CKDB
oracle299610May07?00:00:29ora_arcl_CKDB
oracle300010May07?00:00:00ora_qmnc_CKDB
oracle362510MayU7?00:UI:40ora_q000_CKDB
oracle3159410Jul20?00:00:00ora_q003_CKDB
oracle238021005:09?00:00:33oraJ000_CKDB
19
在檢查Oracle的進程吩咐輸出后,輸出顯示至少應包括以下一些進程:
.Oracle寫數(shù)據(jù)文件的進程,輸出顯示為:“ora_dbwO_CKDB”
.Oracle寫日志文件的進程,輸出顯示為:“ora」gwr_CKDB”
.Oracle監(jiān)聽實例狀態(tài)的進程,輸出顯示為:“ora_smon_CKDB”
.Oracle監(jiān)聽客戶端連接進程狀態(tài)的進程,輸出顯示為:“ora_pmon_CKDB”
.Oracle進行歸檔的進程,輸出顯示為:“ora_arcO_CKDB”
.Oracle進行檢查點的進程,輸出顯示為:<4ora_ckpt_CKDBM
.Oracle進行復原的進程,輸出顯示為:“ora_reco_CKDB”
1.3.檢查Oracle監(jiān)聽狀態(tài)
/home/oracle>lsnrctlstatus
LSNRCTLforLinux:Version.2.0-Productionon23-JUL-202414:11:53
Copyright(c)1991,2023,Oracle.Allrightsreserved.
Connectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUSoftheLISTENER
AliasLISTENER
VersionTNSLSNRforLinux:Version.2.0-Production
StartDate07-MAY-202409:35:52
Uptime77days4hr.36min.0sec
TraceLeveloff
SecurityON:LocalOSAuthentication
SNMPOFF
ListenerParameterFile/data/oracle/product//network/admin/listener.ora
ListenerLogFile/data/oracle/product//network/log/listener.log
ListeningEndpointsSummary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=AS14)(PORT=1521)))
ServicesSummary...
Service"CKDB"has1instance(s).
Instance"CKDB",statusREADY,has1handler(s)forthisservice...
Service"CKDBXDB"has1instancc(s).
Instance"CKDB",statusREADY,has1handler(s)forthisservice...
Service"CKDB_XPTnhas1instance(s).
Instance"CKDB",statusREADY,has1handler(s)forthisservice...
Thecommandcompletedsuccessfully
ServicesSummary”項表示Oracle的監(jiān)聽進程正在監(jiān)聽哪些數(shù)據(jù)庫實例,輸出顯示中至少應
當有“CKDB”這一項。
檢查監(jiān)聽進件是否存在:
loracle@AS14~J$ps-eflgreplsn|grep-vgrep
oracle295410May07?00:01:17/data/oracle/produci//bin/tnslsnr
LISTENER-inherit
2.檢查系統(tǒng)和oracle日志文件
在本節(jié)主要檢查相關(guān)的日志文件,包含:檢查操作系統(tǒng)的日志文件,檢查Oracle日志
文件,檢查Oracle核心轉(zhuǎn)儲書目,檢查Root用戶和Oracle用戶的email,總共四個部分。
2.1.檢查操作系統(tǒng)日志文件
#cat/var/log/messagesIgrepfailed
查看是否有與Oracle用戶相關(guān)的出錯信息。
2.2.檢查oracle日志文件
[oracle@AS!4~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgrepora-
loracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgreperr
[oracle@AS14~]$cat/data/oracle/admin/CKDB/bdump/alert_CKDB.logIgrepfail
Oracle在運行過程中,會在警告日志文件(alerl_SID.log)中記錄數(shù)據(jù)庫的一些運行狀況:數(shù)據(jù)
庫的啟動、關(guān)閉,啟動時的非缺省參數(shù);數(shù)據(jù)庫的重做日志切換狀況,記錄每次切換的時間,
及假如因為檢查點(checkpoint)操作沒有執(zhí)行完成造成不能切換,會記錄不能切換的緣由;
對數(shù)據(jù)庫進行的某些操作,如創(chuàng)建或刪除表空間、增加數(shù)據(jù)文件:數(shù)據(jù)庫發(fā)生的錯誤,如表
空間不夠、出現(xiàn)壞塊、數(shù)據(jù)庫內(nèi)部錯誤(ORA—600)等。定期檢查日志文件,依據(jù)日志中發(fā)
覺的問題剛好進行處理:
問題處理
啟動參數(shù)不對檢查初始化參數(shù)文件
因為檢查點操作或歸檔操作沒有完成造假如常常發(fā)生這樣的狀況,可以考慮增加重做日
成重做日志不能切換志文件組:想方法提高檢查點或歸檔操作的效率;
有人未經(jīng)授權(quán)刪除了表空間檢查數(shù)據(jù)庫的平安問題,是否密碼太簡潔;如有
必要,撤消某些用戶的系統(tǒng)權(quán)限
出現(xiàn)壞塊檢查是否是硬件問題(如磁盤本生有壞塊),假如不
是,檢查是那個數(shù)據(jù)庫對象出現(xiàn)了壞塊,對這個
對象進行重建
表空間不夠增加數(shù)據(jù)文件到相應的表空間
出現(xiàn)ORA-600依據(jù)日志文件的內(nèi)容查看相應的TRC文件,假如
是Oracle的bug,要剛好打上相應的補丁
Listener日志:SORACLE-HOMRnetwork/log
2.3.檢查Oracle核心轉(zhuǎn)儲書目
$ls$ORACLE_BASE/admin/CKDB/cdump/*.trc|wc-1
$ls$ORACLE_BASE/admin/CKDB/udump/*.trc|wc-1
假如上面吩咐的結(jié)果每天都在增長,則說明Oracle進程常常發(fā)生核心轉(zhuǎn)儲。這說明某些用
戶進程或者數(shù)據(jù)庫后臺進程由于無法處理的緣由而異樣退出。常見的核心轉(zhuǎn)儲特殊是數(shù)據(jù)庫
后臺進程的核心轉(zhuǎn)儲會導致數(shù)據(jù)廢異樣終止。
2.4.檢查Root用戶和Oracle用戶的email
#tail-n200/var/mail/root
#tail-n200/var/mail/oracle
查看有無與Oracle用戶相關(guān)的出錯信息。
3.檢查Oracle對象狀態(tài)
在本節(jié)主要檢查相關(guān)Oracle對象的狀態(tài),包含:檢查Oracle限制文件狀態(tài),檢查Oracle
在線日志狀態(tài),檢查Oracle表空間的狀態(tài),檢查Oracle全部數(shù)據(jù)文件狀態(tài),檢查Oracle全
部表、索引、存儲過程、觸發(fā)器、包等對象的狀態(tài),檢杳Oracle全部回滾段的狀態(tài),總共
六個部分。
3.1.檢查Oracle限制文件狀態(tài)
SQL>selectstatus,namefromvScontrolfile;
STATUSNAME
/data/oradata/CKDB/controlOl.ctl
/data/oradata/CKDB/control02.ctl
/data/oradata/CKDB/control03.ctl
輸出結(jié)果應當有3條以上(包含3條)的記錄,“STATUS”應當為空。狀態(tài)為空表示限制文
件狀態(tài)正常。
3.2.檢查Oracle在線日志狀態(tài)
SQL>selectgroup#,status,type,memberfromv$logfile;
GROUP#STATUSTYPEMEMBER
3ONLINE/data/oradata/CKDB/redo03.log
2ONLINE/data/oradata/CKDB/redo02.1og
1ONLINE/data/oradata/CKDB/rcdoOl.log
4ONLINE/data/oradala/CKDBZredo04.log
5ONLINE/data/oradata/CKDB/redo05.log
6ONLINE/da(a/oradala/CKDB/redo06.1og
6rowsselected
輸出結(jié)果應當有3條以上(包含3條)記錄,“STATUS”應當為非“INVALID”,非“DELETED”。
注:“STATUS”顯示為空表示正常。
3.3.檢查Oracle表空間的狀態(tài)
SQL>selecttablespace_name,statusfromdba_tablespaces;
TABLESPACE_NAMESTATUS
SYSTEMONLINE
UNDOTBS1ONLINE
SYSAUXONLINE
TEMPONLINE
USERSONLINE
SJ1ONLINE
ADMJNDEXONLINE
HOME_DATAONLINE
HOME_INDEXONLINE
PHOTO_DATAONLINE
PHOTO.INDEXONLINE
ooooooo
輸出結(jié)果中STATUS應當都為ONLINE。
3.4.檢查Oracle全部數(shù)據(jù)文件狀態(tài)
SQL>selectname,statusfromv$datafile;
NAMESTATUS
/data/oradata/CKDB/systemOI.dbfSYSTEM
/data/oradata/CKDB/undotbsOl.dbfONLINE
/data/oradata/CKDB/sysauxOI.dbfONLINE
/data/oradata/CKDB/usersOl.dbfONLINE
/data/oradata/CKDB/sj.dbfONLINE
/data/oradata/CKDB/HOME_DATAl.dbfONLINE
/data/oradata/CKDB/HOME_INDEXI.dbfONLINE
/data/oradata/CKDB/PHOTO_DATAl.dbfONLINE
/data/oradata/CKDB/PHOTOJNDEXl.dbfONLINE
/data/orada(a/CKDB/BLOG_DAlAl.dbfONLINE
/data/oradata/CKDB/BLOG_INDEXl.dbfONLINE
/data/oradata/CKDB/AUDIO_DATAl.dbfONLINE
/data/oradata/CKDB/AUDIO_INDEXl.dbfONLINE
/data/oradata/CKDB/VIDEO_DATAl.dbfONLINE
/data/oradata/CKDBA^IDEOJNDEXl.dbfONLINE
/data/oradata/CKDB/SYS_DATAl.dbfONLINE
/data/orada(a/CKDB/SYS_INDEXl.dbfONLINE
/data/oradata/CKDB/ADM_DATAl.dbfONLINE
/data/orada(a/CKDB/ADMJNDEX1.dbfONLINE
/data/oradata/CKDB/pcrfstat.dbfONLINE
輸出結(jié)果中“STATUS”應當都為“ONLINE”。或者:
SQL>selectfile_name,statusfromdba_data_files;
FILE_NAMESTATUS
/da(a/orada(a/CKDB/users01.dbfAVAILABLE
/data/oradata/CKDB/sysauxO1.dbfAVAILABLE
/data/oradata/CKDB/undotbsOl.dbfAVAILABLE
/data/oradata/CKDB/systemO1.dbfAVAILABLE
/data/oradata/CKDB/sj.dbfAVAILABLE
/data/oradata/CKDB/perfstat.dbfAVAILABLE
/data/oradata/CKDB/HOME_DATAl.dbfAVAILABLE
/data/oradata/CKDB/HOME_INDEXl.dbfAVAILABLE
/data/oradata/CKDB/PHOTO_DATAl.dbfAVAILABLE
輸出結(jié)果中“STATUS”應當都為“AVAILABLE”。
3.5.檢查無效對象
sql>selectowner,objcct_namc,object_typcfromdba_objectswherestatus!=*VALID'and
owner!='SYS'andowner!='SYSTEM,;
norowsselected
假如有記錄返回,則說明存在無效對象。若這些對象與應用相關(guān),那么須要重新編譯生成這
個對象,或者:
SELECTowner,object_name,object_typeFROMdba_objectsWHEREstatus='INVALID';
3.6.檢查全部回滾段狀態(tài)
SQL>selectsegment_name,statusfromdba_rol1back_segs;
SEGMENT_NAMESTATUS
SYSTEMONLINE
_SYSSMU1$ONLINE
_SYSSMU2$ONLINE
_SYSSMU3$ONLINE
_SYSSMU4$ONLINE
_SYSSMU5$ONLINE
_SYSSMU6$ONLINE
_SYSSMU7$ONLINE
_SYSSMU8$ONLINE
_SYSSMU9$ONLINE
_SYSSMU10$ONLINE
11rowsselected
輸出結(jié)果中全部回滾段的“STATUS”應當為“ONLINE”。
4.檢查Oracle相關(guān)資源的運用狀況
在本節(jié)主要檢查Oracle相關(guān)資源的運用狀況,包含:檢查Oracle初始化文件中相關(guān)的
參數(shù)值,檢查數(shù)據(jù)庫連接狀況,檢查系統(tǒng)磁盤空間,檢查Oracle各人表空間運用狀況,檢
查一些擴展異樣的對象,檢查system表空間內(nèi)的內(nèi)容,檢查對象的下一擴展與表空間的最
大擴展值,總共七個部分。
4.1.檢查Oracle初始化文件中相關(guān)參數(shù)值
SQL>selectresource_name,max_utilization,initial_allocation,
limit_valucfromv$rcsource_limit;
RESOURCE_NAMEMAX_UTILIZATIONINITIAL_ALLOCATLIMIT_VALUE
processes162500500
sessions168555555
enqueuejock/p>
enqueue_resources1112660UNLIMITED
ges_procs000
ges_ress00UNLIMITED
ges_locks00UNLIMITED
ges_cache_ress00UNLIMITED
ges_reg_msgs00UNLIMITED
ges_big_msgs00UNLIMITED
ges_rsv_msgs000
gcs_resources000
gcs_shadows000
dml_Iocks762440UNLIMITED
temporary_table_locks26UNLIMITEDUNLIMITED
transactions13610UNLIMITED
branches0610UNLIMITED
cmtcallbk3610UNLIMITED
sort_segment_locks5UNLIMITEDUNLIMITED
max_rollback_segments1161065535
RESOURCE_NAMEMAX_UTILIZATIONINITIAL_ALLOCATLIMIT_VALUE
max_shared_servers1UNLIMITEDUNLIMITED
parallel_max_servers16803600
22rowsselected
若LIMIT_VALU-MAX_UTILIZATI0N<=5,則表明與RESOURCE_NAME相關(guān)的Oracle初
始化參數(shù)須要調(diào)整??梢酝ㄟ^修改Oracle初始化參數(shù)文件
$ORACLE_BASE/admin/CKDB/pfile/initORCL.ora來修改。
4.2.檢查數(shù)據(jù)庫連接狀況
查看當前會話連接數(shù),是否屬于正常范圍。
SQL>selectcount(*)fromv$session;
COUNT(*)
29
selectsid,serial#,usemame,program,machine,statusfromvSsession;
SIDSERIAL#USERNAMEPROGRAMMACHINESTATUS
13oracle@xz15saledb(PMON)xzl5saledbACTIVE
23oracle@xz15saledb(DBW0)xz15saledbACTIVE
33oracle@xz15saledb(DBW1)xzl5saledbACTIVE
43oracle@xz15saledb(LGWR)xzl5saledbACTIVE
53oracle@xz15saledb(CKPT)xz!5saledbACTIVE
63oraclc@xz15salcdb(SMON)xzl5salcdbACTIVE
73oracle@xz15saledb(RECO)xzl5saledbACTIVE
81oracle@xzl5saledb(CJQO)xz!5saledbACTIVE
93oracle@xz15saledb(ARCO)xzl5saledbACTIVE
103oracle@xzl5saledb(ARC1)xzl5saledbACTIVE
1111319ZKAccPrtlnv_svr@xz15tuxedo2(TNSVI-V3)xz15tuxedo2
INACTIVE
1348876ZGupload@xz15saleap(TNSV1-V3)xzl5saleap
INACTIVE
1720405ZKAccCreateRpt(cDxz15tuxedo1(TNSV1-V3)xzI5tuxedol
INACTIVE
2012895ZKOweScanSvr@xzl5billdb(TNSVI-V3)xz15billdb
INACTIVE
其中:SID會話(session)的ID號;
SERIAL#會話的序列號,和SID一起用來唯一標識一個會話;
USERNAME建立該會話的用戶名;
PROGRAM這個會話是用什么工具連接到數(shù)據(jù)庫的;
STATUS當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任務,INACTIVE表示當
前會話沒有執(zhí)行任何操作;
假如建立了過多的連接,會消耗數(shù)據(jù)庫的資源,同時,對一些“掛死”的連接可能須要手工
進行清理。假如DBA要手工斷開某個會話,則執(zhí)行:(一般不建議運用這種方式去殺掉數(shù)
據(jù)庫的連接,這樣有時候session不會斷開。簡潔引起死連接。建議通過sid查到操作系統(tǒng)
的spid,運用ps-eflgrepspidno的方式確認spid不是ORACLE的后臺進程。運用操作系統(tǒng)的
kill-9吩咐殺掉連接L
altersystemkillsession'SID,SERIAL#';
留意:上例中SID為1到10(USERNAME列為空)的會話,是Oracle的后臺進程,不要對這
些會話進行任何操作。
4.3.檢查系統(tǒng)磁盤空間
假如文件系統(tǒng)的剩余空間過小或增長較快,需對其進行確認并刪除不用的文件以釋放空間。
[oraclc@AS14~]$df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda59.7G3.9G5.4G42%/
/dev/sdal479M16M438M4%/boot
/dev/sda249G19G28G41%/data
none1014M01014M0%/dev/shm
4.4.檢查表空間運用狀況
SQL>selectf.tablespace_name,a.total,f.free,round((f.free/a.total)*100)"%Free"
from
(selecttablespace_name,sum(bytes/(1024*1024))totalfromdba_data_filesgroupby
tablespace_name)a,
(selecttablespace_name,round(sum(bytes/(1024*1024)))freefromdba_free_spacegroupby
tablespace_namc)f
WHEREa.tablespace_name=f.tablespace_name(+)
orderby"%Free";
TABLESPACE_NAMETOTALFREE%Free
OPERATION_DATA180054730
WAEWEB_DA1A1003636
OPERATIONJNDEX50018637
SYSTEM102451550
SYSAUX102453452
SALE8_TEMP1006262
SJ150034870
PERFSTAT50035671
HOME_DATA1007777
SYSJNDEX100100100
VIDEOJNDEX100100100
VIDEO_DATA100100100
BLOGDATA100100100
39rowsselected
假如空閑率%Free小于10%以上:包含10%),則留意要增加數(shù)據(jù)文件來擴展表空間而不要
是用數(shù)據(jù)文件的自動擴展功能。靖不要對表空間增加過多的數(shù)據(jù)文件,增加數(shù)據(jù)文件的原則
是每個數(shù)據(jù)文件大小為2G或者4G,自動擴展的最大限制在8G。
4.5.檢查一些擴展異樣的對象
sql>selectSegment_Name,Segment_Type,TableSpace_Name,
(Extents/Max_extents)*100Percent
Fromsys.DBA_Segments
WhereMax_Extents!=0and(Extents/Max_extents)*100>=95
orderByPercent;
norowsselected
假如有記錄返回,則這些對象的擴展已經(jīng)快達到它定義時的最大擴展值。對于這些對象要修
改它的存儲結(jié)構(gòu)參數(shù)。
4.6.檢查system表空間內(nèi)的內(nèi)容
selectdistinct(owner)fromdba_tables
wheretablespace_name-SYSTEM'and
ownerl^SYS,andowner!='SYSTEM'
union
selectdistinct(owner)fromdba_indexes
wheretablcspacc_namc-SYSTEM'and
owner!='SYS'andowner!='SYSTEM,;
norowsselected
假如記錄返回,則表明system表空間內(nèi)存在一些非system和sys用戶的對象。應當進一步
檢查這些對象是否與我們應用相關(guān)。假如相關(guān)請把這些對象移到非System表空間,同時應
當檢查這些對象屬主的缺省表空間值。
4.7.檢查對象的下一擴展與表空間的最大擴展值
sql>selecta.table_name,a.next_extent,a.tablespace_name
fromall_tablesa,
(selecttablespace_name,max(bytes)asbig_chunk
fromdba_free_space
groupbytablespace_name)f
wheref.tablespace_name=a.tablespace_name
anda.next_extent>f.big_chunk
union
selecta.indexname,a.nextextent,a.tablespacename
fromall_indexesa,
(selecttablespace_name,max(bytes)asbig_chunk
fromdba_free_space
groupbytablespace_name)f
wheref.tablespace_name=a.tablespace_name
anda.next_extent>f.big_chunk;
norowsselected
假如有記錄返回,則表明這些對象的下一個擴展大于該對象所屬表空間的最大擴展值,需調(diào)
整相應表空間的存儲參數(shù)。
5.檢查Oracle數(shù)據(jù)庫備份結(jié)果
在本節(jié)主要檢查Oracle數(shù)據(jù)庫備份結(jié)果,包含:檢瓷數(shù)據(jù)庫備份日志信息、,檢查backup
卷中文件產(chǎn)生的時間,檢查oracle用戶的email,總共三個部分。
5.1.檢查數(shù)據(jù)庫備份日志信息
假設:備份的臨時書目為/backup/hotbakup,我們須要檢查2009年7月22日的備份結(jié)果,
則用下面的吩咐來檢查二
#catZbackup/hotbackup/hotbackup-09-7-22.1og|grep-ierror
備份腳本的日志文件為hotbackup?月份?日期?年份.log,在備份的臨時書目下面。假如文件中
存在“ERROR:",則表明備份沒有勝利,存在問題須要檢查。
5.2.檢查backup卷中文件產(chǎn)生的時間
#ls-It/backup/hotbackup
backup卷是備份的臨時書目,查看輸出結(jié)果中文件的日期,都應當是在當天凌晨由熱備份
腳本產(chǎn)生的。假如時間不對則表明熱備份腳本沒執(zhí)行勝利。
5.3.檢查oracle用戶的email
#tail-n300Zvar/mail/oracle
熱備份腳本是通過Oracle用戶的cron去執(zhí)行的。cron執(zhí)行完后操作系統(tǒng)就會發(fā)一條Email
通知Oracle用戶任務已經(jīng)完成。查看Oracleemail中今口凌晨部分有無ORA-,Error,Failed
等出錯信息,假如有則表明備份不正常。
6.檢查Oracle數(shù)據(jù)庫性能
在本節(jié)主要檢查Oracle數(shù)據(jù)庫性能狀況,包含:檢查數(shù)據(jù)庫的等待事務,檢查死鎖及
處理,檢查cpu、I/O、內(nèi)存性能,查看是否有僵死進程,檢查行鏈接/遷移,定期做統(tǒng)計分
析,檢查緩沖區(qū)命中率,檢查共享池命中率,檢查排序區(qū),檢查日志緩沖區(qū),總共十個部分。
6.1.檢查數(shù)據(jù)庫的等待事務
setpages80
setlines120
coleventfora40
selectsid,event,pl,p2,p3,WAIT_TIME,SECONDS_IN_WAITfromv$session_waitwhereevent
notlike'SQL%'andeventnotlike'rdbms%';
假如數(shù)據(jù)庫長時間持續(xù)出現(xiàn)大量像latchfree,enqueue,bufferbusywaits,dbfilesequential
read,dbfilescatteredread等等待事務時,須要對其進行分析,可能存在問題的語句。
6.2.DiskRead最高的SQL語句的獲得
SQL>SELECTSQL_TEXTFROM(SELECT*FROMV$SQLAREAORDERBY
DISK_READS)
WHERER0WNUM<=5desc;
6.3.查找前十條性能差的sql
SELECT*FROM(SELECTPARSING_USERJD
EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,
SQL_TEXTFROMV$SQLAREAORDERBYDISK_READSDESC)
WHEREROWNUM<IO;
6.4.等待時間最多的5個系統(tǒng)等待事務的獲得
SELECT*FROM(SELECT*FROMV$SYSTEM_EVENTWHEREEVENTNOTLIKE
'SQL%'ORDERBYTOTAL_WAITSDESC)WHERER0WNUM<=5;
6.5.檢查運行很久的SQL
COLUMNUSERNAMEFORMATA12
COLUMNOPNAMEFORMATA16
COLUMNPROGRESSFORMATA8
SELECTUSERNAME,SID,OPNAME,ROUND(SOFAR*100/TOTALWORK,0)||'%'AS
PROGRESS,TIME_REMAINING,SQL_TEXTFROMV$SESSION_LONGOPS,V$SQL
WHERETIME_REMAINING<>0ANDSQL_ADDRESS=ADDRESSAND
SQL_HASH_VALUE=HASH-VALUE;
6.6.檢查消耗CPU最高的進程
SETLINE240
SETVERIFYOFF
COLUMNSIDFORMAT999
COLUMNPIDFORMAT999
COLUMNS_#FORMAT999
COLUMNUSERNAMEFORMATA9HEADING"ORAUSER”
COLUMNPROGRAMFORMATA29
COLUMNSQLFORMATA60
COLUMNOSNAMEFORMATA9HEADING"OSUSER"
SELECTP.PIDPID,S-SIDSID,P.SPIDSPID,SUSERNAMEUSERNAME,S-OSUSER
OSNAME,P.SERIAL#S_#,P.TERMINAL,RPROGRAM
PROGRAM,P.BACKGROUND,S.STATUS.RTRIM(SUBSTR(A.SQL_TEXT,1,80))SQLFROM
V$PROCESSP,V$SESSIONS,V$SQLAREAAWHEREP.ADDR=S.PADDRAND
S.SQL_ADDRESS=A.ADDRESS(+)ANDP.SPIDLIKE'%&1%';
6.7.檢查碎片程度高的表
SQL>SELECTsegment_nametable_name,COUNT(*)extentsFROMdba_segmentsWHERE
ownerNOTIN('SYS','SYSTEM')GROUPBYsegment_nameHAVINGCOUNT(*)=(SELECT
MAX(COUNT(*))FROMdba_segmentsGROUPBYsegment_name);
6.8.檢查表空間的I/O比例
SQL>SELECTDF.TABLESPACE_NAMENAME,DF.FILE_NAME"FILE",EPHYRDSPYR,
F.PHYBLKRDPBR,F.PHYWRTSPYW,F.PHYBLKWRTPBWFROMV$FILESTATF,
DBA_DATA_FILESDFWHEREF.FILE#=DF.HLEJDORDERBY
DETABLESPACE-NAME;
6.9.檢查文件系統(tǒng)的I/O比例
SQL>SELECTSUBSTR(A.FILE#,1,2)SUBSTR(A.NAME,l,30)"NAME”,
A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTSFROMV$DATAHLEA,V$FILESTATB
WHEREA.FILE#=B.HLE#;
6.10.檢查死鎖及處理
更蟠螃對零信息:
colsidfor999999
colusernamefbralO
colschemanamefbralO
colosuserfbral6
colmachinefbral6
colterminalfbra20
colownerfbralO
colobject_namcfora30
colobject_lypefbralO
selectsid,serial#,username,SCHEMANAME,osuser,MACHINE,
terminal,PROGRAM,owner,object_name,object_type,o.object_id
fromdba_objectso,v$locked_objectl,v$sessions
whereo.object_id=l.object_idands.sid=l.session_id;
oracle級kill掉該session:
altersystemkillsession'&sid,&serial#';
操作系統(tǒng)級kill掉session:
#>kill-9pid
6.11.檢查數(shù)據(jù)庫cpu、I/O、內(nèi)存性能
記錄數(shù)據(jù)庫的cpu運用、IO、內(nèi)存等運用狀況,運用vmslai,iosial,sar,top等吩咐進行信
息收集并檢查這些信息,推斷資源運用狀況。
1.CPU運用狀況:
[root@sale8-]#lop
top-10:29:35up73days,19:54,1user,loadaverage:0.37,0.38,0.29
Tasks:353total,2running,351sleeping,0stopped,0zombie
Cpu(s):1.2%us,U.l%sy,0.U%ni,98.?%id,0.0%wa,U.U%hi,0.0%si
Mem:16404472ktotal,12887428kused,3517044kfree,60796kbuffers
Swap:8385920ktotal,665576kused,7720344kfree,10358384kcached
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
30495oracle1508329m866m861mR105.47:53.90oracle
32501oracle1508328m1.7g1.7gS210.61:58.38oracle
32503oracle1508329m1.6g1.6gS210.22:06.62oracle
留意上面的藍色字體部分,此部分內(nèi)容表示系統(tǒng)剩余的epu,當其平均值下降至10%以下的
時視為CPU運用率異樣,需記錄下該數(shù)值,并將狀態(tài)記為異樣。
2.內(nèi)存運用狀況:
#free-m
totalusedsharedbufferscached
Mem:202619580761556
-/+buffers/cache:3261700
Swap:5992925900
如上所示,藍色部分表示系統(tǒng)總內(nèi)存,紅色部分表示系統(tǒng)運用的內(nèi)存,黃色部分表示系統(tǒng)剩
余內(nèi)存,當剩余內(nèi)存低于總內(nèi)存的10%時視為異樣。
3.系統(tǒng)I/O狀況:
#iostat-k13
Linux-22.ELsmp(AS14)07/29/2009
avg-cpu:%user%nice%sys%iowait%idle
0.160.000.050.3699.43
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda3.3313.1650.2594483478360665804
avg-cpu:%user%nice%sys%iowait%idle
0.000.000.000.00100.00
Device:tpskB_read/skB_wrtn/skB_readkB_wrtn
sda0.000.000.0000
如上所示,藍色字體部分表示磁盤讀寫狀況,紅色字體部分為epu10等待狀況。
4.系統(tǒng)負載狀況:
#uptime
12:08:37up162days,23:33,15users,loadaverage:0.01,0.15,0.10
如上所示;藍體字部分表示系統(tǒng)負載,后面的3個數(shù)值假如有高于2.5的時候就表明系統(tǒng)在
超負荷運轉(zhuǎn)了,并將此值記錄到巡檢表,視為異樣。
6.12.查看是否有僵死進程
selectspidfromv$processwhereaddrnotin(selectpaddrfromv$session);
有些僵尸進程有堵塞其他業(yè)務的正常運行,定期殺掉僵尸進程。
6.13.檢查行鏈接/遷移
Sql>selecttable_name,num_rows,chain_cntFromdba_tablesWhereowner='CTAIS2'And
chain_cnt<>0;
注:含有10ngraw列的表有行鏈接是正常的,找到遷移行保存到chainedjows表中,如沒有該
表執(zhí)行../rdbms/admin/utlchain.sql
Sql>analyzetabletablenamelistchainedrows;
可通過表chained_rows中l(wèi)able_name,head_rowid看出哪些行是遷移行
$D:Sql>createtableaaasselecta.*fromsb_zsxxa,chained_rowsbwherea.rowid=b.head_rowid
and='SB_ZSXX';
sql>deletefrom
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 美國電影分級規(guī)章制度
- 計算機應用基礎第四章答案
- 2024年醫(yī)療用品制造項目建議書
- 2024人事代理勞動合同
- 2024年閑置物品調(diào)劑回收項目發(fā)展計劃
- 第三章代數(shù)式綜合練習2024-2025學年人教版數(shù)學七年級上冊
- 2024年冷凝水回收裝置合作協(xié)議書
- 財務公司的融資租賃合同(2篇)
- 北京市見習就業(yè)合同(2篇)
- 按月租房合同書(2篇)
- 礦山開采計劃書
- 特性分析報告
- 物流服務的運作模式(ppt45張)課件
- QCP品質(zhì)控制計劃模板
- 廉政教育談話記錄表
- 人教版小學數(shù)學四年級上冊單元測試卷附答案全冊
- 混泥土方量計算表
- 《工程勘察設計收費管理規(guī)定》計價格200210號文
- 火力發(fā)電廠燃料統(tǒng)計與核算
- 四年級英語上冊Unit1ThisismynewfriendLesson6教案人教精通版
- 植物園建設項目可行性研究報告寫作范文
評論
0/150
提交評論