Oracle10g數(shù)據(jù)庫日常維護手冊_第1頁
Oracle10g數(shù)據(jù)庫日常維護手冊_第2頁
Oracle10g數(shù)據(jù)庫日常維護手冊_第3頁
Oracle10g數(shù)據(jù)庫日常維護手冊_第4頁
Oracle10g數(shù)據(jù)庫日常維護手冊_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論