Oracle DBA数据库日常维护完全手册
数据库日常运维手册

神州数码信息系统有限公司数据库日常运维手册神州数码信息系统有限公司2015/9/5日常运维操作手册主要针对ORACLE数据库管理员对数据库系统做定期监控:(1). 每天对ORACLE数据库的运行状态、日志文件、备份情况、数据库的空间使用情况、系统资源的使用情况进行检查,发现并解决问题。
并要有相关的人员负责每天查看,发现问题及时上报分析。
检查每天的数据库备份完成情况。
(2). 每周对数据库对象的空间扩展情况、数据的增长情况进行监控、对数据库做健康检查、对数据库对象的状态做检查。
(3). 每月对表和索引等进行Analyze、检查表空间碎片、寻找数据库性能调整的机会、进行数据库性能调整、提出下一步空间管理计划。
对ORACLE数据库状态进行一次全面检查(4)根据公司数据库的安全策略对ORACLE DB进行加固一.日维护过程1.1、确认所有的INSTANCE状态正常登陆到所有数据库或例程,检测ORACLE后台进程:$ps –ef|grep ora1.2、检查文件系统的使用(剩余空间)如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。
#df –k1.3、检查日志文件和trace文件记录检查相关的日志文件和trace文件中是否存在错误。
A、连接到每个需管理的系统使用’telnet’命令B、对每个数据库,进入到数据库的bdump目录,unix系统中BDUMP目录通常是$ORACLE_BASE/<SID>/bdump#$ORACLE_BASE/<SID>/bdumpC、使用 Unix ‘tail’命令来查看alert_<SID>.log文件#tail $ORACLE_BASE/<SID>/bdump/alert_<SID>.logD、如果发现任何新的ORA- 错误,记录并解决1.4、检查数据库当日备份的有效性。
对RMAN备份方式:1.5、检查数据文件的状态检查所有数据文件并记录状态不是“online”的数据文件,并做恢复。
Oracle DBA 数据库日常维护手册 常用SQL 脚本

Oracle数据库日常维护【版本整理日期:2011/02/26 】版本整理人:1634068400@本文档包含以下内容:1.Oracle数据库日常维护2.Oracle DBA 常用管理脚本3.Oracle DB 常用SQL 语句/******************************************************** (若跳转不成功,请复制到浏览器或联系Q) /item.htm?id=7437120468Metalink Sharing ********************************************************/在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
一、Oracle警告日志文件监控Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:l数据库的启动、关闭,启动时的非缺省参数;l数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;l对数据库进行的某些操作,如创建或删除表空间、增加数据文件;l数据库发生的错误,如表空间不够、出现坏块、数据库内部错误(ORA -600)DBA 应该定期检查日志文件,根据日志中发现的问题及时进行处理问题处理 启动参数不对 检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换 如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人未经授权删除了表空间 检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块 检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间 出现ORA-600 根据日志文件的内容查看相应的TRC文件,如果是Oracle 的bug ,要及时打上相应的补丁二、数据库表空间使用情况监控(字典管理表空间)数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA 应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。
oracle数据库DBA管理手册1

4 第一部分 数据库体系结构
下载
• 序列。 • 过程、函数、软件包和触发器。 • 同义词。 • 权限及角色。 • 数据库链接。 • 段、盘区和块。 • 回滚段。 • 快照与显形图。 下面对上述每一种元素进行详细介绍。
1.4.1 表、列和数据类型
表是数据在一个 Oracle数据库中的存储机制,如图 1-1所示,它包含一组固定的列。表中 的列描述该表所跟踪的实体的属性,每个列都有一个名字及各自的特性。
1.2.2 文件
每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件 (datafile)。一个数 据文件只能属于一个表空间。在 Oracle 7.2中,数据文件创建后可改变大小。创建新的表空间 需要创建新的数据文件。
数据文件一旦加入到表空间中,就不能从这个表空间中移走,也不能与其他表空间发生 联系。
1.1 数据库概述及实例
要了解 Oracle体系结构,必须先了解两个基本概念:数据库和实例。下面两节将详细描述 这两个基本概念及其在 Oracle中的实现。
1.2 数据库
数据库(database)是一个数据集合。 Oracle能够提供按照一致性方式定义的定义模型 (称作 关系模型 )存储和访问数据的方法,因此 Oracle被认为是一种关系数据库管理系统 (RDBMS)。 对“数据库”一词的大多数引用不仅是指物理的数据,也指本章中描述的物理、内存及进程 对象的组合。
下载
3 第1章 Oracle体系结构
1.3 实例
为了访问数据库中的数据, Oracle使用一组所有用户共享的后台进程。此外,还有一些存 储结构(统称为System Global Area,即SGA)用来存储最近从数据库查询的数据。数据块缓存 区和SQL共享池(Shared SQL Pool)是SGA中的最大部分,一般占分配给 SGA的内存95%以上。 通过减少对数据文件的 I/O次数,这些存储区域可以改善数据库性能。
Oracle运维详细手册簿

Oracle运维手册目录文档修改记录 .................................................................................................. 错误!未定义书签。
1. 前言: (4)2. 简单命令使用 (4)2.1进入SQL*Plus (4)2.2退出SQL*Plus (4)2.3在sqlplus下得到帮助信息 (4)2.4显示表结构命令DESCRIBE (4)2.5SQL*Plus中的编辑命令 (4)2.6调用外部系统编辑器 (5)2.7运行命令文件 (5)2.8关于侦听 (5)3. ORACLE的启动和关闭 (6)3.1在单机环境下 (6)3.2在双机环境下 (7)4. 数据库管理员日常工作 (8)4.1检查alterSID.log (8)4.2环境确认 (8)5. 数据库日常操作SQL (9)5.1查看表空间物理文件的名称及大小 (9)5.2查询表空间使用情况 (9)5.3查询表空间的碎片程度 (10)5.4碎片程度 (10)5.5查看回滚段名称及大小 (11)5.6查看控制文件 (11)5.7查看日志文件 (11)5.8查看表空间的使用情况 (11)5.9查看数据库对象 (12)5.10查看数据库的版本 (12)5.11查看Oracle字符集 (12)5.12在某个用户下找所有的索引 (12)5.13表、索引的存储情况检查 (12)5.14查看数据库的创建日期和归档方式 (13)5.15显示所有数据库对象的类别和大小 (13)5.16设置RAC为归档模式? (13)6. AWR报告 (14)7. Troubleshooting (14)7.1监控事务的等待 (14)7.2查看一些等待信息: (14)7.3查看等待(wait)情况 (15)7.4回滚段查看 (15)7.5回滚段的争用情况 (15)7.6监控表空间的 I/O 比例 (16)7.7监控文件系统的 I/O 比例 (16)7.8监控 SGA 的命中率 (16)7.9监控 SGA 中字典缓冲区的命中率 (16)7.10监控 SGA 中共享缓存区的命中率,应该小于1% (17)7.11临控 SGA 中重做日志缓存区的命中率,应该小于1% (17)7.12监控内存和硬盘的排序比率,最好使它小于 0.10,增加 sort_area_size . 177.13监控当前数据库谁在运行什么SQL语句 (17)7.14监控字典缓冲区 (18)7.15查看Lock (18)7.16捕捉运行很久的SQL (19)7.17查看数据表的参数信息 (20)7.18 查看还没提交的事务 (20)7.19查找object为哪些进程所用 (20)7.20查看catched object (21)7.21查看V$SQLAREA (21)7.22有关connection的相关信息 (22)8. 备份 (23)8.1数据逻辑备份 (23)8.1.1 exp (23)8.1.2 imp (24)8.2控制文件备份 (25)8.3初始参数备份 (25)8.4其它 (26)9. 常见问题解决 (26)9.1安装后常用参数设置 (26)9.2杀死僵死连接 (27)9.3AIX内存溢出 (27)9.4某一功能特别慢 (29)9.5统计信息失效导致执行计划走全表扫瞄 (29)9.6中银............................................................................................... 错误!未定义书签。
数据库维护工作手册

数据库维护处事脚册之阳早格格创做文档编号:文档称呼:编写:审核:批准: 接受日期:目录1概括22数据库监控3数据库监控处事真质3数据库监控处事步调3查看数据库日志3查看是可有做废的数据库对付象5查看数据库结余空间6沉面表查看6查看数据库是可寻常7死锁查看7监控SQL语句的真止7支配系统级查看8其余83数据库维护9数据库维护处事真质9数据库维护处事事项9页里建复9数据库对付象沉建9碎片回支(数据沉组)9简略不必的数据10备份回复10履历数据迁移11定期建改暗号11简略掉不需要的用户11其余124数据库管制时常使用SQL足本125凡是维护战问题管制23脚法23例止处事提议23相关挖表证明241概括数据库的凡是监控是使管制员即时相识系统非常十分的脚法.大部分情况下,系统经常寻常运止的.惟有对付寻常情况的充分相识,才搞通过对付比寻常情况创制非常十分情况.对付于数据库的凡是监控要有记录,笔墨记录大概者电子文档保存.对付于数据库非常十分举止分解,提出办理规划.凡是处事包罗监控战维护二个部分.此文档中关于数据库的运止下令示例主要针对付于ORACLE数据库,但是对付于SYBASE数据库共样有参照价格,只消换用相对付应的语句即可.数据库监控2数据库监控数据库监控处事真质制定战矫正监控规划,编写监控足本.对付于数据库举止凡是监测,提接记录.根据监测截止举止分解、预测,提接相映的系统矫正提议规划.数据库监控处事步调2.1.1查看数据库日志数据库的日志上会有洪量对付于管制员有用的疑息.ORACLE的Alert日志记录了数据库系统所报的系统级过得疑息,以及数据块做废等宽沉过得疑息.过得疑息的爆收,会爆收相映的逃踪文献,通过查看告诫日志战逃踪文献可查找过得本果,对付于创制的问题应即时办理战报告.如:1.表空间是可谦,是可需要举止增加大概者扩展.Alert文献中会隐现有表块无法扩展的提示.2.表的块大概者页里是可益坏.(往往那时alert文献中会隐现ora-600的过得.)3.数据库是可举止了非常十分支配.(如:droptablespace等等).真用下令:·报警日志文献(alert.log大概alrt<SID>.ora)记录数据库开用,关关战一些要害的堕落疑息.数据库管制员该当时常查看那个文献,并对付出现的问题做出纵然的反应.不妨通过以下SQL 找到他的路径select value from v$parameter where upper(name) ='BACKGROUND_DUMP_DEST',大概通过参数文献赢得其路径,大概者show parameter BACKGROUND_DUMP_DEST.·背景逃踪文献路径与报警文献路径普遍,记录了系统背景进程堕落时写进的疑息.·用户逃踪文献记录了用户进程堕落时写进的疑息,普遍不可能读懂,不妨通过ORACLE的TKPROF工具转移为不妨读懂的圆法.用户逃踪文献的路径,您不妨通过以下SQL找到他的路径select value from v$parameter where upper(name) ='USER_DUMP_DEST',大概通过参数文献赢得其路径,大概者show parameter USER_DUMP_DEST.不妨通过树立用户逃踪大概dump下令去爆收用户逃踪文献,普遍正在调试、劣化、系统分解中有很大的效用.可正在参数文献种用SQL_TRACE=TRUE挨开该文献(对付所有用户),也可用alter session set sql_trace=true挨开目前会话,也可用execute dbms_system.set_sql_trace_in_session(sid,serial#,true)挨开指定会话.2.1.2查看是可有做废的数据库对付象主要关注索引,触收器,保存历程,函数等等.如:查找user_objects数据字典,瞅其中是可有状态为invalid的对付象.推断做废本果(如:视图做废的本果有大概是由于创制视图的基表被简略等等),找出本果可举止对付象沉建大概建复.真用下令:Select object_name,object_typeFrom user_objectsWhere object_type=’INV ALID’;2.1.3查看数据库结余空间1.结余空间缺累时要扩展空间,普遍的,当结余空间小于10%时,要举止空间扩展.对付于ORACLE数据库,通过查找TABLESPACES相关的数据字典不妨瞅到有用的疑息.2.查看数据赶快删少的表,通过对付于DBA_SEGMENTS数据字典的监视不妨找到,当过快删万古,协做开垦人员,决定办理规划.2.1.4沉面表查看1.查看系统核心接易表.果为那些表健壮与可与凡是接易的寻常运止稀切相关.沉面查看那些表的索引是可做废,表的统计疑息是可即时革新,如:当那些表举止了大的数据拆载大概者简略支配之后.准则上需要查看所有的表,不过由于上头那些表更关键,提议管制员给以更多的关注.2.沉面查看数据量超出百万止的表,各天的情况大概纷歧样,当数据超出百万止之后,如果索引做废会引导表扫描,占用洪量系统IO,宽沉效用系统本能.2.1.5查看数据库是可寻常包罗数据库真例是可寻常处事、listener是可处事寻常,保证数据库系统环境寻常.数据库对接是可寻常、查看是可有超出寻常火仄的对接数.如:寻常500个,某天下午忽然达到600个.应记录那种非常十分情况.分解爆收那种情况的本果,如:正在矮版本的ORACLE中,很大概是一些其余非常十分的应用堕落后爆收的死对接.2.1.6死锁查看监控数据库运止历程中,出现的阻塞,记录局里,记录爆收阻塞的SQL语句,真止的用户,爆收时间,频次,处理(杀掉、等待自然解锁等).ORACLE版本中的死锁会正在alert文献中爆收记录,oracle会自动解锁(本去是采用一个杀掉).对付于死锁的处理历程要举止记录.不妨使用OEM工具大概者查找相关的V$视图去确认爆收阻塞的语句.2.1.7监控SQL语句的真止查找效用矮下的SQL语句,通联协做开垦人员,举止相关处理.可使用ORACLE提供的AWR举止,也可使用ORACLE提供的OEM工具真止,大概者自止体例的足本等等.2.1.8支配系统级查看运止vmstat,sar,topas(AIX系统),glance(HP系统)等下令查看CPU、内存、假制内存等的使用情况.运止df,du,iostat查看磁盘使用情况运止netstat查看搜集情况运止脚工体例的监控足本查看.针对付于支配系统的分歧,使用的下令也会有分歧,请参照相映的支配系统文档.提议使用man下令瞅察相映的助闲疑息.2.1.9其余每天查看早间定时真止的数据库疑息支集做业战备份做业的日志输出,确认皆已寻常完毕.往往不克不迭寻常完毕是由于如下的本果:请确认足本是可变动(过得的建变革成等等),设备(主机,磁盘阵列,磁戴库,搜集等等)是可寻常,空间是可足够等等.提议每天按接易峰值情况,对付数据库本能数据举止定时支集及分解.3数据库维护数据库维护处事真质包罗维护、障碍诊疗、过得建复、备份回复、履历数据迁移等历程.数据库维护处事事项3.1.1页里建复根据凡是监控的截止,举止页里(大概者数据库坏块)建复,如将表数据导出后沉建表,而后导进数据.提接建复记录.3.1.2数据库对付象沉建根据数据库监控的截止,沉建做废的对付象.如:索引、保存历程、函数、视图、触收器等等.真用下令:Alter index <索引名> rebuild [online];3.1.3碎片回支(数据沉组)当某些数据库运止一段时间后,表会爆收碎片,效用数据库的本能.可根据凡是查看的截止,使用功具大概足本对付于数据库空间举止沉组大概回支.由于ORACLE数据库自己的本果,正在举止了DELETE支配之后也不会使HWM (High Water Mark下火位线)落矮,果此不会释搁所占用的空间,所以提议正在举止了数据迁移之后将齐库举止EXP,而后举止IMP支配,以释搁占用的空间.3.1.4简略不必的数据此项处事要得到开垦圆、安排人员、以及相关人员的确认后,圆可真止.3.1.5备份回复需要定期对付于数据库备份举止灵验性检测,定期举止数据回复的演练支配.以预防万一的数据库事变时准备缺累.数据库需要采与正在线的热备份,不需要关关数据库举止,正在备份的共时不妨举止寻常的数据库的百般支配,谦足了7*24的系统的需要.数据库的备份不克不迭效用用户对付数据库的考察.目标需要正在线热备份多级删量备份并止备份,回复减小所需要备份量备份,回复使用简朴可参照如下的规划:1.每月搞一个数据库的齐备份(包罗只读表空间)2.每星期搞一次整级备份(不包罗只读表空间)3.每个星期三搞一次一级备份4.每天搞一个二级备份5.所有表空间改成只读状态后搞一个该表空间的备份.6.当需要时(如四个小时归档文献系统便要靠近谦了)备份归档文献.3.1.6履历数据迁移定期举止履历数据迁移,缩小死产数据库的压力.3.1.7定期建改暗号包罗SYS,SYSTEM等用户.3.1.8简略掉不需要的用户对付于系统拆置时的演示用户,如:hr,scott等.提议每周定期浑理战备份一周所爆收的Alert日志、逃踪文献战dump文献.分别位于$ORACLE_BASE/admin/$ORACLE_SID/bdump, $ORACLE_BASE/admin/$ORACLE_SID/udump, $ORACLE_BASE/admin/$ORACLE_SID/cdump,等目录下.定期对付表举止统计分解,(如可使用analyze等下令,8i 以上有dbms_stats包去真止,使SQL劣化器经常能找到最佳的查询战术.制定战真止记录包管死产库的仄安:应千万于克制正在死产库上举止开垦、尝试.3.1.9其余针对付分歧的数据库版本的分歧特性举止相映的维护支配.简直情况请拜睹ORACLE文档大概者考察metalink.4数据库管制时常使用SQL足本时常使用的SQL足本,正在真施时可供数据库管制员参照,正在真止时,需要举止相映的建改.1.结余空间查看SELECT tablespace_name, sum ( blocks ) as free_blk , trunc ( sum ( bytes ) /(1024*1024) ) as free_m, max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunksFROM dba_free_spaceGROUP BY tablespace_name2.表空间数据量情况隐现SELECT tablespace_name, max_blocks, count_blocks, sum_free_blocks, to_char(100*sum_free_blocks/sum_alloc_blocks, '99.99') || '%' AS pct_freeFROM ( SELECT tablespace_name, sum(blocks) AS sum_alloc_blocksFROM dba_data_filesGROUP BY tablespace_name), ( SELECT tablespace_name AS fs_ts_name, max(blocks) AS max_blocks, count(blocks) AS count_blocks, sum(blocks) AS sum_free_blocksFROM dba_free_spaceGROUP BY tablespace_name )WHERE tablespace_name = fs_ts_name3.表战索引分解BEGINdbms_utility.analyze_schema ( '&OWNER', 'ESTIMATE', NULL, 5 ) ;END ;4.查看空间情况FROM all_tables a,( SELECT tablespace_name, max(bytes) as big_chunkFROM dba_free_spaceGROUP BY tablespace_name ) f5.查看已经存留的空间扩展FROM dba_tablespaces dt, dba_extents dxs AND dx.owner = '&OWNER'6.查看不主键的表SELECT table_nameFROM all_tablesWHERE owner = '&OWNER'MINUSSELECT table_nameFROM all_constraintsWHERE owner = '&&OWNER'AND constraint_type = 'P'7.查看做废的主键SELECT owner, constraint_name, table_name, statusFROM all_constraintsWHERE owner = '&OWNER' AND status = 'DISABLED’ AND constraint_type = 'P'8.沉建索引,简直参数请根据本质情况举止建改SELECT 'alter index ' || index_name || ' rebuild ', 'tablespace INDEXES storage ( initial 256 K next 256 K ) ; ' FROM all_indexesWHERE ( tablespace_name != 'INDEXES'OR next_extent != ( 256 * 1024 ))AND owner = '&OWNER'9.对付比二个真例的分歧SELECT object_name, object_typeFROM user_objectsMINUSSELECT object_name, object_typeFROM user_objects@&my_db_link10.查看动向本能视图Select * from V$FIXED_TABLE11.查看拘束select a.constraint_name, a.constraint_type,a.*from user_constraints awhere table_name='table_name';select constraint_name, column_namefrom user_cons_columnswhere table_name='table_name';12.查看索引user_indexes包罗索引的名字,user_ind_columns包罗索引的列.13.查看数据库开用参数:show parameter para,v$parameter提供目前会话疑息,v$system_parameter提供目前系统疑息.其中isses_modifiable,issys_modifiable表示是可允许动向建改.14.查看进程号:select p.spid, ernamefrom v$process p, v$session swhere p.addr=s.paddr;15.查看数据文献:select name, statusfrom v$datafile;select *from dba_data_files;16.查看数据文献状态from v$datafile d, v$datafile_header hwhere d.file#=h.file#;17.查看统制文献select namefrom v$controlfile;select type, record_size, records_total, records_used from v$controlfile_record_sectionwhere type=’DATAFILE’;18.查看是可归档模式:archive log listselect name, log_modefrom v$database;select archiverfrom v$instance;19.查看日志组:select groups, current_group#, sequence#from v$thread;select group#, sequence#, bytes, members, status from v$log;select *from v$logfile;其中status为空表示寻常.20.查看large poolselect *from v$sgastatwhere pool=’large pool’;21.查看归档位子show parameter archiveselect destination, binding, target, status from v$archive_dest;22.查看归档进程select *from v$archive_processes;23.查看正正在备份的数据文献select *from v$backup;24.查看需要回复的文献select *from v$recover_file;25.查看所有归档日志文献select *from v$archived_log;26.查看回复时要用到的日志文献select *from v$recovery_log;27.查看SGA的结构Show sga;select *from v$sgastat;28.提与library cache的掷中率select gethitratiofrom v$librarycachewhere namespace=’…’;29.查看正正在运止的SQL语句select sql_text, users_executing, executions, loadsfrom v$sqlarea;select *from v$sqltextwhere sql_text=’select * from emp%’;30.查看library cache reload情况:select sum(pins) “Executions”, sum(reloads) “cache Misses”, sum(reloads)/sum(pins)from v$librarycache;31.查看大藏名块select sql_text from v$sqlareawhere command_type=47and length(sql_text)>500;32.查看目前会话的UGA区select sum(value)||’bytes’ “Total session memory”from v$mystat, v$statnamewhere name=’session uga memory’and v$mystat.statistic#=v$statname.statistic#;33.查看所有MTS用户的UGA区:select sum(value)||’bytes’ “Total session memory”from v$sesstat, v$statnamewhere name=’session uga memory’and v$sesstat.statistic#=v$statname.statistic#;34.查看所有用户使用的最大的UGA区:select sum(value)||’bytes’ “Total session memory”from v$sesstat, v$statnamewhere name=’session uga memory max’and v$sesstat.statistic#=v$statname.statistic#;35.查看high-water mark以下的块数select table_name, blocksfrom dba_tableswhere table_name=’table_name’;36.查看会话的I/O:from v$sess_io io, v$session swhere s.audsid=USERENV(‘SESSIONID’)and io.sid=s.sid;37.查看Buffer pool的掷中率select name, 1-(physical_reads/(db_block_gets+consistent_gets)) “HIT_RATIO”from sys.v$buffer_pool_statisticswhere db_block_gets+consistent_gets>0;38.查看free list的比赛select class, count, timefrom v$waitstatwhere class=’segment header’;select event, total_waitsfrom v$system_eventwhere event=’buffer busy waits’;buffer busy waits可正在二种情况爆收:1dirty queue已谦,2free list比赛.39.查看free list比赛爆收正在哪个segment上select s.segment_name, s.segment_type, s.freelists, w.wait_time, from dba_segments s, v$session_wait wwhere w.event=’buffer busy waits’and w.p2=s.header_block;40.查看齐表扫描爆收的次数select name, valuefrom v$sysstatwhere name like ‘%table scan%’;41.查看大支配的真止情况select sid, serial#, opname,to_char(start_time, ‘HH24:MI:SS’) as start_t,(sofar/totalwork)*100 as percent_completefrom v$session_longops;42.查看数据文献的I/Ofrom v$datafile d, v$filestat fwhere d.file#=f.file# order by ;43.查看空闲块数少于10%的segment(blocks正在high-watermark以下,empty_blocks其上)select owner, table_name, blocks, empty_blocksfrom dba_tableswhere empty_blocks/(blocks+empty_blocks)<0.1and blocks+empty_blocks!=0;44.查看migration战chaininganalyze table table_name compute statistics;select num_rows, chain_cntfrom dba_tableswhere table_name=’table_name’;45.查看表的统计疑息analyze table table_name compute statistics;select num_rows, blocks, empty_blocks as empty, avg_space, chain_cnt, avg_row_lenfrom dba_tableswhere ow ner=’HR’ andtable_name=’table_name’;46.查看索引的统计疑息analyze index index_name validate structure;select (del_lf_rows_len/lf_rows_len)*100 as index_usagefrom index_stats;5凡是维护战问题管制脚法动做一名数据库管制员,数据库应用的寻常宁静运止是包管咱们应用系统的要害包管,而数据库的凡是监控战维护处事至关要害.搞佳它的查看处事的文档管制也是数据库管制的必不可少的处事之一,那有好处咱们逃踪问题战对付数据库的版本统制非常要害.例止处事提议每天例止处事:1.决定数据库真例处于运奇迹态2.查看ALERT 日志3.决定数据库乐成备份4.决定数据库归档到磁戴5.决定有足够的资材使数据库能运止正在良佳状态6.抽时间阅读DBA管制脚册每周例止处事:1.查看是可有对付象处于非寻常状态2.查看仄安战术3.查看SQL*NET 日志中是可有过得4.归档所有ALERT 日志每月例止处事:1.查看潜正在的妨害2.查看是可需要本能调劣及调劣时机3.查看I/O比赛4.查看数据库碎片5.制定将去的本能计划6.举止数据库调劣战维护相关挖表证明凡是维护查看表:是数据库管制员正在通常的凡是监控维护处事后搞的处事记录.只挖写查看的截止.仔细的问题管制记录妥协决历程便挖写问题管制记录表.如果正在查看历程中寻常正在相映栏目挨√,如果有非常十分情景挨X,共时正在后里写上相对付应的问题管制记录的编号.问题编号的命名圆法是12位,便是当时挖写记录表的日期战时间,比圆数据库管制员正在2010年04月11日14:00正在搞例止查看时创制了问题,那么正在挖写凡是维护查看表时便应正在相对付应的栏目写上问题编号201004111400.问题管制记录表是正在挖写凡是维护查看表的前提上创制了问题再挖写仔细的问题爆收妥协决历程.其中问题编号便是凡是维护查看表中的问题编号.变动记录表是咱们对付数据库搞支配前后的一个记录表.凡是查看维护表问题管制记录变动管制记录变动流火号:1.变动提出变动提出人变动提出日期变动本果简要形貌:2.变动评估变动评估人变动评估日期变动是可真施θ是θ可变动慢迫程度θ慢迫θ普遍θ不慢迫变动真施克日3.变动真施变动真施人变动真施日期。
Oracle Rac日常维护操作手册

Oracle Rac日常维护操作手册一、关闭服务器1.1关闭数据库实例在DBSERVER01和DBSERVER02服务器上分别运行以下命令:在cmd命令行中运行C:\Documents and Settings\Administrator>d:D:\>cd D:\oracle\product\10.2.0\crs\BIND:\oracle\product\10.2.0\crs\BIN>crs_stat –t (检查oracle数据库运行状态)名称类型目标状态主机------------------------------------------------------------ora....S1.inst application ONLINE ONLINE dbserver01ora....S2.inst application ONLINE ONLINE dbserver02ora.HBHIS.db application ONLINE ONLINE dbserver02ora....01.lsnr application ONLINE ONLINE dbserver01ora....r01.gsd application ONLINE ONLINE dbserver01ora....r01.ons application ONLINE ONLINE dbserver01ora....r01.vip application ONLINE ONLINE dbserver01ora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver02D:\oracle\product\10.2.0\crs\BIN>sqlplus sys/sys as sysdbaSQL>shutdown immediateSQL>exitD:\oracle\product\10.2.0\crs\BIN>crs_stat –t (再次检查oracle数据库运行状态) 名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application OFFLINE OFFLINEora.HBHIS.db application OFFLINE OFFLINEora....01.lsnr application ONLINE ONLINE dbserver01ora....r01.gsd application ONLINE ONLINE dbserver01ora....r01.ons application ONLINE ONLINE dbserver01ora....r01.vip application ONLINE ONLINE dbserver01ora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver021.2关闭CRS集群服务在DBSERVER01或DBSERVER02服务器上运行以下命令:C:\Documents and Settings\Administrator>srvctl stop nodeapps -n dbserver01C:\Documents and Settings\Administrator>srvctl stop nodeapps -n dbserver02D:\oracle\product\10.2.0\crs\BIN>crs_stat –t (再次检查oracle数据库运行状态) 名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application OFFLINE OFFLINEora.HBHIS.db application OFFLINE OFFLINEora....01.lsnr application OFFLINE OFFLINEora....r01.gsd application OFFLINE OFFLINEora....r01.ons application OFFLINE OFFLINEora....r01.vip application OFFLINE OFFLINEora....02.lsnr application OFFLINE OFFLINEora....r02.gsd application OFFLINE OFFLINEora....r02.ons application OFFLINE OFFLINEora....r02.vip application OFFLINE OFFLINE1.3关闭服务器操作系统先关DBSERVER01,在关闭DBSERVER02;二、开启服务器2.1DBSERVER02服务器开机DBSERVER02服务器操作系统启动后待网卡服务全部启动,执行以下命令验证oracle服务启动情况C:\Documents and Settings\Administrator>d:D:\>cd D:\oracle\product\10.2.0\crs\BIND:\oracle\product\10.2.0\crs\BIN>crs_stat –t (检查oracle数据库运行状态)名称类型目标状态主机------------------------------------------------------------ora....S1.inst application OFFLINE OFFLINEora....S2.inst application ONLINE ONLINE dbserver02ora.HBHIS.db application ONLINE ONLINE dbserver02ora....01.lsnr application OFFLINE OFFLINEora....r01.gsd application OFFLINE OFFLINEora....r01.ons application OFFLINE OFFLINEora....r01.vip application OFFLINE OFFLINEora....02.lsnr application ONLINE ONLINE dbserver02ora....r02.gsd application ONLINE ONLINE dbserver02ora....r02.ons application ONLINE ONLINE dbserver02ora....r02.vip application ONLINE ONLINE dbserver02待DBSERVER02上oracle服务全部启动后再开启DBSERVER01。
Oracle数据库维护手册范本

数据库维护手册目录1前言 (3)2ORACLE维护方法 (3)2.1 数据库启动 (3)2.2 数据库停止 (3)2.3 监听器的启停 (4)2.4 用户管理 (4)2.5 数据库参数文件 (5)2.6 数据库概况的查询 (6)2.7 常用对象的创建和使用 (7)2.8 失效数据库对象的检测和编译 (7)2.9 数据备份的技巧 (8)2.10 数据库命中率的监测 (10)2.11 最消耗资源进程的检测 (11)2.12 锁的监测及处理 (12)2.13 SQL语句执行技巧 (12)2.14 表空间的管理 (13)2.15 数据文件I/O的统计优化 (14)2.16 错误号的跟踪出理 (14)3日常问题处理流程 (15)3.1 ORACLE数据库日常检查 (15)3.2 会话连接日志的清理 (15)3.3 数据库hang住时的停止和方法 (15)3.4 扩表空间方法 (16)3.5 死锁会话的杀死 (16)3.6 未决两阶段事务的回滚............................. 错误!未定义书签。
4相关通用工具介绍. (17)4.1 EM工具.......................................... 错误!未定义书签。
1前言本文主要是简单介绍和总结日常Oracle数据在运行维护方面的一些方法和技巧。
通过该手册以便于相关技术人员的日常运维工作。
2ORACLE DB维护方法2.1数据库启动1、以oracle用户用户登录,sqlplus ‘/as sysdba’sqlplus> startup2、以oracle用户或ora816用户登录sqlplus ‘/as sysdba’sqlplus >startup nomuntsqlplus >alter database mount;sqlplus >alter database open;3、第一种启动方式是最常用的手工启动方式,第二种启动方式是数据库有故障时常用的逐步启动方式,可以观察故障点。
Oracle-11g日常维护手册

Oracle 11g 日常维护手册目录第1章文档说明 (5)第2章CRS的管理 (5)2.1 RAC状态检查 (5)检查守护进程状态 (5)检查资源状态 (5)2.2 手工启动与关闭RAC (6)2.3 OCR的管理 (6)2.4 VOTING DISK的管理 (8)2.5 CSS管理 (9)2.6 管理工具SRVCTL (9)管理实例 (9)管理监听程序 (9)管理ASM (10)管理service (10)2.7 修改RAC的IP及VIP (11)修改外网IP及心跳IP (11)修改VIP (11)查看与删除IP (12)第3章ASM的管理 (13)3.1 管理DG (13)建立与扩充disk group (13)mount与unmount的吩咐 (14)删除disk group (14)增加DISK的total_mb (14)DG的属性-AU大小 (14)DG的属性-离线删除时间 (15)DG的属性-兼容版本 (15)向ASM中添加disk的完整步骤 (16)3.2 ASMCMD (17)ASMCMD常用吩咐 (17)复制ASM文件 (18)吩咐lsdg (18)元数据备份与复原 (18)3.3 ASM磁盘头信息备份与复原 (19)3.4 ASM常用视图 (20)视图V$ASM_DISKGROUP (20)视图V$ASM_DISK (21)3.5 常用方法 (22)如何确定ASM实例的编号 (22)查询DG-RAW-磁盘的对应关系 (22)第4章数据库管理 (24)4.1 参数文件管理 (24)4.2 表空间管理 (25)表空间自动扩张 (25)表空间更名 (26)表空间的数据文件更名 (26)缺省表空间 (26)表空间删除 (27)UNDO表空间 (27)TEMP表空间 (27)4.3 重做日志文件管理 (27)增加REDO日志组 (27)删除日志组 (28)日志切换 (28)日志清理 (28)重做日志切换次数查询 (28)4.4 归档模式 (29)单实例数据库修改为归档模式的方法 (29)RAC数据库修改为归档模式的方法 (29)归档路径 (30)4.5 重建限制文件 (31)4.6 内存参数管理 (32)Oracle内存管理发展阶段 (32)自动内存管理AMM (32)自动共享内存管理ASMM (33)自动PGA管理 (33)4.7 其他管理内容 (33)数据库版本查看 (33)字符集 (34)创建密码文件 (34)关闭审计功能 (34)帐号管理 (34)profile管理 (35)第1章文档说明本文档描述了Oracle11g中常见的维护和管理方法,包括CRS、ASM、数据库等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle DBA数据库日常维护
在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
一、Oracle警告日志文件监控
Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:
●数据库的启动、关闭,启动时的非缺省参数;
●数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;
●对数据库进行的某些操作,如创建或删除表空间、增加数据文件;
●数据库发生的错误,如表空间不够、出现坏块、数据库内部错误
(ORA-600) 。
DBA应该定期检查日志文件,根据日志中发现的问题及时进行处理。
问题处理:
启动参数不对检查初始化参数文件;
因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;
有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限;
出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建;
表空间不够增加数据文件到相应的表空间;
出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁。
二、数据库表空间使用情况监控(字典管理表空间)
数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。
以下为引用的内容:
其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL 命令进行表空间相邻碎片的接合:
然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。
如果没有效果,并且表空间的碎片已经严重影响到了数据库的运行,则考虑对该表空间进行重建。
MAX_CHUNK列的结果是表空间上最大的可用块大小,如果该表空间上的对象所需分配的空间(NEXT值)大于可用块的大小的话,就会提示ORA-1652、
ORA-1653、ORA-1654的错误信息,DBA应该及时对表空间的空间进行扩充,以避免这些错误发生。
对表空间的扩充对表空间的数据文件大小进行扩展,或向表空间增加数据文件,具体操作见“存储管理”部份。
三、查看数据库的连接情况
DBA要定时对数据库的连接情况进行检查,看与数据库建立的会话数目是不是正常,如果建立了过多的连接,会消耗数据库的资源。
同时,对一些“挂死”的连接,可能会需要DBA手工进行清理。
以下的SQL语句列出当前数据库建立的会话情况: 以下为引用的内容:
注释:
SID 会话(session)的ID号;
SERIAL# 会话的序列号,和SID一起用来唯一标识一个会话;
USERNAME 建立该会话的用户名;
PROGRAM 这个会话是用什么工具连接到数据库的;
STATUS 当前这个会话的状态,ACTIVE表示会话正在执行某些任务,INACTIVE表示当前会话没有执行任何操作。
如果DBA要手工断开某个会话,则执行:
注意,上例中SID为1到7(USERNAME列为空)的会话,是Oracle的后台进程,不要对这些会话进行任何操作。
四、控制文件的备份
在数据库结构发生变化时,如增加了表空间,增加了数据文件或重做日志文件这些操作,都会造成Oracle数据库控制文件的变化,DBA应及进行控制文件的备份,备份方法是:
执行SQL语句: 以下为引用的内容:
这样,会在USER_DUMP_DEST(初始化参数文件中指定)目录下生成创建控制文件的SQL命令。
五、检查数据库文件的状态
DBA要及时查看数据库中数据文件的状态(如被误删除),根据实际情况决定如何进行处理,检查数据文件的状态的SQL如下: 以下为引用的内容:
如果数据文件的STATUS列不是AVAILABLE,那么就要采取相应的措施,如对该数据文件进行恢复操作,或重建该数据文件所在的表空间。
六、检查数据库定时作业的完成情况
如果数据库使用了Oracle的JOB来完成一些定时作业,要对这些JOB的运行情况进行检查:
以下为引用的内容:
如果FAILURES列是一个大于0的数的话,说明JOB运行失败,要进一步的检查。
七、数据库坏块的处理
当Oracle数据库出现坏块时,Oracle会在警告日志文件(alert_SID.log)中记录坏块的信息:
其中,代表坏块所在数据文件的绝对文件号,代表坏块是数据文件上的第几个数据块出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。
在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。
1.确定发生坏块的数据库对象以下为引用的内容:
2.决定修复方法:
如果发生坏块的对象是一个索引,那么可以直接把索引DROP掉后,再根据表里的记录进行重建;
如果发生坏块的表的记录可以根据其它表的记录生成的话,那么可以直接把这个表DROP掉后重建;
如果有数据库的备份,则恢复数据库的方法来进行修复;
如果表里的记录没有其它办法恢复,那么坏块上的记录就丢失了,只能把表中其它数据块上的记录取出来,然后对这个表进行重建。
3.用Oracle提供的DBMS_REPAIR包标记出坏块:
4.使用Create table as select命令将表中其它块上的记录保存到另一张表上以下为引用的内容:
5.用DROP TABLE命令删除有坏块的表以下为引用的内容:
6.用alter table rename命令恢复原来的表以下为引用的内容:
7.如果表上存在索引,则要重建表上的索引。
八、操作系统相关维护
DBA要注意对操作系统的监控:
●文件系统的空间使用情况(df -k),必要时对Oracle的警告日志及TRC 文件进行清理
●如果Oracle提供网络服务,检查网络连接是否正常
●检查操作系统的资源使用情况是否正常
●检查数据库服务器有没有硬件故障,如磁盘、内存报错。