详解Oracle中的隐含参数_disable_logging

之前看到过一篇文章是介绍Oracle的一个内部隐含参数_disable_logging,最近又看到有朋友论述这个参数,所以下面这篇文章就来给大家介绍下关于Oracle中隐含参数_disable_logging的相关资料,需要的朋友可以参考下。

注意:

Oracle的隐含参数只应该在测试环境或者在Oracle Support的支持下使用。

从Oracle的系统表中,我们知道Oracle存在一个隐含参数_disable_logging可以用于禁用日志生成,这个参数显然只能用于测试目的(可以极大提高Benchmark测试的性能),禁止日志生成必然导致事务的不可恢复性,而且会导致日志文件损坏。

select ksppinm,ksppdesc from x$ksppi where ksppinm like ‘%logging’;

KSPPINM KSPPDESC


_disable_logging Disable logging

因为特殊的需要,对这个参数进行了一点简单测试:

1.设置参数

SQL*Plus: Release 9.2.0.4.0 – Production on Wed Oct 19 11:01:19 2005

Copyright (c) 1982,2002,Oracle Corporation. All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 – Production
With the Partitioning option
JServer Release 9.2.0.4.0 – Production

SQL> alter system set “_disable_logging”=true scope=both;

System altered.

2.事务测试

create table t as select * from dba_users;

Table created.

SQL> select count(*) from t;

COUNT(*)

12

SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 97588504 bytes
Fixed Size 451864 bytes
Variable Size 33554432 bytes
Database Buffers 62914560 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
SQL> select count() from t;
select count(
) from t

  • ERROR at line 1:
    ORA-00942: table or view does not exist

    由于未产生相应日志,数据库crash或shutdown abort之后,上一次成功完成的检查点之后变化的数据将无法恢复。

    3.观察alert文件

    从日志中我们可以看到在instance recovery中,没有数据被恢复,只有成功完成的上次检查点之前数据可以被获取,之后数据都将丢失。

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

作者: dawei

【声明】:永州站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

为您推荐

联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部