《Oracle数据库日常维护方案书.docx》由会员分享,可在线阅读,更多相关《Oracle数据库日常维护方案书.docx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ORACLE数据库日常运行维护年度服务项目方案书TIME_REMAINING 0 AND SQL_ADDRESS=ADDRESS AND SQL_HASH_VALUE = HASH_VALUE;3.1.1.6 检查消耗CPU最高的进程SET LINE 240SET VERIFY OFFCOLUMN SID FORMAT 999COLUMN PID FORMAT 999COLUMN S_# FORMAT 999COLUMN USERNAME FORMAT A9 HEADING ORA USERCOLUMN PROGRAM FORMAT A29COLUMN SQLFORMAT A60COLUMN
2、OSNAME FORMAT A9 HEADING OS USERSELECT P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1, 80) SQLFROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR AND S.SQL_ADDRESS = A.ADDRES
3、S (+) AND P.SPID LIKE %&1%;3.1.1.7 检查碎片程度高的表SQL SELECT segment_name table_name,COUNT(*) extents FROM dba_segments WHERE owner NOT IN (SYS; SYSTEM) GROUP BY segment_name HAVING COUNT(*)=(SELECT MAX(COUNT(*) FROM dba_segments GROUP BY segment_name);3.1.1.8 检查表空间的I/O比例SQLSELECT DF.TABLESPACE_NAME NAME,
4、DF.FILE_NAME FILE,F.PHYRDS PYR, F.PHYBLKRD PBR,F.PHYWRTS PYW, F.PHYBLKWRT PBW FROM V$FILESTAT F, DBA_DATA_FILES DF WHERE F.FILE# = DF.FILEJD ORDER BY DF.TABLESPACE_NAME;3.1.1.9 检查文件系统的I/O比例SQLSELECT SUBSTR(A.FILE#,1,2)SUBSTR(A.NAME,l,30) NAME,A.STATUS,A.BYTES,B.PHYRDS,B.PHYWRTS FROM V$DATAFILE A, V$
5、FILESTAT B WHERE A.FILE# = B.FILE#;3.1.1.10 检查死锁及处理查询目前锁对象信息:col sid for 999999col username for a 10col schemaname for a 10col osuser for al6col machine for al6col terminal for a20col owner for alOcol object_name for a30col object_type for a 10select sid,serial#,username,SCHEMANAME,osuser,MACHINE, t
6、erminal,PROGRAM,owner, object_name,object_type,o.objectjd from dba_objects o,v$locked_object lzv$session swhere o.object_id=l.object_id and s.sid=l.session_id;oracle 级 kill 掉该 session:alter system kill session &sid,&serial#;操作系统级kill掉session:#kill -9 pid3.1.1.11 检查数据库cpu、I/O、内存性能记录数据库的cpu使用、10、内存等使用
7、情况,使用vmstat,iostat,sar,lop 等命令进行信息收集并检查这些信息,判断资源使用情况。 CPU使用情况:rootsale8 toptop - 10:29:35 up 73 days, 19:54, 1 user, load average: 0.37, 0.38,0.29Tasks: 353 total, 2 running, 351 sleeping, 0 stopped, 0 zombieCpu(s): 1.2% us, 0.1% sy, 0.0% ni, 98.8% id, 0.0% wa, 0.0% hi, 0.0% siMem: 16404472k total,
8、12887428k used, 3517044k free, 60796k buffersSwap: 8385920k total, 665576k used, 7720344k free, 10358384k cachedPID USERPRNl VIRT RES SHR S %CPU %MEMTIME+ COMMAND30495 oracle150 8329m 866m 861m R10 5.417:53.90 oracle32501 oracle150 8328m 1.7g 1.7g S2 10.61:58.38 oracle32503 oracle150 8329m 1.6g 1.6g
9、 S2 10.22:06.62 oracle注意上面的蓝色字体部分,此部分内容表示系统剩余的cpu,当其平均值下 降至10%以下的时视为CPU使用率异常,需记录下该数值,并将状态记为异常。 内存使用情况:# free -mtotalusedsharedbufferscachedMem:202619580761556-/+ buffers/cache:3261700Swap:5992925900如上所示,蓝色部分表示系统总内存,红色部分表示系统使用的内存,黄色 部分表示系统剩余内存,当剩余内存低于总内存的10%时视为异常。 系统I/O情况:# iostat -k 1 3Linux 2.6.9-2
10、2.ELsmp (ASM)07/29/2012avg-cpu:%user0.16%nice %sys %iowait0.000.050.36%idle99.43Device: sdatps3.33kB_read/s kB_wrtn/s13.1650.25kB_read94483478kB_wrtn360665804avg-cpu:%user0.00%nice %sys %iowait %idle0.000.000.00100.00Device: sdatps0.00kB_read/s kB_wrtn/s0.000.00kB_read0kB_wrtn0如上所示,蓝色字体部分表示磁盘读写情况,红色
11、字体部分为cpuio等待 情况。 系统负载情况:uptime12:08:37 up 162 days, 23:33,15 users, load average: 0.01, 0.15, 0.10如上所/蓝体季部分表示系统负载,后面的3个数值如果看高N 2.5的时候就表明系统在超负荷运转了,并将此值记录到巡检表,视为异常。3.1.1.12 查看是否有僵死进程select spid from v$process where addr not in (select paddr from v$session);有些僵厂进程有阻塞其他业务的正常运行,定期杀掉僵厂进程。3.1.1.13 检查行链接/迁移
12、Sqlselect table_name,num_rows,chain_cnt From dba_tables Where owner=CTAIS2 And chain_cnt0;一注:含有long raw司的表有行链接是正常的我到迁移行保存到 chained_rows 表中,如没有该表执行./rdbms/admin/utlchain.sql Sqlanalyze table tablename list chained rows;可通过表 chained_rows 中 table_name,head_rowid看出哪些行是迁移行如:Sqlcreate table aa as select a
13、.* from sb_zsxx a,chained_rows b where a.rowid=b.head_rowid and b.table_name - SB_ZSXX; sqldclete from sb_zsxx where rowid in (select head_rowid from chained_rows where table_name = SB_ZSXX); sqlinsert into sb_zsxx select * from chained_row where table_name = SB_ZSXX;3.1.1.14 定期做统计分析对于采用Oracle Cost-
14、Based-Optimizer的系统,需要定期对数据对象的统 计信息进行采集更新,使优化器可以根据准备的信息作出正确的explain plane 在以下情况更需要进行统计信息的更新: 应用发生变化; 大规模数据迁移、历史数据迁出、其他数据的导入等; 数据量发生变化。查看表或索引的统计信息是否需更新,如:SqlSelect table_name,num_rows,last_analyzed From user_tables where table.name =DJ_NSRXXsqlselect count(*) from DJ_NSRXX 如 num_rows 和 count(*)如果行数相 差
15、很多,则该表需要更新统计信息,建议一周做一次统计信息收集,如:Sqlexec sys.dbms_stats.gather_schema_stats(ownname=CTAIS2,cascade= TRUE,degree = 4);3.1,1.15检查缓冲区命中率SQL SELECT a.VALUE + b.VALUE logical_reads, c.VALUE phys_reads, round(100*(l-c.value/(a.value+b.value),4) hit_ratioFROM v$sysstat a,v$sysstat b,v$sysstat cWHERE a.NAME=d
16、b block getsAND b.NAME=consistent gets AND c.NAME=physical reads;LOGICAL_READS PHYS_READS HIT_RATIO检查共享池命中率SQL select sum(pinhits)/sum(pins)*100 from v$librarycache;SUM(PINHITS)/SUM(PINS)*10099.5294474716798如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小。检查排序区SQL select name,value from v$sysstat wher
17、e name like %sort%;NAMEVALUEsorts (memory) sorts (disk) sorts (rows)61355342264742084如 果 disk/(memoty+row)的 比例 过高,则需 要调整sort_area_size(workarea_size_policy=false 或pga_aggregate_target(workarea_size_policy=true)o3.1,1.18检查日志缓冲区SQL select name,value from v$sysstat where name in (redo entries,redo buff
18、er allocation27663705redo entries redo buffer allocation retries如果 redo buffer allocation retries/rcdo entries 超过 1% ,则需要增大 log_buffer性能调优及方法性能调优主要有主动调优和被动调优,主动调优在前面我们已经进行了阐述, 被动调优主要有以下方法进行。 确定合理的性能优化目标 测试并记录当前的性能指标确定当前存在的Oracle性能瓶颈(Oracle中何处存在等待,哪个SQL 语句与此有关) 确定当前的操作系统瓶颈 优化相关的组件(应用、数据库、I/O、连接OS及其它)
19、 跟踪并实施变化管理制度 测试并记录目前的性能指标 重复第3到第7步直至达到既定的优化目标不要对并非性能瓶颈的部分进行优化,否则可能引起额外的问题。正如任何 聪明的人会告诉你的:“如果还未坏,千万不要修”。更重要的是,一旦既定的优 化目标已经达到,就务必停止所有的优化。获取Oracle的性能指标(测试前及测试后)必须在峰值处理时测试并获取系 统在优化前和优化后的性能指标。数据采集不应在数据库instance刚刚起动后 进行。同时,测试数据应在峰值期间每过15分钟进行一次。初始化参数TIMED-STATISTICS 应该被设为 TRUE。通过运行以卜脚本开始快照:$ORACLE_HOME/rdb
20、ms/admin/utlbslat.sqL通过运行以下脚本结束快照:$ORACLE_HOME/rdbms/admin/utlestat.sqL完成utlestat.sql操作后,会在当前目录中生成名为“report.txt”的文件, 包含系统的性能数据。该报告包括每15分钟捕获的所有与Oracle例程相关的 参数。3.1.2.1 寻找问题根源如上所述,通过查看v$system_event事件开始系统事件的问题诊断。下一 步是查看v$session_evcnt,找出引起或经历等待事件的进程。最后一步是通过 v$session_wait获得事件的细节。同时,应该进一步通过OS进行深入分析,了 解核
21、心的CPU、内存和10状态参数。最后,结合两种不同的诊断的结论,找出 系统瓶颈所在。3.1.2.2 System_Event事件v$system_event可以从全局的角度查看Oracle系统中的所有事件。尽管它 并不包括任何进程级的信息(当前或历史),但却可以显示上次例程弹出后总的等 待时间。这种动态性能视图中的数据,会在下次例程起动时清零。出于这种原因, 这种视力中的数据应该在不同时段进行抽样。3.1.2.3 Session_Event事件v$scssion_cvcnt视图在进程级提供与v$systcm_cvcnt相同的信息(即, SID等)。这种视图可以从“system-wide eve
22、nts”级进一步钻取,到达进程级, 以确哪个进程引起或经历了等待事件。3.1.2.4 Session_Waitv$session_wait视图在特定事件的进程级提供低层次的信息挖掘。不同于 其它一些视图,这种方式可以“实时”获取进程级的等待信息。这是真正有用的 信息。切记,每次查看这一视图得到的结果可能不一样。这可能与数据库中当前 的活动有关。3.1.2.5 应用优化从统计(和现实)的角度看,80%的Oracle系统性能问题可以通过SQL代码 优化来解决。任何应用优化的过程,不外乎是索引优化、全表扫描、并行机制改 进和选择正确数据组合方法的过程。这正是要达到最佳应用性能所必须考虑的因 素。没有
23、SQL的优化,就无法实现高性能的应用。良好的SQL语句可以减少CPU 资源的消耗,提高响应速度。同时,优化后的SQL语句还可以提高应用的可扩 展性,这是除增加大量内存外,任何其它硬件手段也无法实现的。31例程调优需要配置的主要初始化参数以下是一些已知与例程优化关系最密切的一些核心Oracle初始化参数。它 们都会影响Oracle及SGA区的活动。任何对这些参数的改动,在实施到生产环 境之前,都必须进行测试。一旦改变了生产环境的参数,就必须对相关的Oracle 动态性能指标和操作系统的性能进行监测,寻找可能由此产生的异常现象。1) DB_BLOCK_SIZE该参数在数据库建立前设定,决定了数据库
24、中每个数据块的大小。只有重新 建立数据库,才有可能改变该参数。db_block_size的配置应遵循以下公式: DB_BLOCK_SIZE = FILESYSTEM BLOCKSIZE = O-S PAGESIZE 这可以确保 Oracle 获得最佳I/O性能,同时不会由于冗余或不必要的I/O,给I/O子系统带来压力。2) DB_BLOCK_BUFFERS该参数决定了 SGA区数据库缓冲区中的块数量。由于这是Oracle读取和写 入的区域,它的不正确配置会引起严重的I/O性能问题。尽管缓冲区的大小与应 用性质、数据库大小、同步用户数等无关,它的确是SGA区中最大的组件。经常 可以看到缓冲区占用
25、75-80%SGA区内存的情况。另外,这一参数设置过大,也会 引起整个系统的内存不足,引起操作系统过多的读写操作。该参数及SHARED_POOL_SIZE通常是两个最重要的SGA优化目标。只有当数 据库缓冲率长时间低于7()%时,才需要增加其大小说。即使在这种情况下,也需 要进一步审查应用的性能和整个系统的吞吐性。若存在延迟性的应用设计问题, 则无论数据库缓冲区的大小如何,缓冲和读写率都不会有太大改变为。在实调优 中,也曾发现由于SQL语句的问题,出现缓冲率很高,但仍存在全系统性能问题 的情况。3) SHARED_POOL_SIZE该参数按字节数设定,定义了 SGA中共享区的大小。该组件的大小
26、严重依赖 于应用的类型(即该应用是重用SQL,还是生成动态SQL,等等)。同时它也取决 于同步用户的数量,以及实例是否被配置成支持多线程服务器(MTS)。如果该应 用采用了 MTS配置,则共享区应该明显增加,因为光标状态和用户进程数据等程 序全局区域(PGA)都被置入了共享区。有关多数应用的SHARED_POOL_SIZE大小设置,可以从每1()个同步用户16 MB 共享区开始。这不是一成不变的,因为应用的性质最终会决定该组件的大小。只 有当库缓冲和字典缓冲使用率一直低于90%时,才需要关注这一参数。但如果应 用并未采用变量合并和/共离图标时,内存的数量并不会使缓冲使用率高于90%o共享区过大
27、会导致处理时间增加,甚至SQL语句的挂起。如果应用不能有效 地重用SQL,则无论配置多大的库缓冲或字典缓冲都无济于事,不能改善缓冲使 用率。另一个值得考虑的因素是需要随时使用的存储PL/SQL代码数量。应用的核 心包可以通过查看DBA_SOURCE、USER.SOURCE得以确认,其大小通过查询 DBA_OBJECT_SIZE 了解。另外,为了确定存储PL/SQL是否被置于内存,可以查 询动态性能视图V$DB_OBJECT_SIZEo内时,包DBMS_SHARED_POOL中的程序大小 可被用于确定应用中大包的规模。4) LOG.BUFFER根据字节设定,该参数定义了 SGA缓冲区中redo
28、log的大小。缺省值通常 是数据库块大小的四倍,这对于多数环境并不是最佳的。对于中型的Oracle环 境,其结构应该为512Kb左右。对该存储结构而言,更大并不意味着更好。超 过1 MB就可能有问题。需要监控V$SESSION_WAIT中log buffer space的等待 事件,以优化该内存结构。需要提醒的是,在线redo log文件的大小设置不当, 会引起redo请求的等待。5) DB_WRITERS该参数可以针对所有文件系统支持,且不可使用Direct L0的Oracle实施 设定。这并不需要与raw partitions 一起使用,因为异步1-0更加。建议将该 参数设定为(2*独立磁
29、盘驱动器数量/卷)。该参数只有在report.txt中的 “average write queue length”持续高于 1 时,才需要设定。在 Oracle 8.0 和 更高版本中,该参数已不再被支持,而为其它两个名为DB_WR1TER_PROCESSES和 DBWRJO.SLAVES的参数取代。若需要设置DB_WRITER_PROCESSES值高于8,则 DB_WRITER_PROCESSES 可被设为 1,且 DBWR_IO_SLAVES 可被设为 “n”,其中 n 的值必须设置为(2 *独立磁盘驱动器数量/卷)1-0 优化1-0优化是系统优化中的一个关键步骤,还涉及到其它任务,将文件
30、在不同 驱动器/卷中进行分布,采用优化分区技术、确定1-0子系统瓶颈、确定控制器 瓶颈并根据应用的类型选择最佳的RAID级。1-0优化应该在全面了解Oracle及 Oracle RDBMS结构之后进行。应该在进行L0优化前后实施1-0数据监控,如 平均服务时间,IOPS,平均磁盘队列长度等。3.1.2.5.2 竞争优化多数与Oracle有关的竞争问题可以通过主动配置管理相关的初始化参数进 行。不恰当地配置init.ora中的锁参数可能引起竞争。为了不打破其中的平衡, 所需的参数可进行配置并主动得以处理。包括表在内的数据库对象可能存在两个竞争点。第一个是所配置的项目背景及目标51.1 项目背景5
31、1.2 项目目标5需求分析52 项目总体方案72.1 数据库性能优化82.1.1 检查Oracle数据库性能82.1.1.1 检查数据库的等待事件 92.1.1.2 Disk Read最高的SQL语句的获取 (2.1.1.3 查找前十条性能差的sql92.1.1.4 等待时间最多的5个系统等待事件的获取 92.1.1.5 检查运行很久的SQL92.1.1.6 检查消耗CPU最高的进程102.1.1.7 检查碎片程度高的表102.1.1.8 检查表空间的I/O比例 102.1.1.9 检查文件系统的I/O比例 102.1.1.10 检查死锁及处理 102.1.1.11 检查数据库cpu、I/O、
32、内存性能 112.1.1.12 查看是否有(S死进程 122.1.1.13 检查行链接/迁移 132.1.1.14 定期做统计分析 132.1.1.15 检查缓冲区命中率 142.1.1.16 检查共享池命中率 142.1.1.17 检查排序区 142.1.1.18 检查日志缓冲区 152.1.2 性能调优及方法152.1.2.1 寻找问题根源162.1.2.2 System_Event 事件 162.1.2.3 Session_Event 事件 162.1.2.4 Session_Wait172.1.2.5 应用优化 17例程调优 172.1.2.5.1 1-0 优化19竞争优化 192.1
33、.2.5.2 O-S 监控202.2 数据库备份恢复212.2.1 检查Oracle数据库备份结果212.2.1.1 检查数据库备份日志信息 212.2.1.2 检查backup卷中文件产生的时间222.2.1.3 检查 oracle 用户的 email222.3 数据库迁移22“freelists”的数量(缺省值为1)。freelist结构维护着表中可用于插入的 块。对于存在大量同步插入的表,有必要配置该结构。为了以主动方式处理 freelist竞争,必须在建立表时配置FREELISTSo可考虑的最佳值为(2 * CPU 数量)。V$WAITSTAT不可能指示存在fre量st竞争,除非存在f
34、reelist组, 而这种设置只存在于Oracle Parallel Server中。即便如此,也无法了解哪个 表存在竞争中。主动式的freelist竞争调优可以事先预防问题出现。资源竞争的第二个来源与索引有关,即对象块头中配置的事务槽数量。事务 槽是块头中的区域,是事务处理进程采用自身识别号进行注册,以便任何被修改 的更能够通过特定事务槽数量在低层得以识别的地方。如果所有现存的事务槽已 经被其它事务占用,服务器器进程会从块的PCTFREE中请求23个字节,建立一 个新的糟。这种情况适用于存在大量同步事务的对象。对于事务槽的竞争,需要 设置INITRANS参数。对于块大小为8K的数据库,多数情
35、况下,4为最佳设置, 占用的空间仅为92字节,却可以大大减少运行时故障和性能问题。3.1.2.5.4 O-S 监控数据库忙时,应该对操作系统进行监控,因为操作系统的性能指标会揭示数 据库活动的性质及其对系统的影响。例如,为了了解CPU的利用率,可以通过 system activity reporter (sar - u interval frequency)、 mpstat (SunSolaris), top (多数 UNIX)、osvicw (SGI Irix)及 vmstat 等命令。Sar 和 vmstal也可被用于确定包括内存使用率、1-0参数、队列等待、读取/交换区活 动等信息。在S
36、olaris上,mpstat utility也可用于获取前面提到的CPU利用 率数据。Solaris上的Adrian性能管理工具也很有用。可以利用其中的一到多 个工具来确定系统的性能状况,找出可能存在的瓶颈。Oracle数据库性能的管理需要遵循系统的方法论,以确保所有核心问题得 以解决。多数问题可以事先得以管理“ 了解与0-S相关的问题是成功的关键。勿 需置疑,系统硬件配置上的良好平衡也是至关重要的。必须承认,80%的系统 性能问题可以通过书写更好的SQL语句来解决。来文试图探究其余20%中可能覆 盖的内容。同时,必须遵守严格的规定,在调优目标达到后终止所有努力。了解 自己想到何处是重要的,更
37、重要的是,要知道自己何时到达了目的地。3.2数据库备份恢复为了保证客户数据库系统的数据安全性,降低各种故障、灾难给客户带来的 数据丢失,根据客户系统实际情况,协助客户规划实施符合客户工作要求的完善 的备份恢复方案,以确保客户数据库系统的安全可靠运行。数据库的恢复与备份 主要有以下几点: 恢复管理器(RMAN),能使备份恢复操作自动化Oracle数据泵,用以数据库的逻辑备份 用户管理允许用户通过操作系统命令手动备份数据库。 各种各样的其他的数据库备份和恢复软件,增强了 Oracle的备份实用程序Oracle备份时应注意事项:当数据库处于运行状态时的热备份时,不备份活动事务;使用比如Oracle工
38、具(Oracle RAMN)或者其他的第三方软件(IBM/Tivoli 的数据存储管理器)压缩Oracle备份数据;如果维持数据存储空间比备份和恢 复数据库时间更重要的话,可以考虑使用二进制压缩。3.2.1 检查Oracle数据库备份结果检查Oracle数据库备份结果,是日常运维中必不可少的一个环节。包含: 检查数据库备份日志信息,检查backup卷中文件产生的时间,检查oracle用户 的email,总共三个部分。3.2.1.1 检查数据库备份日志信息假设:备份的临时目录为/backup/hotbakup,我们需要检查2012年7月22 日的备份结果,则用下面的命令来检查:#cat /bac
39、kup/hotbackup/hotbackup-09-7-22.log |grep -i error备份脚本的日志文件为hotbackup-月份.日期.年份Jog,至备份的临时目录. 下面。如果文件中存在“ERROR:,则表明备份没有成功,存在问题需要检查。3.2.1.2 检查backup卷中文件产生的时间#ls -It /backup/hotbackupbackup卷是备份的临时目录,查看输出结果中文件的日期,都应当是在当天 凌晨由热备份脚本产生的。如果时间不对则表明热备份脚本没执行成功。3.2.1.3 检查oracle用户的email#tail -n 300 /var/mail/oracl
40、e一热备份脚本莫通过Oracle前占的cron区执行的:cron执行完后操作系统就 会发一条Email通知Oracle用户任务已经完成。查看Oracle email中今天凌晨 部分有无ORA-, Error, Failed等出错信息,如果有则表明备份不正常。3.3数据库迁移数据迁移是日常运维过程中存在的一个必不可少的应急方案。日常维护过程 中,由于硬件的原因或其它一些外在因素需要对数据进行迁移,迁移到更加高级 的主机上、迁移到远程的机房上、迁移到不同的平台下等等一些情况。对于数据 迁移XXX科技公司有非常成熟的方案,从以下几种方式我们可以充分了解其优缺 占. J、 exp/imp:这也算是最常
41、用最简单的方法了,一般是基于应用的。wner级 做导出导入;优点是可以跨平台使用;缺点是停机时间长,停机时间为从exp到网络传输到新库,再加上 imp的时间;存储迁移:这种情况下,数据文件、控制文件、日志文件、spfile都在 存储上(一般情况下是裸设备),我们可以直接把存储挂到新机器上,然 后在新机器上启动数据库;优点是该迁移方式非常简单,主要的工作是主机工程师的工作,dba 只需配合即可,停机时间为当库、切存储、起库的时间。缺点是要求新老库都是同一平台,是相同的数据库版本。 利用data guard迁移;优点是停机时间短,停机时间为switch over的时间。缺点:主机必须双份、存储必须
42、双份。用rman做迁移,这种方式比较适合于跨文件系统的迁移,如同平台下的 不同文件系统。3.4数据库运维数据库的运维主要结合XXX系统的实际情况,提供切实可行的运维建设机制, 内容覆盖ORACLE数据库的日常维护、紧急故障处理,软件升级等,客户可依据 服务内容进行相应的定制。我们将会提供全面的、针对性的服务解决方案,以保 证客户系统稳定、高效、可靠的运行,以达到对业务系统的有效支持。3.4.1 检查数据库基本状况对数据库的基本状况进行检查,其中包含:检查Oracle实例状态,检查Oracle 服务进程,检查Oracle监听进程,共三个部分。3.4.1.1 检查Oracle实例状态SQL sel
43、ect instance_name/host_name,startup_time/status/database_status from v$instance;INSTANCE_NAME HOST_NAME STARTUP_TIME STATUS DATABASE_STATUSCKDBAS142012-5-7 9:3 OPENACTIVE其中“STATUS”表示Oracle当前的实例状态,必须为“OPEN” ; “DATABASE_STATUS”表示Oracle当前数据库的状态,必须为“ACTIVE”。SQL select name,log_mode,open_mode from v$data
44、base;NAMELOG_MODE OPEN.MODECKDBARCHIVELOGREAD WRITE其中“LOG_MODE”表示Oracle当前的归档方式。“ARCHIVELOG”表示数据 库运行在归档模式下,“NOARCHIVELOG”表示数据库运行在非归档模式下。在我们的系统中数据库必须运行在归档方式下。3.4.1.2 检查Oracle服务进程$ps -ef|grep ora_|grep -v grep&ps -ef |grep ora_|grep -v grep | wc -Ioracle296010 May07 ?00:01:02 ora_pmon_CKDBoracle296210
45、May07 ?00:00:22 ora_pspO_CKDBoracle296410 May07 ?00:00:00 ora_mman_CKDBoracle296610 May07 ?00:03:20 ora_dbw0_CKDBoracle297210 May07 ?00:03:45 ora_smon_CKDBoracle297410 May07 ?00:00:00 ora_reco_CKDBoracle297610 May07 ?00:01:24 ora_cjqO_CKDBoracle297810 May07 ?00:06:17 ora_mmon_CKDBoracle298010 May07
46、?00:07:26 ora_mmnl_CKDBoracle298210 May07 ?00:00:00 ora_d000_CKDBoracle299410 May07 ?00:00:28 ora_arcO_CKDBoracle299610 May07 ?00:00:29 ora_arcl_CKDBoracle300010 May07 ?00:00:00 ora_qmnc_CKDBoracle362510 May07 ?00:01:40 ora_q000_CKDBoracle3159410Jul20?00:00:00 ora_q003_CKDBoracle2380210 05:09?00:00:
47、33 oraJ000_CKDB在检查Oracle的进程命令输出后,输出显示至少应包括以下一些进程: Oracle写数据文件的进程,输出显示为:“ora_dbwO_CKDB” Oracle写日志文件的进程,输出显示为:“oragwr_CKDB” Oracle监听实例状态的进程,输出显示为:“ora_smon_CKDB” Oracle监听客户端连接进程状态的进程,输出显示为:“ora_pmon_CKDB” Oracle进行归档的进程,输出显示为:“ora_arcO_CKDB” Oracle进行检查点的进程,输出显示为:“ora_ckpt_CKDB” Oracle进行恢复的进程,输出显示为:“ora_reco_CKDB”