详解Oracle中的隐含参数_disable_logging

 更新时间:2017年02月28日 08:33:47   作者:eygle  
之前看到过一篇文章是介绍Oracle的一个内部隐含参数_disable_logging,最近又看到有朋友论述这个参数,所以下面这篇文章就来给大家介绍下关于Oracle中隐含参数_disable_logging的相关资料,需要的朋友可以参考下。

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

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

SQL> select ksppinm,ksppdesc from x$ksppi where ksppinm like '%logging';

KSPPINM    KSPPDESC
-------------------- ------------------------------
_disable_logging  Disable logging

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

1.设置参数

[oracle@jumper bdump]$ sqlplus "/ as sysdba"

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.事务测试

SQL> 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中,没有数据被恢复,只有成功完成的上次检查点之前数据可以被获取,之后数据都将丢失。

Wed Oct 19 20:38:38 2005
Beginning crash recovery of 1 threads
Wed Oct 19 20:38:38 2005
Started first pass scan
Wed Oct 19 20:38:39 2005
Completed first pass scan
 0 redo blocks read, 0 data blocks need recovery
Wed Oct 19 20:38:39 2005
Started recovery at
 Thread 1: logseq 2, block 201, scn 0.897632464
Recovery of Online Redo Log: Thread 1 Group 1 Seq 2 Reading mem 0
 Mem# 0 errs 0: /opt/oracle/oradata/conner/redo01.log
Wed Oct 19 20:38:39 2005
Completed redo application
Wed Oct 19 20:38:39 2005
Ended recovery at
 Thread 1: logseq 2, block 201, scn 0.897652465
 0 data blocks read, 0 data blocks written, 0 redo blocks read
Crash recovery completed successfully

总结

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

相关文章

  • 对于oracle对session进行跟踪的分析

    对于oracle对session进行跟踪的分析

    这篇文章主要介绍了对于oracle对session进行跟踪的分析,涉及判断SQL性能优劣的信息等内容,需要的朋友可以参考下。
    2017-09-09
  • Oracle数据库丢失表排查思路实战记录

    Oracle数据库丢失表排查思路实战记录

    相信大家无论是开发、测试还是运维过程中,都可能会因为误操作、连错数据库、用错用户、语句条件有误等原因,导致错误删除、错误更新等问题,这篇文章主要给大家介绍了关于Oracle数据库丢失表排查思路的相关资料,需要的朋友可以参考下
    2022-06-06
  • ORACLE实现字段自增示例说明

    ORACLE实现字段自增示例说明

    如何实现oracle中字段的自增,下面用一个例子来说明,有此需求的各位朋友可以参考下
    2013-11-11
  • Oracle用户连续登录失败次数限制如何取消

    Oracle用户连续登录失败次数限制如何取消

    三步骤轻松实现Oracle取消用户连续登录失败次数限制,用户连续登录失败次数最大限制时,Oracle就会锁定该用户,如何破解这个限制,下面为大家介绍,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Oracle工具PL/SQL的基本语法

    Oracle工具PL/SQL的基本语法

    这篇文章主要介绍了Oracle工具PL/SQL的基本语法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-12-12
  • 登录oracle数据库时密码忘记的解决方法

    登录oracle数据库时密码忘记的解决方法

    登录本地oracle数据库时,忘记密码了,这种情况时有发生,下面有个不错的解决方法,希望对大家有所帮助
    2014-01-01
  • oracle与gbase8s迁移数据类型对照以及举例说明

    oracle与gbase8s迁移数据类型对照以及举例说明

    gbase8s是一个高性能的分布式关系型数据库,下面这篇文章主要给大家介绍了关于oracle与gbase8s迁移数据类型对照以及举例说明的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • oracle 数据库学习 基本结构介绍

    oracle 数据库学习 基本结构介绍

    普及一下oracle的基础知识,总结一下,oracle 是由实例和数据库组成
    2012-11-11
  • Oracle用decode函数或CASE-WHEN实现自定义排序

    Oracle用decode函数或CASE-WHEN实现自定义排序

    这篇文章主要介绍了Oracle用decode函数或CASE-WHEN实现自定义排序功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Oracle压缩表空间的基本步骤

    Oracle压缩表空间的基本步骤

    这篇文章主要介绍了Oracle怎么压缩表空间,压缩表空间可能需要一些时间,具体取决于表空间的大小和数据库的负载,因此,在执行此操作之前,请确保已备份数据库以防万一,需要的朋友可以参考下
    2023-06-06

最新评论