Oracle数据库维护及管理基本手册
ORACLE管理工作标准手册

ORACLE管理工作标准手册ORACLE管理工作标准手册一、引言随着信息技术的迅猛发展,数据库管理工作变得越来越重要。
数据库管理工作的标准化和规范化对于提高工作效率、确保数据安全和准确性具有举足轻重的意义。
本手册旨在建立起一个统一的ORACLE数据库管理工作标准,对相关工作进行规范和指导,以提高工作质量和效率。
二、数据库管理职责1. 数据库创建与维护:负责数据库的创建、备份、恢复、维护,确保数据库的稳定运行。
2. 数据库性能优化:负责分析数据库性能瓶颈,制定相应的优化方案,提高数据库的响应速度。
3. 数据安全管理:负责数据库的安全策略制定和执行,确保数据的安全性和完整性。
4. 数据库监控与预警:负责实时监控数据库运行状况,及时处理异常情况并提供预警。
5. 数据备份与恢复:负责数据库的定期备份和恢复,确保数据的可靠性和可用性。
6. 数据库版本升级和迁移:负责数据库版本的升级和迁移,确保系统的平稳过渡。
三、数据库管理工作标准1. 数据库命名规范:数据库应根据业务功能或业务部门进行命名,名称应具有可理解和易于识别的特点。
2. 数据库表结构规范:表名、字段名应具有相关性,使用英文小写字母和下划线分割,避免使用特殊字符或中文命名。
3. 数据库连接规范:连接数据库应使用唯一的用户名和密码,并设置正确的权限以控制对数据库的访问。
4. 数据库备份规范:定期制定数据库备份计划,包括全量备份和增量备份,并存储在独立的备份设备上,避免与数据库服务器放在同一设备上。
5. 数据库恢复规范:备份数据应按照备份计划进行恢复,恢复过程应进行测试和验证,确保数据的完整性和一致性。
6. 数据库性能优化规范:对于性能较差的SQL语句,应进行分析和优化,采用索引、分区等技术提高查询效率。
7. 数据库安全策略规范:完善数据库用户权限管理,禁止使用默认用户名和密码,并及时屏蔽不再使用的用户账号。
8. 数据库监控规范:使用数据库性能监控工具进行实时监控,设置阈值并及时处理异常情况。
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次数,这些存储区域可以改善数据库性能。
数据库维护工作手册

数据库维护处事脚册之阳早格格创做文档编号:文档称呼:编写:审核:批准: 接受日期:目录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数据库操作手册

ORACLE 数据库操作手册4.1中国通信集团公司安徽有限公司信息系统部2010年7月修改记录目录第一章数据库使用注意事项 (6)第一章数据库使用注意事项 (6)一、营业前台使用统一地址,后台业务严格区别业务区,不可随意访问 (6)二、不涉及当天业务的查询和统计在BCV库中操作 (6)三、前台营业时间禁止在生产环境进行大数据量的查询和统计操作 (6)四、关联表均很大的查询和统计尽量用BCV库 (6)五、按照业务规则进行DML操作,DML不要忘记执行COMMIT或ROLLBACK.. 7六、大批量更新数据的事务分次提交 (7)七、数据库DDL操作由数据库管理员根据业务规则进行 (7)八、数据库使用结束及时断开连接,但也不要频繁的连接和断开 (7)九、客户端配置与客户端第三方工具使用 (7)十、不要使用工具进行可视化数据修改操作 (7)十一、合理使用帐号,妥善保管密码 (7)十二、严禁在生产库进行业务开发、调试工作 (8)十三、单条SQL语句的长度最好不要超过1000字节 (8)十四、数据导出导入使用expdp/impdp,不要使用exp/imp (8)十五、PL/SQL程序应尽量符合第二章要求,注意事务的提交、回滚及异常情况处理 8十六、一定不能在循环体内部创建数据库的连接,包括通过JDBC连接数据库。
(8)十七、SQL语句在执行前需要对语句逻辑进行检查,避免形成隐式笛卡尔积,占用大量临时表空间和降低语句效率。
(8)第二章SQL编写注意事项 (9)一、查看表字段名或随机少量数据时,不要使用SELECT * FROM TABLENAME (9)二、SELECT 子句中避免使用* (9)三、查询总记录数时,尽量不要用COUNT(*),而要指定一个有索引的字段。
(9)四、对分区表进行查询时,尽量把分区键作为查询条件的第一个条件 (9)五、无条件删除表中数据时,用TRUNCATE代替DELETE (9)六、查询语句中尽量使用表的索引字段,避免做大表的全表扫描 (9)七、带通配符(%)的LIKE语句 (10)八、用EXISTS替代IN (10)九、用NOT EXISTS替代NOT IN (10)十、尽可能用UNION ALL替换UNION (11)十一、ORDER BY语句建议 (11)十二、避免使用NOT (11)十三、使用DECODE函数减少处理时间 (12)十四、删除重复记录 (12)十五、如果可以使用WHERE条件,尽量不要在HA VING中限制数据 (12)十六、尽量不要使数据排序 (12)十七、避免改变索引列类型 (13)十八、避免在索引列上使用计算 (13)十九、避免在索引列上使用IS NULL和IS NOT NULL (13)二十、子查询改写成表连接 (13)二十一、使用索引的第一个列 (14)二十二、减少对表的查询 (14)二十三、SQL语句中:用>=替代> (14)如果在ID列上建有索引,则语句SELECT * FROM EMPLOYEE WHERE ID >= 9 要比语句SELECT * FROM EMPLOYEE WHERE ID > 8高效。
Oracle T5-2服务器维护手册

Oracle T5-2服务器维护手册一、启动、关闭数据库1、启动实例的各种模式1)启动实例,装载并打开数据库这是最普通的数据库操作,意味着某个实例已经启动并且数据库也已经装载并打开。
这种模式允许任何一个有效的用户连接到数据库,并执行典型的数据访问操作。
启动实例接着从默认的服务器参数文件位置读取初始化参数,然后通过STARTUP命令来装载和打开数据库: SQL STARTUP2)启动实例,不挂载数据库启动实例而不用装载数据库,通常只在整个数据库创建过程中使用该模式:SQL STARTUP NOMOUNT3)启动实例,并装载数据库可以启动实例并装载数据库,但不打开数据库。
该模式允许执行特定的维护操作,例:如在下面的任务中必须装载数据库而不打开数据库。
X重命名数据文件X添加取消或重命名重做日志文件X允许和禁止重做日志存档选项X执行完整的数据为恢复操作SQLSTARTUP MOUNT4)在启动过程中限制访问数据库可以在受限制的模式下启动实例并装载和打开数据库,以便只有管理人员而不是一般的数据库用户可以利用数据库。
当需要完成以下一种任务时,使用这种数据库启动模式:X执行数据库数据的导入或导出操作X执行数据库装载操作用SQL XLoaderX暂时阻止一般的用户使用数据X在某个移植过程和升级操作过程中SQL STARTUP RESTRICT5)强制实例启动-慎用在一些特殊环境下,可能会在启动数据库实例的时候遇到一些问题。
一般不要迫使数据库启动,除非存在以下情形:用SHUTDOWNNORMAL、SHUTDOWNIMMEDIATE、SHUTDOWNTRANSACTIONAL命令不能关闭当前的实例时。
X在启动实例的时候遇到一些问题时。
SQL STARTUP FORCE6)启动实例, 装载数据库, 并启动完整的介质恢复过程如果知道需要介质恢复过程,就可以启动实例并为其装载数据库,以及通过使用带RECOVER选项的STARTUP命令的方法来自动启动恢复过程。
Oracle数据库管理员参考手册说明书

7-100SQL ReferenceALTER ROLLBACK SEGMENTPurposeUse the ALTER ROLLBACK SEGMENT statement to bring a rollback segment online or offline, to change its storage characteristics, or to shrink it to an optimal or specified size.PrerequisitesYou must have ALTER ROLLBACK SEGMENT system privilege.Syntaxstorage_clause :See storage_clause on page 11-129.Keywords and Parametersrollback_segmentSpecify the name of an existing rollback segment.ONLINESpecify ONLINE to bring the rollback segment online. When you create a rollback segment, it is initially offline and not available for transactions. This clause brings the rollback segment online, making it available for transactions by your instance.See Also:CREATE ROLLBACK SEGMENT on page 9-149 forinformation on creating a rollback segment ALTER ROLLBACK SEGMENT rollback_segment ONLINEOFFLINEstorage_clauseSHRINK TOinteger KM;SQL Statements: ALTER CLUSTER to ALTER SYSTEM 7-101You can also bring a rollback segment online when you start your instance with the initialization parameter ROLLBACK_SEGMENTS .OFFLINESpecify OFFLINE to take the rollback segment offline.s If the rollback segment does not contain any information needed to roll back anactive transaction, Oracle takes it offline immediately.sIf the rollback segment does contain information for active transactions, Oracle makes the rollback segment unavailable for future transactions and takes it offline after all the active transactions are committed or rolled back.Once the rollback segment is offline, it can be brought online by any instance.To see whether a rollback segment is online or offline, query the data dictionary view DBA_ROLLBACK_SEGS . Online rollback segments have a STATUS value of IN_USE . Offline rollback segments have a STATUS value of AVAILABLE .Restriction: You cannot take the SYSTEM rollback segment offline.storage_clauseUse the storage_clause to change the rollback segment’s storage characteristics.Restriction: You cannot change the values of the INITIAL and MINEXTENTS for an existing rollback segment.SHRINKSpecify SHRINK if you want Oracle to attempt to shrink the rollback segment to an optimal or specified size. The success and amount of shrinkage depend on the available free space in the rollback segment and how active transactions are holding space in the rollback segment.The value of integer is in bytes, unless you specify K or M for kilobytes or megabytes.If you do not specify TO integer , then the size defaults to the OPTIMAL value of the storage_clause of the CREATE ROLLBACK SEGMENT statement that createdSee Also:Oracle8i Administrator’s Guide for more information on making rollback segments available and unavailableSee Also:storage_clause on page 11-129 for syntax and additional informationthe rollback segment. If OPTIMAL was not specified, then the size defaults to theMINEXTENTS value of the storage_clause of the CREATE ROLLBACK SEGMENTstatement.Regardless of whether you specify TO integer:s The value to which Oracle shrinks the rollback segment is valid for theexecution of the statement. Thereafter, the size reverts to the OPTIMAL value ofthe CREATE ROLLBACK SEGMENT statement.s The rollback segment cannot shrink to less than two extents.To determine the actual size of a rollback segment after attempting to shrink it,query the BYTES,BLOCKS, and EXTENTS columns of the DBA_SEGMENTS view.Restriction: For Oracle Parallel Server, you can shrink only rollback segments thatare online to your instance.ExamplesBringing a Rollback Segment Online Example This statement brings the rollbacksegment RSONE online:ALTER ROLLBACK SEGMENT rsone ONLINE;Changing Rollback Segment Storage Example This statement changes theSTORAGE parameters for RSONE:ALTER ROLLBACK SEGMENT rsoneSTORAGE (NEXT 1000 MAXEXTENTS 20);Resizing a Rollback Segment Example This statement attempts to resize arollback segment to 100 megabytes:ALTER ROLLBACK SEGMENT rsoneSHRINK TO 100 M;7-102SQL Reference。
应用Oracle数据库监控维护技术,维护数据库安全

赣糕脚、强L毛LE工电子耩擘应用o r acl e数据库监控维护技术,维护数据库安全冉崇蒡迟景元(陕两科技丈学陕西西安7l0021)【燕樊】数据露安哞:传蠲遂一露蹩淘绕饕数群库管理受豹鬃梦,数据库数据瓣丢失醣及数嚣库被非法用户的侵入使得数据撵管理甓身心疲:{簌。
萌绕数据库的蜜全性问题提出一些安全性策略,希颦对数据库管理员有所帮助。
【关键溺】0r ac l e数摄蓐数摄撵安全中圈分类号:TP3文献标识码:^文童编号:167卜一7597(2008)09t0025一O I数帮库安全住问题应龟括两个部分:一是数据辟数据的安全,它席能确保当数据库系统停机时.当数据库数据存储媒体被破坏时以及当数据库瘸产误撩绍对,数据痒数始信息年垒手丢失,二是数据库系统不被舔法瘸户侵入,它应尽可能地堵住潜在的各种漏洞,防止非法用户利用它们侵入数摇痒系绞。
一、数据库安全的主鬟内窖(一)用户缎和安全燃在撩作系统F建立秘户缍怒僳证数溅律安全健的一种有效方法。
O r a cl e程序为了安全性目的~般分为两类:~类是所有的用户都可执行,菇一类强鸯§鞋爵攮霉亍。
褒潍i x强壤F组设鹫瓣聚霉文传是/et c/gr跚p,关于这个文件如何配置,可以参阅uni x的有关手册,以下是保证or ac l e数据摩安全性的蕊种方法:1.程安装o r acl e Se r ve r前,龟t建数嚣库管壤员组(潞A)而且分配r oo t和0r acl e软件拥有者的用户T D给这个组。
D B A能执行的程序只有710权陵。
在安装过程串S程{豫A系统投袋鑫令技冬硗分配绘p酝缓。
2.允许一部分uni x用户有限制地访问0r acl e服势器系统,增加一个由授权嗣户缀成的O粉cl e组,确保绘蚀8cl e服务器实用铡程o r acl e组l D,公用的町执行程序,院如sQ L神l us、S钆{Fom s等,戍该可被这组执行,然后这个实用例程的权限为710,它将允许同组的用户执行,而其他用户不施。
数据库管理与维护上机指导

二.实验要求
1.掌握在 Windows 操作系统下安装 Oracle 服务器和客户端管理软件 2.了解 Unix 或 Linux 操作系统下安装 Oracle 服务器 3.掌握卸载 Oracle 数据库服务器的方法步骤
三.实验步骤
1.在 Windows 2000 Server 或 Windows XP 下安装 Oracle 服务器 (1)双击安装光盘中的“SETUP”程序图标,出现图 1 所示界面。Oracle 此时正在检查操作系统的配置是否符合 Oracle 的要求,如果有问题就会报错; 如果没有问题会进入图所示的画面。
图 13 安装界面——“概要”对话框
7
PDF 文件使用 "pdfFactory Pro" 试用版本创建
滨州学院计算机科学技术系 数据库管理与维护课程上机指导手册 南理勇
图 14 Oracle 安装界面
图 15 Oracle SCOTT 用户解锁界面
(14)当出现安装结束界面以后,将安装完成界面中的信息记录到文件中, 这对以后数据库维护非常有用。单击“退出(X) ”按钮,退出安装。安装结束 界面如图 16 所示。
(7)选择数据库配置,即选择要创建数据库类型:一般用途、事务处理、 数据仓库、高级。保留默认选项,如图 7 所示。单击“下一步”按钮。
图 7 安装界面——“选择数据库配置”对话框
(8)指定数据库配置选项:数据库命名、数据库字符集、数据库示例是否 创建带样本方案的数据库。保留默认选项,如图 8 所示。单击“下一步”按钮。
2
PDF 文件使用 "pdfFactory Pro" 试用版本创建
滨州学院计算机科学技术系 数据库管理与维护课程上机指导手册 南理勇
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库维护及管理基本手册目录1 目的 (4)2 适用范围 (4)3 适用对象 (4)4 机房值班 (4)4.1 服务器规划........................................................................................ 错误!未定义书签。
4.2 日常巡检............................................................................................ 错误!未定义书签。
4.3 Oracle (4)4.3.1 表空间检查; (4)4.3.2 表碎片整理 (5)4.3.3 表索引整理 (5)4.3.4 检查数据库后台进程是否正常 (6)4.3.5 查看CRS(群集就绪软件)状态是否正常 (6)4.3.6 检查报警日志文件 (6)4.3.7 查看数据库监听状态和监听日志大小 (7)4.3.8 检查数据文件状态是否是ONLINE (8)4.3.9 检查数据库是否有失效的对象 (9)4.3.10 检查数据库服务器性能,记录数据库的cpu使用以及io wait等待 (9)4.3.11 检查数据库服务器磁盘空间使用率 (10)4.3.12 检查数据库备份是否正常 (10)4.3.13 数据库性能监控 (11)4.3.14 历史数据清理 (11)4.3.15 监控数据库JOB执行情况 (11)4.3.16 用户及权限安全监控 (12)4.4 设备重启规范 (13)4.4.1 数据库重启 (13)1目的通过对日常运行维护工作的梳理和沉淀,希望能够形成标准化的运行维护手册,以达到规范工作流程、明确职责分工、提高工作效率的目的,使得复杂的事情简单做,简单的事情重复做。
2适用范围本手册适用于运维部内部的日常维护工作。
3适用对象业务支撑中心运维部数据组。
4机房值班检查4.1检查对象:Oracle数据库4.1.1表空间检查;时间:每条例行检查两次:①早晨9点,②晚上21点;标准:对当前表空间使用率超过90%的数据进行迁移、备份、清理;操作:--查看表空间使用情况SELECT 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_SPACE GROUP 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 BY 4 DESC;--查看指定表空间内各表占用空间情况select segment_name,tablespace_name,bytes/(1024*1024) 占用空间,blocksfrom user_segments where upper(tablespace_name)=upper(' TABLESPACE_NAME ')order by TABLESPACE_NAME,bytes desc,segment_name;--表空间迁移。
注:此操作后,相应的索引要重建,否则无效alter table TABLENAME move tablespace TABLESPACENAME; 4.1.2表碎片整理时间:每周日晚23点;操作:--①数据备份insert /*+ APPEND NOLOGGING PARALLEL */ into TO_TABLENAME Select * from FROM_TABLENAME;--②清理碎片Truncate table FROM_TABLENAME;4.1.3表索引整理时间:每周日晚23点;操作:alter index INDEX_NAME rebuild tablespace TABLESPACE_NAME;4.1.4检查数据库后台进程是否正常时间:每条例行检查两次:①早晨9点,②晚上21点;标准:确保后台进程正常,如果后台进程不存在,表示数据库宕掉需要进一步处理。
操作:使用命令ps -ef|grep ora_查看oracle后台进程是否存在。
主要的后台进程有dbw0,lgwr,smon,pmon,ckpt,arcn等。
注:如果是RAC数据库需要两台都要检查。
4.1.5查看CRS(群集就绪软件)状态是否正常时间:每条例行检查两次:①早晨9点,②晚上21点;标准:保证所有组件状态都是online,如果有offline的情况,需要查找具体原因,做进一步处理。
操作:使用oracle登录数据库服务器,使用命令crs_stat -t查看状态注:在RAC数据库的一个节点查看即可。
4.1.6检查报警日志文件时间:每条例行检查两次:①早晨9点,②晚上21点;标准:如果有错误产生,需要进一步根据具体的错误进行处理。
并保证此日志文件不大于2G。
操作:使用oracle用户登录数据库服务器:cd$ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log cat alert_$ORACLE_SID.log|grep ORA-查看大小:ls –lh alert_$ORACLE_SID.log如果有错误信息,要具体分析日志。
注意每天只需要查看最新的日志即可。
并保证日志文件不能大于2G,如果过大,可以备份后清理。
注:如果是RAC数据库需要两台都要检查。
4.1.7查看数据库监听状态和监听日志大小时间:每条例行检查一次:①早晨9点标准:如果监听不存在,需要手动启动监听。
并保证监听日志文件不大于2G。
操作:使用命令lsnrctl status,查看监听状态。
注:cd $ORACLE_HOME/network/admincat listener.ora查看监听名字.如果XXX这里就是监听的名字,默认就是listenerXXX =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.1)(PORT = 1521)))))如果不是默认名字,查看监听状态使用 :lsnrctl status XXX 查看监听日志文件大小:ls –lh $ORACLE_HOME/network/log/listener.log查看文件是否过大,如果过大,需要备份后清空。
如果增长过快,需要分析原因。
注:如果是RAC数据库需要两台都检查。
4.1.8检查数据文件状态是否是ONLINE操作时间:每条例行检查一次:①早晨9点对象:所有在用数据库标准:确保所有数据文件都是ONLINE的,如果选择有记录,要进行数据文件的恢复,或者ONLINE操作。
操作:命令如下:Select file_name from dba_data_files where status ='OFFLINE'4.1.9检查数据库是否有失效的对象操作时间:每条例行检查一次:①早晨9点对象:所有在用数据库标准:确保所有对象都是VALID的。
操作:检查失效的对象:SELECT owner, object_name, object_typeFROM dba_objectsWHERE status = 'INVALID';检查不起作用的约束:SELECT owner, constraint_name, table_name,constraint_type, statusFROM dba_constraintsWHERE status = 'DISABLED'AND constraint_type = 'P';检查无效的trigger:SELECT owner, trigger_name, table_name, statusFROM dba_triggersWHERE status = 'DISABLED';4.1.10检查数据库服务器性能,记录数据库的cpu使用以及iowait等待操作时间:每条例行检查一次:①早晨9点,②晚上21点;对象:所有在用数据库服务器标准:发现cpu和iowait使用异常,需要进一步分析原因。
操作:使用vmstat,iostat,glance,top等命令在操作系统上查看。
注意:也可以在服务器服务器上安装OSW(oracle的一个监控系统资源的一个小软件)4.1.11检查数据库服务器磁盘空间使用率操作时间:每条例行检查一次:①早晨9点对象:所有在用数据库标准:确保磁盘使用率不大于80%。
操作:在做系统上使用df -lh (aix使用,df –g)来查看磁盘使用率,如果大于80%就需要检查数据库是否有异常的trace dump以及考虑扩容等。
4.1.12检查数据库备份是否正常操作时间:每条例行检查一次:①早晨9点对象:所有设计备份的数据库标准:确保所有备份都正常和有效。
操作:如果数据库有备份,需要根据备份策略检查每次的备份是否成功。
4.1.13数据库性能监控人员:DBA;时间:每条例行检查一次:①早晨9点对象:所有在用数据库标准:分析性能报告,查找可能存在的性能问题。
操作:9i可以使用statspack,11g使用awr生成性能报告,分析生成的报告,检查数据库是否有性能问题,根据具体情况进行分析和调整。