4.3.6 ARCH进程
ARCH进程的功能是对重做日志文件进行归档。
数据库的重做日志记录在重做日志文件中。在一个数据库中往往需要若干组重做日志文件,这些文件是循环使用的。当一组重做日志文件被写满时,数据库服务器自动进行日志切换,重做日志接着被写入下一组重做日志文件。当数据库服务器再一次使用一组重做日志文件时,文件中以前的内容将被覆盖,而且永远无法恢复。
随着数据库服务器的运行,重做日志文件不断被覆盖。可以想象,如果系统发生故障,造成数据丢失,这时候要对数据进行恢复。数据恢复需要用到对数据库所进行的备份,以及重做日志。如果重做日志缺失,那么最后一段时间的数据将无法恢复。为了防止这种情况的发生,Oracle提供了一种归档日志模式。在这种模式下,数据库服务器将自动对重做日志文件进行归档。如果数据库处于归档日志模式下,ARCH进程将自动启动,当一个重做日志文件被写满时,要进行日志切换,ARCH进程将对刚刚写满的重做日志文件进行归档,将重做日志文件的内容保存在归档日志文件中。
有了归档日志文件,数据库管理员再也不用担心重做日志文件被覆盖的事情发生了。由于日志归档是自动进行的,所以数据库服务器可以顺利地进行日志切换,无需人工干预。
如果数据库处于非归档日志模式下,重做日志文件是不会被归档的。只有数据库处于归档日志模式下,并且启动了ARCH进程,数据库服务器才会自动对重做日志进行归档。在一个实例中可以启动多个ARCH进程,默认情况只启动4个。
与ARCH进程有关的初始化参数有以下几个:
·LOG_ARCHIVE_MAX_PROCESSES:指定可以启动的ARCH的最大数目。
·LOG_ARCHIVE_FORMAT:指定归档日志文件的名称。
·LOG_ARCHIVE_DEST_n:指定归档日志文件的存储路径,其中n的取值范围为1~31。
·LOG_ARCHIVE_DEST_STATE_n:指定对应的归档路径是否可用。
如果数据库服务器写重做日志文件的速度比日志归档的速度要快,那么将发生数据库服务器被阻塞的现象。所以在服务器写重做日志的操作非常频繁的情况下,可以启动多个ARCH进程,以加快日志归档的速度。