RMAN系列(四),RMAN备份(三)
p 命令的validate 参数可以实现这个功能。 如:
Backup validate database;
5.8 跳过脱机的,不可读取的或者只读的数据文件
有时候,数据库中的数据文件可能处于Online 以外的状态,如果数据文件是只读的,在备份数据库时可能不要每次都备份这些只读的数据文件。 如果数据文件是脱机的或者不可存取的,假如没有执行特别的操作来指示RMAN跳过这些缺少的数据文件,RMAN 备份操作就会失败。 因此需要使用skip 参数,使用该参数可以根据需要跳过脱机的,只读的或者不可存取的数据文件。 如:
Backup database skip readonly;
Backup database skip offline;
Backup database skip inaccessible;
Backup database skip readonly skip offline skip inaccessible;
Inaccessible 参数可以使Oracle 跳过不能读取的数据文件,这些文件没有实际地存在于磁盘上(如已删除或者转移位置),使用offline 参数可以跳过脱机的但仍存在的数据文件。 Skip readonly参数可以使Oracle 跳过只读的数据文件。 也可以使用configure 配置Oracle 不备份只读的表空间。
5.9 强制备份只读的数据文件
我们可以用configure 命令来配置Oracle 不备份没有发生变化的表空间。 但是如果要执行一个忽略这个配置的特定备份操作,可以用force 参数。
Backup database force;
5.10 基于上次备份时间来备份数据文件
Oracle允许用户在备份进程中指示只备份给定时间以来没有备份过的数据文件。 如果在数据库中添加了新的数据文件,或者只想备份给定天数内发生变化的数据文件,使用Oracle的这个功能就非常方便。
5.10.1 只备份添加的数据文件
假设在数据库上添加了4个新的数据文件,我们希望不备份整个数据库,而是备份这些新的数据文件。 我们除了只备份单个数据文件外,还有一种更简单的方法:使用backup 的net backed up 选项. 如:
Backup database not backed up;
5.10.2 备份指定时间周期内没有被备份的数据文件
我们可能需要在指定的时间备份指定的数据文件。 如重新启动一个失败的备份操作,使用since time 选项也是非常方便的。 如果备份操作失败,可以在排除这个故障后使用since time 选项来重新启动这个备份操作。如:
Backup database not backed up sine time='sysdate-2';
这时,rman 会备份最近2天内没有备份的数据文件。 注意的是,我们可以用NLS_DATE格式来表示时间,也可以使使用SQL 日期表达式来表示时间。
5.11 在备份操作期间检查逻辑讹误
在默认情况下,RMAN 会检查数据库数据块的逻辑讹误。 如果发现了任何讹误。备份就会失败,这是默认情况。 如果需要更多的错误检查,可以使用backup 命令的check logical 选项来配置备份操作执行逻辑讹误检查。 如:
Backup check logical database;
Backup validate check logical database;
在第一条命令中,rman 会在检查逻辑讹误的同时物理备份数据库。 第二条命令中,RMAN 只验证数据库数据块,它只是执行逻辑数据库验证操作,而不执行实际的数据库物理备份操作。 注意的是:如果要在给定的错误数内仍然继续执行备份操作,就需要先设置maxcorrupt 参数值。 如下所以,需要使用run 代码块来设置maxcorrupt 参数值:
Run {
Set maxcorrupt for datafile 1,2,3,4,5,6,7 to 10;
Backup validate check logical database;
}
5.12 在RMAN 复制设备上生成备份副本
有时,我们可能需要创建备份集片的多个副本。 这可以通过配置默认的生成,也可以使用copies 参数对某个备份进行配置来创建备份片的多个副本(还可以使用set backup copies 参数来完成这个功能)。 下面是一个使用copies 选项生成副本的示例:
Backup database copies=2;
我们可能配置两个不同的默认通道: 一个用于磁盘操作,一个用于磁带操作。使用device type 参数可以定义启动备份操作时要使用的自动通道设备。
Backup database device type disk;
Backup database device type disk;
5.13 备份控制文件
Include current controlfile 选项会创建当前控制文件的快照,并且会将这个快照控制文件放入使用backup 命令生成的每个备份集中。 如:
Backup database device type disk include current controlfile;
在默认情况下,如果备份数据文件,无论如何都会备份控制文件,因此,如果要执行表空间备份操作或者数据文件备份,使用include current controlfile 参数就非常方便。 如果配置了控制文件的自动备份操作,上面的命令还会将当前的控制文件存储在备份集中。 这样我们就有两个控制文件的副本。
六. Set 命令介绍
使用set 命令可以定义只应用于当前RMAN会话的设置。 Set 命令的设置不是永久的,根据实际需求,可以采用两种方式来使用set 命令。
在run 代码块外,我们可是执行下面的操作:
(1)使用set echo 命令在消息日志中显示RMAN 命令。
(2)使用set dbid 命令指定一个数据库的数据库标识符(database identifier: dbid)。
某些set 命令只能在run代码块的限定范围内使用,常见的有:
(1)set newname 命令:用于执行表空间时间点恢复(TSPITR)或者数据库复制操作。 该命令允许指定新的数据库数据文件名。 将数据库移动到新的系统中并且文件系统名不同时,我们可以使用这个命令。使用set newname 命令时还需要使用switch 命令。
(2)Set maxcorrupt for datafile: 使用该命令可以定义RMAN操作失败前锁允许的数据块讹误的最大数据。
(3)Set archivelog destination: 使用该命令可以修改存储归档的重做日志的archive_log_dest_1 目标。
(4)Set 命令和until 子句: 使用set命令和set 命令的until 子句可以定义数据库时间点恢复操作锁使用的具体时间点,SCN 或日志序列号。
(5)Set backup copies命令: 使用该命令可以定义为备份集中的每个备份片应当创建的副本数。
(6)Set command id: 使用该命令可以关联给定的服务器会话和给定的通道。
(7)Set controlfile autoback forma