




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
oracle 日常维护工作内容(1). 每天对ORACLE数据库的运行状态,日志文件,备份情况,数据库的空间使用情况,系统资源的使用情况进行检查,发现并解决问题。(2). 每周对数据库对象的空间扩展情况,数据的增长情况进行监控,对数据库做健康检查,对数据库对象的状态做检查。=每天工作=1. (1).确认所有的INSTANCE状态正常.登陆到所有数据库或例程,检测ORACLE后台进程:$ps -ef|grep ora(2). 检查文件系统的使用(剩余空间)。如果文件系统的剩余空间小于20%,需删除不用的文件以释放空间。对于业务交易生产系统和数据库日志归档目录,当空间不足,请急时清理.$df -h(3). 检查日志文件和trace文件记录alert和trace文件中的错误.连接到数据库服务器cd 到bdump目录,通常是$ORACLE_BASE/admin/bdumptail命令来查看alert_.log文件如果发现任何新的ORA- 错误,记录并解决(4). 检查数据文件的状态记录状态不是“online”的数据文件,并做恢复。Select file_name from dba_data_files where status=OFFLINE(5). 检查表空间的使用情况SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name; SELECT 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_name AND a.tablespace_name = c.tablespace_name; (6). 检查剩余表空间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_chunks FROM dba_free_spaceGROUP BY tablespace_name; (7). 检查数据库性能,记录数据库的cpu使用、IO、buffer命中率等等使用vmstat,iostat,glance,top等命令=每周工作= (1). 监控数据库对象的空间扩展情况根据本周每天的检查情况找到空间扩展很快的数据库对象,并采取相应的措施alter tablespace 表空间名 add datafile /u1/oradata/userdata_002.ora size *m;(2). 检查无效的数据库对象SELECT owner, object_name, object_type FROM dba_objectsWHERE status = invalid;(3). 检查不起作用的约束SELECT owner, constraint_name, table_name, constraint_type, status FROM dba_constraintsWHERE status = DISABLED AND constraint_type = P ;(4). 检查无效的triggerSELECT owner, trigger_name, table_name, status FROM dba_triggersWHERE status = DISABLED;=每月的工作=(1). 检查表空间碎片根据本月每周的检查分析数据库碎片情况,找到相应的解决方法(2). 寻找数据库性能调整的机会比较每天对数据库性能的监控报告,确定是否有必要对数据库性能进行调整(3). 数据库性能调整如有必要,进行性能调整(4). 提出下一步空间管理计划根据每周的监控,提出空间管理的改进方法=| Oracle DBA 日常管理 |=目的:这篇文档有很详细的资料记录着对一个甚至更多的ORACLE 数据库每天的,每月的,每年的运行的状态的结果及检查的结果,在文档的附录中你将会看到所有检查,修改的SQL和PL/SQL 代码。-目录 -1.日常维护程序A 查找一些新的警告日志B 检查数据库备份是否正确C 检查数据库的性能是否正常合理,是否有足够的空间和资源D 将文档日志复制到备份的数据库中2.晚间维护程序A收集VOLUMETRIC 的数据3.每周维护工作A 查找那些破坏规则的OBJECTB 查找是否有违反安全策略的问题C 查看错误地方的SQL*NET 日志D 将所有的警告日志存档4.月维护程序A 查看对数据库会产生危害的增长速度B 回顾以前数据库优化性能的调整C 查看I/O 的屏颈问题D 回顾FRAGMENTATIONE 将来的执行计划F 查看调整点和维护5.附录A 月维护过程B 晚间维护过程C 周维护过程=一日维护过程=A查找新的警告日志文件1). 联接操作管理系统2). 使用TELNET或是可比较程序3). 对每一个管理实例,经常的执行$ORACLE_BASE/bdump 操作,并使其能回退到控制数据库的SID。4). 在提示下,使用 TAIL命令查看alert_.log,或是用其他方式检查文件中最近时期的警告日志5). 如果以前出现过的一些ORA_ERRORS 又出现,将它记录到数据库恢复日志中并且仔细的研究它们,这个数据库恢复日志在FILE中B查数据库备份是否成功C检查对合理的性能来说是否有足够的资源1). 检查在表空间中有没有剩余空间。对每一个实例来说,检查在表空间中是否存在有剩余空间来满足当天的预期的需要。当数据库中已有的数据是稳定的,数据日增长的平均数也是可以计算出来,最小的剩余空间至少要能满足每天数据的增长。A) 运行FREE.SQL来检查表空间的剩余空间。B) 运行SPACE.SQL来检查表空间中的剩余空间百分率3). 识别出一些过分的增长查看数据库中超出资源或是增长速度过大的段,这些段的存储参 数需要调整。a) 收集日数据大小的信息, 可以用ANALYZE5PCT.SQL。如果你收集的是每晚的信息, 则可跳过这一步。b) 检查当前的范围,可用NR.EXTENTS.SQL。如果范围空间对象的NEXT_EXTENT 比表空间所能提供的最大范围还要大,那么这将影响数据库的运行。如果我们找到了这个目标,可以用ALTER TABLESPACE COALESCE调查它的位置,或加另外 的数据文件。A)运行SPACEBOUND.SQL。如果都是正常的,将不返回任何行。5). 回顾CPU,内存,网络,硬件资源论点的过程A)检查CPU的利用情况,进到x:.htm =systemmetrics=CPU 利用页,CPU 的最大限度为400,当CPU 的占用保持在350 以上有一段时间的话,我们就需要查看及研究出现的问题。G将存档日志复制到备用数据库中如果有一个备用数据库,将适当的存档日志复制到备用数据库的期望位置,备用数据库中保存最近期的数据。=二晚间维护过程=大部分的数据库产品将受益于每晚确定的检查进程的运行。A. 收集VOLUMETRIC 数据1. 分析计划和收集数据更准确的分析计算并保存结果。a) 如果你现在没有作这些的话,用MK VOLFACT.SQL来创建测定体积的表。b) 收集晚间数据大小的信息,用ANALYZE COMP.SQL。c) 收集统计结果,用POP VOL.SQL。d) 在空闲的时候检查数据,可能的话,每周或每个月进行。=三每周维护过程=A 查找被破坏的目标1. 所有的索引都要放到索引表空间中。运行MKREBUILD_IDX.SQLB 查看报错的SQL*NET 日志。1. 客户端的日志。2. 服务器端的日志。C将所有的警告日志存档做好每天的记录,总结分析表空间的增长幅度- Free.sql查看剩余表空间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_chunks FROM dba_free_spaceGROUP BY tablespace_name- Space.sql查看表空间使用情况SELECT tablespace_name, largest_free_chunk, nr_free_chunks, sum_alloc_blocks, sum_free_blocks, TO_CHAR (100 * sum_free_blocks / sum_alloc_blocks, 09.99 ) | % AS pct_free FROM (SELECT tablespace_name, SUM (blocks) AS sum_alloc_blocks FROM dba_data_files GROUP BY tablespace_name), (SELECT tablespace_name AS fs_ts_name, MAX (blocks) AS largest_free_chunk, COUNT (blocks) AS nr_free_chunks, SUM (blocks) AS sum_free_blocks FROM dba_free_space GROUP BY tablespace_name)WHERE tablespace_name = fs_ts_name- analyze5pct.sqlBEGINdbms_utility.analyze_schema ( &OWNER, ESTIMATE, NULL, 5 ) ;END ;/- nr_extents.sql- To find out any object reaching ;- extents, and manually upgrade it to allow unlimited max_extents (thus only objects we *expect* to be big are allowed to become big)/* Formatted on 2007/03/06 17:25 (Formatter Plus v4.8.7) */SELECT e.owner, e.segment_type, e.segment_name, COUNT (*) AS nr_extents, s.max_extents, TO_CHAR (SUM (e.BYTES) / (1024 * 1024), 999,999.90) AS mb FROM dba_extents e, dba_segments s WHERE e.segment_name = s.segment_nameGROUP BY e.owner, e.segment_type, e.segment_name, s.max_extents HAVING COUNT (*) &threshold OR (s.max_extents - COUNT (*) &threshold)ORDER BY COUNT (*) DESC- spacebound.sql- To identify space-bound objects. If all is well, no rows are returned.- If any space-bound objects are found, look at value of NEXT extent size to figure out what happened.- Then use coalesce (alter tablespace ; coalesce .- Lastly, add another datafile to the tablespace if needed./* Formatted on 2007/03/06 17:26 (Formatter Plus v4.8.7) */SELECT a.table_name, a.next_extent, a.tablespace_name FROM all_tables a, (SELECT tablespace_name, MAX (BYTES) AS big_chunk FROM dba_free_space GROUP BY tablespace_name) fWHERE f.tablespace_name = a.tablespace_name AND a.next_extent f.big_chunk=B. 每晚处理程序=- mk_volfact.sql- mk_volfact.sql (only run this once to set it up; do not run it nightly!)- Table UTL_VOL_FACTSCREATE TABLE utl_vol_facts (table_name VARCHAR2(30),num_rows NUMBER,meas_dt DATE )TABLESPACE platabSTORAGE (INITIAL 128kNEXT 128kPCTINCREASE 0MINEXTENTS 1MAXEXTENTS unlimited)/-Public SynonymCREATE PUBLIC SYNONYM utl_vol_facts FOR &OWNER.utl_vol_facts/-Grants for UTL_VOL_FACTSGRANT SELECT ON utl_vol_facts TO public/-analyze_comp.sqlBEGINsys.dbms_utility.analyze_schema ( &OWNER,COMPUTE);END ;/-pop_vol.sql/* Formatted on 2007/03/06 17:28 (Formatter Plus v4.8.7) */INSERT INTO utl_vol_facts SELECT table_name, NVL (num_rows, 0) AS num_rows, TRUNC (last_analyzed) AS meas_dt FROM all_tables - or just user_tables WHERE owner IN (&OWNER); - or a comma-separated list of owners/commit ;/=C. 每周处理程序=1. nextext.sql- To find tables that dont match the tablespace default for NEXT extent.- The implicit rule here is that every table in a given tablespace should- use the exact same value for NEXT, which should also be the tablespaces- default value for NEXT.- This tells us what the setting for NEXT is for these objects today./* Formatted on 2007/03/06 17:30 (Formatter Plus v4.8.7) */SELECT segment_name, segment_type, ds.next_extent AS actual_next, dt.tablespace_name, dt.next_extent AS default_next FROM dba_tablespaces dt, dba_segments ds WHERE dt.tablespace_name = ds.tablespace_name AND dt.next_extent != ds.next_extent AND ds.owner = UPPER (&OWNER)ORDER BY tablespace_name, segment_type, segment_name2. existext.sql- To check existing extents- This tells us how many of each objects extents differ in size from the tablespaces default size. If this report shows a lot of different sized extents, your free space is likely to become fragmented. If so,- this tablespace is a candidate for reorganizing./* Formatted on 2007/03/06 17:31 (Formatter Plus v4.8.7) */SELECT segment_name, segment_type, COUNT (*) AS nr_exts, SUM (DECODE (dx.BYTES, dt.next_extent, 0, 1) AS nr_illsized_exts, dt.tablespace_name, dt.next_extent AS dflt_ext_size FROM dba_tablespaces dt, dba_extents dx WHERE dt.tablespace_name = dx.tablespace_name AND dx.owner = &OWNERGROUP BY segment_name, segment_type, dt.tablespace_name, dt.next_extent;3. No_pk.sql- To find tables without PK constraint/* Formatted on 2007/03/06 17:31 (Formatter Plus v4.8.7) */SELECT table_name FROM all_tablesWHERE owner = &OWNERMINUSSELECT table_name FROM all_constraintsWHERE owner = &OWNER AND constraint_type = P;4. disPK.sql- To find out which primary keys are disabled/* Formatted on 2007/03/06 17:32 (Formatter Plus v4.8.7) */SELECT owner, constraint_name, table_name, status FROM all_constraintsWHERE owner = &OWNER AND status = DISABLED AND constraint_type = P5. nonuPK.sql- To find tables with nonunique PK indexes. Requires that PK names- follow a naming convention. An alternative query follows that- does not have this requirement, but runs more slowly./* Formatted on 2007/03/06 17:33 (Formatter Plus v4.8.7) */SELECT index_name, table_name, uniqueness FROM all_indexesWHERE index_name LIKE &KNAME% AND owner = &OWNER AND uniqueness = NONUNIQUEUNIONSELECT c.constraint_name, i.tablespace_name, i.uniqueness FROM all_constraints c, all_indexes iWHERE c.owner = UPPER (&OWNER) AND i.uniqueness = NONUNIQUE AND c.constraint_type = P AND i.index_name = c.constraint_name6. mkrebuild_idx.sql- Rebuild indexes to have correct storage parameters/* Formatted on 2007/03/06 17:33 (Formatter Plus v4.8.7) */SELECT alter index | index_n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店喷淋工程施工方案
- 2025电商孵化园企业入驻合同标准版孵化场地租赁协议
- 《企业培训与发展》课件
- 2025至2031年中国侧向移动钢质防火卷帘门行业投资前景及策略咨询研究报告
- 2025制造企业厂房租赁合同
- 2025员工股权投资信托合同示例
- 2025至2030年中国递纬器螺灯数据监测研究报告
- 2025至2030年中国自润滑不锈钢关节轴承数据监测研究报告
- 煤气柜拆除施工方案范本
- 2025至2030年中国电气导管数据监测研究报告
- 开封文化艺术职业学院单招《职业技能测试》参考试题库(含答案)
- 《坦克的发展历程》课件
- 军事研学旅行活动策划
- (完整)有效备课上课听课评课
- 采购管理系统的六大功能模块
- 渠道施工课件
- 世界500强人力资源总监管理笔记
- 《疯狂动物城》全本台词中英文对照
- 金融风险传染性研究
- 电力出版社材料力学课后习题答案
- 成人体外心肺复苏专家共识(2023版)解读
评论
0/150
提交评论