www.Orasql.Com
 
用户名: 密码:  验证码: 注册|找回密码 oracleawen's blog  
 
         当前位置 >> 技术论坛  发表帖子     论坛版块     查找帖子
OCP笔记-dba2-les3-技术论坛||Oracle高手之路—Orasql.Com!
            OCP笔记-dba2-les3
 
发贴人:oracle_awen
oracleawen@gmail.com448315233127.0.0.1
用户级别:管理员
发贴总数:1245
注册时间:2011-05-05 09:23:03
2011-07-03 18:56:52
使用Recovery Manager 发出Oracle Recovery Manager 命令 交互式方式运行RMAN rman target / bacup database ; rman命令输入到文件中,然后通过命令行中指定命令文件名运行该文件,这种方式成为批处理模式 rman target sys/oracle@orcl @'/oracle/bacup.rcv' 另一方式是通过RMAN管道向RMAN发出命令 RMAN使用DBMS_PFPE pipe命令参数通过管道接口进行调用 RMAN使用两个管道:ora$rman_ac_in 接受用户命令 ,另一个用于发送输出 rman pipe abc target sys/oracle@orcl --- RMAN 命令的类型:独立命令和作业命令 独立命令时在RMAN提示符下执行的 change 改变备份集的状态 (不能操作FRA) backup current controlfile format '/u01/aaa.ctl' list backup of controlfile change backupset 29 unavailable ; list backup of controlfile change backupset 29 available; 删除备份集 change backupset 29 delte ; connect 例如: rman target / connect catalog rman/rman@catdb create catalog ,resync catalog create script ,delete script ,repalce script 例如: 使用create script 命令创建可以在恢复目录中存储脚本,必须要连接到恢复目录。 rman target / catalog rman/rman@catdb create script my_backup_script comment ' this script baks up the database ' { backup database plus archivelog ;} 修改存储的脚本 replace script my_backup_script comment ' this script backs up the databae ' { backup database plus archivelog delete input;} 删除存储的脚本 delete script my_backup_script; 使用存储脚本 要求连接恢复目录,并且在run代码块的范围使用execute script run { execute script my_backup_script;} 打印存储的脚本 print script my_backup_script; 还可以通过恢复目录视图来显示存储的脚本的内容 rman/rman@catdba select script_name ,text from rc_stored_script_line 作业命令通常被组合在此命令块内并按顺序执行。 如果块内的任一命令失败,RMAN就会停止处理,不再执行块内命令,但任然保留所有已执行命令的结果,不会以任何形式撤销。 --作业命令 run { backup as backupset format '/u01/db01/backup/%d_%s_%p' duration 10:00 minimize load (database); sql ' alter system archive log current ' ; } 作业命令必须显示在run命令的大括号内 作业命令示例: allocate channel 例如: run { allocate channel c1 type disk ; backup current controlfile; } switch (更新控制文件中文件路径) 例如: set newname 的作用是恢复到一个新的路径 switch 做切换把新路径文件写到控制文件中 环境:已经对users表空间备份 alter tablespace user offline ; run { allocate channel c1 type disk; set newname for datafile 4 to '/u01/user01.dbf'; restore datafile 4; switch datafile 4; recover datafile 4; sql 'alter tablespace users online '; release channel c1; } --- RMAN命令: 对数据库运行的典型RMAN命令包括: backup 用于备份数据库、表空间、数据文件(当前或副本)、控制文件(当前或副本)、spfile ,归档日志或目标数据库或备用数据库的备份集。 duplicate 用于从目标数据库(备份集或映象副本)处创建克隆数据库或备用数据库 flashback 用于执行闪回数据库操作,将数据库返回某一目标时间或之前,该时间点由时间、scn或日志序列号指定。 recover 用于从备份或映象副本恢复文件。 RMAN报告命令包括 list 用于查询恢复目录或控制文件,并生成记录了本备份、副本、归档重做日志以及数据库原型的列表 report 用于执行恢复目录或控制文件的详细信息 RMAN提供目录维护命令集: crosscheck 检查磁盘或磁带上备份或副本状态 delete 列出指定备份对象并提示是否确认删除 change 变更资料档案库中备份对象状态 list 显示运行crosscheck/delete expired 命令时将处理的内容 --backup 命令 备份时数据库中的数据副本,可用来重建数据。 RMAN创建备份可以是映象副本,也可以是备份集。 映象副本是原数据库文件完全相同的副本 备份集是由一些文件组成、被称为备份片段的集合,每个备份片段可能包括一个或多个数据文件备份。 使用RMAN执行备份时,可指定 要执行备份类型。可以执行整个数据库备份,以在文件中包含所有使用数据块(full备份),或者执行增量本备份(incremental) 如果启用了configure controlfile autobackup ,rman会在backup 命令后自动备份控制文件和当前服务器参数。 要备份的内容,有效值是database ,datafile ,tablespace ,archivelog ,current controlfile 或spfile 是创建映象副本as copy 还是创建备份集 as backupset 备份片段的文件名格式和位置 format 应从备份集重排除哪些数据文件或归档日志 skip 备份集大小的最大值 maxsetsize 成功创建备份集时应该删除输入文件 delete input 案例:使用 rman 进行 backup 的操作. backup datafile 4 format '/u01/bakup/u1.%s'; List backup of datafile 4; 只备份使用过的数据块,外加一个文件 头,这个头里描述了该文件的信息.所以使用 backup 命令备份的 数据只有使用 backup 来恢复. 备份集是由备份片组成的 %s 代表备份集 Piece 物理的文件,大小可以限制,不指明每个集合有一个片 %p 代表备份片 %d 代表数据库的名称 %u 代表唯一标识,这里是区分大小写的. ---备份约束条件 使用rman执行备份时,必须注意以下各项: 数据库已经装载或打开,以便rman进行连接 不能备份联机重做日志 在noarchive 模式下仅可使用干净备份表空间和数据文件备份(即正常脱机或只读表空间的备份),仅当数据完全关闭,然后在mount模式下重新启动时,才能执行数据库备份。 在archive 模式下仅可使用当前数据文件备份 如果使用恢复目录,则恢复目录数据库必须处于打开状态。 数据库必须已经被挂载或打开 控制文件被打开了 非归档模式 只能做全备,做不完全恢复 归档模式,可以做增量备份 备份案例: 1 整库的备份 backup database ; backup database format '/u01/backup/bak_%U' 查看创建的全库备份 list backup of database ; 2 表空间的备份 backup tablespace users; list backup of tablespace users; 删除备份: delete backupset 10; delete backupset 10 noprompt 3 数据文件备份 可以对名称也可以对file_id select file_id,file_name from dba_data_files; backup datafile 4; 查看数据文件的备份 list backup of datafile n 如果要查看多个文件 n=多个序号,并用逗号隔开 4 控制文件备份 a.手动执行控制文件备份 backup current controlfile ; b.执行backup命令时指定include current controlfile backup database include current controlfile ; c.备份系统表空间会触发去备份控制文件 backup datafile 1; d.通过configure 命令将controlfileautobackup 设置为on configure controlfile autobackup on ; 查看list backup of controlfile ; 5 归档文件备份 归档日志文件对数据库恢复相当关键。 a.利用backup archivelog 命令 backup archivelog all; all 指备份当前所有可访问到的归档日志文件。 until ,scn ,time ,sequence b.执行backup命令时,指定plus archivelog 子句 backup current controlfile plus archivelog ; 在备份控制文件之前,先对所有归档文件进行备份 backup database plus archivelog ; backup ... plus archivelog 命令执行的操作 a. 运行alter system archivelog current 对当前redolog进行归档 b. 执行backup archivlelog all命令备份所有已经归档日志 c. 执行backup 命令指定项进行备份 d 在次运行alter system archivelog current 对当前redoglog归档 e 对新生成的尚未备份的归档进行备份 查看已经备份的归档日志片段 list backup of archivelog all; 6 初始化参数文件备份 RMAN自动备份服务器的初始化参数文件,并置于控制文件的备份片段中。极少需要对spifle备份 backup spfile ; 7备份备份集 最佳应用备份集的需求是创建备份集到磁带。 backup backupset all; 备份指定的备份集 backup backupset n;( n=备份集ID,可以指定多个) --并行备份集 为了提高性能,分配多个通道并将文件分配给特定通道。 自动和手工 自动 并行备份集 可通过将configure 命令的parallelism选项设置为大于1的值,或通过手动分配多个通道,来配置并发备份。RMAN并发执行操作,然后并行写入多个备份集。 run { allocate channel c1 device type disk; allocate channel c2 device type disk; backup datafile 4 channel c1; backup current controlfile channel c2; } 例如:对数据文件1,2,3,4,5,6,7,8通过三个通道备份 run { allocate channel c1 type sbt; allocate channel c2 type sbt; allocate channel c3 type sbt; backup datafile 1 channel c1 ; backup datafile 3 channel c2; backup datafile 2,4,5,6,7,8 channel c3; } 备份文件时,可以通过路径或文件编号 backup device type sbt datafile '/u01/a.dbf'; backup device type sbt datafile 1; 注意:filesperset参数限制备份集中所备份集中所包含数据文件的数目 --压缩备份 backup as compressed backupset database ; 压缩备份可以减少备份集所需要的空间 使用以下命令创建数据库压缩备份 backup as compressed backupset database ; 压缩备份功能不能用于10g以前的数据库。数据库初始化参数compatible必须至少设置为10.0.0.0,压缩功能仅适用于备份集,不适用于映像副本。 alter system set compatible='10.2.0.1.0' scope=spfile; 演示例子: backup as compressed backupset current controlfile; list backup of controlfile 查看压缩后的备份集大小 设置自动创建压缩备份 configure device type disk parallelism 2 backup type to compressed backupset ; 默认压缩功能是被禁用的 映像副本 backup as copy datafile 1 format '/u01/user01.dbf'; backup as copy archivelog like 'arch_aa.arc' format 'arch_aa.bak'; 映像副本是单个数据文件、归档重做日志或控制文件的克隆。可以通过backup as copy 命令或os命令创建映像副本。 案例: rman 进行 copy 的操作. Copy 命令备份文件的所有块,包含崭新的没有装过数据的块. copy datafile 4 to '/u01/4.bak'; List copy of datafile 4; 等同于热备份,所以 rman 使用 copy 命令产生的备份可以使用手工来恢复. 映像副本特征: 1 只能写入磁盘。处理大型文件时,复制时间可能很长,但是由于磁盘上提供了副本,因此可明显减少还原时间。 2 如果文件存储在磁盘上,可以通过在RMAN中使用switch命令来立即使用这些文件,该命令相当于alter database rename file 3 在映像副本中,无任块是否包含数据都会复制所有的块,这是因为Oracle数据库进程会复制文件,还会执行其他操作,如果检查损坏的块以及在控制文件中注册副本要加速复制进程,可以使用nochecksum参数 4 映像副本包含所有块,为完全备份或级别为0的增量备份的一部分。 举例: 通过copy恢复表空间users 备份表空间users的映像备份 rman target / backup as copy datafile 4 format '/u01/backup/user01.dbf'; report schema; 查出原来数据文件路径 sql 'alter tablespace users offline '; 删除users表空间的的数据文件 host 'rm -rf /u01/user01.dbf'; 通过映像备份恢复 run { allocate channel c1 type disk; set newname for datafile 4 to '/u01/backup/user01.dbf'; switch datafile 4; recover datafile 4; sql 'alter tablespace users online '; release channel c1; } ---备份和映像副本的标记 标记是分配给备份集或映像副本的逻辑名 优点: 对文件副本的集合或备份集有用的引用 可以用于list 命令轻松找到备份文件 标记可用于restore 和switch 命令 同一标记可以用于多个备份集或文件备份 如果非唯一的标记引用了多个数据文件,则RMAN会选择最新的可用文件 每月对1,2,3,4执行一次完全备份 backup tag 'month_full_backup' datafile 1,2,3,4 每周对3,4做一次完全备份 backup tag 'week_full_backup' datafile 3,4 例如:list backupset tag="MONT_FULL_BACK"; --backup 命令选项 1 检查物理块损坏 2 扫描逻辑损坏和物理损坏 3 对中止前所允许检测到的损坏数量设置阀值 4 执行备份操作前验证目标输入文件 5 对备份集进行双重备份 6覆盖现有的备份集或映象副本 7 将对存储设备与磁盘上数据文件之间传输的控制文件给介质管理 8 加密备份文件 在备份操作过程中,oracle进程会计算每个块的校验和以检测损坏。还原副本时,RMAN将验证校验和,次操作称为物理损坏检测。可使用nochecksum选项禁止校验和操作,加速备份进程。 check logical 选项看其是否存在逻辑损坏。预警日志和跟踪文件中记录此块。 可以设置maxcorrupt参数对允许出现逻辑损坏和物理损坏的数量设置阀值。只要检测文件的物理损坏和逻辑损坏之和小于此值,RMAN备份操作即可完成。并且数据库将使用损坏块范围填充v$database_block_corruption视图。 如果超出maxcorrupt的值,此操作将终止,并不填充次视图。 使用validate选项检查数据库文件中的物理和逻辑错误。RMAN扫描指定文件并验证其内容,测试文件能否进行备份。次命令只检测并不备份指定文件。 ---backup 命令选项 通过备份集进行双重备份,每个备份片最多可以创建4个相同的副本。 bacup copies set backup copies configure .. backup copies reuse允许RMAN覆盖backup 当前创建的文件具有相同文件名的现有备份集或映像副本。 ---备份归档重做日志 backup format '/disk1/backup/ar_%t_%s_%p' archivelog from sequence=234 delete input; 可以使用backup archivelog 命令备份归档重做日志,或者使用backup ..plus archivelog 命令在备份数据文件和控制文件时备份归档重做日志文件。备份结束时,归档日志也始终位于单独的备份集中。 归档日志复制完后,将从磁盘上删除这些日志,并在v$archived_log视图中标记为已删除。 实验:使用 rman 进行 backup 的操作.备份归档日志文件. 检查归档备份是否过期,删除过期的 crosscheck archivelog all; delete expired archivelog all; backup archivelog all delete input format '/u01/bk/arc_all_7_2_%t_%p_%s'; 备份归档日志文件 list archivelog all; list copy of archivelog all; list backup of archivelog all; list copy of archivelog sequence between 1 and 10 thread=1 ; BACKUP ARCHIVELOG ALL DELETE INPUT format '/u01/arch01.bak'; backup archivelog sequence 10 thread=1 format '/u01/arch1_5.bak' 如果上面的语句有问题,请运行下面语句来标定控制文件中归档日志的状态。 change archivelog all crosscheck; delete archivelog all; select SEQUENCE#,APPLIED,DELETED,STATUS,BACKUP_COUNT from v$archived_log 手工执行归档 ALTER SYSTEM ARCHIVE LOG --数据库整体备份 backup database plus archivelog ; 备份所有数据文件和控制文件副本,也可以选择包括spfile和归档日志文件。 --RMAN备份类型 完全备份包含所有使用的数据文件块 级别0的增量备份等同于级别0的完全备份 级别1的累积增量备份仅包含自上次级别为0的增量备份以来修改的块。 级别1的差异增量备份仅包含自上次增量备份以来修改的块。 完全备份: 包含文件中所有已用数据块的备份。RMAN将所有块复制到备份集或映象副本中,仅跳过未使用的数据文件块。完全备份不能成为增量备份的一部分。 增量备份 增量备份是级别为0的备份,其中包含数据文件中除未使用的块之外的所有块。或者是级别1的备份,其中仅包含自上次备份以来更改过的那些块。 级别0的增量备份在物理上与完全备份一样。唯一区别是级别0的备份可作为级别1的备份基础。 增量备份 backup incremental levle =[0/1] [cumulative] 增量备份级别 差异:默认增量备份,其备份自最近一次级别1的或级别0的增量备份后更改的所有块 累积:备份最近一次级别0的备份后更改的所有块 例子: 要执行级别0的增量备份 backup incremental levle= 0 database ; 要执行差异增量备份 backup incremental levle= 1 database ; 要执行累积增量备份 backup incremental levle =1 cumulative database ; 如果没有指定full,incremental默认情况下,RMAN将生成完全备份 注意:对noarchivelog 模式数据库执行增量备份,必须关闭数据库。 差异备份和累积备份比较: 差异增量备份较快,写出的块较少,生成的备份文件也较少 累积备份花费时间可能长,写出块较多,生成文件也大,恢复速度快 案例: backup incremental level=0 datafile 4 format '/u01/bk/%d_%s_%p'; 建立表,插入数据.使备份以来数据块发生改变 create table scott.t1 as select * from scott.emp; backup incremental level=1 datafile 4 format '/u01/bk/%d_%s_%p'; backup incremental level=1 cumulative datafile 4 format '/u01/bk/%d_%s_%p'; backup incremental level 2 datafile 4 format '/u01/bk/%d_%s_%p'; list backup of datafile 4; --块更改跟踪 启用块更改跟踪可以简化备份过程。 在更改跟踪文件中记录更改的块 由RMAN自动使用 通过避免备份过程中的完全数据文件扫描来优化增量备份 块跟踪功能使用更改跟踪写进程CTWR这个后台将所有数据库更改的实际位置记录到位更改跟踪文件的新类型文件中。 --启用块跟踪 alter database enable block change tracking using file '/u01/backup/rman_change_track.f' reuse; 使用EM--》维护---备份设置--策略 块跟踪文件最小10M,新空间的分配以10M为增量,设置了db_create_file_dest参数,则不必为块更改跟踪文件指定名称,如果为配置必须使用using file 为跟踪文件制定目录位置和文件名 启用块跟踪 alter database enable block change tracking ; alter databae disable block change tracking ; 可以通过v$block_change_tracking 视图查看当前块更改跟踪配置的详细信息 select * from v$block_change_tracking --增量更新备份 增量更新备份功能,可以使用RMAN来将增量备份应用到数据文件映像副本。使用这种恢复方法,RMAN可以通过应用增量备份将数据文件的副本恢复到指定的时间点,或者将映像副本前滚到指定时间点。 映像副本使用执行增量备份时的SCN之前的所有更改来进行更新 增量更新备份需要两个不同的命令 使用backup 命令的 backup incremental levle ... for recover of copy with tag.. 表单创建可以增量更新的增量备份,如果级别为0的增量备份不存在,则执行命令会创建具有指定标记的级别为0的备份。 使用backup 命令recover copy .. with tag...表单将任何增量备份应用到具有相同标记的数据文件副本集。如果没有增量备份或数据文件副本,该命令生成一条消息。 案例: RMAN> run { backup incremental level =1 for recover of copy with tag 'incr_user' datafile 4 format '/u01/u_%U'; RECOVER COPY OF datafile 4 with tag 'incr_user'; } ---list 命令 查看备份信息 List backup 查看备份汇总信息 List backup summary 列出数据文件的备份集和副本 list backup of database ; list backup of datafile 1; 列出指定表空间的任何数据文件的备份集和副本。 list copy of tablespace "SYSTEM"; 列出包含指定范围的归档日志的备份集和副本 list copy of database archivelog from time='sysdate -7'; 用List来查看crosscheck相应的报告 LIST EXPIRED BACKUP; LIST EXPIRED BACKUP SUMMARY; 可以列出: RMAN资料档案库中状态不是avaliable的备份和副本 可用且可以用于还原操作的数据文件备份和副本 备份集和副本,其中包含指定数据文件列表或指定表空间的备份 由标记、完成时间、可恢复性或设备限制的备份集和副本 指定数据库或资料档案库已知所有数据库的原型 恢复目录中存储脚本 ---report 命令 生成资料档案库的详细分析 生成报告以回答下列问题? 数据库中包含哪些数据文件? 哪些文件需要备份? 哪些备份可以删除? 哪些文件不可恢复? 数据库结构时什么? report schema ; 哪些文件需要备份 report need backup ; 哪些备份可以删除 report obsolete 哪些文件因不可恢复的操作无法恢复? report unrecoverable report need backup 命令 列出需要备份的所有数据文件 假定还原时使用最新备份 四个选项 增量:输入一个整数,用于指定恢复过程中应还原的增量备份的最大数目。如果数据文件的完全恢复需要的增量备份数多于指定数目,则数据文件需要新的完全备份。 例如:要报告需要三个或更多增量备份来进行恢复的文件 report need backup incremental 3 database ; 天数:输入一个整数,用于指定自上次文件的完全备份或增量备份以来的最大天数。如过最新的备份等于或大于此数值,则该文件需要进行备份。 例如:要报告3天以来尚未进行备份的系统文件 report need backup days 3 tablespace system ; 冗余:需输入一整数,用于指定视为必需的最低冗余级别。例如:如果不具有两个或多备份,则冗余级别2需要进行备份。 恢复窗口:一个时间窗口,RMAN应该在窗口中恢复数据库。 案例: 如果不希望恢复过程中必须处理3个以上的增量备份,可以使用下列命令报告哪些违反了这一要求的文件。 需要三个以上增量备份进行恢复的文件 report need backup incremental 3 ; 查出在执行更改操作后哪些文件尚未进行备份 如果更改发生在三天以前,查出执行更改后哪些文件尚未进行备份 report need backup days 3; 如果不具有两个或更多备份则需要进行备份 report need backup redundancy 2; 报告需要对哪些文件进行备份以便恢复到三天前的数据状态 report need backup recovery window of 3 days ; -------- report obsolete 和 delete obsolete 查找根据当前保留策略设置应视为作废的所有恢复文件 report obsolete 如果需要备份副本不多于两个,列出作废的恢复文件 report obsolete redundancy 2; 删除备份集键为4的备份集 delete backupset 4; 删除由已存在两个以上的备份视为作废的恢复文件 delete obsolete redundancy 2; 作废文件与过期文件不同 作废备份时根据用户的保留策略认为不在需要的备份。 过期备份时crosscheck命令在指定介质设备上找不到备份,虽然资料档案库指示了它的位置,但备份文件已被删除或移动 在磁盘中将备份文件删除几个后 crosscheck backup; 被删除的文件被标记为 'EXPIRED' 失效了 list expired backup; delete expired backup; 删除这些失效的对象 report obsolete 命令,报告当前配置的保留策略下已作废的文件。 report obsolete 使用redundancy或recovery window保留策略,可以生成根据不同保留策略而作废的文件报告。 如果没有设置保留策略或者保留选项的情况下运行report obsolete 则RMAN将发出错误消息。 delete 命令可以删除list 和crosscheck 命令可进行操作的任何文件。 ---- em--维护---管理当前备份 --------RMAN动态性能视图 v$archived_log显示数据库中已经创建、备份以及清除的档案 v$backup_corruption显示对备份集进行备份过程中所发现的损坏块 v$backup_datafile 从控制文件中显示备份数据文件和备份控制文件的信息 v$backup_device:显示有关所支持备份设备信息 v$backup_files:显示所有关于RMAN备份和归档的信息 v$backup_piece: 显示备份集创建的备份片段 v$backup_redolog :显示备份集中存储的归档日志 v$backup_set:显示已经创建的备份集 v$backup_spfile:显示备份集中服务器参数的文件的信息 v$copy_corruption:显示创建映像副本过程中所发现损坏的块 v$database_block_corruption:最近一次RMAN备份过程中标记为损坏的数据库块。 v$rman_configuration: 里各处有关RMAN的永久配置信息 如果对RMAN使用代理设置,可以查询: v$proxy_archivielog v$proxy_datafile 关于备份性能统计信息,可以查询: v$backup_async_io v$backup_sync_io 案例:v$backup_datafile 作用:从控制文件中显示备份数据文件和备份控制文件的信息 比较某天的数据文件的备份量 alter session set nls_date_format='yyyy-mm-dd'; select file#,recid,to_char(creation_time,'yyyymmdd hh24:mi:ss'),datafile_blocks,blocks,to_char(completion_time,'yyyymmdd hh24:mi:ss') from v$backup_datafile where trunc(completion_time)=to_date('20110701','yyyymmdd') order by file#,recid; 查看某天 数据文件总的备份量 select sum(blocks) from v$backup_datafile where trunc(completion_time)=to_date('2011-07-02','yyyy-mm-dd'); 数据文件已使用块大小: select sum1-sum2 from (select sum(bytes/1024/1024) sum1 from dba_data_files),(select sum(bytes/1024/1024) sum2 from dba_free_space); 也就是rman备份的这些块,rman只备份使用过的块,最后备份出来的文件大小要小于这个数字,备份出来的肯定要小 就像是自己的硬盘,并不是每个数据块都填满了数据,但是也按一个块算,备份出来全是数据,没有碎片了,当然要小 v$backup_set ::显示已经创建的备份集 select SET_STAMP,BACKUP_TYPE,to_char(START_TIME,'yyyymmdd hh24:mi:ss') from v$backup_set where start_time >sysdate -3 order by start_time; ---监视RMAN备份 使用set command id 命令将服务器会话与通道相关联 查询v$process和v$session以确定会话与RMAN通道对应关系 查询v$session_longops以监视备份和副本的进度。 使用操作系统使用程序监视进程或线程 案例:备份过程中将进程与通道相关连 1 RMAN连接目标数据库,以及恢复目录(可选) 2 分配通道后设置command id参数,然后复制所需要的对象.由set command id命令指定字符串将输入到所有已分配通道v$session.client_info列中 run { allocate channel t1 type disk; set command id to 'rman'; backup database ; release channel t1; } 3 查询v$process和v$session视图,使用先前指定command id字符串的通道,获取其会话表示SID和操作系统标识SPID select sid ,spid ,client_info from v$process p ,v$session s where p.addr=s.paddr and client_info like '%id=rman%'; 4 查询v$session_longops视图获取副本状态 select sid ,serial#,context ,sofar,totalwork,round(sofar/totalwork*100,2) "%complete" from v$session_longops where opname like 'RMAN:%' and opname not like 'RMAN: aggregate%' and totalwork !=0; 全库备份时候时间很长,如何监控备份的进度? select sid,SERIAL#,CONTEXT,SOFAR,TOTALWORK,round(SOFAR/TOTALWORK*100,2) "%_c" from v$session_longops where opname like 'RMAN%' and TOTALWORK!=0 and SOFAR<>TOTALWORK; 5如果使用类型为sbt的通道且复制进程看起来挂起状态,则使用步骤3中获取的SID,查询v$session_wait,以确定RMAN是否在等待介质管理器函数调用完成。 select * from v$session_wait where event like '%sbt%'; 如果rman部署后,手动rm了系统中的oracle归档日志文件,并且这些归档文件并没有被rman备份走,那么rman备份时候,还是要找那些物理上被rm的归档文件. 这时候需要crosscheck archivelog all; delete archivelog all; --- 如果备份80%,突然断电,之后怎么处理? 对于异常结束的备份,对于90%一下,? 重新开始备份的方法 备份那10%左右的数据 RMAN> backup not backed up since time 'sysdate -1' database plus archivelog; -------- 备份格式: 备份文件自定义格式: %d 数据库名 %c 备份片的拷贝数 %D 位于该月的第几天 %M 位于该年的第几月 %F 一个基于dbid唯一的名称,格式比较全面 c-iiiiiiiiii-yyyymmdd-qq iiiiiiiiii: dbid yyyymmdd:日期 qq:1-256的序列号 %n: 数据库名称 ,向右补足最大8个字符 %U: 一个唯一的文件名,代表%u_p_%c %u: 一个8个字符的名称代表备份集于创建时间 %p: 该备份集的备份片号 ,从1开始到创建的文件数 %t:备份集的时间戳 %T : yyyymmdd

      
 
  
 Orasql.Com|E-Mail:oracleawen@gmail.com|Phone:15271942915|Copyright © 2011|All Rights Reserved|