2008年(239)
分类: Oracle
2008-06-17 23:00:56
ORACLE系统使用日志文件组存放数据库日志。之所以被称为组,是因为每个日志文件组中可以包含多个日志文件,这些日志文件被称为组的成员。一个日志文件组中的所有成员具有同样的空间尺寸,包含相同的日志信息。由于一个组中包含多个成员,因此即使一个成员文件遭到破坏,该日志文件组仍旧可以被使用。下列配置参数和数据库日志有关:
LOGFILE:设定日志文件组及其成员的存放位置和空间大小。
MAXLOGFILES:设定系统可使用日志文件组的最大个数。
MAXLOGMEMBERS:设定每个日志文件组中所包含成员的最大个数。
LOG_ARCHIVE_START:设定是否自动进行日志文件组的归档。
LOG_ARCHIVE_MAX_PROCESSES:设定用来归档日志文件组的最大进程个数。
LOG_ARCHIVE_DEST:设定被归档日志文件组的存放位置。
LOG_ARCHIVE_FORMAT:设定被归档日志文件组的命名格式。
1. 不生成数据库日志
在特殊情况下,要提高数据库系统的处理速度,可以使事务的更新处理不产生日志信息。在ORACLE系统中,不能对整个数据库进行设置,使针对该数据库中所有表的更新处理都不产生日志信息。我们可以改变表、索引、实体化视图的属性,使它们处于不记日志模式,从而对这些对象的更新操作,都不会产生日志信息。如果一个表空间的属性被改变为不记日志模式,则在该表空间中新创建的对象,都拥有不记日志的属性。
另外,向表中插入数据时,使用SQL *LOADER工具的直接路径装入,可以减少日志信息的生成。要删除一个表中的所有记录数据,可以首先移走整个表,然后重新创建该表。更好的方法是使用truncate table命令,该命令删除表中的所有记录,不会生成日志信息,在保留表结构的同时回收表所拥有的磁盘空间。
2. 日志文件的归档
ORACLE数据库系统支持归档日志和非归档日志两种模式,确省情况下,数据库处于非归档日志模式。要使数据库处于日志归档模式,可以使用命令:alter database archivelog改变。
在归档日志模式下,系统循环地使用所有的日志文件组。对日志文件组的归档,可以采用自动和手工两种方式。
(1)自动归档。设置数据库参数LOG_ARCHIVE_START=TRUE。
(2)手工归档。设置数据库参数LOG_ARCHIVE_START=FALSE,定期手工归档日志文件组。
对日志文件组自动或者手工归档方式的具体实现,可参看第9章。
3. 长事务的处理
ORACLE系统日志文件组的个数以及组中成员的空间尺寸,都不能够自动扩充。因此无法保证系统总是有足够日志空间,使长事务顺利完成。管理员可以根据需要,建立更多的日志文件组,使组中成员有更大的磁盘空间。
回退表空间在更新事务的处理过程中,存放数据被更新前的映像。事务处理的数据量越大,需要的空间就越多。因此,管理员在处理长事务时,还要保证回退表空间有足够可用空间。