ORACLE数据库日常维护手册(最全+最实用)
oracle日常运维操作总结

oracle日常运维操作总结一、硬件维护1.确保服务器硬件运行正常,定期检查硬件设备,如服务器、存储设备、网络设备等。
2.根据需要及时更新硬件设备,包括升级内存、硬盘等。
3.确保服务器周边设备运行正常,如UPS电源、空调等。
二、软件维护1.确保Oracle数据库软件运行正常,定期检查软件版本、补丁等。
2.更新Oracle数据库软件,包括升级Oracle版本、打补丁等。
3.定期清理无用文件,包括日志文件、临时文件等。
4.定期备份数据库,确保数据安全。
三、性能优化1.定期检查数据库性能,包括CPU使用率、内存使用率等。
2.根据性能检查结果,进行性能优化,如调整数据库参数、优化SQL语句等。
3.定期对数据库进行优化,包括重建索引、优化表空间等。
四、安全加固1.配置Oracle数据库的安全设置,如用户密码、权限管理等。
2.确保数据库账户的安全性,如定期修改密码、禁用无效账户等。
3.防止SQL注入等攻击行为,如使用参数化查询、限制用户输入等。
4.定期检查数据库的安全日志,包括登录日志、操作日志等。
五、数据备份1.制定数据备份计划,并按照计划执行备份操作。
2.采用多种备份方式,如全备份、增量备份等。
3.确保备份数据的可用性和完整性,如定期测试备份数据的恢复能力。
4.对备份数据进行存储和管理,确保数据安全。
六、故障处理1.建立故障处理流程,明确故障处理责任人和流程步骤。
2.对发生的故障进行及时处理,如系统崩溃、网络故障等。
3.对故障进行分类和总结,建立故障处理知识库。
4.定期对系统进行健康检查和性能测试,预防故障发生。
七、监控管理1.建立监控管理体系,包括监控指标、监控周期等。
2.使用监控工具,如OracleEnterpriseManager、Nagios等,对系统进行实时监控。
3.对监控数据进行分析和处理,及时发现和处理潜在问题。
4.定期对监控数据进行存储和管理,方便后续查询和分析。
八、应急预案1.制定应急预案,明确应急响应流程和责任人。
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.变动真施变动真施人变动真施日期。
Linux日常操作及ORACLE日常维护(新手必备)

1、登陆linux通过xshell工具使用ssh协议登录系统;2、查看系统时间:data3、查看系统运行时间uptime4、查看分区情况5、查看磁盘使用情况:df -h6、查看IP,及网络配置信息ficonfig、ip ad7、重启命令shutdown -r now,reboot8、查看防火墙状态service iptables status,以下状态防火墙已关闭9、(su -)切换至oracle安装用户,以下YZFDJKITTP为oracle的安装用回,10、查看oracle环境变量信息cat .bash_profile11、查看oracle监听名称,首先使用cd命令切换到监听程序配置文件所在的目录,然后使用cat命令查看监听配置文件(listener.ora)内容12 查看监听程序状态13 查看数据库网路服务名(tnsnames.ora),此文件与监听配置文件在同一目录下13 测试oracle数据库服务连接情况tnsping 服务名14 通过操作系统认证登录oracle数据库15、查看数据库启动情况,以下为正常打开模式,可读可写16、查看oracle实例信息17、查看是否开启归档18、查看表空间使用情况SELECT TABLESPACE_NAME "biao_kong_jian",To_char(Round(BYTES / 1024, 2), '99990.00')|| '' "gongyou",To_char(Round(FREE / 1024, 2), '99990.00')|| 'G' "xianyou",To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')|| 'G' "shiyong",To_char(Round(10000 * USED / BYTES) / 100, '99990.00')|| '%' "bili"FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME, Floor(A.BYTES / ( 1024 * 1024 )) BYTES,Floor(B.FREE / ( 1024 * 1024 )) FREE,Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USEDFROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,Sum(BYTES) BYTESFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME TABLESPACE_NAME,Sum(BYTES) FREEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) BWHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)ORDER BY Floor(10000 * USED / BYTES) DESC;。
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、数据库等。
oracle rac的日常维护及注意事项

oracle rac的日常维护及注意事项2009-03-13 23:26oracle rac的日常维护及注意事项在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控,及早发现数据库中存在的问题。
一、Oracle警告日志文件监控Oracle在运行过程中,会在警告日志文件(alert_SID.log)中记录数据库的一些运行情况:l 数据库的启动、关闭,启动时的非缺省参数;l 数据库的重做日志切换情况,记录每次切换的时间,及如果因为检查点(checkpoint)操作没有执行完成造成不能切换,会记录不能切换的原因;l 对数据库进行的某些操作,如创建或删除表空间、增加数据文件;问题处理启动参数不对检查初始化参数文件因为检查点操作或归档操作没有完成造成重做日志不能切换如果经常发生这样的情况,可以考虑增加重做日志文件组;想办法提高检查点或归档操作的效率;有人未经授权删除了表空间检查数据库的安全问题,是否密码太简单;如有必要,撤消某些用户的系统权限出现坏块检查是否是硬件问题(如磁盘本生有坏块),如果不是,检查是那个数据库对象出现了坏块,对这个对象进行重建表空间不够增加数据文件到相应的表空间出现ORA-600根据日志文件的内容查看相应的TRC文件,如果是Oracle的bug,要及时打上相应的补丁二、数据库表空间使用情况监控(字典管理表空间)数据库运行了一段时间后,由于不断的在表空间上创建和删除对象,会在表空间上产生大量的碎片,DBA应该及时了解表空间的碎片和可用空间情况,以决定是否要对碎片进行整理或为表空间增加数据文件。
select tablespace_name, count(*) chunks , max(bytes/1024/1024) max_chunk from dba_free_space group by tablespace_name;上面的SQL列出了数据库中每个表空间的空闲块情况,如下所示:TABLESPACE_NAME CHUNKS MAX_CHUNK-------------------- ---------- ----------INDX 1 57.9921875RBS 3 490.992188RMAN_TS 1 16.515625SYSTEM 1 207.296875TEMP 20 70.8046875TOOLS 1 11.8359375USERS 67 71.3671875其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表空间相邻碎片的接合:alter tablespace 表空间名coalesce;然后再执行查看表空间碎片的SQL语句,看表空间的碎片有没有减少。
数据库(Oracle)运维工作内容及常用脚本命令

数据库(Oracle)运维⼯作内容及常⽤脚本命令1、系统资源状况:--内存及CPU资源--linux,solaris,aixvmstat 5--说明:1)观察空闲内存的数量多少,以及空闲内存量是否稳定,如果不稳定就得想办法来解决,怎么解决还得看具体情况,⼀般可以通过调整相关内存参数来解决,各种操作系统输出指标、解释及内存调整参数及⽅法不完全⼀样;2)观察CPU资源利⽤情况,⾸先,需要观察CPU上运⾏的任务数,也就是vmstat输出中位于第⼀列上的指标,如果该指标持续⼤于CPU 核⼼数,应该引起注意;如果该指标持续⼤于CPU核⼼数的两倍,那么应该引起重视;如果持续为CPU核⼼数的多倍,系统⼀般会出现应⽤可感知的现象,必须⽴刻想办法解决。
当然,在观察该指标的同时,还要结合CPU利⽤率的指标情况,如:⽤户使⽤百分⽐,系统使⽤百分⽐,空闲百分⽐等指标,如果空闲百分⽐持续低于20%,应该引起注意;如果持续低于10%,应该引起重视;如果持续为0,系统⼀般会出现应⽤可感知的现象,应该⽴刻想办法解决问题;3)CPU⽤户使⽤百分⽐和系统使⽤百分⽐的⽐例,也是应该注意的。
⼀般来说,在⼀个状态正常的系统上,⽤户使⽤百分⽐应该⽐系统使⽤百分⽐⼤很多,⼏倍到⼗⼏倍甚⾄更⾼,如果系统使⽤百分⽐持续接近⽤户使⽤百分⽐,甚⾄⼤于⽤户使⽤百分⽐,说明系统的状态是不正常的,可能是硬件或者操作系统问题,也可能是应⽤问题。
有关vmstat输出中各指标及解释等,可以参照本⼈博客中相关⽂章:。
--IO状况--linux,solarisiostat -dx 5--aixiostat 5--说明:1)该命令主要⽤来观察系统存储设备的负载和性能状况,⾸先,需要观察系统各存储设备的繁忙程度,如果该繁忙程度指标持续超过80%,那么应该引起注意;如果持续超过90%,应该引起重视;如果持续100%,⼀般会出现应⽤感知的现象,应该⽴刻想办法解决问题; 2)其次,需要注意的是系统上各存储设备的IO能⼒,就是每秒钟各存储设备的输⼊、输出的数据量,这个和具体设备的硬件及配置有关,没有⼀个严格的标准,性能好点的能达到每秒上G,甚⾄⼏个G,差的只能到每秒⼏⼗兆甚⾄⼗⼏兆;3)最后,需要观察存储设备完成每次读写操作耗费的时间,这个也是和具体设备硬件和配置相关的,好的设备可能不到1毫秒,差的能到⼏⼗毫秒甚⾄上百毫秒;iostat的输出,在各种操作系统上的输出和解释也不尽相同,具体可以参照本⼈博客的相关⽂章:。
oracle数据库维护手册

目录1. 检查数据库基本状况41.1. 检查ORACLE实例状态41.2. 检查ORACLE服务进程41.3. 检查ORACLE监听状态52. 检查系统和ORACLE日志文件62.1. 检查操作系统日志文件62.2. 检查ORACLE日志文件62.3. 检查ORACLE核心转储目录72.4. 检查ROOT用户和ORACLE用户的EMAIL 73. 检查ORACLE对象状态73.1. 检查ORACLE控制文件状态73.2. 检查ORACLE在线日志状态83.3. 检查ORACLE表空间的状态83.4. 检查ORACLE所有数据文件状态83.5. 检查无效对象93.6. 检查所有回滚段状态104. 检查ORACLE相关资源的使用情况104.1. 检查ORACLE初始化文件中相关参数值10 4.2. 检查数据库连接情况114.3. 检查系统磁盘空间124.4. 检查表空间使用情况124.5. 检查一些扩展异常的对象134.6. 检查SYSTEM表空间内的内容144.7. 检查对象的下一扩展与表空间的最大扩展值145. 检查ORACLE数据库备份结果145.1. 检查数据库备份日志信息155.2. 检查BACKUP卷中文件产生的时间155.3. 检查ORACLE用户的EMAIL 156. 检查ORACLE数据库性能156.1. 检查数据库的等待事件156.2. DISK READ最高的SQL语句的获取156.3. 查找前十条性能差的SQL 166.4. 等待时间最多的5个系统等待事件的获取16 6.5. 检查运行很久的SQL 166.6. 检查消耗CPU最高的进程166.7. 检查碎片程度高的表176.8. 检查表空间的I/O 比例176.9. 检查文件系统的I/O 比例176.10. 检查死锁及处理176.11. 检查数据库CPU、I/O、内存性能186.12. 查看是否有僵死进程196.13. 检查行链接/迁移196.14. 定期做统计分析196.15. 检查缓冲区命中率206.16. 检查共享池命中率206.17. 检查排序区206.18. 检查日志缓冲区217. 检查数据库安全性217.1. 检查系统安全日志信息217.2. 检查用户修改密码218. 其他检查228.1. 检查当前CRONTAB任务是否正常228.2. ORACLE JOB是否有失败228.3. 监控数据量的增长情况228.4. 检查失效的索引238.5. 检查不起作用的约束238.6. 检查无效的TRIGGER 23本文档为本人亲自整理的公司的维护文档,内容很详细,DBA日常任务基本就是文档中写的那些,初学DBA或是有意学习DBA的同学们可取去学习学习,文档有实例讲解,很实用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE 日常维护手册查看数据库版本SELECT*FROM V$VERSION;查看数据库语言环境SELECT USERENV('LANGUAGE')FROM DUAL;查看ORACLE实例状态SELECT INSTANCE_NAME,HOST_NAME,STARTUP_TIME,STATUS,DATABASE_STATUSFROM V$INSTANCE;查看ORACLE监听状态lsnrctl status查看数据库归档模式SELECT NAME,LOG_MODE,OPEN_MODE FROM V$DATABASE;查看回收站中对象SELECT OBJECT_NAME,ORIGINAL_NAME,TYPE FROM RECYCLEBIN;清空回收站中对象PURGE RECYCLEBIN;还原回收站中的对象FLASHBACK TABLE"BIN$GOZUQZ6GS222JZDCCTFLHQ==$0" TO BEFORE DROP RENAME TO TEST;闪回误删除的表FLASHBACK TABLE AAA TO BEFORE DROP;闪回表中记录到某一时间点ALTER TABLE TEST ENABLE ROW MOVEMENT;FLASHBACK TABLE TEST TO TIMESTAMP TO_TIMESTAMP('2009-10-15 21:17:47','YYYY-MM-DD HH24:MI:SS');查看当前会话SELECT SID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION;查看DDL锁SELECT*FROM DBA_DDL_LOCKSWHERE OWNER ='FWYANG';检查等待事件SELECT SID, ERNAME, EVENT, WAIT_CLASS, T1.SQL_TEXTFROM V$SESSION A, V$SQLAREA T1WHERE WAIT_CLASS <>'Idle'AND A.SQL_ID = T1.SQL_ID;检查数据文件状态SELECT FILE_NAME,STATUS FROM DBA_DATA_FILES;检查表空间使用情况SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB -F.TOTAL_BYTES)/D.TOT_GROOTTE_MB *100, 2),'990.99') "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) TOTAL_BYTES,ROUND(MAX(BYTES)/(1024*1024),2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES)/(1024*1024),2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY4DESC;收缩表空间ALTER TABLESPCE TS_AJ_DATA COALESCE;增加表空间大小SELECT T.TABLESPACE_NAME, T.FILE_NAME, T.BYTES /1024/1024/1024 FROM DBA_DATA_FILES TWHERE T.TABLESPACE_NAME ='TS_AJ_DATA';ALTER TABLESPACE TS_AJ_DATA ADD DATAFILE'/DATA/TS_AJ_DATA05_10G.DBF' SIZE10000MAUTOEXTEND OFF;检查不起作用的约束SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, CONSTRAINT_TYPE, STATUS FROM DBA_CONSTRAINTSWHERE STATUS ='DISABLE';检查发生坏块的数据库对象SELECT TABLESPACE_NAME, SEGMENT_TYPE, OWNER, SEGMENT_NAMEFROM DBA_EXTENTSWHERE FILE_ID =< AFN >AND<BLOCK>BETWEEN BLOCK_ID AND BLOCK_ID + BLOCKS -1;检查无效的数据库对象SELECT OWNER,OBJECT_NAME,OBJECT_TYPEFROM DBA_OBJECTSWHERE STATUS ='INVALID';查看语句执行进度SELECT SE.SID,OPNAME,TRUNC(SOFAR / TOTALWORK *100,2)||'%'AS PCT_WORK,ELAPSED_SECONDS ELAPSED,ROUND(ELAPSED_SECONDS *(TOTALWORK - SOFAR)/ SOFAR) REMAIN_TIME, SQL_TEXTFROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SEWHERE SL.SQL_HASH_VALUE = SA.HASH_VALUEAND SL.SID = SE.SIDAND SOFAR != TOTALWORKORDER BY START_TIME;检查碎片程度高的表SELECT SEGMENT_NAME TABLE_NAME,COUNT(*)EXTENTSFROM DBA_SEGMENTSWHERE OWNER NOT IN('SYS','SYSTEM')GROUP BY SEGMENT_NAMEHAVING COUNT(*)=(SELECT MAX(COUNT(*))FROM DBA_SEGMENTSGROUP BY SEGMENT_NAME);检查表空间的I/O 比例SELECT DF.TABLESPACE_NAME NAME,DF.FILE_NAME "FILE",F.PHYRDS PYR,F.PHYBLKRD PBR,F.PHYWRTS PYW,F.PHYBLKWRT PBWFROM V$FILESTAT F, DBA_DATA_FILES DFWHERE F.FILE# = DF.FILE_IDORDER BY DF.TABLESPACE_NAME;检查碎片程度高的表SELECT segment_name table_name,COUNT(*)extents FROM dba_segmentsWHERE owner NOT IN('SYS','SYSTEM')GROUP BY segment_nameHAVING COUNT(*)=(SELECT MAX(COUNT(*))FROM dba_segmentsGROUP BY segment_name);检查文件系统的I/O 比例SELECT SUBSTR(A.FILE#,1,2) "#",SUBSTR(,1,30) "NAME",A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTSFROM V$DATAFILE A, V$FILESTAT BWHERE A.FILE# = B.FILE#;检查消耗CPU最高的进程SELECT P.PID PID,S.SID SID,P.SPID SPID,ERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT,1,80)) SQLFROM FROM V$PROCESS P, V$SESSION S, V$SQLAREA A WHERE P.ADDR = S.PADDRAND S.SQL_ADDRESS = A.ADDRESS(+)AND P.SERIAL# <>'1';检查运行很久的SQLSELECT USERNAME,SID,OPNAME,ROUND(SOFAR *100/ TOTALWORK,0)||'%'AS PROGRESS,TIME_REMAINING,SQL_TEXTFROM V$SESSION_LONGOPS, V$SQLWHERE TIME_REMAINING <>0AND SQL_ADDRESS = ADDRESSAND SQL_HASH_VALUE = HASH_VALUE;等待时间最多的5个系统等待事件的获取SELECT*FROM(SELECT*FROM V$SYSTEM_EVENTWHERE EVENT NOT LIKE'SQL%'ORDER BY TOTAL_WAITS DESC)WHERE ROWNUM<=5;查找前十条性能差的SQLSELECT*FROM(SELECT PARSING_USER_ID EXECUTIONS,SORTS,COMMAND_TYPE,DISK_READS,SQL_TEXTFROM V$SQLAREAORDER BY DISK_READS DESC)WHERE ROWNUM<10;检查死锁SELECT ername "Blocking User", ername "DB User",ername "Waiting User", bs.SID "SID", ws.SID "WSID",bs.serial# "Serial#", bs.sql_address "address",bs.sql_hash_value "Sql hash", bs.program "Blocking App",ws.program "Waiting App", bs.machine "Blocking Machine",ws.machine "Waiting Machine", bs.osuser "Blocking OS User", ws.osuser "Waiting OS User", bs.serial# "Serial#",ws.serial# "WSerial#",DECODE(wk.TYPE,'MR','Media Recovery','RT','Redo Thread','UN','USER Name','TX','Transaction','TM','DML','UL','PL/SQL USER LOCK','DX','Distributed Xaction','CF','Control FILE','IS','Instance State','FS','FILE SET','IR','Instance Recovery','ST','Disk SPACE Transaction','TS','Temp Segment','IV','Library Cache Invalidation','LS','LOG START OR Switch','RW','ROW Wait','SQ','Sequence Number','TE','Extend TABLE','TT','Temp TABLE',wk.TYPE) lock_type,DECODE(hk.lmode,0,'None',1,'NULL',2,'ROW-S (SS)',3,'ROW-X (SX)',4,'SHARE',5,'S/ROW-X (SSX)',6,'EXCLUSIVE',TO_CHAR (hk.lmode)) mode_held,DECODE(wk.request,0,'None',1,'NULL',2,'ROW-S (SS)',3,'ROW-X (SX)',4,'SHARE',5,'S/ROW-X (SSX)',6,'EXCLUSIVE',TO_CHAR (wk.request)) mode_requested,TO_CHAR (hk.id1) lock_id1, TO_CHAR (hk.id2) lock_id2, DECODE(hk.BLOCK,0,'NOT Blocking',/**//* Not blocking any other processes */1,'Blocking',/**//* This lock blocks other processes */2,'Global',/**//* This lock is global, so we can't tell */TO_CHAR (hk.BLOCK)) blocking_othersFROM v$lock hk, v$session bs, v$lock wk, v$session wsWHERE hk.BLOCK =1AND hk.lmode !=0AND hk.lmode !=1AND wk.request !=0AND wk.TYPE(+)= hk.TYPEAND wk.id1(+)= hk.id1AND wk.id2(+)= hk.id2AND hk.SID = bs.SID(+)AND wk.SID = ws.SID(+)AND(ername IS NOT NULL)AND(ername <>'SYSTEM')AND(ername <>'SYS')ORDER BY1;查看正在运行的JOBSELECT*FROM DBA_JOBS_RUNNING;检查数据库JOB的完成情况SELECT JOB, LOG_USER, LAST_DATE, NEXT_DATE, WHAT, FAILURESFROM DBA_JOBS;查看正在运行的JOB对应的SID、SERIAL#、SPIDSELECT A.JOB, B.SID, B.SERIAL#, C.SPIDFROM DBA_JOBS_RUNNING A, V$SESSION B, V$PROCESS CWHERE A.SID = B.SIDAND B.PADDR = C.ADDRAND JOB ='21';通过SID查询SERIAL#、SPIDSELECT B.SID, B.SERIAL#, C.SPID FROM V$SESSION B, V$PROCESS C WHERE B.SID ='554'AND B.PADDR = C.ADDR;停止会话--SID:554 SERIAL#:1134 SPID:23242 ORACLE级别ALTER SYSTEM KILL SESSION'554,1134';操作系统级别kill -9 23242。