可以采用NOLOGGING模式执行以下操作:
1 索引的创建和ALTER(重建)。
2 表的批量INSERT(通过/*+APPEND */提示使用“直接路径插入“。或采用SQL*Loader直接路径加载)。表数据不生成redo,但是
所有索引修改会生成redo,但是所有索引修改会生成redo(尽管表不生成日志,但这个表上的索引却会生成redo!)。
3 LOB操作(对大对象的更新不必生成日志)。
4 通过CREATE TABLE AS SELECT创建表。
5 各种ALTER TABLE操作,如MOVE和SPLIT。
在一个ARCHIVELOG模式的数据库上,如果NOLOGGING使用得当,可以加快许多操作的速度,因为它能显著减少生成的重做日
志量。假设你有一个表,需要从一个表空间移到另一个表空间。可以适当地调度这个操作,让它在备份之后紧接着发生,这样就能把表
ALTER为NOLOGGING模式,移到表,创建索引(也不生成日志),然后再把表ALTER回LOGGING模式。现在,原先需要X小时才能
完成的操作可能只需要X/2 小时(运行是会不会真的减少50%的时间,这一点我不敢打保票!)。要想适当地使用这个特性,需要DBA的
参与,或者必须与负责数据库备份和恢复(或任何备用数据库)的人沟通。如果这个人不知道使用了这个特性,一旦出现介质失败,就可
能丢失数据,或者备用数据库的完整性可能遭到破坏。对此一定要三思。
使用范例
create table t
NOLOGGING
as
select * from all_objects
关于NOLOGGING操作,需要注意以下几点:
1 事实上,还是会生成一定数量的redo。这些redo的作用是保护数据字典。这是不可避免的。与以前(不使用NOLOGGING)相
比,尽管生成的redo量要少多了,但是确实会有一些redo。
2 NOLOGGING不能避免所有后续操作生成redo。在前面的例子中,我创建的并非不生成日志的表。只是创建表(CREATE TABLE)
这一个操作没有生成日志。所有后续的“正常“操作(如INSERT、UPDATE和DELETE)还是会生成日志。其他特殊的操作(如
使用SQL*Loader的直接路径加载,或使用INSERT /*+ APPEND */语法的直接路径插入)不生成日志(除非你ALTER这个表,
再次启用完全的日志模式)。不过,一般来说,应用对这个表执行的操作都会生成日志。
3 在一个ARCHIVELOG 模式的数据库上执行NOLOGGING 操作后,必须尽快为受影响的数据文件建立一个新的基准备份,从而
避免由于介质失败而丢失对这些对象的后续修改。实际上,我们并不会丢失后来做出的修改,因为这些修改确实在重做日志中;
我们真正丢失的只是要应用这些修改的数据(即最初的数据)。
分享到:
相关推荐
oracle nologging全面总结,从数据库级别,对象以及表级别都有说明,以及在生产环境的影响,和及时止损的处理方法。
* 应用层面可考虑使用减少 REDO 量的写法(如:NOLOGGING)。 四、调整后的观察 调整后的观察是非常重要的,可以通过定期生成 AWR 报告,关注其中的内存命中率、等待事件等等,以决定是否需要进行相应调整。 ...
### Oracle在线建立超大表的索引 #### 需求背景 在Oracle数据库中,为含有千万级别记录的大表创建索引是一项挑战性任务,尤其是对于那些处于高并发在线生产环境中的表。本文将详细介绍如何为一个核心大表(INFO_...
"Oracle 海量数据中提升创建...为了提高 Oracle 海量数据中的创建索引速度,可以从多方面入手,包括使用 nologging 参数、parallel 并行参数、manual pga 模式等。同时,调整pga的参数和了解pga的工作机制也很重要。
Oracle Nologging全面总结 Oracle RAC 集群安装部署 Oracle RMAN 单实例异机迁移恢复(版本:11GR2) Oracle存储过程性能分析案例 Oracle技术加油站:快速处理紧急性能问题的工具与经验 Oracle诊断性能问题时常用...
以下是一些关于Oracle常用命令的详细说明,分为日志管理和表空间管理两大部分。 ### 日志管理 #### 1. 强制日志切换 ```sql alter system switch logfile; ``` 这个命令用于在当前重做日志文件填满前强制进行日志...
ALTER DATABASE NOLOGGING; ORACLE 备份的分类 Oracle 备份可以分为逻辑备份、物理备份和混合备份。逻辑备份是指备份数据库中的逻辑结构,例如表、视图、索引等。物理备份是指备份数据库文件,例如数据文件、日志...
[LOGGING|NOLOGGING] [NOCOMPRESS|COMPRESS] [NOMONITORING|MONITORING]; ``` 在这个语句中,`表空间名`是你为新表空间指定的名字,`路径/数据文件名.dbf` 是数据文件的路径和名称,`size`定义了初始大小,`UNIFORM`...
alter table T3 nologging; insert /*+ APPEND */ into T3 select T1.* from T1, T2 where T1.ID = T2.ID; ``` **特点:** - **优点:**能够避免大量的undo段占用问题,适用于大规模数据更新。 - **缺点:**需要...
NOLOGGING DATAFILE 'E:\app\Chapelcc\oradata\orcl\ABS.dbf' SIZE 10000M AUTOEXTEND ON NEXT 1000M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL; -- 创建临时表空间 ABS_TEMP CREATE TEMPORARY TABLESPACE ABS_...
【Oracle开发】中关于“ORACLE索引与高性能SQL”的知识点涵盖了索引的基本概念、目的、类型、管理和优化策略等多个方面。以下是对这些知识点的详细解释: 1. **索引定义**:索引是一种数据库对象,它加快了对表中...
[LOGGING | NOLOGGING] [FORCE LOGGING] [ONLINE | OFFLINE] [EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE size]] [SEGMENT SPACE MANAGEMENT (COMPACT | AUTO)]; ``` 其中,`tablespace_...
此外,还需要考虑表的存储位置和是否使用并行创建表、NOLOGGING、表压缩等选项。 创建表之后,可以使用SQL语句或Oracle大容量装载实用程序来插入数据行。对于特定的列类型,如LOB、varray和嵌套表,它们存储在自己...
NOLOGGING`),可以在大数据量的插入操作中显著降低日志写入的开销,从而大幅减少操作时间。但值得注意的是,禁用日志记录会牺牲数据恢复的安全性,因此在操作完成后应立即恢复日志记录(`ALTER TABLE ... LOGGING`...
3. **在 ADG 中支持 Nologging 数据的复制同步**:这为那些不需要日志记录的应用程序提供了更快的同步选项。 4. **ADG 自动重定向 Update 操作到主库**:这项特性极大地方便了读写分离的场景,可以自动将更新操作...
### Oracle表空间和数据文件的管理 #### 6.1 Oracle引入逻辑结构的目的 Oracle数据库管理系统采用了一种独特的设计思路,即通过引入一系列逻辑结构来处理数据存储问题,而不是直接操作底层的数据文件。这种设计的...
"LOGGING"和"NOLOGGING"是Oracle数据库中关于日志记录的两种模式。LOGGING模式是默认设置,这意味着所有的DML(数据操纵语言)操作,如INSERT、UPDATE、DELETE以及DDL(数据定义语言)操作,如CREATE TABLE,都会被...