Oracle运维手册.docx
- 文档编号:10489928
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:45
- 大小:169.66KB
Oracle运维手册.docx
《Oracle运维手册.docx》由会员分享,可在线阅读,更多相关《Oracle运维手册.docx(45页珍藏版)》请在冰豆网上搜索。
Oracle运维手册
Oracle运维手册
目录
文档修改记录2
1.前言:
5
2.简单命令使用5
2.1进入SQL*Plus5
2.2退出SQL*Plus5
2.3在sqlplus下得到帮助信息6
2.4显示表结构命令DESCRIBE6
2.5SQL*Plus中的编辑命令6
2.6调用外部系统编辑器6
2.7运行命令文件7
2.8关于侦听7
3.ORACLE的启动和关闭8
3.1在单机环境下8
3.2在双机环境下9
4.数据库管理员日常工作9
4.1检查alterSID.log9
4.2环境确认10
5.数据库日常操作SQL11
5.1查看表空间物理文件的名称及大小11
5.2查询表空间使用情况11
5.3查询表空间的碎片程度11
5.4碎片程度12
5.5查看回滚段名称及大小12
5.6查看控制文件13
5.7查看日志文件13
5.8查看表空间的使用情况13
5.9查看数据库对象13
5.10查看数据库的版本14
5.11查看Oracle字符集14
5.12在某个用户下找所有的索引14
5.13表、索引的存储情况检查14
5.14查看数据库的创建日期和归档方式15
5.15显示所有数据库对象的类别和大小15
5.16设置RAC为归档模式?
15
6.AWR报告16
7.Troubleshooting16
7.1监控事务的等待16
7.2查看一些等待信息:
16
7.3查看等待(wait)情况17
7.4回滚段查看17
7.5回滚段的争用情况18
7.6监控表空间的I/O比例18
7.7监控文件系统的I/O比例18
7.8监控SGA的命中率18
7.9监控SGA中字典缓冲区的命中率19
7.10监控SGA中共享缓存区的命中率,应该小于1%19
7.11临控SGA中重做日志缓存区的命中率,应该小于1%19
7.12监控内存和硬盘的排序比率,最好使它小于0.10,增加sort_area_size20
7.13监控当前数据库谁在运行什么SQL语句20
7.14监控字典缓冲区20
7.15查看Lock20
7.16捕捉运行很久的SQL22
7.17查看数据表的参数信息22
7.18查看还没提交的事务23
7.19查找object为哪些进程所用23
7.20查看catchedobject23
7.21查看V$SQLAREA24
7.22有关connection的相关信息24
8.备份26
8.1数据逻辑备份26
8.1.1exp26
8.1.2imp27
8.2控制文件备份28
8.3初始参数备份28
8.4其它28
9.常见问题解决28
9.1安装后常用参数设置28
9.2杀死僵死连接29
9.3AIX内存溢出30
9.4某一功能特别慢32
9.5统计信息失效导致执行计划走全表扫瞄32
9.6中银32
9.7日志文件太小引起的切换过于频繁35
9.8Oracle连接中断问题37
9.9查询委托返回记录不对38
9.10Linux+Oracle10gRAC的平台上,发生节点重启故障39
9.11联机日志损坏41
9.12控制文件损坏41
9.13ORA-01555错误41
9.14HPProliantDL585G2机器安装42
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来改变文本编辑器的类型,在login.sql文件中定义如下一行
DEFINE_EDITOR=vi
2.7运行命令文件
SQL>START test
SQL>@test
2.8关于侦听
1、新建/修改/删除侦听
以oracle用户登录,运行netca,会跳出图形配置界面。
2、打开侦听
lsnrctlstart
3、查看侦听
Lsnrctlstatus
4、关闭侦听
lsnrctlstop
3.ORACLE的启动和关闭
3.1在单机环境下
要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下
su - oracle
启动oracle数据库命令:
$sqlplus/nolog
SQL*Plus:
Release10.2.0.1.0-Productionon星期一7月1616:
09:
402007
Copyright(c)1982,2005,Oracle.Allrightsreserved.
SQL>conn/assysdba
已连接到空闲例程。
SQL>startup
ORACLE例程已经启动。
TotalSystemGlobalArea369098752bytes
FixedSize1249080bytes
VariableSize201326792bytes
DatabaseBuffers159383552bytes
RedoBuffers7139328bytes
数据库装载完毕。
数据库已经打开。
关闭oracle数据库命令:
$sqlplus/nolog
SQL*Plus:
Release10.2.0.1.0-Productionon星期一7月1616:
08:
102007
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
启动数据库服务
#srvctlstart database-dtdb#tdb为数据库名
4.数据库管理员日常工作
4.1检查alterSID.log
这个日志文件位于参数BACKGROUND_DUMP_DEST指定的目录,可能通过以下命令来查看。
SQL>SHOWPARAMETERbackground_dump_dest
在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。
检查alterSID.log的什么内容。
Ø检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道)
ØOracle出错信息,通过$grepORA-alterSID.log查找
Ø产品有关的问题:
ORA-00600/ORA-07445等错误
Ø相应的TRACE文件
4.2环境确认
数据库实例是否正常工作
SQL>selectstatusfromv$instance;
数据库监听器是否正常工作
-$lsnrctlstatus
是否存在故障表空间
-SQL>selecttablespace_name,statusfromdba_tablespaces;
控制文件、日志文件是否正常
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查询表空间使用情况
selecta.tablespace_name"表空间名称",
100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2)"占用率(%)",
round(a.bytes_alloc/1024/1024,2)"容量(M)",
round(nvl(b.bytes_free,0)/1024/1024,2)"空闲(M)",
round((a.bytes_alloc-nvl(b.bytes_free,0))/1024/1024,2)"使用(M)",
to_char(sysdate,'yyyy-mm-ddhh24:
mi:
ss')"采样时间"
from(selectf.tablespace_name,
sum(f.bytes)bytes_alloc,
sum(decode(f.autoextensible,'YES',f.maxbytes,'NO',f.bytes))maxbytes
fromdba_data_filesf
groupbytablespace_name)a,
(selectf.tablespace_name,sum(f.bytes)bytes_free
fromdba_free_spacef
groupbytablespace_name)b
wherea.tablespace_name=b.tablespace_name
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,
r.status,
(initial_extent/1024)InitialExtent,
(next_extent/1024)NextExtent,
max_extents,
v.curextCurExtent
Fromdba_rollback_segsr,v$rollstatv
Wherer.segment_id=v.usn(+)
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;
SELECTA.TABLESPACE_NAME,
A.BYTESTOTAL,
B.BYTESUSED,
C.BYTESFREE,
(B.BYTES*100)/A.BYTES"%USED",
(C.BYTES*100)/A.BYTES"%FREE"
FROMSYS.SM$TS_AVAILA,SYS.SM$TS_USEDB,SYS.SM$TS_FREEC
WHEREA.TABLESPACE_NAME=B.TABLESPACE_NAME
ANDA.TABLESPACE_NAME=C.TABLESPACE_NAME;
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*fromsys.props$wherename='NLS_CHARACTERSET';
5.12在某个用户下找所有的索引
selectuser_indexes.table_name,
user_indexes.index_name,
uniqueness,
column_name
fromuser_ind_columns,user_indexes
whereuser_ind_columns.index_name=user_indexes.index_name
anduser_ind_columns.table_name=user_indexes.table_name
orderbyuser_indexes.table_type,
user_indexes.table_name,
user_indexes.index_name,
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>execdbms_workload_repository.create_snapshot();
Ø(间隔一段时间)生成快照二
SQL>execdbms_workload_repository.create_snapshot();
Ø生成报告
SQL>@?
/rdbms/admin/awrrpt.sql
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$waitstat.class,
v$waitstat.countcount,
SUM(v$sysstat.value)sum_value
FROMv$waitstat,v$sysstat
WHEREv$sysstat.nameIN('dbblockgets','consistentgets')
groupbyv$waitstat.class,v$waitstat.count;
7.4回滚段查看
selectrownum,
sys.dba_rollback_segs.segment_nameName,
v$rollstat.extentsExtents,
v$rollstat.rssizeSize_in_Bytes,
v$rollstat.xactsXActs,
v$rollstat.getsGets,
v$rollstat.waitsWaits,
v$rollstat.writesWrites,
sys.dba_rollback_segs.status
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 手册