Oracle 8i引进了恢复管理(RMAN),首次实现了真正的递增备份。在RMAN之前,数据库输出也能够递增进行,但一旦某个表的任何一块发生改变,整个表都需要重写。RMAN递增备份则仅需在给定的数据文件中重写被修改的部分,由此可大大节约了空间。
然而在版本10g之前,递增备份需要对整个数据文件进行扫描以确定哪些数据块发生了改变。对于大型数据库而言,尽管节约了空间,但其时间复杂度并不比完全备份好很多。
改变跟踪技术(有时也称块改变跟踪技术)通过在一个独立的跟踪文件中记录发生改变的数据块以解决上述问题,这些改变由一个后台进程实时地写入文件。
最初的递增备份仍需要进行一次完整的扫描。其后,备份时通过参考改变跟踪文件,可以直接访问需要备份的块。
为了创建并激活改变跟踪文件,首先确保数据库是打开或可被访问,然后运行如下数据库改变(ALTER DATABASE)命令:
ALTER DATABASE
ENABLE BLOCK CHANGE TRACKING
USING FILE <pathname>;
为改变跟踪文件在操作系统中的存储位置。(如果你激活了Oracle管理文件,则USING从句是可选的,改变跟踪文件将创建于DB_CREATE_FILE_DEST目录下。)
无论该文件的路径位于哪个位置,其最初大小都是10MB,且根据需要每次增加10MB。
使用改变跟踪技术将影响系统性能,因此除非你需要使用RMAN递增备份功能,否则你最好将其设为不可用。