OracleG日常维护手册_第1页
OracleG日常维护手册_第2页
OracleG日常维护手册_第3页
OracleG日常维护手册_第4页
OracleG日常维护手册_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OracleDatabase日常维护手册

目录

1.登陆到数据库......................................

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

1.2.客户端tnsnames............................................................................

1.3.检杳OracleListener......................................................................

14登陆数据库的方式..............................

15数据库的启动..................................

16关闭数据库....................................

2用户管理...........................................

2.1.检察用户profile.............................................................................

2.2.查看用户profle参数............................

1检查数据库基本状况.................................

3.1.检查数据库创建日期.............................

32检查数据库版本信息.............................

3.3.检查实例状态...................................

34查看前台进程...................................

35查看数据库连接的session...........................................................

36查看连接到数据库的模式.........................

37查看并发连接数.................................

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

3.9.监控系统后台进程...............................

3.10.查看数据库初始化参数..........................

3.11.检查PGA使用情况.............................

3.12.检查SGA状态.................................

3.13.检查Oracle服务进程...........................

3.14.检查Oracle监听状态............................

3.15.检查监听进程是否存在..........................

3.16.检查操作系统日志文件..........................

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

3.18.检查Oracle核心转储目录........................

3.19.检查Root用户和Oracle用户的email......................................

4.检查Oracle对象状态.................................

4.1.检查Oracle控制文件状态........................

42检查Oracle在线日志状态........................

4.3.检查Oracle表空间的状态........................

4.4.检查Oracle所有数据文件状态....................

45检查无效对象...................................

4.6.检查所有回滚段状态.............................

4.7.检查用户下的表.................................

4.8.检查用户默认表空间.............................

49检查当前用户角色及权限.........................

4.10.检查用户下的各个表的大小......................

4.11.检查一个表的创建时间..........................

4.12.检查某个表的大小..............................

4.13.检查每个表占用磁盘空间情况....................

5.检查Oracle相关资源的使用情况.......................

5.1.检查Oracle初始化文件中相关参数值...............

52检查数据库连接情况.............................

53检查系统磁盘空间...............................

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.系统I/O情况...................................

6.9.系统负载情况...................................

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

6.11.检查缓冲区命中率..............................

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

6.13.检查排序区....................................

6.14.检查日志缓冲区................................

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.检查系统安全日志信息...........................

72检查登录失败的日志:...........................

73检查用户修改密码...............................

当数据表空间日常维护.................................

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

82创建表空间.....................................

8.3.表空间扩容.....................................

84创建大数据文件.................................

85数据表空间文件迁移.............................

8.6.不停机移动表空间文件...........................

2存储过程管理.......................................

9.1.找出特定用户的存储过程........................

9.2.通过表名找出存储过程...........................

9.3.查看存储过程内容...............................

四触发器管理........................................

10.1.找出数据库中所有触发器........................

10.2.找出特定用户的触发器..........................

103找出当前用户定义的触发器......................

10.4.查看某个用户自定义的触发器内容................

10.5.查看某个表关联的触发器........................

10.6.查看当前用户所有触发器及存储过程..............

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)),到这个地址去访

问监听器。然后监听器根据文件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安装好后是使用操作系统用户的验证,所以这

里如果我们使用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

启动数据库实例,该步骤只是启动了一个数据库实例.

在此状态下我们可以访问下列结构文件

Select*fromv$instance;

Select*fromv$bgprocess;

Select*fromv$sga;

利用以前读取的参数文件查找控制文件,这些控制文件包含数据文件

名和重做日志名,然后将数据库装载.

alterdatabasemount

一旦这一步完成我们就可以看到下列状态

select*fromv$database;

select*fromv$tablespace;

select*fromv$log;

实例验证数据文件及日志文件并启动数据库

alterdatabaseopen;

打开数据库

startuprestrict

启动过程中限制访问数据库

altersJystemenablerestrictedsession

grantrestrictsessiontoscott

上述命令是只有用户拥有restrict权限才可以连接

启动数据库后起的进程

selectname,DESCRIPTIONfromv$bgprocesswherepaddr<>'00';

1.6.关闭数据库

shutdownnormal?

等待用户完成工作然后关闭

Shutdowntransactional

等待用户完成工作但是强制关闭连接

shutdownimmediate??

立即关闭,当前所有做工作回滚到一致状态,断开其连接

shutdownabort

强制关闭,非干净关闭,下次重起后要回滚日志

2.用户管理

2.1.检察用户profile

selectusername,profilefromdba_userswhereusername='SCOTT';

2.2.查看用户profile参数

select*fromdba_profileswhereprofile='DEFAULT;

3.检查数据库基本状况

3.1.检查数据库创建日期

SelectCreated,Log_ModeFromV$Database;

CREATEDLOG_MODE

2014/8/171NOARCHIVELOG

3.2.检查数据库版本信息

SelectversionfromProduct_component_versionwhere

SUBSTR(PRODUCT,1,6户Oracle?

3.3.检查实例状态

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当前的实例状态,必须为“OPEN”;“D

ATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTI

VE”。

SQL>selectnamejog_mode,open_modefromv$database;

NAMELOG_MODEOPEN_MODE

RACDB1ARCHIVELOGREADWRITE

其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”

表示数据库运行在归档模式下,“NOARCHIVELOG”表示数据库运

行在非归档模式下。在我们的系统中数据库必须运行在归档方式下。

3.4.查看前台进程

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

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

Oracle的前台进程是操作系统进程,它和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.查看并发连接数

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

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

SQL>selectvaluefromv$parameterwherename='processes'

3.9.监控系统后台进程

SQL>Selectname,DescriptionFromV$BGPROCESSWherePaddro*001;

3.10.查看数据库初始化参数

selectname,valuefromv$parameterwhereisbasic='TRUE'orderbyname;

这些参数是当前数据库已经应用的参数

3.11.检查PGA使用情况

selectname,valuefromv$pgastatwherenamein('maximumPGA

allocated','totalPGAallocated');

3.12.检查SGA状态

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监听实例状态的进程,输出显示为:"ora_smon_racdbl”

.Oracle监听客户端连接进程状态的进程,输出显示为:

“ora_pmon_racdbl”

.Oracle进行归档的进程,输出显示为:"ora_arcO_racdb1"

.Oracle进行检查点的进程,输出显示为:"ora_ckpt_racdbl"

.Oracle进行恢复的进程,输出显示为:"ora_reco_racdbl"

3.14.检查Oracle监听状态

[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的监听进程正在监听哪些数据库

实例,输出显示中至少应该有"racdblXDB”这一项。

3.15.检查监听进程是否存在

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

oracle21401012:37?

3.16.检查操作系统日志文件

[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)操作没有执行完成造成不能切换,会记录不能切换的原因;

对数据库进行的某些操作,如创建或删除表空间、增加数据文件;数

据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA

—600)等。定期检查日志文件,根据日志中发现的问题及时进行处理:

问题处理

启动参数不对检查初始化参数文件

因为检查点操作或归档操作没有如果经常发生这样的情况,可以考虑增加重

完成造重做日志不能切换做日日志文件组;想办法提高检查点或归档

操作的效率;

有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;

如有必要,撤消某些用户的系统权限

出现坏块检查是否是硬件问题(如磁盘本生有坏块),

如果不是,检查是那个数据库对象出现了坏

块,对这个对象进行重建

表空间不够增加数据文件到相应的表空间

出现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进程经常发生核心

转储。这说明某些用户进程或者数据库后台进程由于无法处理的原因

而异常退出。频繁的核心转储特别是数据库后台进程的核心转储会导

致数据库异常终止。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对象状态

在本节主要检查相关Oracle对象的状态,包含:检查Oracle控制文件

状态,检查Oracle在线日志状态,检查Oracle表空间的状态,检查

Oracle所有数据文件状态,检查Oracle所有表、索引、存储过程、触

发器、包等对象的状态,检查Oracle所有回滚段的状态,总共六个部

分。

4.1.检查Oracle控制文件状态

SQL>selectstatus,namefromv$controlfile;

STATUSNAME

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

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

输出结果应该有2条以上(包含2条)的记录,“STATUS”应该为

空。状态为空表示控制文件状态正常

4.2.检查Oracle在线日志状态

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表空间的状态

SQL>selecttablespace_name,statusfromdba_tablespaces;

TABLESPACE_NAMESTATUS

SYSTEMONLINE

SYSAUXONLINE

UNDOTBS1ONLINE

TEMPONLINE

USERSONLINE

SCOTTSPACE06ONUNE

6rowsselected

输出结果中STATUS应该都为ONLINE。

4.4.检查Oracle所有数据文件状态

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.检查所有回滚段状态

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.检查一个表的创建时间

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相关资源的使用情况

在本节主要检查Oracle相关资源的使用情况,包含:检查Oracle初始

化文件中相关的参数值,检查数据库连接情况,检查系统磁盘空间,

检查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当前这个会话的状态,ACTIVE表示会话正在执行某些任

务,INACTIVE表示当前会话没有执行任何操作;

如果建立了过多的连接,会消耗数据库的资源,同时,对一些“挂死”

的连接可能需要手工进行清理。如果DBA要手工断开某个会话,则

执行:(一般不建议使用这种方式去杀掉数据库的连接,这样有时候

session不会断开。容易引起死连接。建议通过sid查到操作系统的spid,

使用ps-eflgrepspidno的方式确认spid不是ORACLE的后台进程。

使用操作系统的kill-9命令杀掉连接)

altersystemkillsession1SID,SERIAL#1;

注意:上例中SID为1到10(USERNAME列为空)的会话,是Oracle

的后台进程,不要对这些会话进行任何操作。

5.3.检查系统磁盘空间

[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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论