oracle热备份就是一般通常意义上常说的hot backup,热备份是将表空间置于备份模式,且将相关的数据文件备份到其他位置(磁盘或者磁带)。用户不必知道正在运行的是什么,并像往常一样运行(也许速度会有小的降低,但不会有太大的影响。热备份比冷备份要复杂,但从长远来看,这个差异通常是非常值得的
热备份与冷备份的区别
热备份与冷备份的区别是热备份允许在用户访问数据库的同时备份数据库,这意味着数据库必须要处于归档(archivelog)模式 ,至少在备份的时候要在归档模式。热备份与冷备份另外一个主要区别是:热备份需要用户以sysdba或者sysoper权限登陆服务器,而不是以root访问权限登陆。这意味着要么必须信任执行备份的用户,要么必须自己写脚本进行备份。
将表空间置于备份模式
在进行热备份时,必须使数据库或者表空间处于热备份模式,这会造成表空间备份的不一致,但是当应用重做日志和归档日志时,它能重建一致,并且用户可以继续使用应用程序或者查询、更新信息。这也表明将看到大量混乱的日志切换,在备份数据库过程中,会产生相当多的归档日志。为什么会产生混乱的日志切换呢,因为当数据库处于备份模式时,一般写入表空间中(这些表空间处在备份模式并且不是直接写入的)的信息在表空间退出热备份模式之后,必须在某处使用,很自然的,这就变成了重做日志和归档重做日志(这依赖于处在备份模式的时间长短)。这就是为什么必须处于归档模式的原因。
这些都表明作为一个数据库管理员要有两件事处理。第一,为了减少扩展日志所需的空间,必须考虑限制处在备份模式中的表空间的总时间或者把数据库做为一个整体;第二、需要在归档日志目录中建立足够的空间来解决额外的空间。
缩短备份的时间
缩短数据库在备份模式的时间,意味着不仅限制了增加备份模式的开销时间同时也限制了扩展空间所须的大小,缩短备份时间有很多 种方法,其中一个常用的有效方法就是利用类似只读表空间的oracle特性。如果表空间中的对象的数据从来都不会更改(如查询表)那么就把表空间设为只读。很多时候,我们出于习惯将这些表放如规则达到表空间。
估算空间
通常必须估算在磁盘上临时存储(在写到磁盘和从磁盘删除之间)的归档日志所需的存储空间,为此,首先需要查看警告日志来决定数据库日志平均切换的频率(事实上,为了安全起见,我以最大负载为单位)接着,查看备份归档日志的频率。这样就能得到在某时间短内日志切换的总数量。
如果打算不止一次备份数据库,就得为它创建脚本。在热备份模式下,备份数据库意味着数据库已经打开,这样就可以存储热备份脚本到数据库中。这个脚本可以为您的环境定制,并只能运行在unix、linux或者模拟unix的系统上面。但是要牢记,因为热备份脚本可以被所有拥有sysdba权限的用户执行,所以要保护该脚本的执行,