联机备份(热备份)可以对正以archivelog方式运行的任何数据库进行联机备份,在此方法中,将归档联机重做日志,建立数据库内的所有事务处理的全部日志。。
oracle以循环方式写联机重做日志。在写满第一个日志文件后开始写第二个、第三个直到写满为止,一旦最后一个联机重做日志也写满,LGWR(log writer)后台进程将开始重写第一个重做日志文件的内容。
当oracle以archivelog方式运行时,后台进程在开始重写每个日志文件前对其做一个拷贝,这些归档重做日志文件通常写到一个磁盘设备中。
可以在数据库打开时执行数据库的文件系统备份,只要该数据库正在以archivelog方式运行即可,联机备份要将每个表空间设置为备份状态,备份其数据文件,然后将表空间恢复到他的正常状态
要注意的是当使用oracle的RMAN实用程序时,不必将每个表空间都设置为备份状态。该程序会自动使表空间进行或离开备份状态。
数据库可以从联机备份中完全恢复,并且可以通过归档重做日志回退到任意一个时刻,当再打开数据库时,数据库中在该时刻已经提交的事务处理都将恢复,并且任何未提交的事务处理都将被回退。
当打开数据库时,将备份一下文件:
1)所有数据文件
2)所有归档重做日志文件
3)一个控制文件(通过 alter database命令)
联机备份过程是非常有用的,首先,他提供了完全的时间点的恢复,不以archivelog方式运行的数据库只能恢复到备份发生的时刻,其次,他允许数据库在备份过程中保持打开,因此,即使由于用户的需要不能关闭数据库也仍然能进行文件系统备份。。
1.开始
为了利用archivelog的功能,数据库必须首先处于archivelog方式,以下程序清单说明了以archivelog方式设置数据库的步骤。执行sqlplus(名称为mydb)。。。
connect system/manager as sysdba
startup mount mydb
alter database archivelog
alter database open
为了将数据库该会到noarchivelog方式,可在关闭数据库后使用下面这组命令
connect system/manager as sysdba
startup mount mydb
alter database noarchivelog
alter database open
处于archivelog方式的数据库将一直保持此状态。直到将其设置为noarchivelog方式为止。
归档重做日志文件的位置由数据库的参数文件的设定值确定,
9i中参数设定样例: