Oracle运维手册Word文档下载推荐.docx
《Oracle运维手册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Oracle运维手册Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
lsnrctlstop
3.ORACLE的启动和关闭
3.1在单机环境下
要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
su-oracle
启动oracle数据库命令:
$sqlplus/nolog
Copyright(c)1982,2005,Oracle.Allrightsreserved.
conn/assysdba
已连接到空闲例程。
startup
ORACLE例程已经启动。
FixedSize1249080bytes
RedoBuffers7139328bytes
数据库装载完毕。
数据库已经打开。
关闭oracle数据库命令:
$sqlplus/nolog
已连接。
shutdownimmediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
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指定的目录,可能通过以下命令来查看。
SHOWPARAMETERbackground_dump_dest
在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。
检查的什么内容。
检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道)
Oracle出错信息,通过$grepORA-查找
产品有关的问题:
ORA-00600/ORA-07445等错误
相应的TRACE文件
4.2环境确认
数据库实例是否正常工作
SQL>
selectstatusfromv$instance;
数据库监听器是否正常工作
-$lsnrctlstatus
是否存在故障表空间
-SQL>
selecttablespace_name,statusfromdba_tablespace;
控制文件、日志文件是否正常
select*fromv$controlfile;
select*fromv$log;
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碎片程度
altertablespacenamecoalesce;
createorreplaceviewts_blocks_vas
selecttablespace_name,block_id,bytes,blocks,segment_name
unionall
fromdba_extents;
select*fromts_blocks_v;
selecttablespace_name,sum(bytes),max(bytes),count(block_id)
groupbytablespace_name;
查看碎片程度高的表
SELECTsegment_nametable_name,COUNT(*)extents
FROMdba_segments
WHEREownerNOTIN('
SYS'
'
SYSTEM'
)
GROUPBYsegment_name
HAVINGCOUNT(*)=(SELECTMAX(COUNT(*))
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
SELECT,
TOTAL,
USED,
FREE,
*100)/"
%USED"
%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
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(*)
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=’*’;
4、分别启动2个节点,修改完毕
6.AWR报告
与9i中的statspack相似,awr报告也需要两个快照,才能生成这两个时间点之间的性能报告。
$sqlplus/assysdba
生成快照一(10g中自动会每个整点都会生成一个快照)
exec();
(间隔一段时间)生成快照二
生成报告
@/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"
7.11临控SGA中重做日志缓存区的命中率,应该小于1%
SELECTname,
misses,
immediate_gets,
immediate_misses,
Decode(gets,0,0,misses/gets*100)ratio1,
Decode(immediate_gets+immediate_misses,
0,
immediate_misses/(immediate_gets+immediate_misses)*100)ratio2
FROMv$latch
WHEREnameIN('
redoallocation'
redocopy'
);
7.12监控内存和硬盘的排序比率,最好使它小于,增加sort_area_size
SELECTname,value
FROMv$sysstat
sorts(memory)'
sorts(disk)'
7.13监控当前数据库谁在运行什么SQL语句
SELECTosuser,username,sql_text
fromv$sessiona,v$sqltextb
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
#,
decode,
'
TM'
TM-DMLEnqueue'
TX'
TX-TransEnqueue'
UL'
UL-User'
||'
-OtherType'
)LOCKTYPE,
substr,1,10)OBJECT,
owner,
1,
NoLock'
2,
RowShare'
3,
RowExclusive'
4,
Share'
5,
ShrRowExcl'
6,
Exclusive'
null)lmode,
RowExcl'
null)request
fromv$lockl,v$sessions,$u,$t
and!
='
BACKGROUND'
and#=
and#=#;
7.16捕捉运行很久的