




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會務公司會議合同范本
- 2025年金華年貨運從業(yè)資格證考試題大全
- 公司保險擔保合同范本
- 農民養(yǎng)車用車合同范本
- 傭金制合同范本
- 公司資產入股合同范本
- 代理簽訂協(xié)議合同范本
- 養(yǎng)殖木船出售合同范本
- 公司部分收購合同范本
- 產品獨家使用合同范本
- 第一講 文化概論
- 小兒急性喉炎-課件
- 醫(yī)院難免壓瘡申報表
- 七年級上冊走進Python的世界第一課python導入及海龜編輯器介紹
- 公路工程概論全套課件
- 中小學教師師德師風警示教育培訓PPT
- 全文《中國式現(xiàn)代化》PPT
- 2023年山東司法警官職業(yè)學院單招綜合素質考試筆試模擬試題及答案解析
- 膽囊結石疾病護理質量考核標準
- 《荷花》課件(人教版三年級語文下冊課件)
- 校園文化建設方案(共60張PPT)
評論
0/150
提交評論