知识大全 OracleRMAN物理备份技术之管理维护
Posted 文件
篇首语:一箫一剑平生意,负尽狂名十五年。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 OracleRMAN物理备份技术之管理维护相关的知识,希望对你有一定的参考价值。
OracleRMAN物理备份技术之管理维护 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
恢复管理维护任务
这部分主要介绍一下如何管理维护RMAN存储库和快速恢复区
没有恢复目录的情况下如何管理RMAN存储库
交叉验证备份(CROSSCHECKING BACKUP)
删除备份
利用RMAN删除数据库
多个通道的情况下交叉验证和删除操作
如何改变一个备份记录的状态
归档日志目录和手工拷贝
修改RMAN存储库目录
维护快速恢复区
没有恢复目录的情况下管理RMAN存储库
备份控制文件
如果没有恢复目录 控制文件的备份更加重要 要通过多个镜像控制文件或者操作系统镜像来备份变化了的控制文件 另外最好要配置控制文件的自动备份
CONTROLFILE AUTOBACKUP ON
注意 如果从自动备份或者其他备份恢复了控制文件 最近执行的CONFIGURE配置内容将会被覆蓋 回到备份时刻的设置
监控控制文件记录重写
没有恢复目录的情况下 oracle的控制文件记录了所有的历史备份记录 为了保证控制文件不会无限制的增长 oracle提供了一个可以设置控制文件保留时间的阀值的初始化参数 CONTROL_FILE_RECORD_KEEP_TIME
例如我们设置了CONTROL_FILE_RECORD_KEEP_TIME= 任何超过 天的纪录都有可能被覆蓋 如果没有超过 天的记录 oracle将扩展控制文件的大小 如果由于受到操作系统的限制(比如磁盘空间满)无法扩展控制文件的大小 oracle会强制覆蓋最老的记录并且在alter log中记录这一情况 如下所示
kccwnc: following controlfile record written over: RECID # Recno Record timestamp / / : : Thread= Seq#= Backup set key: stamp= count= Low scn: x af f / / : : Next scn: x af b / / : : Resetlogs scn and time scn: x / / : : Block count= Blocksize=
快速恢复区Flash Recovery Area和控制文件记录保存时间参CONTROL_FILE_RECORD_KEEP_TIME之间的相互作用
如果我们在使用快速恢复区保留RMAN备份的话 控制文件将记录恢复区中文件的创建记录 因为一般来讲文件创建的记录要比执行备份的信息要晚 如果有备份文件超过了CONTROL_FILE_RECORD_KEEP_TIME参数所规定的时间 ORACLE试图删除这些这些文件 否则ORACLE将增加控制文件的大小并且在alter log中记录这一情况 如下所示
kccwnc: tring to expand controlfile section nnnn for Oracle Managed Files
如果无法扩展控制文件 则alter log中将出现以下信息
WARNING: Oracle Managed File filename is unknown to controlfile This is the result of limitation in control file size that could not keep all recovery area files
也就是不能满足备份的保留冗余策略来保存备份了
为了避免和降低这种情况的发生 我们可以采取以下措施
使用 K大小的块创建控制文件 如果想设置控制文件 K大小的BLOCK 我们必须首先把SYSTEM表空间设置成为大于或者等于控制文件使用的BLOCK SIZE 修改了控制文件BLOCK_SIZE后 必须重建控制文件
使用BACKUP RECOVERY AREA命令备份快速恢复区使得快速恢复区的文件成为可以删除的文件 或者减小备份保留时间或者减小备份保留冗余度维护控制文件中的RMAN备份存储库
交叉验证备份CROSESSCHECK BACKUPS
验证备份存储库中的备份记录和磁盘(或者磁带)上的备份文件是否一致 如果用磁盘保存备份 CROSSCHECK检查文件头是否有效 如果用磁带保存备份 CROSSCHECK检查文件是否存在 备份文件的三种可能的状态为 AVAILABLE UNAVAILABLE and EXPIRED 我们可以用LIST命令查看或者直接查询V$BACKUP_FILES RC_DATAFILE_COPY RC_ARCHIVED_LOG等视图
给出几个CORSSCHECK示例命令
CROSSCHECK BACKUP; # checks backup sets proxy copies and image copies CROSSCHECK COPY OF DATABASE; CROSSCHECK BACKUPSET ; CROSSCHECK BACKUPPIECE TAG = nightly_backup ; CROSSCHECK CONTROLFILECOPY /tmp/control ctl ; CROSSCHECK DATAFILECOPY ; CROSSCHECK PROXY ;
交叉验证指定数据库文件的备份
# these CROSSCHECK mands use configured channels which means that they # always check the disk device If you configured an sbt channel then RMAN # checks the sbt device too CROSSCHECK BACKUP OF DATAFILE ora_home/oradata/trgt/system dbf PLETED AFTER SYSDATE ; CROSSCHECK BACKUP OF ARCHIVELOG ALL SPFILE;
删除备份
删除指定的备份
先用LIST命令找到备份唯一标识
LIST BACKUP OF DATABASE ARCHIVELOG ALL; # lists backups of db files and logs LIST COPY; # lists only image copies LIST BACKUP; # lists everything
删除指定的备份存储库记录和备份文件
DELETE BACKUPPIECE ; DELETE CONTROLFILECOPY /tmp/control ctl ; DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = ;
批量删除
DELETE BACKUP; # deletes all backups on disk and tape DELETE BACKUP OF TABLESPACE users DEVICE TYPE sbt; # delete only from tape DELETE COPY OF CONTROLFILE LIKE /tmp/% ; # LIKE specifies name of the copy DELETE NOPROMPT ARCHIVELOG ALL BACKED UP TIMES TO sbt; # backs up only if already backed up X to tape
删除无效备份
RMAN>CROSSCHECK BAKCUP; RMAN>DELETE EXPIRED BACKUP;
删除过期备份
RMAN>DELETE OBSOLETE;
如果没有指定其他参数RMAN默认按照保留冗余策略找到过期备份后执行删除 等效于
DELETE OBSOLETE REDUNDANCY = ;
删除过期备份也可以指定按照时间冗余策略来删除 例如
DELETE OBSOLETE RECOVERY WINDOW OF DAYS;
强制删除备份
如果没有执行CROSSCHECK 而磁盘上备份文件确实被删除了 我们执行删除备份的时候会从RMAN收到错误提示 如下
RMAN> delete backup tag TAG T ; 使用通道 ORA_DISK_ 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 AVAILABLE DISK D:\\ORACLE\\PRODUCT\\ \\FLASH_R ECOVERY_AREA\\ROME\\BACKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ VXZTH G_ BKP 是否确定要删除以上对象 (输入 YES 或 NO)? yes RMAN : 警告: 由于状态不匹配 所以不能删除 对象 (对于 DISK 通道) RMAN : 请用 CROSSCHECK 命令修正状态 RMAN : 不匹配对象的列表 RMAN : ========================== RMAN : 对象类型 文件名/句柄 RMAN : RMAN : Backup Piece D:\\ORACLE\\PRODUCT\\ \\FLASH_RECOVERY_AREA\\ROME\\BA CKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ VXZTH G_ BKP 我们可以用带有force参数的选项来强制删除备份 RMAN> delete force backup tag TAG T ; 使用通道 ORA_DISK_ 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 AVAILABLE DISK D:\\ORACLE\\PRODUCT\\ \\FLASH_R ECOVERY_AREA\\ROME\\BACKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ VXZTH G_ BKP 是否确定要删除以上对象 (输入 YES 或 NO)? yes 已删除备份段 备份段 handle=D:\\ORACLE\\PRODUCT\\ \\FLASH_RECOVERY_AREA\\ROME\\BACKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ VXZTH G_ BKP recid= stamp= 对象已删除
多个通道执行交叉验证和删除备份
在执行CROSSCHECK和DELETE之前可以配置或者手工分配多个通道 RMAN将搜索和删除在不同类型的设备上执行的备份文件 适用以下情况
用一个命令交叉验证或者删除在不同设备上备份的文件(例如磁带和磁盘上都有备份文件)
交叉验证或者删除工作在RAC环境下备份到每个节点上的备份文件
RMAN如何在多通道下执行CROSSCHECK和DELETE
举个例子 我们的备份文件全部在磁盘上 磁带上没有备份文件 而我们给出了如下备份脚本 那么RMAN将会执行前边的两个磁盘CROSSCHECK而不会执行第三条磁带CROSSCHECK
RUN ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK CONNECT SYS/oracle@ node ; AlLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK CONNECT SYS/oracle@node ; ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE sbt; CROSSCHECK BACKUP OF DATABASE;
注意 如果RMAN标记为EXPIRED状态的备份文件被修复后 我们执行DELETE EXPIRED BACKUP 命令后将会收到如下提示
RMAN> delete expired backup; 使用通道 ORA_DISK_ 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 EXPIRED DISK D:\\ORACLE\\PRODUCT\\ \\FLASH_RECOVERY_AREA\\ROME\\BACKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ WF CYG _ BKP 是否确定要删除以上对象 (输入 YES 或 NO)? yes RMAN : 警告: 由于状态不匹配 所以不能删除 对象 (对于 DISK 通道) RMAN : 请用 CROSSCHECK 命令修正状态 RMAN : 不匹配对象的列表 RMAN : ========================== RMAN : 对象类型 文件名/句柄 RMAN : RMAN : Backup Piece D:\\ORACLE\\PRODUCT\\ \\FLASH_RECOVERY_AREA\\ROME\\BACKUPSET\\ _ _ \\O _MF_NNNDF_TAG T _ WF CYG _ BKP
一个命令交叉验证磁盘和磁带备份的例子
CONFIGURE DEVICE TYPE sbt PARALLELISM ; CONFIGURE DEFAULT DEVICE TYPE to sbt; CROSSCHECK BACKUP OF DATABASE;
示例输出文件如下
allocated channel: ORA_SBT_TAPE_ channel ORA_SBT_TAPE_ : sid= devtype=SBT_TAPE channel ORA_SBT_TAPE_ : WARNING: Oracle Test Disk API using channel ORA_DISK_ crosschecked backup piece: found to be AVAILABLE backup piece handle=/oracle/dbs/ c esv _ _ recid= stamp= crosschecked backup piece: found to be AVAILABLE backup piece handle=/oracle/dbs/c recid= stamp= crosschecked backup piece: found to be AVAILABLE backup piece handle= c erb _ _ recid= stamp= crosschecked backup piece: found to be AVAILABLE backup piece handle= c erba_ _ recid= stamp= crosschecked backup piece: found to be AVAILABLE backup piece handle= c erce_ _ recid= stamp= crosschecked backup piece: found to be AVAILABLE backup piece handle=c recid= stamp=
如果没有配置磁带备份设备 也可以手工执行分配通道
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE sbt; CROSSCHECK BACKUP OF DATABASE;
RAC环境下交叉验证的例子
CONFIGURE DEVICE TYPE DISK PARALLELISM ; CONFIGURE CHANNEL DEVICE TYPE DISK CONNECT SYS/oracle@node_ ; CONFIGURE CHANNEL DEVICE TYPE DISK CONNECT SYS/oracle@node_ ; CROSSCHECK BACKUP;
一个删除磁带和磁盘备份的例子
CONFIGURE DEVICE TYPE sbt PARALLELISM ; CONFIGURE DEFAULT DEVICE TYPE TO sbt; DELETE BACKUPSET;
示例输出文件如下
using channel ORA_SBT_TAPE_ using channel ORA_DISK_ List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name AVAILABLE SBT_TAPE c erb _ _ UNAVAILABLE SBT_TAPE c erba_ _ AVAILABLE SBT_TAPE c erce_ _ AVAILABLE SBT_TAPE c AVAILABLE DISK /oracle/dbs/ c esv _ _ AVAILABLE DISK /oracle/dbs/c Do you really want to delete the above objects (enter YES or NO)? y deleted backup piece backup piece handle=/oracle/dbs/ c esv _ _ recid= stamp= deleted backup piece backup piece handle=/oracle/dbs/c recid= stamp= deleted backup piece backup piece handle= c erb _ _ recid= stamp= deleted backup piece backup piece handle= c erba_ _ recid= stamp= deleted backup piece backup piece handle= c erce_ _ recid= stamp= deleted backup piece backup piece handle=c recid= stamp=
释放多个通道 如下命令可以释放所有通道
RELEASE CHANNEL;
使用RMAN删除数据库
RMAN连接到处于MOUNT状态的TARGET数据库 就可以删除TARGET数据库 而不需要连接恢复目录 如果RMAN同时连接到恢复目录 并且指定INCLUDE COPIES AND BACKUPS参数 RMAN将删除恢复目录中的备份记录
生成备份文件目录
RMAN>catalog start with d:\\oracle\\product\\ \\flash_recovery_area ; RMAN> DELETE BACKUPSET; # deletes all backups RMAN> DELETE COPY; # delete all image copies (including archived logs) RMAN> DROP DATABASE; # delete all database files and unregister the database
修改备份记录的状态
CHANGE DATAFILECOPY /tmp/control ctl UNAVAILABLE; CHANGE COPY OF ARCHIVELOG SEQUENCE BEEEN AND UNAVAILABLE; CHANGE BACKUPSET UNAVAILABLE; CHANGE BACKUP OF SPFILE TAG TAG T UNAVAILABLE; CHANGE DATAFILECOPY /tmp/system dbf AVAILABLE; CHANGE BACKUPSET AVAILABLE; CHANGE BACKUP OF SPFILE TAG TAG T AVAILABLE;
修改备份记录状态使得保留冗余策略外的备份不被删除
我们可以在执行备份的时候直接指定BACKUP……KEEP来把备份文件标记为长期备份 有一点需要注意 如果使用恢复目录来存储备份记录的话 我们应该执行BACKUP……KEEP FOREVER
我们也可以用CHANGE命令来把一个备份标记为长期备份
CHANGE BACKUPSET KEEP; CHANGE BACKUPSET NOKEEP; CHANGE DATAFILECOPY /tmp/system dbf KEEP UNTIL SYSDATE+ ;
维护存储库目录
如果我们的备份文件中一部分是其他RMAN程序产生的 而我们的RMAN存储库中没有这些备份的记录 我们可以用CATALOG命令来维护我们的备份记录
以下情况需要维护存储库的备份记录
我们利用其他命令(如系统命令等)产生了备份文件 想把这些文件加入RMAN存储库
利用备份控制文件执行恢复并且在恢复过程中改变了归档日志的路径或者格式 存储库中没有恢复需要的归档日志文件 我们必须把这些日志加入到RAMN存储库
如果我们执行数据文件拷贝备份 没有LEVEL 备份而我们又想直接可以执行LEVEL 的增量备份 我们可以通过增加RMAN存储库的目录来实现 虽然不建议这么做 但是的确可以
数据库版本升级 开始使用RMAN 我们可以把以前的热备份文件等加入到RMAN存储库
给几个例子 维护用户备份文件到存储库目录
SQL> ALTER TABLESPACE users BEGIN BACKUP; % cp $ORACLE_HOME/oradata/trgt/users dbf /tmp/users dbf; SQL> ALTER TABLESPACE users END BACKUP; RMAN> CATALOG DATAFILECOPY /tmp/users dbf ; CATALOG BACKUPPIECE /disk / dtq d_ _ /disk / bdtqdou_ _ ;
维护备份集到存储库目录
CATALOG BACKUPPIECE /disk / dtq d_ _ /disk / bdtqdou_ _ ;
备份集文件加入到存储库目录后可以在如下系统视图查找
V$BACKUP_PIECE V$BACKUP_SET V$BACKUP_DATAFILE V$BACKUP_REDOLOG and V$BACKUP_SPFILE
维护所有备份文件到存储库目录
RMAN> CATALOG RECOVERY AREA; # catalog all files in the recovery area RMAN> CATALOG START WITH +disk ; # catalog all files from an ASM disk group RMAN> CATALOG START WITH /fs /datafiles/ ; # catalog all files in directory
从存储库目录删除记录
CHANGE ARCHIVELOG UNCATALOG CHANGE CONTROLFILECOPY /tmp/control ctl UNCATALOG; CHANGE DATAFILECOPY /tmp/system dbf UNCATALOG;
cha138/Article/program/Oracle/201311/18820相关参考
OracleRMAN物理备份技术之恢复案例五 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 恢复
OracleRMAN物理备份技术之恢复案例四 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 恢复
OracleRMAN物理备份技术之RMAN配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! R
OracleRMAN备份遇错ORA-27041 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!今天给
切换服务器归档模式如果已经是归档模式可跳过此步 %sqlplus/nolog(启动sqlplus) SQL>conn/assysdba(以DBA身份连接数据库) SQL>shut
从网络上找到rman命令集合 一list常用命令总结备忘 list命令列出控制文件RMAN恢复目录中备份信息是我们对所有可见的数据库备份文件的一个最直观的了解的方法 listincarnat
Oracle数据库备份与恢复之四:RMAN(备份与恢复管理器) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
备份和恢复是数据库管理员维护数据库安全性和完整性的重要操作虽然各种数据库系统本身提供了备份和恢复数据库的功能但是操作步骤比较烦琐本文以SQLServer为例总结了常用的几种备份和恢复数据库的方法分
数据泵是Oracle最近几个版本中才引进的一项技术其主要用来对数据库进行逻辑备份与恢复其主要包括expdp与imppd两个实用程序数据库传统的备份基本上都是物理备份包括联机备份与脱机备份等等但是数
景观水体净化的物理方法有机械过滤、疏浚底泥、光调节、水位调节、高压放电、超声波等方法。这些方法效果明显,但不易普及,难以大规模实施。在一定周期内清除湖底沉积物及抑制泥中氮、磷的释放是控制内负荷的有效途