Oracle运维手册.docx

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

Oracle运维手册.docx

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

Oracle运维手册.docx

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

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

启动数据库服务

#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_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查询表空间使用情况

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.statusstatus

fromv$rollstat,sys.dba_rollback_segs,v$rollname

wherev$rollname.name(+)=sys.dba_rollback_segs.segment_name

andv$rollstat.usn(+)=v$rollname.usn

orderbyrownum;

7.5回滚段的争用情况

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

from

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

当前位置:首页 > 农林牧渔 > 林学

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

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