Oracle的官方文档中有rman命令的比较完整的说明,我们可以参考。下面是一些常用的命令的使用例子: Rman常用命令: 一、RMAN设置 1.显示RMAN默认配置 Rman中可以利用show命令来显示当前的配置参数。例如,通过SHOW ALL显示当前所有的配置。 RMAN> show all; RMAN 配置参数为: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; CONFIGURE BACKUP OPTIMIZATION OFF; # default CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F'; CONFIGURE DEVICE TYPE DISK PARALLELISM 1; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\ORAHOME1\DATABASE\SNCFJSSWEB.ORA'; # default RMAN> 注:配置项后面跟了# default的表示该项仍是初始配置,未被修改过。 该命令使用也相当灵活,其后跟上不同的类型的配置参数,即可以显示不同类型的配置,如: SHOW CHANNEL; SHOW DEVICE TYPE; SHOW DEFAULT DEVICE TYPE; 2.建立恢复目录: 第一步,在目录数据库中创建恢复目录所用表空间: SQL> create tablespace rman_ts datafile 'd:\Oracle\oradata\rman\rman_ts.dbf' size 20M; 第二步,在目录数据库中创建RMAN 用户并授权: SQL> create user rman identified by rman default tablespace rman_ts temporary tablespace temp quota unlimited on rman_ts; 用户已创建。 SQL> grant recovery_catalog_owner connect, resource to rman ; 授权成功。 第三步,在目录数据库中创建恢复目录 C:\>rman catalog rman/rman 恢复管理器:版本8.1.6.0.0 - Production RMAN-06008:连接到恢复目录数据库 RMAN-06428:未安装恢复目录 RMAN>create catalog tablespace rman_ts; RMAN-06431:恢复目录已创建 2. 启动RMAN 2.1.使用不带恢复目录的RMAN 设置目标数据库的 Oracle_SID ,执行: oracle@myserve:~$ rman target / 2.2.使用带恢复目录的RMAN oracle@myserve:~$ rman target / catalog rman/rman 2.3.在恢复目录中注册数据库: RMAN> register database; .注销目标数据库 为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID 连接到目标数据库,查询db表: SQL> select * from db; DB_KEY DB_ID CURR_DBINC_KEY ---------- ---------- -------------- 1 3021445076 2 SQL> execute dbms_rcvcat.unregisterdatabase(1,3021445076); PL/SQL 过程已成功完成。 3.使用rman备份数据库: 在指定备份片的文件名时可以使用以下匹配符: %c:当生成多重备份时,用于指定备份片的副本号 %d:用于指定数据库名 %e:用于指定归档日志的序列号 %p:用于指定在备份集内备份片的编号 %s:用于指定备份集的编号 %n:用于指定表空间的名称 %f:用于指定绝对文件号 为了防止建立备份集错误匹配符%s是必顺的;如果要建立多个备份片文件,则匹配符%p是必顺的;如果要建立多个备份片副本,则匹配符%c是必顺的. 完全数据库备份集 backup database 一至性备份: RMAN>shutdown immediate RMAN>startup mount RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>alter database open; RMAN>sql ‘alter system archive log current’ 非一至性备份(在open状态下): RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>sql ‘alter system archive log current’; 免除表空间: RMAN>configure exclude for tablespace ts_name; //设定在备份数据库的时候排除ts_name; RMAN>backup database format=’/opt/oracle/rmanbak/%d_%s.dbf’; RMAN>sql ‘alter system archive log current’; 查看数据库备份: RMAN>list backup of database; 表空间备份集(只适用于archivelog): RMAN>backup tablespace ts_name format=’/opt/oracle/rmanbak/%n_%s.pdf’; 查看表空间备份: RMAN>list backup of tablespace taplespace_name; 数据文件备份集 查询表空间对应的数据文件及其序号 Select file_name,file_id,tablespace_name from dba_data_file; 备份数据文件 RMAN>backup datafile 5 format=’/opt/oracle/rmanbak/%n_%f_%s.dbf’; 查看指定数据文件的备份 RMAN>LIST BACKUP OF DATAFILE n; RMAN>LIST BACKUP OF DATAFILE '/opt/oracle/rmanbak/JWEB.ORA'; 控制文件备份集 备份当前控制文件 RMAN>backup current controlfile format=’/opt/oracle/rmanbak/%d_%s.ctl ’ 在备份其它数据文件时,同时备份控制文件 RMAN>backup datafile 5 format=’/opt/oracle/rmanbak/%n_%f_%s.dbf’ 2>include current controlfile; 在备份时自动备份控制文件 RMAN>configure controlfile autobackup on; 如果要查看备份的控制文件,可以通过: RMAN>list backup of controlfile; 备份spfile RMAN>backup spfile format=’/opt/oracle/rmanbak/%d_%s.par’; 备份规档日志: 备份全部的规档日志: RMAN>backup archivelog all 2、在BACKUP过程中利用PLUS ARCHIVELOG参数备份,例如: RMAN>backup database plus archivelog 则在备份数据库的同时自动对所有归档文件进行备份。这种方式与上种有什么区别呢,区别太明显了,BACKUP.....PLUS ARCHIVELOG命令在备份过程中会依次执行下列步骤: 1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。 2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。 3>.执行BACKUP命令对指定项进行备份。 4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。 5>.对新生成的尚未备份的归档文件进行备份。 查看规档日志备份: RMAN>list backup of archivelog all; 显示备份信息: 视图: V$ARCHIVED_LOG:显示所有归档日志映像副本的信息 SQL>col name format a45; SQL>select sequence#,first_change# from v$archived_log 2 where status=’A’; V$BACKUP_DATAFILE:用于显示控制文件和数据文件的备份信息 V$BACKUP_PIECE: SQL>select a.file#,b.handle,a.blocks*block_size byte 2 from v$backup_datafile a,v$backup_piece b 3 where a.set_stamp=b.set_stamp and a.status=’a’ V$BACKUP_REDOLOG显示归档日志备份集的信息,每个规档日志备份集可以包含一个或多个归档日志。 SQL>select distinct a.handle,b.sequence#,b.first_change#,b.blocks 2 from v$backup_piece a,v$backup_redolog b 3 where a.set_stamp=b.set_stamp and a.status=’a’ V$BACKUP_CORRUPTION:显示在执行BACKUP命令时所检测到的损坏数据块信息。 SQL>select file#,block#,blocks,marked_corrupt 2 from v$backup_corruption; 删除备份: 1、删除陈旧备份 当使用RMAN执行备份操作时,RMAN会根据备份冗余策略确定陈旧备份。 RMAN> delete obsolete; 2、删除EXPIRED备份 执行crosscheck命令核对备份集,那么会将该备份集标记为EXPIRED状态。为了删除相应的备份记录,可以执行delete expired backup命令。 RMAN> delete expired backup; 3、删除EXPIRED副本 RMAN> delete expired copy; 4、删除特定备份集 RMAN> delete backupset 19; 5、删除特定备份片 RMAN> delete backuppiece 'd:\backup\DEMO_19.bak'; 6、删除所有备份集 RMAN> delete backup; 7、删除特定映像副本 RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak'; 8、删除所有映像副本 RMAN> delete copy; 9、在备份后删除输入对象 RMAN> delete archivelog all delete input; RMAN> delete backupset 22 format = ''d:\backup\%u.bak'' delete input; RMAN恢复 RMAN完全恢复是指当数据文件出现介质失败时,使用RESTORE命令转储数据文件备份,并使用RECOVER命令将数据文件恢复到失败点的状态. RMAN不完全恢复: 是指当数据文件出现介质失败时,使用RESTORE命令转储数据文件备份,并使用RECOVER命令将数据库恢复到备份点与失败时刻的状态. 恢复数据库 V$RECOVER_FILE可以确定需要恢复的数据文件 SQL>SELECT file#,error from v$recover_file; 所有数据文件被误删除 $rman target / catalog rman/rman RMAN>STARTUP FORCE MOUNT RMAN>run{ 2>restore database; 3>recover database; 4>sql ‘alter database open’; 5>} 数据文件所在磁盘出现硬件故障 磁盘故障数据文件将不能被转储到原位置,必顺将数据文件转储到其他磁盘 RMAN>run{ 2>startup force mount; 2>set newname for datafile 1 to ‘/opt/datafile/system01.pdf’; 3> . 4> //指定数据文件新位置 5>set newname for datafile 6 to ‘/opt/datafile/sdl.pdf’ 6>restore database 7>switch datafile all; //改变控制文件所记载的数据文件位置和名称 8>recover database; 9>sql ‘alter database open’ 10>} RMAN>report schema; //恢复后查看数据文件新位置 恢复表空间数据文件 示例:SYSTEM表空间的数据文件被删除 RMAN>run{ 2>startup force mount; 3>restore datafile 1; 4>recover datafile 1; 5>sql ‘alter database open’;} 示例:在SYSTEM表空间数据文件所在磁盘出现故障 RMAN>run{ 2>startup force mount 3>set name for datafile 1 to ‘/opt/datafile/system01.dbf’ //设置表空间文件新位置 4>restore datafile 1; //转储数据文件 5>.switech datafile 1; 6>recover datafile 1; 7>sql ‘alter database open’;} 在open状态下恢复关闭后损坏的数据文件 示例:数据文件被误删除 RMAN>run{ 2>startup force mount; 3>sql ‘alter database datafile 4 offline’;//脱机损坏的数据文件 4>sql ‘alter database open’;//打开数据库 5>restore datafile 4;//转储数据文件 6>recover datafile 4;//恢复数据文件 7>sql ‘alter database datafile 4 online’;//联机恢复后的数据文件} 示例2:数据文件所在磁盘出现损坏 RMAN>run{ 2>startup force mount; 3>sql ‘alter database datafile 4 offline’;//脱机损坏的数据文件 4>sql ‘alter database open’;//打开数据库 5>set newname for datafile 4 to ‘/opt/datafile/user01.pdf’;//指定恢复位置 5>restore datafile 4;//转储数据文件 6>recover datafile 4;//恢复数据文件 7>sql ‘alter database datafile 4 online’;//联机恢复后的数据文件} 恢复表空间: 示例:表空间的数据文件被误删除 RMAN>run{ 2>sql ‘alter tablespace users offline for recover’; //脱机表空间 3>restore tablespace user; 4>recover tablespace user; 5>sql ‘alter tablespace users online’;} 示例:表空间所在磁盘出现磁盘故障 RMAN>run{ 2>sql ‘alter tablespace users offline for recover’; //脱机表空间 3>set newname for datafile 4 to ‘/opt/datafile /user01.dbf’; 4>restore tablespace user; 5>switch datafile all; 6>recover tablespace user; 5>sql ‘alter tablespace users online’;} 数据块介质恢复 数据块错误会出现以下错误: SQL>SELECT * FROM SCOTT.CUSTOMERS; ORA-01578:ORACLE DATA BLOCK CORRUPTED (FILE #5,BLOCK #21) ORA-01110:data file 5 :‘/opt/oracle/oradata/mydb/sdl.dbf’ RMAN>BLOCKRECOVER DEVICE TYPE DISK 2>DATAFILE 5 BLOCK 21,48,128; 不完全恢复 基于时间恢复: $export nls_date_format=’yyyy-mm-dd hh24:mi:ss’ //指定日期格式 RMAN>run{ 2>startup force mount; //挂载数据库 3>set until time=’2007-7-26 20:49:00’; //恢复时间点 4>restore database; //转储数据文件 5>recover database; //根据时间点恢复数据库 6>sql ‘alter database open resetlogs’;//打开数据库重建redolog文件 7>} 基于SCN 确定恢复的SCN SQL>SELECT CURRENT_SCN FROM V$DATABASE; RMAN>run{ 2>startup force mount; 3>set until scn=n; //设置还原点SCN 4>restore database; 5>recover database; 6>sql ‘alter database open resetlogs’; 7>} 基于日志号: 当不能定位日志号的归档日志时会出现以下错误: Rman-06025:no backup of log thread 1 seq 6 lowscn 531976 found to restore RMAN>run{ 2>startup force mount; 3>set until sequence=n; //日志号通常为不能定位的日志号 4>restore database; 5>recover database; 6>sql ‘alter database open resetlogs’; 7>} 基于备份控制文件: 当误删的表空间或者数据库有的控制文件损坏时可以使用这种方法 $set nls_date_format=’yyyy-mm-dd hh24:mi:ss’; $rman target / catalog rman/rman RMAN>startup force nomount RMAN>set dbid=3286265633; RMAN>restore controlfile from autobackup maxseq 6; RMAN>alter database mount; RMAN>run { 2>set until time=’2007-7-26 21:07:00’ 3>restore database; 4>recover database; 5>sql ‘alter database open resetlogs’; 6>} 不完全恢复后建议删除早期的所有备份并重新备份 RMAN>run{ 2>delete noprompt backup; 3>delete noprompt copy; 4>backup database format=’/opt/ora_bak/%d_%s.pdf’; 5>sql ‘alter system archive log current’;}
相关推荐
以下是 RMAN 的一些常用命令: 1. 启动、关闭数据库 使用 STARTUP 和 SHUTDOWN 命令可以启动或关闭数据库实例。例如: RMAN> STARTUP RMAN> SHUTDOWN IMMEDIATE 2. 执行操作系统命令 使用 HOST 命令可以在操作...
### Oracle数据库RMAN备份与恢复技术详解 #### 引言 在信息技术领域,数据安全与完整性至关重要。Oracle数据库,作为全球领先的数据库管理系统之一,提供了多种数据保护机制,其中RMAN(Recovery Manager,恢复...
在本文中,我们将深入探讨RMAN的一些常用命令,帮助你更好地理解和使用RMAN进行数据库管理。 首先,连接到目标数据库是RMAN操作的基础。你可以通过以下命令不使用恢复目录数据库直接连接到目标数据库: ```sql ...
查看RMAN备份系统 - **命令**: `list backup;` - **功能**: 列出所有已经完成的备份记录。这对于监控备份进度和检查备份状态非常有用。 #### 10. 恢复控制文件命令 - **命令**: - 从自动备份恢复控制文件: `...
共享ORACEL大师相公的心血精华,整理了平常用的RAMN所有命信,对一些工作上可以直接拿过来就用的
### Oracle RMAN备份命令详解 #### 一、RMAN(Recovery Manager)简介 RMAN是Oracle数据库系统中用于数据库备份、恢复以及灾难恢复的重要工具。通过RMAN,DBA可以执行各种类型的备份操作,包括全备、增量备份、表...
详解rman常用的命令及日常维护,包括rman的作用,rman的体系架构,nocatalog和catalog介绍与catalog配置,catalog恢复目录的配置过程,在恢复目录中添加rman 备份,升级的问题,rman全备案例
RMAN 提供了多种命令,包括备份命令、恢复命令、报告命令和配置命令。常用的 RMAN 命令包括 BACKUP、RESTORE、REPORT 和 CONFIGURE 等。 总结 RMAN 是 Oracle 的一个强大的备份和恢复工具,提供了多种备份方式和...
本文将深入探讨Linux下RMAN备份的基本概念、常用命令以及实践中的注意事项。 RMAN是Oracle数据库自带的一个命令行工具,它能够执行各种备份策略,包括完整备份、增量备份和差异备份。RMAN的备份可以是文件系统上的...
### RMAN常用命令详解 #### 一、启动与关闭数据库 **1.1 启动SQL Plus** ```sql %sqlplus/nolog ``` **1.2 以SYSDBA身份连接数据库** ```sql SQL> conn / as sysdba ``` **1.3 立即关闭数据库** ```sql SQL> ...
2. **高效的数据恢复能力**:RMAN不仅能够进行简单的数据恢复,还支持高级恢复功能,如基于时间点的恢复、增量备份恢复等。 3. **自动化管理**:通过设置RMAN参数,可以实现自动化的备份策略,减轻DBA的工作负担。 4...
当使用恢复目录来管理RMAN备份和恢复操作时,可以在恢复目录中编写脚本,并通过`run`模块来执行这些脚本。 **示例**: ```sql RMAN> run { execute script recov_01; } ``` 这将执行名为`recov_01`的脚本。 ##### ...
### Oracle数据库RMAN备份策略研究 #### 摘要 随着信息技术的发展,数据库的安全性和可靠性变得尤为重要。在长期运行过程中,任何数据库系统都不可避免地会遇到各种潜在风险,包括硬件故障、软件错误、人为失误等,...
### RMAN常用参数及命令详解 #### 一、RMAN登录命令 RMAN(Recovery Manager)是Oracle数据库提供的一款强大的备份与恢复工具。通过不同的登录方式,可以满足不同的管理和维护需求。 - **rman nocatalog**:此...
RMAN还提供了一些常用的命令和操作,比如: - SHOW ALL:显示当前RMAN的配置。 - CROSSCHECK:校验备份集和备份片段的可用性。 - DELETE:删除过时或不必要的备份和归档日志。 - REPORT:报告备份集和数据库对象的...
本文将深入探讨Oracle数据库的备份策略、常用命令以及实际操作案例。 首先,Oracle数据库支持多种备份方式,根据不同的需求和环境可以选择适合的备份方案。描述中提到的“冷备份/冷恢复”是指在数据库关闭状态下...
### RMAN命令在Oracle数据库备份与恢复中的应用 #### RMAN简介 RMAN(Recovery Manager)是Oracle数据库系统提供的一种强大的备份与恢复工具。它主要用于实现对Oracle数据库的完整或部分备份、恢复以及灾难恢复等...