Oracle数据库LOGGING&NOLOGGING模式概述
1.日志记录模式(LOGGING 、FORCE LOGGING 、NOLOGGING)
1.1三者的含义
LOGGING:当创建一个数据库对象时将记录日志信息到联机重做日志文件。LOGGING实际上是对象的一个属性,用来表示在创建对象时是否记录REDO日志,包括在做DML时是否记录REDO日志。一般表上不建议使用NOLOGGING,在创建索引或做大量数据导入时,可以使用NOLOGGING
FORCE LOGGING:简言之,强制记录日志,即对数据库中的所有操作都产生日志信息,并将该信息写入到联机重做日志文件。
NOLOGGING:正好与LOGGING、FORCE LOGGING 相反,尽可能的记录最少日志信息到联机日志文件。
FORCE LOGGING可以在数据库级别、表空间级别进行设定、而LOGGING与NOLOGGING可以在数据对象级别设定。
在使用DATA GUARD 时,要求使用强制记录日志模式。注:FORCE LOGGING并不比一般的LOGGING记录的日志多,数据库在FORCE LOGGING状态下,NOLOGGING选项将无效,因为NOLOGGING将破坏DATAGUARD的可恢复性.FORCE LOGGING强制数据库在任何状态下必须记录日志。
1.2与归档模式及非归档模式之间的关系
关于归档及非归档请参考一下链接:
http://www.55linux.com/oracle/DBA/473.html
日志记录模式与归档模式之间并不能等同,归档模式是指对系统产生的日志是否进行归档或不归档。归档模式下,将日志记录到日志文件,并进行归档。非归档模式下,同样将日志记录到日志文件,只不过不归档而已,容易丢失日志。日志的记录模式则不论是否处于归档或非归档,可以对日志进行记录,强制记录,或少记录日志。归档模式中的LOGGING或FORCE LOGGING 支持介质恢复,而NOLOGGING 模式不支持介质恢复。基于NOLOGGING模式操作所产生的日志远小于LOGGING模式产生的日志,即NOLOGGING模式最小化日志记录。
1.3优先级别
当数据库使用FORCE LOGGING时,具有最高优先级别,其次是表空间级别的FORCE LOGGING。即是当一个对象指定NOLOGGING时,而表空间或数据库级别的日志模式为FORCE LOGGING,则该选项不起作用,直到表空间或数据库级别的FORCE LOGGING解除。
一般建议将整个数据库设置为FORCE LOGGING或基于表空间级别设定FORCE LOGGING,而不建议两者都设置为FORCE LOGGING。
当数据库或表空间使用非强制日志模式时,则记录优先级别由低到高为:数据库、表空间、数据对象
2.三者的使用情况
2.1LOGGING模式
这是日志记录的缺省模式,无论数据库是否处于归档模式,这并不改变表空间与对象级别上的缺省的日志记录模式。对于临时表空间将不记录日志到联机重做日志文件。
2.2NOLOGGING模式
此模式不是不记录日志,而是最小化日志产生的数量,通常在下列情况下使用NOLOGGING
1
2
3
4
5
6
|
SQL*Loader indirect mode INSERT /*+APPEND*/... CTAS ALTERTABLEstatements ( move / add /split/merge partitions) CREATEINDEX ALTERINDEXstatements ( move / add /split/merge partitions) |
NOLOGGING与表模式,插入模式,数据库运行模式(archived/unarchived)的关系:下面仅说明使用append方式插入数据时日志产生的情况,如使用下面的方式进行插入
1
|
insert /*+append+*/intotb_name select colnam1,colname2from table_name; |
数据库处于归档模式:
当表模式为logging状态时,无论是否使用append模式,都会生成redo.当表模式为nologging状态时,只有append模式,不会生成redo
2.3FORCE LOGGING模式
设定数据库为Force Logging模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作,而忽略类似NOLOGGING之类的指定参数。
通过下面的操作来修改
1
2
|
ALTERDATABASEFORCE LOGGING; ALTERTABLESPACE tablespace_name FORCE LOGGING; |
取消FORCE LOGGING模式
1
2
|
ALTERDATABASENOFORCE LOGGING; ALTERTABLESPACE tablespace_name NOFORCE LOGGING; |
2.4查看不同级别的日志模式
查看数据库级别日志的归档模式、记录模式
1
2
3
4
5
|
sys@ORCL> select log_mode,force_logging from v$ database ; LOG_MODE FOR ------------ --- NOARCHIVELOG NO |
查看表空间级别的日志记录模式
1
2
3
4
5
6
7
8
9
10
11
12
13
|
sys@ORCL> select tablespace_name,logging,force_logging from dba_tablespaces; TABLESPACE_NAME LOGGING FOR ------------------------------ --------- --- SYSTEM LOGGING NO UNDOTBS1 LOGGING NO SYSAUX LOGGING NO TEMP NOLOGGING NO USERS LOGGING NO LINUX LOGGING NO ASK1 LOGGING NO ASK2 LOGGING NO ASK3 LOGGING NO |
查看对象级别的日志记录模式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
scott@ORCL> select table_name,logging from user_tables; TABLE_NAME LOG ------------------------------ --- DEPT YES EMP YES BONUS YES SALGRADE YES EMPLOYEE YES EMP_HIST YES DUMMY_EMP YES ASKORACLE_RANGE_LIST ASKORACLE_RANGE_HASH1 ASKORACLE_RANGE_HASH ASKORACLE_LIST TABLE_NAME LOG ------------------------------ --- ASKORACLE_HASH ASKORACLE EMP_TEST YES |
2.5日志模式记录转换
1
2
3
4
5
6
7
8
9
10
11
|
a.数据库从非强制日志模式切换到强制日志模式 sys@ORCL>alterdatabaseforce logging; b.数据库从强制日志模式切换到非强制日志模式 sys@ORCL>alterdatabasenoforce logging; c.表空间级别从强制日志模式切换到非强制日志模式 sys@ORCL>alterdatabasenoforce logging; d.表空间级别从非强制日志模式切换到强制日志模式 sys@ORCL>alterdatabasenoforce logging; e.对象级别日志记录模式 sys@ORCL>altertabletb_a nologging; --不记录日志模式 sys@ORCL>altertabletb_a logging; --采用日志记录模式 |
3.LOB段上有关NOLOGGING与LOGGING的情况
3.1计算所有LOB的大小:
1
2
|
SELECT SUM (BYTES)/1024/1024/1024 as LOB_Size FROM user_segments WHERE segment_type= 'LOBSEGMENT' ; |
3.2计算所有nologging的大小
1
2
3
4
|
SELECT SUM (s.BYTES)/1024/1024/1024 as Nologging_size FROM user_segments s,user_lobs l WHERE s.segment_type= 'LOBSEGMENT' AND l.LOGGING= 'NO' AND l.SEGMENT_NAME=s.SEGMENT_NAME; |
3.3列出所有nologging/logging 的lobs和对应的表空间及其大小:
1
2
3
4
5
6
7
8
9
|
SELECT s.segment_name,s.bytes,s.TABLESPACE_NAME FROM user_segments s,user_lobs l WHERE s.segment_type= 'LOBSEGMENT' AND l.LOGGING= 'NO' AND l.SEGMENT_NAME=s.SEGMENT_NAME; SELECT s.segment_name,s.bytes,s.TABLESPACE_NAME FROM user_segments s,user_lobs l WHERE s.segment_type= 'LOBSEGMENT' AND l.LOGGING= 'YES' AND l.SEGMENT_NAME=s.SEGMENT_NAME; |
3.4计算LOB段上nologging/logging的数量
1
2
|
SELECT COUNT (*) FROM user_lobs WHERE logging= 'NO' ; SELECT COUNT (*) FROM user_lobs WHERE logging= 'YES' ; |
关于LOGGING在Oracle 10g考试中的题如下:
Which two statements regarding the LOGGING clause of the CREATE TABLESPACE. .. statement are
correct? (Choose two.)
A. This clause is not valid for a temporary or undo tablespace.
B. If the tablespace is in the NOLOGGING mode, no operation on the tablespace will generate redo.
C. The tablespace will be in the NOLOGGING mode by default, if not specified while creating a tablespace.
D. The tablespacelevel logging attribute can be overridden by logging specifications at the table, index,materialized view, materialized view log, and partition levels.
Answer: AD
Oracle数据库LOGGING&NOLOGGING模式概述的更多相关文章
- 修改oracle数据库为归档模式
参考博客:http://blog.csdn.net/codesaint/article/details/1901030 Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHI ...
- Oracle数据库(一)概述、基础与简单操作
数据库: 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库. 数据库分类: 关系型数据库 非关系型数据库 数据库 类型 特性 优点 缺点 关系型数据库 SQLite.Oracle. ...
- Oracle数据库的归档模式(archivelog mode)
Oracle数据库可以运行在2种模式下: 归档模式(archivelog) 归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模 ...
- Oracle数据库的连接模式connection Mode、连接connection与会话session
数据库的连接模式Connection Mode: Dedicated Server Mode(专有模式) 当用户发出请求时,如远程的client端通过监听器连接数据库上,ORACLE的服务器端会启用一 ...
- oracle数据库的归档模式
1:开发环境和测试环境中,数据库的日志模式和自动归档模式一般都是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量的消耗. 2:生产环境时,将其设置为日志模式并自动归档就相 ...
- Oracle数据库表索引失效,解决办法:修改Oracle数据库优化器模式
ALTER SYSTEM SET OPTIMIZER_MODE=RULE scope=both; 其他可以选择的模式还有ALL_ROWS/CHOOSE/FIRST_ROWS/ALL_ROWS. 应用系 ...
- P6 EPPM手动安装指南(Oracle数据库)(一)
P6 EPPM手动安装指南(Oracle数据库) P6 EPPM Manual Installation Guide (Oracle Database) 1. 内容... 1 1.1. ...
- Oracle 数据库语句大全
Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...
- Oracle数据库语句大全
转自:http://blog.sina.com.cn/s/blog_b5d14e2a0101c56z.html ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指 ...
随机推荐
- dynamic load javascript file.
$.ajax({ url : ("js/public/" + window.localStorage.getItem("lang") + ".js&q ...
- js中对象的一些特性,JSON,scroll家族
一.js中对象的一些特性 对象的动态特性 1.当对象有这个属性时,会对属性的值重写 2.当对象没有这个属性时,会为对象创建一个新属性,并赋值 获得对象的属性的方式 为元素设置DOM0级事件 二.JSO ...
- Tensorflow一些常用基本概念与函数(一)
1.tensorflow的基本运作 为了快速的熟悉TensorFlow编程,下面从一段简单的代码开始: import tensorflow as tf #定义‘符号’变量,也称为占位符 a = tf. ...
- node的开发者环境设置丢失
1.我看到的最简单的一种:evn 默认的值是 development var app = express(); if (app.get('env') === 'development') { req ...
- 雷林鹏分享:JSP 简介
JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开 ...
- hdu2176nim博弈
就是要搞清楚nim博弈的原理 特别是证明方法,这一题就是第二条证明方法得出来的结论,只要a[i]^k<a[i]输出就行了 证明如下: 根据定义,证明一种判断position的性质的方法的正确性, ...
- 2-14-2 MySQL数据类型
MySQL数据类型: 对数据进行分类,针对不同分类进行不同的处理. 1. 使系统能够根据数据类型来操作数据. 2. 预防数据运算时出错. 3. 更有效的利用空间. 数据分类,可以使用最少的存储,来存放 ...
- UVA-1572 Self-Assembly (图+拓扑排序)
题目大意:每条边上都有标号的正方形,两个正方形能通过相匹配的边连接起来,每种正方形都有无限多个.问能否无限延展下去. 题目分析:将边视为点,正方形视为边,建立无向图,利用拓扑排序判断是图否为DAG. ...
- 黑暗世界的搜索引擎 https://fofa.so/ https://www.shodan.io https://www.zoomeye.org 查找设备漏洞
from:http://www.freebuf.com/sectool/121339.html 什么是 Shodan? 首先,Shodan 是一个搜索引擎,但它与 Google 这种搜索网址的搜索引擎 ...
- 加密算法中涉及C/C++总结
学习网站:http://www.runoob.com/cplusplus/cpp-functions.html char在VC(c++)中占1字节(byte),8位(bit). int在VC(c++) ...