用改变跟踪技术加速Oracle递增备份

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递增备份功能,否则你最好将其设为不可用。

时间: 2025-01-30 09:42:43

用改变跟踪技术加速Oracle递增备份的相关文章

Oracle增量备份和快速备份(块改变跟踪Block Change Tracking)

Oracle增量备份和快速备份(块改变跟踪Block Change Tracking) 下面小麦苗给出全库备份的脚本: 点击(此处)折叠或打开 [oracle@rhel6lhr ~]$ crontab -l 2 12 * * 1 /home/oracle/lhr/rman/rman_backup_full.sh [oracle@rhel6lhr ~]$ more /home/oracle/lhr/rman/rman_backup_full.sh export ORACLE_SID=orclasm

Oracle数据库备份策略的相关概念及使用

这篇论坛文章主要介绍了Oracle数据库备份策略的相关概念及使用中的注意事项,详细内容请大家参考下文 一.了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片.主板电路.内存.电源等任何一项不能正常工作,都会导致计算机系统不能正常工作.当然,这些损坏可以修复,不会导致应用和数据的损坏.但是,如果计算机的硬盘损坏,将会导致数据丢失,此时必须用备份恢复数据. 其实,在我们的现实

VMware 虚拟化编程(10) — VMware 数据块修改跟踪技术 CBT

目录 目录 前文列表 数据块修改跟踪技术 CBT 为虚拟机开启 CBT CBT 修改数据块偏移量获取函数 QueryChangedDiskAreas changeId 一个 QueryChangedDiskAreas 的 DEMO 应用 QueryChangedDiskAreas 设计的增量差异备份算法 前文列表 VMware 虚拟化编程(1) - VMDK/VDDK/VixDiskLib/VADP 概念简析 VMware 虚拟化编程(2) - 虚拟磁盘文件类型详解 VMware 虚拟化编程(3

Oracle数据仓库备份的五个方案分析

数据仓库环境,ORACLE RAC,100T数据,每日归档那个量5T(对于不需要产生备份的数据,已经采用了nologging方式,以减少归档数量),如何制定备份和恢复方案? 方案一:DataGuard DataGuard是性价比最高的备份和容灾方案,但是当归档超过一定规模之后,DG的恢复就成为了瓶颈,每天产生的归档无法及时恢复完,我们也尝试过很多调优的方法,包括并行恢复,都无法解决,恢复的瓶颈不在存储的吞吐量,而在于standby的恢复方式,因为恢复的过程就是应用归档文件,RAC各个节点产生的归

Oracle 无备份情况恢复ocr和olr

Oracle 无备份情况恢复ocr和olr  Oracle 11.2 GI中OLR损坏的修复方法  一.先关闭GI,命令不再贴出来了,参见: http://blog.csdn.net/msdnchina/article/details/49402299 二.模拟OLR损坏 [root@hostb cdata]# ls -lrt total 2884 drwxr-xr-x 2 grid oinstall 4096 Oct 30 13:21 hostb drwxr-xr-x 2 grid oinst

Oracle数据库备份技巧

  利用下面的列出的技巧来确保你不会在每周一次的数据库备份过程中忘记关键步骤. 每周一次备份主数据库.如果你创建.修改或者停止一个数据库,添加新的SQL Server消息,添加或者停止连接服务器,或者添加记录设备,那就进行手工备份. 每天备份一次msdb数据库.它一般非常小,但很重要,因为它包含了所有的SQL Server工作.操作和计划任务. 只有当你修改它时,才有必要备份模型数据库. 用SQL Server Agent来安排你的备份工作的时间表. 如果在你的生产(production)环境中

oracle的备份知识

1.Oracle中的数据块大小通常是OS块大小的整数倍,在用系统命令直接复制数据文件到备份介质的过程中,数据库一直可用的状态,oracle数据块可能在不断的被修改,被读写,使用操作系统命令复制数据文件时,是根据操作系统块大小进行copy的,也就是说复制一个操作系统块的时候,首先锁定这个块,复制完成以后,解锁这个块,这样这个块在复制前和复制后是一致的.但是对于一个Oracle数据库来说,一个块要分成几次进行复制,有可能在复制一个操作系统数据块的时候,另外一个操作系统数据块被改变了,导致oracle

Oracle自动备份及自动备份步骤_oracle

数据是应用的核心部分,程序坏了换台机器重新发布就可以,但数据一旦丢失,造成的损失将不可挽回,程序发布到生产后,数据的备份便显得尤为重要,由于不一定所有的服务均有资金完成高级的备份如RAC和DG,在我们只有一台数据库服务器的,暂时采取最简单的备份策略,export出dmp进行保存. 一.备份脚本 1.初始化变量,记录开始日志 #变量 sysname=填写自己的系统名称 syspath=/home/oracle/databak/$sysname v_date=$(date '+%Y%m%d%H%M%

linux下oracle自动备份脚本

linux下oracle自动备份脚本  vi /home/oracle/backup.sh   //编写脚本 以下为脚本内容 time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间 su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本 cd /home/oracle tar zcv