1、 167.3 查看等待(wait)情况 177.4 回滚段查看 177.5 回滚段的争用情况 187.6 监控表空间的 I/O 比例 187.7 监控文件系统的 I/O 比例 187.8 监控 SGA 的命中率 187.9 监控 SGA 中字典缓冲区的命中率 197.10 监控 SGA 中共享缓存区的命中率,应该小于1% 197.11 临控 SGA 中重做日志缓存区的命中率,应该小于1% 197.12 监控内存和硬盘的排序比率,最好使它小于 0.10,增加 sort_area_size 207.13 监控当前数据库谁在运行什么SQL语句 207.14 监控字典缓冲区 207.15 查看Lock
2、 207.16 捕捉运行很久的SQL 227.17 查看数据表的参数信息 227.18 查看还没提交的事务 237.19 查找object为哪些进程所用 237.20 查看catched object 237.21 查看V$SQLAREA 247.22 有关connection的相关信息 248. 备份 268.1 数据逻辑备份 268.1.1 exp 268.1.2 imp 278.2 控制文件备份 288.3 初始参数备份 288.4 其它 289. 常见问题解决 289.1 安装后常用参数设置 289.2 杀死僵死连接 299.3 AIX内存溢出 309.4 某一功能特别慢 329.5
3、统计信息失效导致执行计划走全表扫瞄 329.6 中银 329.7 日志文件太小引起的切换过于频繁 359.8 Oracle连接中断问题 379.9 查询委托返回记录不对 389.10 Linux + Oracle 10g RAC的平台上,发生节点重启故障 399.11 联机日志损坏 419.12 控制文件损坏 419.13 ORA-01555错误 419.14 HP Proliant DL585G2 机器安装 42有一定Linux/Unix操作系统、Oracle数据库基础的工程人员和维护人员,证券公司信息技术人员等。本手册可作为工具,Oralce运维提供帮助。2. 简单命令使用2.1 进入SQ
4、L*Plus$sqlplus?用户名/密码2.2 退出SQL*PlusSQLexit2.3 在sqlplus下得到帮助信息列出全部SQL命令和SQL*Plus命令help列出某个特定的命令的信息help?命令名2.4 显示表结构命令DESCRIBEDESC?表名2.5 SQL*Plus中的编辑命令 显示SQL缓冲区命令L 修改SQL命令首先要将待改正行变为当前行n 用CHANGE命令修改内容c/旧/新 重新确认是否已正确 使用INPUT命令可以在SQL缓冲区中增加一行或多行i输入内容2.6 调用外部系统编辑器edit?文件名可以使用DEFINE命令设置系统变量EDITOR来改变文本编辑器的类型
5、,在login.sql文件中定义如下一行DEFINE_EDITOR=vi2.7 运行命令文件START?testtest2.8 关于侦听1、新建/修改/删除侦听 以oracle用户登录,运行netca,会跳出图形配置界面。2、打开侦听 lsnrctl start3、查看侦听 Lsnrctl status4、关闭侦听 lsnrctl stop3. ORACLE的启动和关闭3.1 在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su?-?oracle启动oracle 数据库命令:$sqlplus /nologCopyright (c) 1982, 2005, Orac
6、le. All rights reserved. conn / as sysdba已连接到空闲例程。 startupORACLE 例程已经启动。Fixed Size 1249080 bytesRedo Buffers 7139328 bytes数据库装载完毕。数据库已经打开。关闭 oracle 数据库命令:$ sqlplus /nolog已连接。 shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。3.2 在双机环境下要想启动或关闭crs服务必须首先切换到root用户,如下root启动crs 服务: 启动CRS#$CRS_HOME/crs/bin/c
7、rsctl start crs 查看CRS状态#$CRS_HOME/crs/bin/crsctl check crs 关闭CRS#$CRS_HOME/crs/bin/crsctl stop crs 查看CRS内部各资源状态#$CRS_HOME/crs/bin/crs_stat t启动数据库服务# srvctl start?database -d tdb #tdb为数据库名4. 数据库管理员日常工作4.1 检查alterSID.log这个日志文件位于参数BACKGROUND_DUMP_DEST指定的目录,可能通过以下命令来查看。 SHOW PARAMETER background_dump_de
8、st 在出现大故障前,数据库有可能会报一些警告或错误信息,应该充分重视这些信息,未雨绸缪,避免更大错误的发生。检查alterSID.log 的什么内容。 检查数据库是否出现过宕机(可能在晚间重启而维护人员不知道) Oracle 出错信息,通过$grep ORA- alterSID.log查找 产品有关的问题:ORA-00600/ORA-07445等错误 相应的TRACE文件4.2 环境确认数据库实例是否正常工作SQL select status from v$instance;数据库监听器是否正常工作- $ lsnrctl status是否存在故障表空间- SQL select tablesp
9、ace_name,status from dba_tablespace;控制文件、日志文件是否正常 select * from v$controlfile; select * from v$log; select * from v$logfile;性能监测 每天按业务峰值情况,对数据库性能数据进行定时采集 每天检查数据库的主要性能指标 每天检查最消耗资源的SQL语句变化情况。 每天检查是否有足够的资源 检查所有表空间的剩余情况 识别出一些异常的增长 检查CPU、内存、网络等是否异常5. 数据库日常操作SQL5.1 查看表空间物理文件的名称及大小select tablespace_name, f
10、ile_id, file_name, round(bytes / (1024 * 1024), 0) filesize from dba_data_files order by tablespace_name;5.2 查询表空间使用情况select a.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 / 102
11、4, 2) 空闲(M) round(a.bytes_alloc - nvl(b.bytes_free, 0) / 1024 / 1024, 2) 使用(M) to_char(sysdate, yyyy-mm-dd hh24:mi:ss) 采样时间 from (select f.tablespace_name, sum(f.bytes) bytes_alloc, sum(decode(f.autoextensible, YES, f.maxbytes, NO, f.bytes) maxbytes from dba_data_files f group by tablespace_name) a,
12、 (select f.tablespace_name, sum(f.bytes) bytes_free from dba_free_space f group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by 2 desc;5.3 查询表空间的碎片程度select tablespace_name, count(tablespace_name) from dba_free_space group by tablespace_namehaving count(tablespace_name) 10;
13、alter tablespace HS_USER_DATA coalesce;alter table name deallocate unused;5.4 碎片程度alter tablespace name coalesce;create or replace view ts_blocks_v as select tablespace_name, block_id, bytes, blocks, segment_name union all from dba_extents;select * from ts_blocks_v;select tablespace_name, sum(bytes)
14、, max(bytes), count(block_id) group by tablespace_name;? ?查看碎片程度高的表 SELECT segment_name table_name, COUNT(*) extents FROM dba_segments WHERE owner NOT IN (SYS, SYSTEM) GROUP BY segment_nameHAVING COUNT(*) = (SELECT MAX(COUNT(*) GROUP BY segment_name);5.5 查看回滚段名称及大小select segment_name, tablespace_nam
15、e, r.status, (initial_extent / 1024) InitialExtent, (next_extent / 1024) NextExtent, max_extents, v.curext CurExtent From dba_rollback_segs r, v$rollstat v Where r.segment_id = v.usn(+) order by segment_name;5.6 查看控制文件select name from v$controlfile;5.7 查看日志文件select member from v$logfile;5.8 查看表空间的使用
16、情况select sum(bytes) / (1024 * 1024) as free_space, tablespace_nameSELECT A.TABLESPACE_NAME, A.BYTES TOTAL, B.BYTES USED, C.BYTES FREE, (B.BYTES * 100) / A.BYTES % USED (C.BYTES * 100) / A.BYTES % FREE FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME = B.TABLESPACE_N
17、AME AND A.TABLESPACE_NAME = C.TABLESPACE_NAME;5.9 查看数据库对象select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;5.10 查看数据库的版本Select version FROM Product_component_version Where SUBSTR(PRODUCT, 1, 6) = Oracle;5.11 查看Oracle字符集 select * from sys.props$ w
18、here name = NLS_CHARACTERSET5.12 在某个用户下找所有的索引 select user_indexes.table_name, user_indexes.index_name, uniqueness, column_name from user_ind_columns, user_indexes where user_ind_columns.index_name = user_indexes.index_name and user_ind_columns.table_name = user_indexes.table_name order by user_index
19、es.table_type, user_indexes.table_name, column_position;5.13 表、索引的存储情况检查 select segment_name, sum(bytes), count(*) ext_quan from dba_extents where tablespace_name = &tablespace_name and segment_type = TABLE group by tablespace_name, segment_name;select segment_name, count(*) where segment_type = IND
20、EX and owner = owner group by segment_name;5.14 查看数据库的创建日期和归档方式Select Created, Log_Mode, Log_Mode From V$Database;5.15 显示所有数据库对象的类别和大小 select type, 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_
21、size) + sum(parsed_size) + sum(code_size) + sum(error_size) size_required from dba_object_size group by type order by 1;步骤:1. 以SYSDBA身份登陆2个节点,执行alter system set cluster_database=false scope =spfile sid=*;设置归档路径alter system set log_archive_start=true scope=spfile;2. 2个节点shutdown immediate3. 在一个节点上执行s
22、tartup mountalter database archivelog;shutdown immediate;alter database open;alter system set cluster_database=true scope =spfile sid=*;4、分别启动2个节点,修改完毕6. AWR报告与9i 中的statspack相似,awr报告也需要两个快照,才能生成这两个时间点之间的性能报告。$sqlplus / as sysdba 生成快照一(10g中自动会每个整点都会生成一个快照) exec dbms_workload_repository.create_snapsho
23、t(); (间隔一段时间)生成快照二 生成报告 ?/rdbms/admin/awrrpt.sql7. Troubleshooting常用性能相关SQL,监控数据库性能的SQL语句。 7.1 监控事务的等待 select event, sum(decode(wait_Time, 0, 0, 1) Prev sum(decode(wait_Time, 0, 1, 0) Curr count(*) Totol from v$session_Wait group by event order by 4;select sid, event from v$session_wait where event
24、not like SQL% and event not like %ipc%查看是否存在下面等常见的等待事件: buffer busy waits, free buffer waits, db file sequential read, db file scattered read, enqueue,latch free, log file parallel write, log file sync7.3 查看等待(wait)情况SELECT v$waitstat.class, v$waitstat.count count, SUM(v$sysstat.value) sum_value FRO
25、M v$waitstat, v$sysstat WHERE v$sysstat.name IN (db block getsconsistent gets group by v$waitstat.class, v$waitstat.count;7.4 回滚段查看select rownum, sys.dba_rollback_segs.segment_name Name, v$rollstat.extents Extents, v$rollstat.rssize Size_in_Bytes, v$rollstat.xacts XActs, v$rollstat.gets Gets, v$roll
26、stat.waits Waits, v$rollstat.writes Writes, sys.dba_rollback_segs.status status from v$rollstat, sys.dba_rollback_segs, v$rollname where v$rollname.name(+) = sys.dba_rollback_segs.segment_name and v$rollstat.usn(+) = v$rollname.usn order by rownum;7.5 回滚段的争用情况 select name, waits, gets, waits / gets Ratio from
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1