Oracle运维手册.docx

上传人:b****4 文档编号:4617675 上传时间:2022-12-07 格式:DOCX 页数:37 大小:34.96KB
下载 相关 举报
Oracle运维手册.docx_第1页
第1页 / 共37页
Oracle运维手册.docx_第2页
第2页 / 共37页
Oracle运维手册.docx_第3页
第3页 / 共37页
Oracle运维手册.docx_第4页
第4页 / 共37页
Oracle运维手册.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

Oracle运维手册.docx

《Oracle运维手册.docx》由会员分享,可在线阅读,更多相关《Oracle运维手册.docx(37页珍藏版)》请在冰豆网上搜索。

Oracle运维手册.docx

Oracle运维手册

Oracle_运维手册

精品汇编资料

1.前言:

有一定Linux/Unix操作系统、Oracle数据库基础的工程人员和维护人员,证券公司信息技术人员等。

本手册可作为工具,Oralce运维提供帮助。

2.简单命令使用

2.1进入SQL*Plus

$sqlplus用户名/密码

2.2退出SQL*Plus

SQL>exit

2.3在sqlplus下得到帮助信息

列出全部SQL命令和SQL*Plus命令

SQL>help

列出某个特定的命令的信息

SQL>help命令名

2.4显示表结构命令DESCRIBE

SQL>DESC表名

2.5SQL*Plus中的编辑命令

Ø显示SQL缓冲区命令

SQL>L

Ø修改SQL命令

首先要将待改正行变为当前行

SQL>n

Ø用CHANGE命令修改内容

SQL>c/旧/新

Ø重新确认是否已正确

SQL>L

Ø使用INPUT命令可以在SQL缓冲区中增加一行或多行

SQL>i

SQL>输入内容

2.6调用外部系统编辑器

SQL>edit文件名

可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型,在文件中定义如下一行

DEFINE_EDITOR=vi

2.7运行命令文件

SQL>STARTtest

SQL>@test

2.8关于侦听

1、新建/修改/删除侦听

以oracle用户登录,运行netca,会跳出图形配置界面。

2、打开侦听

lsnrctlstart

3、查看侦听

Lsnrctlstatus

4、关闭侦听

lsnrctlstop

3.ORACLE的启动和关闭

3.1在单机环境下

要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下

su-oracle

启动oracle数据库命令:

$sqlplus/nolog

Copyright(c)1982,2005,Oracle.Allrightsreserved.

SQL>conn/assysdba

已连接到空闲例程。

SQL>startup

ORACLE例程已经启动。

FixedSize1249080bytes

RedoBuffers7139328bytes

数据库装载完毕。

数据库已经打开。

关闭oracle数据库命令:

$sqlplus/nolog

Copyright(c)1982,2005,Oracle.Allrightsreserved.

SQL>conn/assysdba

已连接。

SQL>shutdownimmediate

数据库已经关闭。

已经卸载数据库。

ORACLE例程已经关闭。

SQL>

3.2在双机环境下

要想启动或关闭crs服务必须首先切换到root用户,如下

su-root

启动crs服务:

Ø启动CRS

#$CRS_HOME/crs/bin/crsctlstartcrs

Ø查看CRS状态

#$CRS_HOME/crs/bin/crsctlcheckcrs

Ø关闭CRS

#$CRS_HOME/crs/bin/crsctlstopcrs

Ø查看CRS内部各资源状态

#$CRS_HOME/crs/bin/crs_stat–t

启动数据库服务

#srvctlstartdatabase-dtdb#tdb为数据库名

4.数据库管理员日常工作

4.1检查

这个日志文件位于参数BACKGROUND_DUMP_DEST指定的目录,可能通过以下命令来查看。

SQL>SHOWPARAMETERbackground_dump_dest

在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。

检查的什么内容。

Ø检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道)

ØOracle出错信息,通过$grepORA-查找

Ø产品有关的问题:

ORA-00600/ORA-07445等错误

Ø相应的TRACE文件

4.2环境确认

数据库实例是否正常工作

SQL>selectstatusfromv$instance;

数据库监听器是否正常工作

-$lsnrctlstatus

是否存在故障表空间

-SQL>selecttablespace_name,statusfromdba_tablespace;

控制文件、日志文件是否正常

SQL>select*fromv$controlfile;

SQL>select*fromv$log;

SQL>select*fromv$logfile;

性能监测

Ø每天按业务峰值情况,对数据库性能数据进行定时采集

Ø每天检查数据库的主要性能指标

Ø每天检查最消耗资源的SQL语句变化情况。

Ø每天检查是否有足够的资源

Ø检查所有表空间的剩余情况

Ø识别出一些异常的增长

Ø检查CPU、内存、网络等是否异常

5.数据库日常操作SQL

5.1查看表空间物理文件的名称及大小

selecttablespace_name,

file_id,

file_name,

round(bytes/(1024*1024),0)filesize

fromdba_data_files

orderbytablespace_name;

5.2查询表空间使用情况

select"表空间名称",

100-round((nvl,0)/*100,2)"占用率(%)",

round/1024/1024,2)"容量(M)",

round(nvl,0)/1024/1024,2)"空闲(M)",

round(-nvl,0))/1024/1024,2)"使用(M)",

to_char(sysdate,'yyyy-mm-ddhh24:

mi:

ss')"采样时间"

from(select,

sumbytes_alloc,

sum(decode,'YES',,'NO',)maxbytes

fromdba_data_filesf

groupbytablespace_name)a,

(select,sumbytes_free

fromdba_free_spacef

groupbytablespace_name)b

where=

orderby2desc;

5.3查询表空间的碎片程度

selecttablespace_name,count(tablespace_name)

fromdba_free_space

groupbytablespace_name

havingcount(tablespace_name)>10;

altertablespaceHS_USER_DATAcoalesce;

altertablenamedeallocateunused;

5.4碎片程度

selecttablespace_name,count(tablespace_name)

fromdba_free_space

groupbytablespace_name

havingcount(tablespace_name)>10;

altertablespacenamecoalesce;

altertablenamedeallocateunused;

createorreplaceviewts_blocks_vas

selecttablespace_name,block_id,bytes,blocks,segment_name

fromdba_free_space

unionall

selecttablespace_name,block_id,bytes,blocks,segment_name

fromdba_extents;

select*fromts_blocks_v;

selecttablespace_name,sum(bytes),max(bytes),count(block_id)

fromdba_free_space

groupbytablespace_name;

查看碎片程度高的表

SELECTsegment_nametable_name,COUNT(*)extents

FROMdba_segments

WHEREownerNOTIN('SYS','SYSTEM')

GROUPBYsegment_name

HAVINGCOUNT(*)=(SELECTMAX(COUNT(*))

FROMdba_segments

GROUPBYsegment_name);

5.5查看回滚段名称及大小

selectsegment_name,

tablespace_name,

(initial_extent/1024)InitialExtent,

(next_extent/1024)NextExtent,

max_extents,

CurExtent

Fromdba_rollback_segsr,v$rollstatv

Where=(+)

orderbysegment_name;

5.6查看控制文件

selectnamefromv$controlfile;

5.7查看日志文件

selectmemberfromv$logfile;

5.8查看表空间的使用情况

selectsum(bytes)/(1024*1024)asfree_space,tablespace_name

fromdba_free_space

groupbytablespace_name;

SELECT,

TOTAL,

USED,

FREE,

*100)/"%USED",

*100)/"%FREE"

FROM$TS_AVAILA,$TS_USEDB,$TS_FREEC

WHERE=

AND=;

5.9查看数据库对象

selectowner,object_type,status,count(*)count#

fromall_objects

groupbyowner,object_type,status;

5.10查看数据库的版本

Selectversion

FROMProduct_component_version

WhereSUBSTR(PRODUCT,1,6)='Oracle';

5.11查看Oracle字符集

select*from$wherename='NLS_CHARACTERSET';

5.12在某个用户下找所有的索引

select,

uniqueness,

column_name

fromuser_ind_columns,user_indexes

where=

and=

orderby,

column_position;

5.13表、索引的存储情况检查

selectsegment_name,sum(bytes),count(*)ext_quan

fromdba_extents

wheretablespace_name='&tablespace_name'

andsegment_type='TABLE'

groupbytablespace_name,segment_name;

selectsegment_name,count(*)

fromdba_extents

wheresegment_type='INDEX'

andowner='&owner'

groupbysegment_name;

5.14查看数据库的创建日期和归档方式

SelectCreated,Log_Mode,Log_ModeFromV$Database;

5.15显示所有数据库对象的类别和大小

selecttype,

count(name)num_instances,

sum(source_size)source_size,

sum(parsed_size)parsed_size,

sum(code_size)code_size,

sum(error_size)error_size,

sum(source_size)+sum(parsed_size)+sum(code_size)+

sum(error_size)size_required

fromdba_object_size

groupbytype

orderby1;

5.16设置RAC为归档模式

步骤:

1.以SYSDBA身份登陆2个节点,执行

altersystemsetcluster_database=falsescope=spfilesid=’*’;

设置归档路径

altersystemsetlog_archive_start=truescope=spfile;

2.2个节点

shutdownimmediate

3.在一个节点上执行

startupmount

alterdatabasearchivelog;

shutdownimmediate;

alterdatabaseopen;

altersystemsetcluster_database=truescope=spfilesid=’*’;

shutdownimmediate

4、分别启动2个节点,修改完毕

6.AWR报告

与9i中的statspack相似,awr报告也需要两个快照,才能生成这两个时间点之间的性能报告。

$sqlplus/assysdba

Ø生成快照一(10g中自动会每个整点都会生成一个快照)

SQL>exec();

Ø(间隔一段时间)生成快照二

SQL>exec();

Ø生成报告

SQL>@/rdbms/admin/

7.Troubleshooting

常用性能相关SQL,监控数据库性能的SQL语句。

7.1监控事务的等待

selectevent,

sum(decode(wait_Time,0,0,1))"Prev",

sum(decode(wait_Time,0,1,0))"Curr",

count(*)"Totol"

fromv$session_Wait

groupbyevent

orderby4;

7.2查看一些等待信息:

selectsid,event

fromv$session_wait

whereeventnotlike'SQL%'

andeventnotlike'%ipc%';

查看是否存在下面等常见的等待事件:

Øbufferbusywaits,

Øfreebufferwaits,

Ødbfilesequentialread,

Ødbfilescatteredread,

Øenqueue,latchfree,

Ølogfileparallelwrite,

Ølogfilesync

7.3查看等待(wait)情况

SELECTv$,

v$count,

SUM(v$sum_value

FROMv$waitstat,v$sysstat

WHEREv$IN('dbblockgets','consistentgets')

groupbyv$,v$;  

7.4回滚段查看

selectrownum,

Name,

v$Extents,

v$Size_in_Bytes,

v$XActs,

v$Gets,

v$Waits,

v$Writes,

status

fromv$rollstat,,v$rollname

wherev$(+)=

andv$(+)=v$

orderbyrownum;

7.5回滚段的争用情况

selectname,waits,gets,waits/gets"Ratio"

fromv$rollstata,v$rollnameb

where=;

7.6监控表空间的I/O比例

selectname,

"file",

pyr,

pbr,

pyw,

pbw

fromv$filestatf,dba_data_filesdf

where#=

orderby;

7.7监控文件系统的I/O比例

selectsubstr#,1,2)"#",

substr,1,30)"Name",

fromv$datafilea,v$filestatb

where#=#;

7.8监控SGA的命中率

select+"logical_reads",

"phys_reads",

round(100*(+-/+)"BUFFERHITRATIO"

fromv$sysstata,v$sysstatb,v$sysstatc

where#=38--physicalreadtotalmultiblockrequests

and#=39--physicalreadtotalbytes

and#=40;--physicalwritetotalIOrequests

7.9监控SGA中字典缓冲区的命中率

selectparameter,

gets,

Getmisses,

getmisses/(gets+getmisses)*100"missratio",

(1-(sum(getmisses)/(sum(gets)+sum(getmisses))))*100"Hitratio"

fromv$rowcache

wheregets+getmisses<>0

groupbyparameter,gets,getmisses;

7.10监控SGA中共享缓存区的命中率,应该小于1%

selectsum(pins)"TotalPins",

sum(reloads)"TotalReloads",

sum(reloads)/sum(pins)libcache

fromv$librarycache;

selectsum(pinhits-reloads)/sum(pins)*100"hitradio",

sum(reloads)/sum(pins)"reloadpercent"

fromv$librarycache;

7.11临控SGA中重做日志缓存区的命中率,应该小于1%

SELECTname,

gets,

misses,

immediate_gets,

immediate_misses,

Decode(gets,0,0,misses/gets*100)ratio1,

Decode(immediate_gets+immediate_misses,

0,

0,

immediate_misses/(immediate_gets+immediate_misses)*100)ratio2

FROMv$latch

WHEREnameIN('redoallocation','redocopy');

7.12监控内存和硬盘的排序比率,最好使它小于,增加sort_area_size

SELECTname,value

FROMv$sysstat

WHEREnameIN('sorts(memory)','sorts(disk)');

7.13监控当前数据库谁在运行什么SQL语句

SELECTosuser,username,sql_text

fromv$sessiona,v$sqltextb

where=

orderbyaddress,piece;

7.14监控字典缓冲区

SELECTSUM(PINS)"EXECUTIONS",

SUM(RELOADS)"CACHEMISSESWHILEEXECUTING",

(SUM(PINS-RELOADS))/SUM(PINS)"LIBCACHE"

FROMV$LIBRARYCACHE;

SELECTSUM(GETS)"DICTIONARYGETS",

SUM(GETMISSES)"DICTIONARYCACHEGETMISSES",

(SUM(GETS-GETMISSES-USAGE-FIXED))/SUM(GETS)"ROWCACHE"

FROMV$ROWCACHE;

“LIBCACHE“与“ROWCACHE”越接近超好,不要低于。

否则需要调大SGA的空间。

7.15查看Lock

select,

#,

decode,

'TM',

'TM-DMLEnqueue',

'TX',

'TX-TransEnqueue',

'UL',

'UL-User',

||'-OtherType')LOCKTYPE,

substr,1,10)OBJECT,

owner,

decode,

1,

'NoLock',

2,

'RowShare',

3,

'RowExclusive',

4,

'Share',

5,

'ShrRowExcl',

6,

'Exclusive',

null)lmode,

decode,

1,

'NoLock',

2,

'RowShare',

3,

'RowExcl',

4,

'Share',

5,

'ShrRowExcl',

6,

'Exclusive',

null)request

fromv$lockl,v$sessions,$u,$t

where=

and!

='BACKGROUND'

and#=

and#=#;

7.16捕捉运行很久的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1