OracleG日常維護手冊_第1頁
OracleG日常維護手冊_第2頁
OracleG日常維護手冊_第3頁
OracleG日常維護手冊_第4頁
OracleG日常維護手冊_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

OracleDatabase日常維護手冊

目錄

1.登陸到數據庫......................................

1.1.服務器端配置Listener.................................................................

1.2.客戶端tnsnames............................................................................

1.3.檢杳OracleListener......................................................................

14登陸數據庫的方式..............................

15數據庫的啟動..................................

16關閉數據庫....................................

2用戶管理...........................................

2.1.檢察用戶profile.............................................................................

2.2.查看用戶profle參數............................

1檢查數據庫基本狀況.................................

3.1.檢查數據庫創(chuàng)建日期.............................

32檢查數據庫版本信息.............................

3.3.檢查實例狀態(tài)...................................

34查看前臺進程...................................

35查看數據庫連接的session...........................................................

36查看連接到數據庫的模式.........................

37查看并發(fā)連接數.................................

3.8.查看最大的連接'processes'..........................................................

3.9.監(jiān)控系統(tǒng)后臺進程...............................

3.10.查看數據庫初始化參數..........................

3.11.檢查PGA使用情況.............................

3.12.檢查SGA狀態(tài).................................

3.13.檢查Oracle服務進程...........................

3.14.檢查Oracle監(jiān)聽狀態(tài)............................

3.15.檢查監(jiān)聽進程是否存在..........................

3.16.檢查操作系統(tǒng)日志文件..........................

3.17.檢查oracle日志文件.............................

3.18.檢查Oracle核心轉儲目錄........................

3.19.檢查Root用戶和Oracle用戶的email......................................

4.檢查Oracle對象狀態(tài).................................

4.1.檢查Oracle控制文件狀態(tài)........................

42檢查Oracle在線日志狀態(tài)........................

4.3.檢查Oracle表空間的狀態(tài)........................

4.4.檢查Oracle所有數據文件狀態(tài)....................

45檢查無效對象...................................

4.6.檢查所有回滾段狀態(tài).............................

4.7.檢查用戶下的表.................................

4.8.檢查用戶默認表空間.............................

49檢查當前用戶角色及權限.........................

4.10.檢查用戶下的各個表的大小......................

4.11.檢查一個表的創(chuàng)建時間..........................

4.12.檢查某個表的大小..............................

4.13.檢查每個表占用磁盤空間情況....................

5.檢查Oracle相關資源的使用情況.......................

5.1.檢查Oracle初始化文件中相關參數值...............

52檢查數據庫連接情況.............................

53檢查系統(tǒng)磁盤空間...............................

54檢查表空間使用情況.............................

55檢查一些擴展異常的對象.........................

5.6.檢查表空間碎片情況.............................

5.7.檢查system表空間內的內容.......................

5.8.檢查對象的下一擴展與表空間的最大擴展值.........

5.9.檢查flashrecoveryarea空間........................

6.檢查Oracle數據庫性能...............................

6.1.查詢表空間讀寫情況.............................

62杳詢redologbuffer的繁忙程度.....................

6.3.判斷undo表空間的使用情況......................

6.4.分析日志組切換頻率.............................

6.5.查看等待事件...................................

6.6.檢查數據庫cpu、I/O、內存性能...................

67內存使用情況....................................

6.8.系統(tǒng)I/O情況...................................

6.9.系統(tǒng)負載情況...................................

6.10.查看是否有僵死進程............................

6.11.檢查緩沖區(qū)命中率..............................

6.12.檢查共享池命中率..............................

6.13.檢查排序區(qū)....................................

6.14.檢查日志緩沖區(qū)................................

6.15.檢查失效的索引................................

6.16.檢查不起作用的約束............................

6.17.檢查無效的trigger......................................................................

6.18.檢查尚未建立索引的表..........................

6.19.檢查運行時間長的SQL............................................................

6.20.檢查性能差的前10條SQL......................................................

6.21.查看占io較大的正在運行的session................................

6.22.檢查消耗CPU最高的PID對應的SQL..............................

6.23.檢查占用CPU多的session......................................................

6.24.檢查表空間的I。...............................

6.25.檢查臨時表空間IO....................................................................

6.26.檢查鎖和等待..................................

工檢查數據庫安全性...................................

7.1.檢查系統(tǒng)安全日志信息...........................

72檢查登錄失敗的日志:...........................

73檢查用戶修改密碼...............................

當數據表空間日常維護.................................

8.1.查看表空間的一些信息...........................

82創(chuàng)建表空間.....................................

8.3.表空間擴容.....................................

84創(chuàng)建大數據文件.................................

85數據表空間文件遷移.............................

8.6.不停機移動表空間文件...........................

2存儲過程管理.......................................

9.1.找出特定用戶的存儲過程........................

9.2.通過表名找出存儲過程...........................

9.3.查看存儲過程內容...............................

四觸發(fā)器管理........................................

10.1.找出數據庫中所有觸發(fā)器........................

10.2.找出特定用戶的觸發(fā)器..........................

103找出當前用戶定義的觸發(fā)器......................

10.4.查看某個用戶自定義的觸發(fā)器內容................

10.5.查看某個表關聯(lián)的觸發(fā)器........................

10.6.查看當前用戶所有觸發(fā)器及存儲過程..............

11.RedoLog管理.....................................

11.1.離線遷移日志文件.............................

112在線更改RedoLog文件容量.....................

1.登陸到數據庫

1.1.服務器端配置Listener

LISTENER二

(DESCRIPTION_LIST=

(DESCRIPTION=

(ADDRESS二(PROTOCOL=IPC)(KEY=racdbl))

ADR_BASE_LISTENER=/uOl/叩p/oracle

SID_UST_USTENER=

(SID_LIST=

(SID_DESC=

#BEQUEATHCONFIG

(GLOBAL_DBNAME=racdbl)

(SID_NAME=racdbl)

#PRESPAWNCONFIG

(PRESPAWN_MAX=20)

(PRESPAWN_LIST=

(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=

1))

GLOBAL_DBNAME=racdbl

Service名稱,在客戶端一定配置和他相同

SID_NAME=racdbl

實例名稱,這個要和SID相同

GLOBAL_DBNAME可以不等于SID_NAME

客戶端根據tnsname.ora中的SERVICE_NAME和地址(ADDRESS=

(PROTOCOL=TCP)(HOST=racdbl)(PORT=1521)),到這個地址去訪

問監(jiān)聽器。然后監(jiān)聽器根據文件lisnter.ora文件中的GLOBAL_NAME

來判斷是否有一個GLOBAI^DBNAME和SERVICE_NAME相等。

如果相等,則建立客戶端到SID標識的服務端實例的連接,在客戶端上

我們可以使用tnsping命令來測試

1.2.客戶端tnsnames

racdbl-

(description=

(address_list=

(address=(protocol二tcp)(host二)(port=1521))

)

(connect_data=

(service_name=racdbl)(ur=a)

)

)

這里的service_name=racdbl就是在服務器端的GLOBAL_DBNAME

二racdbl

[oracle@racdbl?]$tnspingracdbl

ductionon21-JAN-201514:51:49

Copyright(c)1997,2009,Oracle.Allrightsreserved.

TNS-03502:Insufficientarguments.Usage:tnsping<address>

[<count>]

[oracle@racdbl?]$tnspingracdbl

ductionon21-JAN-201514:51:55

Copyright(c)1997,2009,Oracle.Allrightsreserved.

Usedparameterfiles:

UsedTNSNAMESadaptertoresolvethealias

Attemptingtocontact(description=(address_list=(address=(protocol=

tcp)(host=racdbl)(port=1521)))(connect_data=(service_name=

racdbl)(ur=a)))

OK(0msec)

1.3.檢查OracleListener

Isnrctlstop

Isnrctlstart

Isnrctlstatus

Isnrctlservice

1.4.登陸數據庫的方式

修改登陸oracle認證模式

默認情況下我們oracle安裝好后是使用操作系統(tǒng)用戶的驗證,所以這

里如果我們使用sys用戶不用密碼就可以登錄,如果我們想使用oracle

密碼文件驗證的話我們就要進入下列文件夾

cd修改sqlnet.ora

增加下列命令

SQLNET.AUTHENTICATION_SERVICES=NONE

配置了tnsnames登錄數據庫方式

[oracle@racdbl?]$sqlplusscott/111111@racdbl

sqlplus/nolog

使用scott登陸到指定數據庫racdbl

connsys/111111@racdblASSYSDBA;

察看登陸到了哪個數據庫實例

selectinstance_namefromv$instance

使用sys用戶登陸

connsys/change_on_installerassysdba

用sysdba登陸

conn/assysdba

使用sys用戶登錄

connsys/change_on_installassysdba;

conn/assysdba連接數據庫

connscott/111111使用scott進行連接

1.5.數據庫的啟動

數據庫啟動方式

方式含義

startup啟動實例、裝載數據庫、打開數據庫

startupnomount啟動實例,不加載數據庫

startupmount啟動實例,加載數據庫但不打開數據庫

startuprestrict啟動過程中限制訪問數據庫

startupforce強制數據庫啟動

startup

使用非缺省參數文件啟動數據庫,以特定文件中指定參數啟動數

pfi1e=/orade/app/oracle/product/1Og

據庫,本仞U為"/oracle/app/oracle/product/11g/dbs/initminos.ora

/dbs/initminos.ora

startup

啟動實例、裝載數據庫、打開數據庫

startupopenracdbl

startupnomount

啟動數據庫實例,該步驟只是啟動了一個數據庫實例.

在此狀態(tài)下我們可以訪問下列結構文件

Select*fromv$instance;

Select*fromv$bgprocess;

Select*fromv$sga;

利用以前讀取的參數文件查找控制文件,這些控制文件包含數據文件

名和重做日志名,然后將數據庫裝載.

alterdatabasemount

一旦這一步完成我們就可以看到下列狀態(tài)

select*fromv$database;

select*fromv$tablespace;

select*fromv$log;

實例驗證數據文件及日志文件并啟動數據庫

alterdatabaseopen;

打開數據庫

startuprestrict

啟動過程中限制訪問數據庫

altersJystemenablerestrictedsession

grantrestrictsessiontoscott

上述命令是只有用戶擁有restrict權限才可以連接

啟動數據庫后起的進程

selectname,DESCRIPTIONfromv$bgprocesswherepaddr<>'00';

1.6.關閉數據庫

shutdownnormal?

等待用戶完成工作然后關閉

Shutdowntransactional

等待用戶完成工作但是強制關閉連接

shutdownimmediate??

立即關閉,當前所有做工作回滾到一致狀態(tài),斷開其連接

shutdownabort

強制關閉,非干凈關閉,下次重起后要回滾日志

2.用戶管理

2.1.檢察用戶profile

selectusername,profilefromdba_userswhereusername='SCOTT';

2.2.查看用戶profile參數

select*fromdba_profileswhereprofile='DEFAULT;

3.檢查數據庫基本狀況

3.1.檢查數據庫創(chuàng)建日期

SelectCreated,Log_ModeFromV$Database;

CREATEDLOG_MODE

2014/8/171NOARCHIVELOG

3.2.檢查數據庫版本信息

SelectversionfromProduct_component_versionwhere

SUBSTR(PRODUCT,1,6戶Oracle?

3.3.檢查實例狀態(tài)

SQL>SELECTinst_id,instance_name,host_name,VERSION,TO_C

HAR(startup_time,'yyyy-mm-ddhh24:mi:ss')startup_time,status,archi

ver,database_statusFROMgv$instance;

SELECTinst_id,dbid,NAME,TO_CHAR(created,'yyyy-mm-ddhh2

4:mi:ss')created,log_mode,TO_CHAR(version_time,'yyyy-mm-ddhh2

4:mi:ss')version_time,open_modeFROMgv$database;

INST_IDDBIDNAMECREATEDLOG

_MODEVERSION_TIMEOPEN_MODE

其中“STATUS”表示Oracle當前的實例狀態(tài),必須為“OPEN”;“D

ATABASE_STATUS”表示Oracle當前數據庫的狀態(tài),必須為“ACTI

VE”。

SQL>selectnamejog_mode,open_modefromv$database;

NAMELOG_MODEOPEN_MODE

RACDB1ARCHIVELOGREADWRITE

其中“LOG_MODE”表示Oracle當前的歸檔方式?!癆RCHIVELOG”

表示數據庫運行在歸檔模式下,“NOARCHIVELOG”表示數據庫運

行在非歸檔模式下。在我們的系統(tǒng)中數據庫必須運行在歸檔方式下。

3.4.查看前臺進程

ps-Coracle-o'rsz,sid,cmd'|grepLO

free-m|egrep-v*total|buffers||awk'{print$1,$3}*

Oracle的前臺進程是操作系統(tǒng)進程,它和oraclesession對應,官

方建議,oraclesesson

=1.5*process+20

3.5.查看數據庫連接的session

SQL>selectcount(*)fromv$session;

3.6.查看連接到數據庫的模式

selectprogramfromv$processorderbyprogram;

selectd.NAME,s?NAMEfromv$dispatcherd,v$shared_servers,v$circuitcwhere

d.PADDR=c.DISPATCHERands.PADDR=c.SERVER

(S012)以sOOl等就是共享模式連接

3.7.查看并發(fā)連接數

selectcount(*)fromv$sessionwherestatus=1ACTIVE,;

3.8.查看最大的連接'processes'

SQL>selectvaluefromv$parameterwherename='processes'

3.9.監(jiān)控系統(tǒng)后臺進程

SQL>Selectname,DescriptionFromV$BGPROCESSWherePaddro*001;

3.10.查看數據庫初始化參數

selectname,valuefromv$parameterwhereisbasic='TRUE'orderbyname;

這些參數是當前數據庫已經應用的參數

3.11.檢查PGA使用情況

selectname,valuefromv$pgastatwherenamein('maximumPGA

allocated','totalPGAallocated');

3.12.檢查SGA狀態(tài)

SELECTrequest_misses,request_failuresFROM

v$shared_pool_reserved;

Selectcomponent,current_size,min_size,max_sizefrom

v$sga_dynamic_components;

REQUEST_MISSESREQUEST_FAILURES

00

期望結果:request_misses和request_failures應該接近于0。

巡檢說明:requesjmisses是保留列表沒有滿足請求的可用內存片從而

開始利用LRU列表刷新對象的次數;request_failures是未找到滿足請

求的內存次數。

3.13.檢查Oracle服務進程

[oracle@racdbl?]$ps-ef|grepc)ra_|grep-vgrep&&ps-ef|grepora_|grep

-vgrep|wc?1

oracle44591015:5300:00:00ora_pmon_racdb1

oracle44611015:53?00:00:17ora_vktm_racdbl

oracle44651015:53?00:00:00ora_gen0_racdb1

oracle44671015:5300:00:00ora_diag_racdb1

oracle44691015:5300:00:00ora_dbrm_racdb1

oracle44711015:5300:00:00ora_psp0_racdbl

oracle44731015:53?00:00:02ora_dia0_racdb1

oracle44751015:53?00:00:00ora_mman_racdb1

oracle44771015:53?00:00:00ora_dbw0_racdbl

oracle44791015:53?00:00:01ora_lgwr_racdb1

oracle44811015:53?00:00:05ora_ckpt_racdb1

oracle44831015:53?00:00:00ora_smon_racdb1

oracle45271015:53?00:00:00ora_arc0_racdb1

oracle44851015:53?00:00:00ora_reco_racdbl

在檢查Oracle的進程命令輸出后,輸出顯示至少應包括以下一些進程:

.Oracle寫數據文件的進程,輸出顯示為:"ora_dbwO_racdbl"

.Oracle寫日志文件的進程,輸出顯示為:"ora_lgwr_racdbl"

.Oracle監(jiān)聽實例狀態(tài)的進程,輸出顯示為:"ora_smon_racdbl”

.Oracle監(jiān)聽客戶端連接進程狀態(tài)的進程,輸出顯示為:

“ora_pmon_racdbl”

.Oracle進行歸檔的進程,輸出顯示為:"ora_arcO_racdb1"

.Oracle進行檢查點的進程,輸出顯示為:"ora_ckpt_racdbl"

.Oracle進行恢復的進程,輸出顯示為:"ora_reco_racdbl"

3.14.檢查Oracle監(jiān)聽狀態(tài)

[oracle@racdbl~]$Isnrctlstatus

Copyright(c)1991,2009,Oracle.Allrightsreserved.

Connectingto

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=racdbl)))

STATUSoftheLISTENER

AliasUSTENER

StartDate21JAN-201512:37:48

Uptime0days4hr.22min.53sec

TraceLeveloff

SecurityON:LocalOSAuthentication

SNMPOFF

ListenerLogFile

/u01/app/oracle/diag/tnslsnr/racdbl/listener/alert/log.xml

ListeningEndpointsSummary...

(DESCRIPTION二(ADDRESS=(PROTOCOL=ipc)(KEY=racdbl)))

ServicesSummary-

Service"racdbl"has1instance(s).

Instance"racdbl",statusUNKNOWN,has3handler(s)forthisservice...

Instance"racdbl",statusREADY,has1handler(s)forthisservice...

Instance"racdbl",statusREADY,has1handler(s)forthisservice...

Thecommandcompletedsuccessfully

aServicesSummary"項表示Oracle的監(jiān)聽進程正在監(jiān)聽哪些數據庫

實例,輸出顯示中至少應該有"racdblXDB”這一項。

3.15.檢查監(jiān)聽進程是否存在

[oracle@racdbl?]$ps-ef|grepIsn|grep-vgrep

oracle21401012:37?

3.16.檢查操作系統(tǒng)日志文件

[root@racdbl~]#cat/var/log/messages|grepfailed

查看是否有與Oracle用戶相關的出錯信息。

3.17.檢查oracle日志文件

SQL>selectvaluefromv$diag_infdwherename='DiagTrace';

VALUE

/uOl/app/oracle/diag/rdbms/racdbl/racdbl/trace

cat/uOl/app/oracle/diag/rdbms/racdbl/racdbl/trace/alert_racdbl.log|

grepora-

cat/uOl/app/oracle/diag/rdbms/racdbl/racdbl/trace/alert_racdbl.log

greperr

[oracle@racdbltrace]$cat

/uOl/app/oracle/diag/rdbms/racdbl/racdbl/trace/alert_racdbl.log|grep

fail

Oracle在運行過程中,會在警告日志文件(alert_SID.lo0中記錄數據庫

的一些運行情況:數據庫的啟動、關閉,啟動時的非缺省參數;數據

庫的重做日志切換情況,記錄每次切換的時間,及如果因為檢查點

(checkpoint)操作沒有執(zhí)行完成造成不能切換,會記錄不能切換的原因;

對數據庫進行的某些操作,如創(chuàng)建或刪除表空間、增加數據文件;數

據庫發(fā)生的錯誤,如表空間不夠、出現(xiàn)壞塊、數據庫內部錯誤(ORA

—600)等。定期檢查日志文件,根據日志中發(fā)現(xiàn)的問題及時進行處理:

問題處理

啟動參數不對檢查初始化參數文件

因為檢查點操作或歸檔操作沒有如果經常發(fā)生這樣的情況,可以考慮增加重

完成造重做日志不能切換做日日志文件組;想辦法提高檢查點或歸檔

操作的效率;

有人未經授權刪除了表空間檢查數據庫的安全問題,是否密碼太簡單;

如有必要,撤消某些用戶的系統(tǒng)權限

出現(xiàn)壞塊檢查是否是硬件問題(如磁盤本生有壞塊),

如果不是,檢查是那個數據庫對象出現(xiàn)了壞

塊,對這個對象進行重建

表空間不夠增加數據文件到相應的表空間

出現(xiàn)0RA-600根據日志文件的內容查看相應的TRC文件,

如果是Oracle的bug,要及時打上相應的

補丁

3.18.檢查Oracle核心轉儲目錄

SQL>selectvaluefromv$parameterwherename='core_dump_dest';

VALUE

/uOl/app/oracle/diag/rdbms/racdbl/racdbl/cdump

[oracle@racdblcdump]$Is

/uOl/app/oracle/diag/rdbms/racdbl/racdbl/cdump/*.trc|wc-1

如果上面命令的結果每天都在增長,則說明Oracle進程經常發(fā)生核心

轉儲。這說明某些用戶進程或者數據庫后臺進程由于無法處理的原因

而異常退出。頻繁的核心轉儲特別是數據庫后臺進程的核心轉儲會導

致數據庫異常終止。Oracle常用日志文件位置查詢

select*fromv$parameterwherename='background_dump_dest';

select*fromv$parameterwherename='user_dump_dest';

select*fromv$parameterwherename='core_dump_dest';

select*fromv$parameterwherename='audit_file_dest';

select*fromv$parameterwherename='audit_syslog_level';

3.19.檢查Root用戶和Oracle用戶的email

[oracle@racdblracdbl]$tail-n200/var/mail/oracle

[oracle@racdblracdbl]$tail-n200/var/mail/root

查看有無與Oracle用戶相關的出錯信息。

4.檢查Oracle對象狀態(tài)

在本節(jié)主要檢查相關Oracle對象的狀態(tài),包含:檢查Oracle控制文件

狀態(tài),檢查Oracle在線日志狀態(tài),檢查Oracle表空間的狀態(tài),檢查

Oracle所有數據文件狀態(tài),檢查Oracle所有表、索引、存儲過程、觸

發(fā)器、包等對象的狀態(tài),檢查Oracle所有回滾段的狀態(tài),總共六個部

分。

4.1.檢查Oracle控制文件狀態(tài)

SQL>selectstatus,namefromv$controlfile;

STATUSNAME

/uOl/app/oracle/oradata/racdbl/controlOl.ctl

/uOl/app/oracle/flash_recovery_area/racdbl/control02.ctl

輸出結果應該有2條以上(包含2條)的記錄,“STATUS”應該為

空。狀態(tài)為空表示控制文件狀態(tài)正常

4.2.檢查Oracle在線日志狀態(tài)

SQL>selectgroup#,status,type;xnemberfromv$logfile;

GROUP#STATUSTYPEMEMBER

3ONUNE

/uOl/app/oracle/oradata/racdbl/redo03.log

2ONLINE

/uOl/app/oracle/oradata/racdbl/redo02.log

1ONUNE

/uOl/app/oracle/oradata/racdbl/redo01.log

輸出結果應該有3條以上(包含3條)記錄,“STATUS”應該為非

“INVALID",非“DELETED”。注:"STATUS”顯示為空表示

正常。

4.3.檢查Oracle表空間的狀態(tài)

SQL>selecttablespace_name,statusfromdba_tablespaces;

TABLESPACE_NAMESTATUS

SYSTEMONLINE

SYSAUXONLINE

UNDOTBS1ONLINE

TEMPONLINE

USERSONLINE

SCOTTSPACE06ONUNE

6rowsselected

輸出結果中STATUS應該都為ONLINE。

4.4.檢查Oracle所有數據文件狀態(tài)

SQL>selectname,statusfromv$datafile;

NAME

STATUS

/uOl/app/oracle/oradata/racdbl/systemOl.dbf

SYSTEM

/uOl/app/oracle/oradata/racdbl/sysauxOl.dbf

ONLINE

/uOl/app/oracle/oradata/racdb1/undotbsO1.dbf

ONLINE

/uOl/app/oracle/oradata/racdbl/usersOl.dbf

ONLINE

/uOl/app/oracle/oradata/racdbl/SCOTTSPACE06.dbf

ONLINE

輸出結果中“STATUS”應該都為“ONLINE"?;蛘?

SQL>selectfile_name,statusfromdba_data_files;

FILE_NAME

STATUS

/uOl/app/oracle/oradata/racdbl/usersOl.dbf

AVAILABLE

/uOl/app/oracle/oradata/racdbl/undotbsO1.dbf

AVAILABLE

/uOl/app/oracle/oradata/racdbl/sysauxOl.dbf

AVAILABLE

/uOl/app/oracle/oradata/racdb1/systemO1.dbf

AVAILABLE

/uOl/app/oracle/oradata/racdbl/SCOTTSPACE06.dbf

AVAILABLE

輸出結果中“STATUS”應該都為“AVAILABLE”。

4.5.檢查無效對象

selectowner,object_name,object_typefromdba_objectswhere

status!='VALID'andowner!='SYS'andowner!='SYSTEM';

norowsselecte

如果有記錄返回,則說明存在無效對象。若這些對象與應用相關,那

么需要重新編譯生成這個對象,或者

SELECTowner,object_name,objecjtypeFROMdba_objectsWHERE

status='INVALID';

4.6.檢查所有回滾段狀態(tài)

SQL>selectsegment_name,statusfromdba_rollback_segs;

SEGMENT_NAMESTATUS

SYSTEMONLINE

11rowsselected

輸出結果中所有回滾段的“STATUS”應該為“ONLINE”。

4.7.檢查用戶下的表

select*fromuser_tables;

4.8.檢查用戶默認表空間

selectusername,default_tablespace,temporary_tablespacefromdba_users

whereUSERNAME='SCOTT;

4.9.檢查當前用戶角色及權限

select*fromdba_role_privswhereGRANTEE='SCOTT';

select*fromdba_sys_privswhereGRANTEE='SCOTT';

select*fromdba_tab_privswhereGRANTEE='SCOTT;

4.10.檢查用戶下的各個表的大小

SelectSegment_Name,Sum(bytes)/l024/1024MBFromdba_Extents

whereOWNER='SCOTT'GroupBySegment_Nameorderby

sum(bytes)/1024/1024desc;

4.11.檢查一個表的創(chuàng)建時間

selectobject_name,createdfromdba_objectswhere

object_name=upper('&table_name');

4.12.檢查某個表的大小

selectsum(bytes)/(1024*1024)as"size(M)"fromdba_segments

wheresegment_name=upper('&table_name');

4.13.檢查每個表占用磁盤空間情況

selectb.file_idfile_ID,b.tablespace_nametablespace_name,b.bytesBytes,

(b.bytes-sum(nvl(a.bytes,0)))used,sum(nvl(a.bytes,0))free,

sum(nvl(a.bytes,0))/(b.bytes)*100Percentfromdba_free_space

a,dba_data_filesbwherea.file_id=b.file_idgroupby

b.tablespace_name,b.file_id,b.bytesorderbyb.file_id;

5.檢查Oracle相關資源的使用情況

在本節(jié)主要檢查Oracle相關資源的使用情況,包含:檢查Oracle初始

化文件中相關的參數值,檢查數據庫連接情況,檢查系統(tǒng)磁盤空間,

檢查Oracle各個表空間使用情況,檢查一些擴展異常的對象,檢查

system表空間內的內容,檢查對象的下一擴展與表空間的最大擴展值,

總共七個部分。

5.1.檢查Oracle初始化文件中相關參數值

SQL>selectresource_name,max_utilization,initial_allocation,

limit_valuefromv$resource_limit;

RESOURCE_NAMEMAX_UTILIZATION

INITIAL_ALLOCATIONLIMIT_VALUE

processes63150

150

sessions72247

247

enqueue_locks343010

3010

enqueue_resources381304

UNLIMITED

ges_procs00

0

ges_ress00

UNLIMITED

ges_locks00

UNLIMITED

ges_cache_ress00

UNLIMITED

ges_reg_msgs00

UNLIMITED

ges_big_msgs00

UNLIMITED

ges_rsv_msgs00

0

gcs_resources00

0

gcs_shadows00

0

dml_locks01084

UNLIMITED

temporary_table_locks0UNLIMITED

UNLIMITED

transactions0271

UNLIMITED

branches0271

UNLIMITED

cmtcallbk1271

UNLIMITED

max_rollback_segments11271

65535

sort_segment_locks1UNLIMITED

UNLIMITED

RESOURCE_NAMEMAX_UTIUZATION

INITIAL_ALLOCATIONUMIT_VALUE

k2q_locks0494

UNLIMITED

max_shared_servers1UNLIMITED

UNLIMITED

parallel_max_servers010

3600

23rowsselected

若UMIT_VALU-MAX_UTIUZATION<=5,則表明與RESOURCE_N

AME相關的Oracle初始化參數需要調整??梢酝ㄟ^修改Oracle初始

化參數文件$ORACLE_BASE/admin/racdbl/pfne/initORCL.ora來修改。

5.2.檢查數據庫連接情況

SQL>selectcount(*)fromv$session;

selects.osuseros_user_name,

decode(sign(48-command),

1,

to_char(command),

'ActionCode#'||to_char(command))action,

gramoracle_process,

statussession_status,

s.terminalterminal,

gramprogram,

s.usernameuser_name,

s.fixed_table_sequenceactivity_meter,

"query,

0memory,

0max_memory,

0cpu_usage,

s.sid,

s.serial#serial_num

fromv$sessions,v$processpwheres.paddr=p.addrands.type

='USER'

orderbys.username,s.osuser;

SQL>selectsid,serial#,username,program,machine,statusfromv$session;

其中:SID會話(session)的ID號;

SERIAL#會話的序列號,和SID一起用來唯一標識一個會話;

USERNAME建立該會話的用戶名;

PROGRAM這個會話是用什么工具連接到數據庫的;

STATUS當前這個會話的狀態(tài),ACTIVE表示會話正在執(zhí)行某些任

務,INACTIVE表示當前會話沒有執(zhí)行任何操作;

如果建立了過多的連接,會消耗數據庫的資源,同時,對一些“掛死”

的連接可能需要手工進行清理。如果DBA要手工斷開某個會話,則

執(zhí)行:(一般不建議使用這種方式去殺掉數據庫的連接,這樣有時候

session不會斷開。容易引起死連接。建議通過sid查到操作系統(tǒng)的spid,

使用ps-eflgrepspidno的方式確認spid不是ORACLE的后臺進程。

使用操作系統(tǒng)的kill-9命令殺掉連接)

altersystemkillsession1SID,SERIAL#1;

注意:上例中SID為1到10(USERNAME列為空)的會話,是Oracle

的后臺進程,不要對這些會話進行任何操作。

5.3.檢查系統(tǒng)磁盤空間

[oracle@racdblracdbl]$df-h

FilesystemSizeUsedAvailUse%Mountedon

/dev/mapper/VgMasterRoot-LogVolRoot

9.5G433M8.6G5%/

tmpfs935M315M621M34%/dev/shm

/dev/mapper/VgMasterUOl-LogVolUOl

20G6.7G12G37%/uOl

/dev/sdal9.5G91M9.0G1%/boot

/dev/mapper/VgMasterHome-LogVolHome

9.5G72M9.0G1%/home

/dev/mapper/VgMasterTemp-LogVolTmp

3.7G7.7M3.5G1%/tmp

/dev/mapper/VgMasterUsr-LogVolUsr

9.5G1.3G7.8G15%/usr

/dev/mapper/VgMasterVar-LogVolVar

9.5G118M8.9G2%/var

5.4.檢查表空間使用情況

SELECTdf.file_id,df.file_name,d£size_mb,NVL(free.maxfree,0)

maxfree_mb,

ROUND(NVL(free.free_mb,0),2)free_mb,100-ROUND(100.0

*NVL(free.free_mb,0)/d£size_mb,2)pct_used,

ROUND(100.0*NVL(free.free_mb,0)/df.size_mb,2)pct_free

FROM(SELECTfile_id,file_name,tablespace_name,BYTES/1048576

size_mbFROMdba_data_files)df,

(SELECTfilejd,SUM(BYTES)/1048576free_mb,TRUNC

(MAX(BYTES/1024/1024),2)maxfree

FROMdba_free_spaceGROUPBYfilejd)freeWHEREdf.filejd

=free.印e_id(+)ORDERBY7;

TABLESPACE_NAMETOTAL

FREE%Free

SYSTEM6806

1

SYSAUX53028

5

USERS53

60

UNDOTBS19070

78

SCOTTSPACE0654

80

sQL>selectA.tablespace_name,

(1-(A.total)/B.total)*l00used_percent

from

(selecttablespace_name,

sum(bytes)total

fromdba_free_space

groupbytablespace_name

)A,

(selecttablespace_name,

溫馨提示

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

評論

0/150

提交評論