当对联机的表空间和数据库执行用户管理的备份,操作系统工具可以在DBWR更新数据文件时备份数据文件。
工具可能会读取被更新了一半的数据块,因此被拷贝到备份介质的块一半被更新了,一半是旧的数据。
这种逻辑损坏类型称为断裂块,即一个块与SCN不一致。
如果后面需要还原这个备份,而且这个备份需要恢复,则因为块不可用恢复会失败。
当执行用户管理的的联机备份时,必须使用ALTER DATABASE BEGIN BACKUP或ALTER TABLESPACE BEGIN BACKUP命令使数据文件处于备份模式中。
当表空间处于备份模式时,则在修改一个块之前,数据库会将一个块的之前的镜像写到redo流中。
数据库也会在联机重做日志中记录数据库的改变。备份模式也会冻结数据文件检查点,直到文件退出备份模式。
Oracle数据库实施这种数据保护是因为它不能保证第3方的备份工具在拷贝数据块之前拷贝文件头。
与用户管理的工具不同,RMAN不需要额外的记录和备份模式,因为它知道数据块的结构。RMAN保证不会备份断裂块。
在RMAN备份过程中,数据库服务器会话会读取每个数据块,通过比较块头和块尾来检查是否为断裂块。
如果块是断裂的,则会话会重新读这个块,如果发现相同的断裂,则块被认为是持久损坏了。
RMAN也不需要冻结数据文件头检查点,因为它知道块被读取的顺序,这使得RMAN能够为文件捕获一个已知的好的检查点。来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1083143/ ,如需转载,请注明出处,否则将追究法律责任。