映像拷贝是一个数据文件,归档redo日志文件或控制文件的精确拷贝。
映像拷贝不是存储在RMAN专用的格式中。它们等同于使用操作系统命令来拷贝文件的结果。RMAN可以在RMAN还原和恢复过程中使用映像拷贝,也可以使用在非RMAN的还原和恢复技术创建的映像拷贝。
1.RMAN创建的映像拷贝
运行RMAN的 BACKUP AS COPY命令创建映像拷贝和把它们记录在RMAN恢复目录中。
可替代地,可以配置缺省的磁盘备份类型为映像拷贝。一个数据库服务器会话会用来创建拷贝。服务器会话也会执行比如验证文件中的块和在RMAN恢复目录中记录映像拷贝的操作。
如同备份片一样,FORMAT变量用来指定映像拷贝的名称。映像拷贝的缺省格式%U,与备份片定义的不同。以下示例显示数据文件2的通过%U产生名称:
d1/oracle/work/orcva/RDBMS/datafile/o1_mf_sysaux_2qylngm3_.dbf
当创建映像拷贝时,也可以使用BACKUP命令的DB_FILE_NAME_CONVERT参数来命令输出的拷贝。这个参数和DB_FILE_NAME_CONVERT初始化参数的作用相同。提供成对的文件名称前缀来更改输出文件的名称。如果文件没有被任何配对转换,那么RMAN使用FORMAT规范。如果没有指定FOMRAT,那么RMAN使用缺省的格式%U。
以下示例拷贝前缀为/maindisk/oradata/users的数据文件为前缀为/backups/users_ts的映像拷贝。
BACKUP AS COPY
DB_FILE_NAME_CONVERT (‘/maindisk/oradata/users’,
‘/backups/users_ts’)
TABLESPACE users;
如果运行RESTORE命令,那么缺省情况下RMAN通过拷贝映像拷贝备份到它原始的位置来还原数据文件或控制文件。映像拷贝更优于备份集,因为读取整个备份集来搜索需要还原的文件会导致额外的开销。
如果必须还原和恢复当前的数据文件和在磁盘上有可用的映像拷贝,那么不需要让RMAN拷贝映像拷贝回它的旧位置。可替代地,可以使用当前位置的映像拷贝作为需要还原的数据文件的置换。“Performing Complete Recovery After Switching to a Copy”章节阐述了如果执行这个任务。
2.用户管理的映像拷贝
RMAN可以使用在RMAN之外的途径创建的映像拷贝,例如原生的操作系统文件拷贝命令或第三方工具在磁盘上留下文件的映像拷贝。这种拷贝类型称为用户管理的备份或操作系统备份。
可以使用CATALOG命令来检查存在的映像拷贝,输入它的元数据到RMAN恢复目录。然而 ,CATALOG命令不会做以下事情:
1) 读取数据文件拷贝的所有块来确保没有损坏
2) 保证映像拷贝是在备份模式下正确制作的。
在登记(catalog)这些文件后,可以使用RESTORE或SWITCH命令来像使用RMAN生成的映像拷贝一样使用它们。
有一些站点存储数据文件在镜像的磁盘卷上,它允许通过拆散镜像创建映像拷贝。在拆散镜像后,可以通知RMAN存在新的用户管理的拷贝,让它符合成为一个备份的条件。当拷贝不再可用时,使用命令CHANGE … UNCATALOG来通知RMAN。
来源:《Oracle Database Backup and Recovery User’s Guide,19c》